From f11560b639165898eb9b1378631184ee11f475c1 Mon Sep 17 00:00:00 2001 From: gzkoala Date: Sun, 8 Mar 2026 11:09:20 +0800 Subject: [PATCH] =?UTF-8?q?docs(fixed):=E6=9B=B4=E6=96=B0Arabica=20Sprint?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=96=87=E6=A1=A3=E6=8C=87=E5=8D=97=E4=B8=AD?= =?UTF-8?q?mermaid=E7=A4=BA=E6=84=8F=E5=9B=BE=E8=AF=AD=E6=B3=95=E4=B8=8EGi?= =?UTF-8?q?tLink=E5=B9=B3=E5=8F=B0=E4=B8=8D=E5=85=BC=E5=AE=B9=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gzkoala --- ...abica-sprint2-development-specification.md | 81 ++++++++++--------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/projects/arabica/docs/design/arabica-sprint2-development-specification.md b/projects/arabica/docs/design/arabica-sprint2-development-specification.md index d340208..b2eca38 100644 --- a/projects/arabica/docs/design/arabica-sprint2-development-specification.md +++ b/projects/arabica/docs/design/arabica-sprint2-development-specification.md @@ -1015,7 +1015,7 @@ async function handleSaveNote(params: any) { #### 3.2.3 核心函数详解 -###### 3.2.3.1 `handlePromptsList` +##### 3.2.3.1 `handlePromptsList` 1. **逻辑流程图** @@ -1055,12 +1055,12 @@ sequenceDiagram ```mermaid graph TD - A[收到 prompts/get 请求] --> B[接收 name 和 args] + A["收到 prompts/get 请求] --> B["接收 name 和 args"] B --> C["调用 getFramework(name, args)"] - C --> D{是否成功?} + C --> D{"是否成功?"} D -- 是 --> E["组装响应 { description, messages }"] - D -- 否 --> F[抛出错误] - E --> G[返回响应] + D -- 否 --> F["抛出错误"] + E --> G["返回响应"] ``` @@ -1085,7 +1085,7 @@ sequenceDiagram - **输出**:包含 `description` 和 `messages` 的对象。 - **依赖**:`promptService.getFramework` → 框架 JSON + 角色 JSON。 -###### 3.2.3.3 `handleToolCall` 与工具处理函数 +##### 3.2.3.3 `handleToolCall` 与工具处理函数 以 `save_note` 工具为例,展示统一入口和具体处理函数的协作。 @@ -1093,18 +1093,18 @@ sequenceDiagram ```mermaid graph TD - A[收到 tool/call 请求] --> B["调用 handleToolCall(toolName, params)"] - B --> C{根据 toolName 分发} + A["收到 tool/call 请求"] --> B["调用 handleToolCall(toolName, params)"] + B --> C{"根据 toolName 分发"} C -- save_note --> D["调用 handleSaveNote(params)"] - C -- 其他工具 --> E[其他处理函数] - D --> F[使用 saveNoteSchema 校验参数] - F --> G{校验通过?} - G -- 否 --> H[返回参数错误响应] - G -- 是 --> I[调用 saveNote 服务] - I --> J{服务执行是否成功?} - J -- 是 --> K[返回成功响应] - J -- 否 --> L[返回错误响应] - H --> M[返回响应给接入层] + C -- 其他工具 --> E["其他处理函数"] + D --> F["使用 saveNoteSchema 校验参数"] + F --> G{"校验通过?"} + G -- 否 --> H["返回参数错误响应"] + G -- 是 --> I["调用 saveNote 服务"] + I --> J{"服务执行是否成功?"} + J -- 是 --> K["返回成功响应"] + J -- 否 --> L["返回错误响应"] + H --> M["返回响应给接入层"] K --> M L --> M ``` @@ -1133,6 +1133,7 @@ sequenceDiagram 其他工具处理函数(如 `handleGenerateSearchQueries`)具有相似的结构,仅调用的服务和校验规则不同。 + ### 3.2.4 未来优化 **潜在优化点**: @@ -1571,20 +1572,20 @@ export async function saveNote(filename: string, content: string): Promise B{缓存存在?} - B -- 是 --> C[返回缓存] - B -- 否 --> D[读取 FRAMEWORKS_DIR] - D --> E[过滤出 .json 文件] - E --> F[并发读取所有 JSON 文件] - F --> G[解析为 Framework 对象] - G --> H[存入缓存] - H --> I[返回框架数组] + A["调用 loadFrameworks"] --> B{"缓存存在?"} + B -- 是 --> C["返回缓存"] + B -- 否 --> D["读取 FRAMEWORKS_DIR"] + D --> E["过滤出 .json 文件"] + E --> F["并发读取所有 JSON 文件"] + F --> G["解析为 Framework 对象"] + G --> H["存入缓存"] + H --> I["返回框架数组"] ``` @@ -1618,27 +1619,27 @@ sequenceDiagram - **依赖**:文件系统读取操作。 - **缓存策略**:使用模块级变量 `frameworksCache`,在服务生命周期内有效,避免重复读盘。 -###### 3.3.3.2 `promptService.getFramework` +##### 3.3.3.2 `promptService.getFramework` 1. **逻辑流程图** ```mermaid graph TD - A["调用 getFramework(name, args)"] --> B[加载所有框架] - B --> C[查找名称为 name 的框架] - C --> D{框架存在?} - D -- 否 --> E[抛出错误] - D -- 是 --> F[确定系统提示] - F --> G[初始化 messages 数组] + A["调用 getFramework(name, args)"] --> B["加载所有框架"] + B --> C["查找名称为 name 的框架"] + C --> D{"框架存在?"} + D -- 否 --> E["抛出错误"] + D -- 是 --> F["确定系统提示"] + F --> G["初始化 messages 数组"] G --> H["添加系统消息(如有)"] - H --> I{有 examples?} - I -- 是 --> J[遍历 examples] - J --> K[填充示例 input 到模板] - K --> L[添加 user 消息] - L --> M[添加 assistant 消息] + H --> I{"有 examples?"} + I -- 是 --> J["遍历 examples"] + J --> K["填充示例 input 到模板"] + K --> L["添加 user 消息"] + L --> M["添加 assistant 消息"] M --> J - I -- 结束 --> N[填充当前 args 到模板] - N --> O[添加当前 user 消息] + I -- 结束 --> N["填充当前 args 到模板"] + N --> O["添加当前 user 消息"] O --> P["返回 { messages }"] ```