Pi Agent Core 实战(10/10):循环上线之后
极简框架把复杂度从框架搬到了你身上。循环本身只有 1445 行,它不替你做日志、不替你做预算、不替你做回滚、不替你做评测。它只保证一件事:模型做了什么、失败了什么,都变成事件发出来。剩下的账,得自己付。
知识资料库
从 LangGraph 迁移到极简 Agent 循环的十篇施工记录:事件流、工具设计、上下文压缩、权限钩子、中断排队、迁移改造与生产化。
精选内容
极简框架把复杂度从框架搬到了你身上。循环本身只有 1445 行,它不替你做日志、不替你做预算、不替你做回滚、不替你做评测。它只保证一件事:模型做了什么、失败了什么,都变成事件发出来。剩下的账,得自己付。
前八篇讲的是循环怎么用,这一篇讲怎么把一个已经在跑的系统换过去。改造不需要推倒重来——把「固定调用」换成「给工具加判断」,把「退出码」换成「结构化结果」,把「暗依赖」换成「显式参数」,三步就能让同一批任务从 20% 通过率走到 100% 有...
长任务做到一半,用户发现方向错了。上一代系统的处理方式是等它跑完,或者直接杀进程——前者浪费时间和 token,后者丢掉全部中间结果。循环给了第三种可能:把话插进去,让它下一轮就改。
给 Agent 一个 bash,你就把整台机器交出去了。常见的应对是往提示词里写「只执行只读命令」——这不是约束,是请求。实测里,写了这句话的系统,5 条危险命令一条不落地全执行了。
上下文超长时,绝大多数项目的处理方式是往提示词里加一句「请忽略无关内容」。这既不省 token 也不可控。真正的压缩发生在消息模型上,不是措辞上——pi-agent-core 把它拆成两个明确的函数,一个负责过滤,一个负责裁剪。
用户判断一个 Agent 靠不靠谱,用的不是准确率,是它有没有在动。同一个工具跑 600 毫秒,你可以让用户盯着空白等 600 毫秒,也可以在第 100 毫秒就告诉他扫到第几片了。后者不会让任务更快,但会让它看起来更可信。
把工具当成“注册一个函数”是新手最贵的误解。模型看不到你的函数体,它只能看到名字、描述和参数 schema——这三样东西合起来就是一份给模型看的接口文档。写成什么样,直接决定模型能不能一次用对。
上一代框架最容易劝退人的地方是脚手架:配置文件、目录约定、中间件注册,跑通一个 hello world 要读半小时文档。pi-agent-core 反过来——核心就是 new Agent() 加一个 streamFn,剩下都是你自己决定。这...
很多人第一次看 pi 的仓库会困惑:为什么一个 Agent 框架要拆成三个包?装一个不行吗?答案藏在一个数字里——真正的循环层只占整个体系代码量的 1.7%。拆开不是因为讲究,是因为不拆就没法只替换其中一层。
用 LangGraph 和 LangChain 搭 Agent,最容易失控的地方不是图写得多复杂,而是每一步该做什么,被编排代码提前决定了。模型拿到的是一个已经切好的流程,它只能在节点内部说话,不能决定下一个节点是谁。我把同一批 30 个故...