By 小墨
2026年4月24日
75
525
800行代码实现OpenClaw的Tool、消息总线、子Agent管理架构
在Agent系统开发中,如何平衡抽象层次与工程确定性是一个核心命题。当业界普遍依赖LangChain等框架时,一个有趣的设计思路是采用薄抽象、显式控制流的方式,直接面向API构建系统。本文将详细介绍一个基于Anthropic Claude API的轻量级Agent框架实现,展示如何在800行代码内构建Tool系统、消息总线和子Agent管理三大核心模块。
概述
MessageBus处理入站方向的消息流,实现从子系统或外部到主Agent的消息传递。其核心是订阅-发布模式,InboundMessage包含channel(消息通道)、senderId(发送者标识)、chatId(关联会话)和content(消息内容)四个字段。 MessageBus提供了两种消费模式:subscribe注册实时回调,适合常驻服务场景;drain从队列中取出并清空消息,适合轮询式的同步消费场景。路由规则清晰:有订阅者走回调,无订阅者入队列。消息只走一条路径,不会同时触发回调和入队。这种设计避免了消息处理的歧义性。 需要明确的是,MessageTool负责出站(Agent→外部),MessageBus负责入站(外部→Agent),两者方向相反,没有直接的代码耦合。这种解耦设计使得消息流清晰可追踪。
消息总线:入站消息的统一枢纽
整个系统存在两条数据流主线: 同步路径:用户输入→REPL→agent.run()→工具调用→结果回传模型→最终回复→stdout。这是标准的ReAct循环。 异步路径:SpawnTool/CronService→bus.publish(system)→handler入队→tryDrainPending()→agent.run()处理系统通知→stdout。异步结果通过MessageBus汇入主循环,由互斥锁保证不与同步路径冲突。 这种设计使得同步和异步操作能够有序共存,不会产生状态混乱。切换接入层(从REPL到Bot)时,只需替换sendCallback和输入源,工具系统和Agent逻辑无需任何改动。
中间层越薄,调试越容易,对API行为的控制越精确。
“设计原则”模块协作与数据流
REPL(Read-Eval-Print Loop)是整个Agent的终端交互入口。核心挑战在于:用户输入和子Agent回传结果都可能触发agent.run(),但history数组是共享的,不能并发修改。 解决方案是布尔互斥锁配合暂存队列。processing标志充当互斥锁,确保同一时刻只有一个agent.run()执行。子Agent结果到达时先push到pendingSubagentResults数组,tryDrainPending只在非processing状态下进入,避免并发写入history。用户交互完成后,在释放锁之前调用drainPendingResults处理积攒的子Agent结果,保证结果不会无限滞后。 启动流程按以下顺序初始化:创建Anthropic客户端和MessageBus实例→注册工具到ToolRegistry(区分主Agent和子Agent工具集)→初始化CronService→创建SubagentManager→构建ContextBuilder→创建AgentLoop并启动交互循环。
设计哲学与局限
这个框架的核心设计哲学可以概括为四个要点:薄抽象层带来的调试优势、显式控制流带来的可追踪性、零框架依赖带来的完全控制力、以及贴近SDK设计带来的类型安全。 当然,设计也存在局限:子Agent无持久记忆,不适合需要跨任务积累上下文的场景;CronService的cron表达式是近似实现,不支持精确时间点语义;MessageBus无持久化,进程重启后消息丢失;ExecTool的正则黑名单只是最低防线,生产环境应该使用容器沙箱;REPL的布尔锁在多用户场景下需要更完整的队列机制。 这些取舍反映了「先跑起来,再逐步完善」的工程思路。框架的可扩展性已经预留好了空间:扩展新工具只需继承Tool并注册,切换接入层只需替换回调,输入源的变化不会影响核心逻辑。
如有侵权,请联系删除。
Related Articles
-
Tue May 12 2026突发!陈天桥旗下 MiroMind AI 暂停中国服务
5 月 12 日,陈天桥旗下的 AI 研究公司宣布暂停其智能体服务 MiroThinker 在中国大陆、香港和澳门的运营。该服务以任务自主执行、复杂任务拆解与长链推理为核心卖点,区别于常见对话型机器人
-
Tue May 12 2026国家队出手!AI智能体要发「身份证」,首个互联国标将落地
2026年5月8日,国家网信办、国家发展改革委与工信部联合发布实施意见,提出推广智能体互联协议(AIP)等关键国家标准,推动智能体在多中心化环境中的可信互联与协作应用。
-
Mon May 11 2026从放射学到药物研发,调研显示 AI 正在为医疗行业带来明确的投资回报
NVIDIA 发布的 2026 年医疗健康与生命科学行业 AI 调研报告指出,医疗行业正从试验向实际应用转变,尤其在医学影像与药物研发领域出现明确的投资回报。
-
Mon May 11 2026【融资动态】AI眼镜再获投资:艾为电子战略投资Rokid
上海艾为电子与 AR/AI 眼镜服务商 Rokid 达成战略合作,艾为成为 Rokid 的战略投资股东,双方将围绕空间计算设备进行深度协同。
-
Mon May 11 2026刚刚,重磅发布!AI,大利好!
广州市人工智能产业发展办公室发布《广州市人工智能产业2026年工作要点》,提出 32 条具体举措,旨在加速将广州打造为垂类模型之都与人工智能应用示范高地。
-
Mon May 11 2026养马首超养虾!Hermes Agent超越OpenClaw,全球Token消耗第一
Hermes Agent(爱马仕智能体)在最近的 OpenRouter 全球 Token 消耗排行榜上首次超越 OpenClaw,跃居榜首,成为本期全球使用量最高的开源自主智能体框架之一。
-
Mon May 11 2026华为亮相GOSIM Paris 2026,以开源协同共建智能体AI新生态
在巴黎举办的 GOSIM Paris 2026 开源 AI 技术大会上,华为展示了其推动智能体 AI 时代的开源协同实践,强调技术开放与产业生态的协同建设。
-
Mon May 11 202680%的钱流向AI,但谁来买单?
2026 年第一季度,全球风险投资出现高度聚焦,约 80% 的资金流向 AI 公司,头部大厂与独角兽吸纳了绝大部分资本,带来行业结构性变化。
-
Mon May 11 2026《智能体规范应用与创新发展实施意见》解读:AI治理新里程碑——智能体迎来顶层规范
国家网信办等部门联合发布的《智能体规范应用与创新发展实施意见》成为国内首个系统性覆盖智能体领域的政策文件,明确了智能体发展的基本原则与政策方向。
-
Mon May 11 2026英伟达今年AI领域投资已超过400亿美元!
2026 年,英伟达在 AI 领域的战略性投入已突破 400 亿美元,涵盖对初创公司的多轮融资、基础设施建设与生态伙伴合作,这些投入旨在巩固其在算力与硬件层的领导地位。
-
Mon May 11 2026当AI开始泡在数学项目里:DeepMind的48%突破意味着什么?
DeepMind 推出的 co-mathematician 工作台在 FrontierMath Tier 4 基准测试中取得 48% 的正确率,远超基座模型独立表现,显示通过系统化的多智能体分工能显著
-
Mon May 11 2026AI 领域动态日报(2026年5月11日)
2026年5月11日AI领域发生多项重要事件,包括xAI进军编程工具、蚂蚁百灵发布大模型以及具身智能与产业集群的最新动态,显示技术与产业并行推进。
-
Sun May 10 20265.10上海徐汇钟书阁 5位作者·5本书:AI Agent主题分享会
OpenCSG联合徐汇团区委与记忆张量在钟书阁举办的分享会,邀请五位作者围绕各自新作讨论AI Agent的理论与实践,吸引了众多开发者与读者参与。
-
Sun May 10 2026AI Agent领衔:2026关键行业数字化转型的破局与落地
文章深入分析 2026 年 AI 技术从生成走向执行的关键转折,强调 AI Agent 在行业数字化转型中的核心作用,并通过案例展示其实际价值。
-
Sun May 10 2026四部委发文:AI加速落地,储能、油气、煤炭都有“硬任务”
国家发改委、国家能源局、工信部与国家数据局联合印发《关于促进人工智能与能源双向赋能的行动方案》,标志着我国在 AI 与能源融合领域进入系统化推进的新阶段。
-
Sun May 10 2026AI智能体与未来继续教育智慧化发展变局
国家多部门发布的智能体实施意见将教育列为重要应用场景,继续教育因其用户基础广泛与场景碎片化成为智能体落地的优先领域之一。
-
Sun May 10 2026字节 2026 年资本开支或冲 300 亿美元,AI 算力军备赛再加码/百度发布文心 5.1,主打「多维弹性预训练」面向开发者开放
近日行业报道显示,字节跳动计划在2026年显著提升资本开支以支撑AI业务扩张,与此同时百度推出文心5.1,强调多维弹性预训练并向开发者开放。此轮动作被视为国内在算力和大模型层面的一次重要加速。
-
Sun May 10 2026四部委发文:AI加速落地,储能、油气、煤炭都有"硬任务"
国家发改委等四部门发布的行动方案明确提出要推动人工智能与能源领域的双向赋能,标志着能源行业智能化与绿色转型进入系统化推进阶段。
