Armin Ronacher 详解 Codemode:Pi 1.0 为何用代码而非 MCP 工具
mitsuhiko · x · 2026-10-06
Armin Ronacher(mitsuhiko)撰文解释其 Pi 1.0 中新增的 MCP 支持为何采用 Codemode 方式实现,延续他一年多前「不要把自定义工具/MCP 服务器塞进上下文,多用脚本」的主张。
要点:
- 工具的本质:harness 提供的工具定义会在服务端转成 token 结构,模型是否倾向调用工具是 RL 训练的结果。
- 为什么偏爱 CLI/bash:调用可自由组合,且模型训练时学会了文件系统的工作方式——执行 echo foo > /tmp/test.txt 后它「知道」文件已经存在。
- bash 的根本局限:bash 只能组合「可运行的程序」,但有些能力必须是 LLM 原生工具。例如 viewimage:多模态模型读图需要 harness 把图像 payload 直接注入协议,cat 做不到。
- 子 agent 编排:生成与协调子 agent 也绕不开 harness 提供的工具,理论上 agent 可提供 CLI 与外层通信,但并不现实。
Codemode 的思路是让模型写代码来调用这些原生工具,兼顾脚本组合能力与必须由 harness 注入的原生能力。文章是他对「代码即一切」路线在 MCP 支持落地后的更新思考。
「编程与Agent」频道最新
- 开发者让 Claude 截了 9 万张自截图,两天迭代出一款游戏 — prasenx · 2026-10-06
- 600K 神经元的跳蛛启示录:专用小 Agent 协作胜过通用大模型 — uxmag · 2026-10-06
- AI 估算需 5-8 周的工程量,开发者带子 Agent 两天干完 — Dan_Jeffries1 · 2026-10-06
- AI 形式化验证的残酷现实:停机问题挡住了「现有代码库」 — danbri · 2026-10-06
- 开发者用 Grok Bot + Claude Code 跑通 SEO/AEO 增长闭环 — doooyle · 2026-10-06
- Grok Bot 实验预告:下周全靠语音 Agent 处理日常待办 — FinanceYF5 · 2026-10-06