代码的问题
如今几乎所有 AI agent framework 都要求你写 code。Python、TypeScript 或其他语言,本质上都是用命令式方式定义 behavior。这意味着:
- 难以 review。 你无法扫一眼 200 行 Python script 就知道 agent 会做什么。
- 难以共享。 共享 agent 往往意味着共享 dependency tree、virtualenv,以及一点运气。
- 不够 portable。 code 绑定 runtime。LangChain agent 不能同样运行在 browser 或 phone 上。
- 难以 audit。 比较两个 version 的 diff 时,很难看清 agent behavior 到底变了什么。
为什么是 TOML
TOML file 是意图声明。它说明 agent 应该做什么,而不是该如何执行。framework 负责 how。
# 这是一个完整的 agent [agent] provider = "anthropic" model = "claude-sonnet-4-5-20250929" tools = ["shell", "knowledge_ingest", "knowledge_query"] [agent.execution] max_steps = 30 [[middleware]] type = "limits" max_turns = 15
你会得到什么
- 易于审阅: 打开文件,读一遍。你就能准确知道 agent 会做什么。
- 易于共享: 把 TOML 附到 Slack message 上,仅此而已。
- 可移植: 同一个 config 可运行在 CLI、dashboard、VS Code、iOS、Android。
- 易于审计:
git diff会准确显示 agent behavior 的变化。 - 可版本化: Configs 可以和 code 一起放在 git 中。rollback 很简单。
取舍
Config-driven 意味着你不能表达任意 logic。如果需要 custom routing algorithm 或 bespoke tool,就需要写 Rust code 并编译进 framework。config system 覆盖 90% 的 use cases,其余由 Rust API 处理。
这是有意为之。config 是 product,code 是 platform。