By 小墨
2026年5月5日
45
964
第一个 Agent 从 Pi 开始
学习Agent开发,入口往往比模型API更先把人卡住。不少开发者第一天就去研究memory、MCP、skills、multi-agent、Agent OS等概念,这些方向本身没有问题,但落到代码实现时,最先撞上的问题往往非常具体:模型怎么看文件?怎么修改文件?怎么执行命令?执行失败了怎么办?上下文溢出了怎么办?它说做完了,证据在哪里?这些看似简单的基础问题,才是真正考验工程能力的地方。
Harness到底解决了什么问题
建议从Pi项目开始学习。Pi在coding-agent README中将自己定位为「minimal terminal coding harness」——最小化终端编码工具。这个定位非常精准。它没有停留在聊天壳的层面,也没有把几十个概念堆在一起做演示。默认情况下,Pi先给模型一组很小的身体能力:read、write、edit、bash。除此之外,还内置了grep、find、ls这类只读检索工具。再往外,才是session、context files、compaction、skills、extensions、TUI、RPC、SDK等层次。这个顺序把Agent的底层工程暴露得很清楚:能力不会从概念里自动长出来,它靠一层层工程边界托住。
Pi的分层架构设计
凡是让Agent趋近于目标的一切工程化手段,都是harness。用工程语言来说,harness做的事情包括:让模型能观察环境,能采取动作,动作前能被限制,动作后能被记录,失败后能继续修复,最后能拿证据判断任务有没有完成。用户说“帮我修一下这个bug”,模型本身只能生成文本。它不会天然知道项目结构,不会真的打开文件,不会运行测试,也不会记住刚才改了什么。要让它从“建议你怎么修”走到“自己去修”,至少要补齐几件事:读取项目、修改文件、执行命令、把工具结果送回模型、保存行动轨迹、裁剪上下文、拦截风险动作、用真实证据判断完成状态。这些加起来,就是harness。Pi的价值在于:它把最小coding harness拆成了模型、loop、工具、session、上下文和扩展点,没有多余包装,骨架直接暴露出来。
Agent工程不急着把模型包装得更像人。关键在于,把模型的判断放进一套可投影、可授权、可恢复、可观测的系统里。模型越强,这套外部秩序越不能省。
“技术观察”工具不是函数,是合约
先看Pi的分层架构。Pi的monorepo分得很清楚:packages/ai是多provider的LLM API适配层;packages/agent是通用agent runtime,处理tool calling、state、event streaming;packages/coding-agent是终端coding harness,也就是pi本身;packages/tui和packages/web-ui是界面层。这几个包之间的关系大概是:Provider API → agent loop → coding tools → session/context/compaction → terminal UI/RPC/SDK。这个分层比抽象概念更容易落到工程判断上。写Agent最常见的坏习惯,是把模型请求、工具执行、UI输出、文件读写、会话存储全塞进一个函数里。刚开始能跑,后面一加权限、一加压缩、一加恢复,就会变成难以调试的隐式状态机。Pi的边界更清楚:模型适配是一层,agent loop是一层,coding tools是一层,session/context是一层,UI只是外围投影。
Context要按轮装配
Pi默认给模型的工具很朴素:read、write、edit、bash。这四个工具刚好对应coding agent的基本身体能力。工具设计的重点不在数量,而在合约。 以read为例,如果它只是fs.readFile,很快就会出问题:大文件怎么办?图片怎么办?二进制文件怎么办?输出太长怎么办?敏感文件要不要拦?Pi的read tool支持offset/limit,文本输出会按行数和字节数截断,内容被截断时还会提示下一次该从哪个offset继续读。这个细节背后是实战经验:工具结果很容易吃掉上下文窗口,read和bash尤其明显。bash也是同样思路,命令输出通常保留尾部,因为错误大多在最后;输出太大时会截断,并把完整输出写到临时文件;执行过程支持timeout和abort。edit更典型,它要求模型提供精确的oldText/newText replacement,oldText必须唯一不能重叠,执行后返回diff。这个设计比整文件重写稳得多,修改范围收窄了,结果也方便展示和审计。 不少人把context理解成“把资料塞给模型”,做Agent时这个理解会带来问题。一个coding age
如有侵权,请联系删除。
Related Articles
-
Fri Jul 24 2026原生工具调用、多模态Agent与开源模型:Foundation Model 2.0论坛直面Agent时代的模型演进
Foundation Model 2.0论坛聚焦在Agent时代模型的演进,讨论如何通过原生工具调用与多模态融合提升Agent的执行能力与适应性,并探讨端侧小模型的可行路径。
-
Mon Jul 06 2026示例域名与文档用途说明
example.com 是一个专门为文档示例而保留的顶级域名,供教程、示范和测试文档使用,不需要额外许可即可引用。
-
Mon Jul 06 2026未知文章标题
未提供文章内容或可抓取的 URL,因此无法提取实际引言或第一段。此处为占位文本,提示用户补充源内容以生成完整的 Frontmatter。
-
Sun Jul 05 2026未知来源文章
未提供可爬取的文章 URL 或内容,系统无法获取实际正文。此处为占位引言,说明输入数据缺失并提供元数据占位以便后续替换。
-
Sun Jul 05 2026无法生成:缺少文章源数据
未提供可用于爬取的文章 URL 或 JSON 数据,因此无法依据页面内容生成完整的 Frontmatter。请提供包含文章信息的 JSON 数组或一组有效 URL。
-
Sun Jul 05 2026未提供的文章标题
未提供文章内容。请提交文章的 URL 或粘贴全文,以便根据内容生成前言与分段信息。
-
Sat Jul 04 2026未提供文章链接或内容
未提供文章内容或链接,无法提取引言或第一段。请提交包含文章 URL 的 JSON 数组或直接提供文章文本。
-
Sat Jul 04 2026未提供文章信息
未收到文章内容或可爬取的 URL,因此无法生成文章段落。请提交包含文章 URL 的 JSON 数组,格式示例:[ {"url": "https://example.com/article1"}, {"
-
Sat Jul 04 2026未提供文章来源
未收到可用的文章内容或链接,因此无法提取段落。请提交包含多篇文章信息的 JSON 数组或每篇文章的 URL,以便爬取并生成完整的 postDetails 内容。
-
Fri Jul 03 2026示例文章标题(缺少来源)
未收到具体文章 URL 或内容,因此无法从原文中提取引言。此处为占位引言,说明系统需要源页面以抓取实际内容并生成结构化的 Astro Markdown YAML Frontmatter。
-
Thu Jul 02 2026聚焦自进化、Harness等Agent最火的九个方向,年度AI智能体大会7月开幕
中国AI智能体大会(AgenticAICon 2026)将于7月在杭州举办,围绕智能体领域的前沿技术展开,旨在推动研究与产业深度融合,探寻智能体从对话式工具向主动执行系统转型的路线图。
-
Wed Jul 01 2026探索 Astro.js 与 YAML:构建可维护的内容管理工作流
在现代静态站点与内容驱动的项目中,统一且可验证的元数据格式对内容维护和自动化发布至关重要。Astro.js 提供了灵活的内容渲染能力,而采用严格的 YAML Frontmatter 模板,可以让团队共
-
Tue Jun 30 2026首届光谷智能体经济大会举行 光谷从“AI试验场”迈向“AI价值场”
2026年6月29日,武汉东湖新技术开发区举办首届光谷智能体经济大会,正式发布“光谷智能体引力计划”。大会提出未来三年将在政策、算力、基金等方面投入超10亿元,旨在打造以智能体为核心的创新生态,培养智
-
Tue Jun 30 2026中国广电联合会《全国交通传媒行业AI应用调研报告》正式发布
中国广电联合会交通宣传委员会在内蒙古发布了《2026全国交通传媒行业AI应用调研报告》,基于对145家交通传媒机构的调查,总结了行业在AI应用上的现状与发展路径。
-
Tue Jun 30 2026韩国万亿'芯'基建拆解:存储行业能否建成AI时代'油田'
韩国近期公布了总投资逾1800万亿韩元的三大超级AI基建项目,涵盖半导体制造、先进封装与AI数据中心,目标是借助国家级投入与龙头企业布局,打造面向AI时代的关键产业能力。
-
Mon Jun 29 2026能量岛企业家俱乐部6.28 芯谷 AI 沙龙圆满落幕
6月28日,能量岛企业家俱乐部在苏州芯谷产业园举办AI智能体应用沙龙,活动以实战分享和产业交流为核心,吸引了本地创业者、企业高管与科研人员参与。
-
Mon Jun 29 20262026.06.20:AI 泡沫退潮,Agent 与数据架构重构产业底层
InfoQ 的周度深度分析指出,生成式 AI 已走完狂热期,行业正进入理性调整阶段,专家纷纷回归技术和落地路径的讨论。
-
Mon Jun 29 2026OKF——要做AI时代的'知识图谱通用语'—继MCP之后,Google又扔出一张Agent王牌
2026年6月,谷歌云发布了Open Knowledge Format(OKF)v0.1,这是一套以带YAML前置元数据的Markdown文件夹为单位来表示知识的开放规范,旨在解决企业知识分散的问题。
