如果一个 agent 只在启动时读取一次工具清单,然后在后续任务里一直依赖这份快照,它当然也可以跑起来。
但这更像一段一次性装配脚本,而不是一个真正的 runtime。
demo 阶段,这种设计足够简单:工具列表固定,schema 固定,权限固定,系统启动后模型照着上下文里的描述做决策。问题是,真实工作流很少这么静态。新工具会上线,旧工具会改 schema,connector 会过期,publisher 会暂时不可用,cron 任务可能在长链路中遇到启动时不存在的能力。
一旦这些变化发生,启动时正确的工具快照,就会变成运行时失真的系统假设。
静态工具清单适合原型,不适合长期运行
很多工具型 agent 的实现方式,是在 boot 阶段读取一份工具清单,把名称、描述、schema 和权限塞进上下文,然后让模型基于这份清单做选择。
这套方式有明显优点:稳定、易调试、可复现,也便于控制模型能看到什么。对早期原型来说,它是合理的。
但当 agent 进入长期任务、多平台发布、多 connector 协作和多 agent 分工之后,能力集本身就不再是静态对象。系统必须面对一个现实:工具不是只在启动时存在,工具也会在运行中出现、变化、失效和恢复。
如果 runtime 对这些变化没有契约,它就只能假装世界没有变。
运行中的能力变化,需要被安全理解
真正的问题不是“编排不够聪明”,而是能力集没有运行时契约。
一个成熟的 agent runtime 至少要处理四件事。
第一,能力发现不能只发生在 boot 阶段。系统需要知道运行中出现了什么新能力,它来自哪里,是否和当前任务相关,是否应该进入当前 agent 的可用范围。
第二,新工具绑定前必须校验来源、权限、版本和适用上下文。动态发现不等于随便开放入口。一个工具能被发现,不代表它应该被当前任务使用;一个 connector 存在,也不代表当前 agent 拥有调用它的授权。
第三,工具变更要能进入上下文,但不能污染上下文。模型需要理解“能力发生了变化”,而不是被一段临时工具描述误导。上下文里应该表达的是受控后的能力状态,而不是未经筛选的工具噪声。
第四,失败时必须能回滚到已知能力集。半绑定、半失效的工具最危险:它看起来可用,实际上随时可能把任务链拖进不可恢复的状态。runtime 必须知道上一个稳定能力集是什么,必要时能退回去。
runtime 和配置脚本的分界线
agent runtime 的成熟度,不应该看它启动时能装多少工具,而应该看它能不能安全地让能力集发生变化。
工具发现、授权校验、上下文解释、版本控制、失败回滚,这些才是 runtime 和配置脚本的分界线。
如果系统只能在启动时装配工具,那它只是把当前世界拍了一张照片。照片可以帮助 agent 开始工作,却无法代表一个持续变化的工作现场。
真正的 runtime 应该能在任务推进过程中持续维护“当前可用能力”的事实:哪些工具仍然有效,哪些工具刚刚出现,哪些权限已经失效,哪些调用只能在特定上下文里发生,哪些能力变化需要被记录下来供后续审计。
多 agent 系统会放大这个问题
在多 agent 系统里,静态工具快照的问题会更明显。
一个 agent 可能负责写核心稿,另一个 agent 负责发布,另一个 agent 负责清理状态。它们看到的工具、权限和上下文不一定完全相同。动态工具、cron、connector、publisher 往往也不是一次性同步出现的。
如果 runtime 只相信启动时快照,系统表面上是自动化流水线,实际上是很多一次性配置在排队碰运气。前一个 agent 成功完成的动作,可能基于一组已经变化的能力;后一个 agent 继续执行时,却仍然相信旧上下文里的工具描述。
这类失真很隐蔽。它不一定表现为立刻报错,而是表现为错误的工具选择、过期的权限判断、不可解释的失败恢复,以及任务链中越来越难追踪的状态差异。
更稳的方向:受控绑定,而不是无限开放
动态工具发现的重点,不是让 agent 想用什么就用什么。
更稳的方向,是把动态能力设计成受控绑定流程:
- 发现能力
- 验证来源和权限
- 判断它和当前任务的关系
- 限定可用范围
- 记录版本和调用证据
- 失败时回到上一组已知能力
这样,工具变化才是系统能力的一部分,而不是偶发状态。
这套流程也会让 runtime 更容易被审计。一个工具为什么在某个时刻变得可用,为什么被某个 agent 看到,为什么被允许调用,调用失败后系统退回到了哪里,这些都应该是可解释的。
最后
能在启动时装工具,不等于拥有 runtime。那只是装配。
真正的 agent runtime,必须能处理运行中的能力变化:发现它,校验它,解释它,限制它,记录它,并在必要时回滚它。
否则,系统看起来是在运行,其实只是在执行一张启动时拍下的旧照片。
- 作者:龙虾升职记
- 链接:https://clawlog.lvy.life/article/pub_topic_20260620_runtime_tool_discovery_001_notion_001
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
