AI Agent 工具系统设计:从钩子、MCP 到系统调用门的完整架构解析
之前的文章,我聊了很多“大脑”(LLM)和“记忆系统”(L0-L3),但有一个问题始终没正面回答:
脑子再好使,记性再牛逼,手跟脚不听使唤,有什么用?
没错,今天的主角就是AI Agent 工具系统——Agent 用来干活的那双手。在流马(Gliding Horse)里,这双手不光要巧,还得懂规矩、会省钱、能被审计。更重要的是,它和记忆系统深度绑定,让每一个操作都有迹可循,每一次失误都能被追责。
这绝不是简单的“调用个API”,而是一套内建了安全、效率、进化能力的“外骨骼”。本文将从工具执行器、钩子系统、MCP 协议、系统调用门、结果路由器五个维度,完整拆解一个企业级 AI Agent 工具系统的架构设计。
一、AI Agent 工具系统到底在管什么?
简单说,流马的 AI Agent 工具系统就是 Agent 与外部世界交互的“口岸”。你让它读文件、搜代码、调 MCP 服务、查知识图谱,甚至执行一个 Shell 命令,都得经过这个口岸。
但这套系统的野心远不止“执行”。它自己带了四个关键角色:
- 工具执行器:统一调度所有工具,按 Agent 的角色(PA/DA/CA/AA)发“驾照”,不该碰的绝对不让你碰。
- Skill 注册中心:把那些 Markdown 技能自动转成 JSON-LD 节点,存进知识图谱,实现“渐进式披露”——先看目录,再看摘要,最后再看完整操作手册。
- MCP 协议客户端:打通外部生态,把市面上的 MCP 工具直接“翻译”成流马自己的技能节点。
- 钩子系统:在 Agent 的20个关键生命周期点埋下“监控探头”,记录、校验、拦截,甚至触发自动补偿。
这四个角色扭在一起,再配上系统调用门和结果路由器,就构成了一个“可靠的手足”。
二、Agent 钩子系统:藏在流程里的20个“监控探头”
丰田工厂里有安灯绳,拉一下就能停线。流马里的“安灯绳”不止一根,而是20根,分别埋在了 Agent 的整个生命周期里:
- 开工前:
AgentBeforeStart钩子可以检查 Agent 的权限、上下文是否完整,甚至强制它先读一段“安全须知”。 - 干活中:
SkillBefore和SkillAfter会在工具调用前后自动触发。比如,一个 Agent 试图删文件,SkillBefore可以立刻比对白名单,发现越权直接喊停。 - 出错时:
AgentOnError钩子能自动抓取错误现场,连同当时L1的上下文摘要一起打包存进知识图谱,供后续复盘。 - 记忆写入前:
L0BeforeStore会在数据存进长期记忆之前做最后一道校验,防止被污染的幻觉信息永久驻留。
最妙的是,钩子可以直接与记忆系统联动。比如L2BeforeWrite钩子会在向黑板写入数据前,先查一下同名 IRI 的历史版本和冲突记录,防止多个 Agent 互相覆盖。一旦发现冲突,立刻暂停写入,通知SA调停。
这20个钩子让流马从一个“被动执行指令”的平台,变成了一个能主动监控、主动防御、主动纠偏的智能工场。
三、MCP 协议集成:连上全世界的工具,却只听流马的规矩
MCP(模型上下文协议)是现在 AI 工具生态的“普通话”。流马内置了 MCP 客户端,可以接入任何符合 MCP 规范的服务——GitHub、数据库、浏览器、甚至公司内部的 API。
但流马没有直接把这些工具丢给 Agent。它做了一个很关键的动作:自动转换。每一个接进来的 MCP 工具,都会被MCPIntegration模块自动包装成一个 JSON-LD 格式的 Skill 节点,并打上数字签名和信任等级。
这意味着,不管外部工具多粗暴,进到流马系统后,它们都得遵守同一套家规:
- 必须通过 JSON Schema 参数校验
- 必须有 Ed25519 签名防篡改
- 必须遵守 Agent 的角色白名单(PA 只能读,不能写)
- 调用记录全部写入 L0 知识图谱,可追溯
这相当于把混乱的“自由市场”变成了“监管下的保税区”——开放,但安全。
四、系统调用门设计:AI 世界的“海关”
假如钩子是监控探头,那系统调用门就是海关安检。任何工具调用请求,都必须经过三道关卡:
- 第一关:参数合不合法?用 JSON Schema 硬校验。AI 瞎编的参数?直接驳回。
- 第二关:签名是不是真的?校验 Ed25519 数字签名。被篡改过的 Skill?直接拒绝,并写入安全日志。
- 第三关:你有权限吗?检查 Agent 的工具白名单。PA 想写文件?没门。
三道关卡全通过,才放行。每道关卡的通过/拒绝,都会作为一个QualityEvent节点挂到当前任务 IRI 上,让每一次“安检”都留下底单。
这对企业级应用意味着:你可以精确追溯到“哪个 Agent,在什么时间,因为什么原因,被拒绝执行了什么操作”。合规审计不再是一笔糊涂账。
五、结果路由器:帮 LLM 精打细算的“智能管家”
Agent 调用工具后,返回的结果往往巨大——一个爬虫抓下来的网页可能几百KB,一个数据库查询可能返回几万行。
流马内置了一个ResultRouter(结果路由器),它会根据结果的大小和类型,自动决定怎么处理:
- 小而精的结果:原样返回给 LLM。
- 大文本/结构化数据:先丢进知识图谱,生成一个 IRI 摘要,只把摘要和 IRI 注入 LLM 上下文。LLM 需要细节时,再通过图查询工具按 IRI 精准调取。
- 代码/报告:智能截断,保留核心片段,其余部分存入 L2 黑板,交给后续的 CA Agent 审查。
这背后的设计哲学正是 JSON-LD 的统一地址总线:数据都在图里,IRI 就是指针。LLM 拿着 IRI,可以随时解引用查看完整结果,而不必让所有内容挤爆珍贵的上下文窗口。
配合Token 优化器,流马会根据 Agent 角色分组工具,按需加载,不把一百多个工具全塞进 Prompt。经过实测,这套组合拳能让长流程任务的 Token 消耗暴降 70% 以上。
六、AI Agent 架构收益总结
| 维度 | 传统工具调用 | 流马工具系统 |
|---|---|---|
| 安全控制 | 全靠 Prompt 约束 | 三层硬校验 + 白名单 + 签名 |
| 生态兼容 | 自己造轮子 | MCP 桥接,自动转 JSON-LD Skill |
| 执行审计 | 无记录或简单日志 | 全生命周期钩子 + 知识图谱事件记录 |
| 上下文效率 | 结果全量注入 | 智能路由,按需加载,IRI 索引 |
| 多 Agent 协作 | 无保护 | L2 黑板钩子防冲突,MESI 一致性 |
| 自进化 | 无 | 钩子捕获错误经验,回写知识图谱,优化后续行为 |
七、总结:AI Agent 工具系统设计的关键启示
AI Agent 的工具系统,不应该只是一个“调用函数的壳”。它应该是 Agent 的外骨骼:赋予它行动力,同时用安全、效率、可审计的框架约束它。
流马把这套外骨骼造出来了。它不仅能干活,还能干得规矩、干得省钱、干得让人放心。这套AI Agent 工具系统架构的核心设计思路——钩子监控、MCP 集成、系统调用门、结果路由——对于任何构建企业级 Agent 平台的团队都有参考价值。
我这套系统叫Gliding Horse(流马),所有代码都在 GitHub 上:https://github.com/doiito/gliding_horse
之前的文章聊了 JSON-LD、CPU 缓存记忆、Oxigraph、丰田安灯绳…… 如果你对“如何让 AI 靠谱地干活”感兴趣,这个系列应该能给你不少启发。
💡 觉得有收获?欢迎点赞、收藏、关注,后续还会继续拆解流马架构中的记忆系统、多 Agent 协作等核心设计。