Skip to content

Commit 8c04f65

Browse files
authored
Enhance clarity and language in agent.md
Refine language and improve clarity in the agent documentation.
1 parent 91d6f2d commit 8c04f65

1 file changed

Lines changed: 24 additions & 26 deletions

File tree

  • docs/development/call-core-services

docs/development/call-core-services/agent.md

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# Agent 与 Sub-Agent
22

3-
ChatLuna 现在提供了一套更高层的 Agent API。
4-
5-
推荐优先使用 `ctx.chatluna.createAgent(...)` 创建 Agent,再通过 `generate()``stream()``asTool()``createTaskTool()` 组合主 Agent、Sub-Agent 与任务委派能力。
3+
ChatLuna 提供了一套更高层的 Agent API,用于组装 Agent,甚至是多 Agent 服务。
64

75
## 创建 Agent
86

9-
最常见的入口是 `ctx.chatluna.createAgent()`
7+
使用 `ctx.chatluna.createAgent()` 来快速创建 Agent
108

11-
```ts
9+
```ts twoslash
10+
// @noImplicitAny: false
11+
// @strictNullChecks: false
1212
import type {} from "koishi-plugin-chatluna/services/chat";
1313

1414
const agent = await ctx.chatluna.createAgent({
@@ -26,11 +26,11 @@ const agent = await ctx.chatluna.createAgent({
2626

2727
<br>
2828

29-
平时最常用的几个参数
29+
常用的参数
3030

3131
- `model`: 必填,通常直接写 `platform/model`
32-
- `tools`: 可选,传工具名数组即可
33-
- `preset``system`: 二选一;想复用预设就传 `preset`,想快速写一个 Agent 就直接传 `system`
32+
- `tools`: 可选,传工具名数组或 Langchain 的工具数组。不传数组则默认激活全部可用的工具。
33+
- `preset``system`: 二选一;想复用已有预设就传入 `preset`,想快速写一个 Agent 就直接传 `system`(用于指定 Agent 的 System Prompt)
3434
- `mode`: 可选,默认 `tool-calling`
3535
- `maxSteps`: 可选,限制最多调用多少轮工具
3636

@@ -59,7 +59,7 @@ console.log(result.message);
5959

6060
- `output`: 最终文本输出
6161
- `message`: 最终消息对象
62-
- `intermediateSteps`: 当创建 Agent 时设置了 `returnIntermediateSteps: true` 才会返回
62+
- `intermediateSteps`: 工具调用的步骤。创建 Agent 时设置了 `returnIntermediateSteps: true` 才会返回
6363

6464
## 流式调用
6565

@@ -111,7 +111,7 @@ await agent.generate({
111111

112112
`agent.asTool()` 可以把一个 Agent 直接包装成 LangChain `StructuredTool`
113113

114-
这种方式适合一次性交接:主 Agent 把某个任务完整交给子 Agent,然后拿回最终结果。
114+
这种方式更适合一次性交接:主 Agent 把某个任务完整交给子 Agent,然后拿回最终结果。
115115

116116
```ts
117117
const explore = await ctx.chatluna.createAgent({
@@ -135,26 +135,24 @@ const delegateTool = explore.asTool({
135135
});
136136
```
137137

138-
如果你希望主 Agent 直接能调用这个工具,通常会在创建主 Agent 前先把它注册成平台工具,或在你自己的装配层中一起构造工具列表
138+
如果你希望主 Agent 直接能调用这个工具,通常会在创建主 Agent 前先把它注册成平台工具,或在你自己的代码中构造工具列表
139139

140140
## 主 Agent + Sub-Agent
141141

142-
推荐的心智模型是
142+
推荐的使用方式是
143143

144-
- 主 Agent 也是 Agent
145-
- Sub-Agent 也是 Agent
146-
- 一次性交接用 `asTool()`
147-
- 长任务、多轮跟进、后台继续执行用 `createTaskTool()`
144+
- 主 Agent 和 Sub-Agent 都 Agent
145+
- 使用 `asTool()` 做一次性交接和 `handoff`
146+
- 当需要长期执行任务、多轮对话跟进、后台执行时,采用 `createTaskTool()`
148147

149148
也就是说,主 Agent 和 Sub-Agent 的区别主要在“如何被调用”,而不是底层实现不同。
150149

151150
## 任务工具与 Sub-Agent 教程
152151

153152
当你希望:
154153

155-
- 主 Agent 把工作交给某个专门 Agent
156-
- 任务可以后台运行
157-
- 之后还能 `status` / `list` / `message` / `resume`
154+
- 主 Agent 把工作交给某个专门 Agent,任务可以后台运行
155+
- 之后还能恢复对话
158156

159157
就应该使用 `createTaskTool()`
160158

@@ -297,19 +295,19 @@ console.log(msg.content);
297295

298296
这和 extension-agent 里展示 `<available_sub_agents>` 的方式是一致的。
299297

300-
## 何时用 asTool,何时用 task
298+
## asTooltask 的场景
301299

302-
### 使用 `asTool()` 的场景
300+
### 使用 `asTool()`
303301

304-
- 只需要一次性交接
302+
- 只需要子 Agent 一次性交接
305303
- 子 Agent 执行完成后直接返回结果
306-
- 不需要后台运行和任务状态管理
304+
- 不需要复杂的后台运行和任务状态管理
307305

308-
### 使用 `createTaskTool()` 的场景
306+
### 使用 `createTaskTool()`
309307

310-
- 子 Agent 任务可能比较长
308+
- 子 Agent 的任务可能比较长
311309
- 希望后台继续执行
312-
- 之后还要继续查看状态、补发消息、恢复执行
310+
- 后续还需要继续恢复执行
313311

314312
## 底层 API
315313

0 commit comments

Comments
 (0)