📖 扩展点速查
# ReActAgentComponent 可覆写方法
ReActAgentComponent#process() 是 final 方法。框架统一完成配置读取、conversation 解析、Session 获取、加锁、Agent 构建、调用、回复处理和 memory 保存。业务侧通过覆写以下受保护方法定制行为:
| 方法 | 必须 | 默认行为 | 说明 |
|---|---|---|---|
model() | 是 | 无 | 返回 ModelSpec<?>,声明平台和模型 |
systemPrompt() | 是 | 无 | 系统提示词,同一 Session 首次构建时调用;框架会在其前面拼接一段统一系统提示词 |
userPrompt() | 是 | 无 | 本轮用户消息,每次 process() 都调用 |
tools() | 否 | 空列表 | 注册自定义 @Tool 对象 |
skills() | 否 | 空列表 | 技能名白名单;空列表表示允许全部技能 |
enableSkills() | 否 | 读取全局配置 | 是否为本组件启用 skills |
usedSkills() | 否 | — | 本轮已成功加载的技能名列表(只读) |
resolveConversationId() | 否 | 先复用 slot,再读请求,最后自动生成 | 决定本次调用所属业务会话 |
agentKey() | 否 | 当前 nodeId | 同一 conversation 中区分不同 Agent |
maxIterations() | 否 | -1 | 返回正数时覆盖全局最大迭代次数(详见 迭代次数与 Summary) |
enableShellTool() | 否 | true | 是否注册内置 Shell 工具 |
enableWorkspaceFileTools() | 否 | true | 是否注册内置文件工具 |
hooks() | 否 | 空列表 | 注册 agentscope Hook(详见 自定义 Hook) |
enableReActLogging() | 否 | 读取全局配置 | 是否注册内置 Re-Act 日志 Hook |
handleReply(reply) | 否 | 写入 slot.responseData | 自定义回复处理 |
buildModel() | 否 | 委派 model().resolve() | 完全自行构造 agentscope Model |
# ReActAgentContext 方法
通过 ctx() 获取:
| 方法 | 说明 |
|---|---|
getSlot() | 当前 LiteFlow Slot |
getConversationId() | 安全化后的 conversation ID |
getAgentKey() | 安全化后的 Agent key |
getWorkspaceDir() | 当前 conversation 的 workspace 目录 |
getChatUsage() | 本次调用累计的 token 用量 |
# 重要提醒
systemPrompt()、tools()、hooks()、skills()等方法属于 Agent 构建期能力声明,只在同一(conversationId, agentKey)首次构建缓存 Agent 时生效- 不要让这些方法依赖单次请求数据;动态输入应放在
userPrompt()中 - 如果确实需要按请求隔离,把请求维度体现在
agentKey()或conversationId()中
帮助我们改善此文档 (opens new window)
上次更新: 2026/06/02, 00:29:19


