本文详细介绍了基于 Anthropic Claude API、用 TypeScript 编写的轻量级单进程 Agent 框架 Open Claw 的核心架构,重点阐述了 Tool 系统、消息总线、子 Agent 管理和 REPL 主循环四个模块的设计与实现。
📝 详细摘要
本文来自大淘宝技术团队,记录了对开源 Agent 框架 Open Claw 的研究与最小可运行实现。文章核心观点是:对于 Tool 调用、消息分发、子 Agent 管理这三类 Agent 系统的核心组件,优先采用薄抽象、显式控制流和贴近模型 API 的实现方式,比引入多层中间件更容易获得工程上的确定性。文章详细介绍了四个核心模块:Tool 抽象与 ToolRegistry(统一的工具注册和调用接口,通过 exclude() 实现能力隔离)、MessageBus 入站消息总线(支持 subscribe 实时回调和 drain 轮询两种消费模式)、SubagentManager 子 Agent 管理(基于 Promise 的并发模型,独立 ReAct 循环,通过 MessageBus 回传结果)、以及 REPL 主循环(互斥锁 + 暂存队列保证 history 一致性)。文章还坦诚讨论了设计中的有意取舍与局限,如零框架依赖、schema 定义方式、子 Agent 无持久记忆、CronService 精度妥协、ExecTool 安全边界等。
💡 主要观点
- Agent 系统核心组件应采用薄抽象和显式控制流,而非多层中间件。 对于 Tool 调用、消息分发、子 Agent 管理,贴近模型 API 的实现方式能获得更好的工程确定性,系统边界更清晰,运行路径更容易追踪,问题更容易定位。
💬 文章金句
- 中间层越薄,调试越容易,对 API 行为的控制越精确。
- 对于 Tool 调用、消息分发、子 Agent 管理这三类 Agent 系统里的核心组件,优先采用薄抽象、显式控制流和贴近模型 API 的实现方式,往往比引入多层中间件更容易获得工程上的确定性。
- 正则黑名单是最低限度的防线,不能替代沙箱隔离。
- 保留首尾而非只取前 N 字符,是因为命令输出的末尾通常包含最有价值的信息(错误信息、统计摘要等)。
- 强制唯一匹配:出现 0 次报错,超过 1 次拒绝写入并要求提供更精确的文本片段。
📊 文章信息
AI 初评:88
来源:大淘宝技术
作者:大淘宝技术
分类:人工智能
语言:中文
阅读时间:21 分钟
字数:5094
标签: Agent 框架, Tool 系统, 消息总线, 子 Agent, Anthropic Claude