From cab7ba727f95da4b3f37e30e717793b93f1e1609 Mon Sep 17 00:00:00 2001 From: PeterZhong Date: Sun, 13 Jul 2025 21:47:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E6=96=87=E7=AB=A0=E6=9E=B6?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/config.mts | 12 +++++++++++- .vscode/settings.json | 9 +++++++++ README.md | 12 +++++++++++- agent/dev/access.md | 9 +++++++++ agent/dev/introduction.md | 10 +++++++++- agent/dev/knowledge.md | 13 +++++++++++++ agent/dev/models.md | 9 +++++++++ agent/dev/prompt.md | 13 +++++++++++++ agent/dev/structure.md | 9 +++++++++ agent/usage/introduction.md | 6 ++++++ agent/usage/plan.md | 3 +++ agent/usage/quick-start.md | 6 +++++- assets/PixPin_2025-07-13_20-42-45.png | Bin 0 -> 47146 bytes plugin/dev/arcgis-tool.md | 15 +++++++++++++++ plugin/dev/introduction.md | 10 +++++++++- plugin/dev/knowledge.md | 5 +++++ plugin/dev/python-interpreter.md | 7 +++++++ plugin/dev/structure.md | 9 +++++++++ plugin/usage/introduction.md | 10 +++++++++- 19 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 agent/dev/access.md create mode 100644 agent/dev/knowledge.md create mode 100644 agent/dev/models.md create mode 100644 agent/dev/prompt.md create mode 100644 agent/dev/structure.md create mode 100644 agent/usage/plan.md create mode 100644 assets/PixPin_2025-07-13_20-42-45.png create mode 100644 plugin/dev/arcgis-tool.md create mode 100644 plugin/dev/knowledge.md create mode 100644 plugin/dev/python-interpreter.md create mode 100644 plugin/dev/structure.md diff --git a/.vitepress/config.mts b/.vitepress/config.mts index 269074e..f200331 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -18,13 +18,19 @@ export default defineConfig({ text: '智能体使用说明', items: [ { text: '入门简介', link: '/agent/usage/introduction' }, - { text: '快速开始', link: '/agent/usage/quick-start' } + { text: '快速开始', link: '/agent/usage/quick-start' }, + { text: '迭代计划', link: '/agent/usage/plan' } ] }, { text: '智能体开发指南', items: [ { text: '开发简介', link: '/agent/dev/introduction' }, + { text: '架构设计', link: '/agent/dev/structure' }, + { text: '模型基座', link: '/agent/dev/models' }, + { text: '提示词工程', link: '/agent/dev/prompt' }, + { text: '评估体系', link: '/agent/dev/access' }, + { text: '知识库工程', link: '/agent/dev/knowledge' }, ] }], '/web/': [{ @@ -49,6 +55,10 @@ export default defineConfig({ text: '插件端开发指南', items: [ { text: '开发简介', link: '/plugin/dev/introduction' }, + { text: '架构设计', link: '/plugin/dev/structure' }, + { text: 'ArcGIS Pro地理处理工具', link: '/plugin/dev/arcgis-tool' }, + { text: '知识库', link: '/plugin/dev/knowledge' }, + { text: 'Python解释器', link: '/plugin/dev/python-interpreter' }, ] }] }, diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3623c56 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "pasteImage.basePath": "${projectRoot}/assets", + "pasteImage.defaultName": "x", + "pasteImage.encodePath": "none", + "pasteImage.namePrefix": "img", + "pasteImage.insertPattern": "![](${imageFilePath})", + "pasteImage.path": "${projectRoot}/assets", + "pasteImage.prefix": "img" +} \ No newline at end of file diff --git a/README.md b/README.md index 520d881..04cd5f7 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,14 @@ ### 参与协作 -可直接使用Visual Studio Code(推荐)或Intellij Idea、PyCharm等集成开发环境打开本项目,直接开始编辑相应的文档 \ No newline at end of file +可直接使用Visual Studio Code(推荐)或Intellij Idea、PyCharm等集成开发环境打开本项目,创建自己的分支后,直接开始编辑相应的文档。 + +如果需要添加新的文章,在`/.vitepress/config.mts`中的sidebar添加相应的item,原则上不允许添加新的侧边栏组,nav中也不允许添加其它的子项目,文档中涉及的图片全部放到assets文件夹中,严禁在Markdown文档所在文件夹放图片。 + +### 语法参考 + +由于本项目基于Vitepress搭建,所以也支持Vitepress中对于Markdown语法的扩展,可以排版出美观的项目文档,具体参考[Vitepress官方文档](https://vitepress.dev/zh/reference/default-theme-config) + +## 文档预览 + +对于普通Markdown语法部分(占据文档库的大部分内容)可以直接使用Visual Studio Code自带的Markdown预览器预览效果,对于Vitepress拓展部分,可以通过`npm run docs:dev`命令开启实时预览,开启后,每次文档内容有更新就会自动刷新;也可以通过`npm run docs:build`生成相应的html文件。 \ No newline at end of file diff --git a/agent/dev/access.md b/agent/dev/access.md new file mode 100644 index 0000000..a221555 --- /dev/null +++ b/agent/dev/access.md @@ -0,0 +1,9 @@ +# 能力与效果评估 + +## 评估体系 + +介绍评估体系各个标准,含示例和介绍文字等 + +## 评估结果 + +介绍当前智能体的评估结果、与竞品对比、与人工操作对比、不同迭代版本的智能体对比等 \ No newline at end of file diff --git a/agent/dev/introduction.md b/agent/dev/introduction.md index 974d0a1..2be6883 100644 --- a/agent/dev/introduction.md +++ b/agent/dev/introduction.md @@ -1 +1,9 @@ -# 开发简介 \ No newline at end of file +# 开发简介 + +## 主要功能 + +介绍我们这个智能体主要用于做什么的 + +## 创新特色 + +列举并介绍智能体部分投稿比赛、吸引评委和观众的创新点,突出亮眼的地方(包括功能上、设计思路上等) \ No newline at end of file diff --git a/agent/dev/knowledge.md b/agent/dev/knowledge.md new file mode 100644 index 0000000..e24498f --- /dev/null +++ b/agent/dev/knowledge.md @@ -0,0 +1,13 @@ +# 知识库 + +## 简介 + +简要介绍有哪些知识库、大致是些什么内容 + +## 知识库构建 + +详细记录知识爬取、整理、翻译等等我们前期构建知识库时所做的工作 + +## 实现方法 + +介绍通过阿里云百炼平台实现知识库管理、检索、命中测试等的方法 \ No newline at end of file diff --git a/agent/dev/models.md b/agent/dev/models.md new file mode 100644 index 0000000..caefa35 --- /dev/null +++ b/agent/dev/models.md @@ -0,0 +1,9 @@ +# 模型基座 + +## 支持列表 + +介绍当前智能体支持的主要模型基座,列表展示(出品方、参数量、API平台、模型名称) + +## 模型表现 + +对比介绍不同模型、不同参数量在实际任务中的表现,并给出建议:哪些模型适合完成什么任务 \ No newline at end of file diff --git a/agent/dev/prompt.md b/agent/dev/prompt.md new file mode 100644 index 0000000..10283fe --- /dev/null +++ b/agent/dev/prompt.md @@ -0,0 +1,13 @@ +# 提示词 + +## 简介 + +简单介绍通过提示词实现什么样的效果,提示词主要包括哪些内容等 + +## 设计 + +介绍当前提示词是怎么设计的(详细介绍包括哪些部分的内容,预期、实测产生什么样的效果) + +## 调试方法 + +总结一些提示词工程的技巧,例如提供示例、提出禁止性要求之类的 \ No newline at end of file diff --git a/agent/dev/structure.md b/agent/dev/structure.md new file mode 100644 index 0000000..23d759e --- /dev/null +++ b/agent/dev/structure.md @@ -0,0 +1,9 @@ +# 架构设计 + +## 架构简介 + +绘制智能体架构设计图,介绍智能体的组成及各模块的主要功能,模块之间的关系等(注意与插件的架构图有所区分,本部分主要是介绍智能体本身的,可忽略程序开发相关内容) + +## 工作流程 + +介绍智能体收到需求后的工作流程 \ No newline at end of file diff --git a/agent/usage/introduction.md b/agent/usage/introduction.md index 17fe94c..d10e0af 100644 --- a/agent/usage/introduction.md +++ b/agent/usage/introduction.md @@ -1,2 +1,8 @@ # 智能体简介 +## 简介 + +大致介绍我们的智能体是干什么用的,本部分主要面向用户,所以偏使用的角度进行介绍,与开发部分的简介不同 + +## 展望 + diff --git a/agent/usage/plan.md b/agent/usage/plan.md new file mode 100644 index 0000000..6846f87 --- /dev/null +++ b/agent/usage/plan.md @@ -0,0 +1,3 @@ +# 更新计划 + +介绍一下智能体后续更新的方向和时间节点安排,展望未来实现的能力 \ No newline at end of file diff --git a/agent/usage/quick-start.md b/agent/usage/quick-start.md index 55b6f79..b707562 100644 --- a/agent/usage/quick-start.md +++ b/agent/usage/quick-start.md @@ -1 +1,5 @@ -# 快速开始 \ No newline at end of file +# 快速开始 + +## 接入智能体 + +介绍如果程序需要接入智能体,需要实现些什么(例如:模型基座请求、MCP服务等) \ No newline at end of file diff --git a/assets/PixPin_2025-07-13_20-42-45.png b/assets/PixPin_2025-07-13_20-42-45.png new file mode 100644 index 0000000000000000000000000000000000000000..d332b4c08272c8cd8248acffea2b7ddd3e65116e GIT binary patch literal 47146 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𝔲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