AI News HubLIVE
站内改写2 分钟阅读

使用Pi编程代理

本文介绍了Pi,一款极简的AI编程代理,专注于核心功能并通过扩展点增强。文章讨论了其设计理念、安装过程、以及如何构建自定义扩展,并评估了其在实际使用中的优势。

来源KDnuggets作者: Shittu Olumide

Pi是一款由Mario Zechner开发的AI编程代理,其核心理念与大多数竞品截然相反:不是尽可能多地内置功能,而是从最小可行核心开始,让用户通过扩展按需添加能力。Zechner在2025年11月发表的文章中解释了他构建Pi的原因,他认为主流编程助手会注入用户不可见的上下文,在不同版本间改变行为,且对模型实际接收到的内容缺乏透明度。因此,他构建了Pi——一个小型核心循环,周围是扩展点,而不是功能完备且工作方式固定的产品。该项目迅速获得关注,Flask和Jinja2的创建者Armin Ronacher在2026年1月公开支持Pi,随后其公司Earendil Inc.收购了该项目,并推出了配套云平台Lefos。收购伴随了治理文档RFC 0015,承诺Pi核心保持MIT许可,同时保留付费层和托管服务的空间。截至本文写作时,Pi的GitHub仓库已超过70,000星。

Pi的整个内置工具集只有四个:read、write、edit和bash。运行pi --help即可确认。其他代理原生提供的功能,Pi都留给用户添加:没有MCP支持、没有子代理编排、没有计划模式、没有权限确认弹窗、没有内置待办跟踪、也没有后台bash执行。理由是令牌成本:其他代理的默认系统提示往往在7,000到10,000令牌,而Pi的系统提示设计在1,000令牌以下,仅注入用户自己的AGENTS.md文件。其假设是前沿模型已经通过强化学习在代理任务上训练过,更小的提示让模型有更多上下文预算用于实际工作。

安装Pi只需一条命令。它作为npm包发布在Earendil的作用域下。推荐使用npm install -g --ignore-scripts @earendil-works/pi-coding-agent,或者使用独立安装脚本。我在干净环境中运行npm命令,约11秒完成,安装了131个包,pi --version返回0.80.3,确认安装成功。认证有两种方式:如果提供商支持,在Pi会话中运行/login可以启动OAuth流程;否则,在启动前设置环境变量,如export ANTHROPIC_API_KEY=sk-ant-your-key-here。开始会话只需cd your-project-directory后输入pi。会话中,/model可以切换提供商,Ctrl+P可循环收藏的模型。Pi支持15个以上提供商,包括Anthropic、OpenAI、Google、Ollama等。

由于Pi没有内置权限确认,用户可以自己构建一个TypeScript扩展。文章展示了一个实际扩展:它使用pi.on("tool_call")钩子拦截bash命令,检查是否包含高风险操作(如rm -rfsudogit push --force),并通过ctx.ui.confirm请求确认,返回{ block: true, reason: ... }阻止执行。扩展还可以通过pi.registerTool添加自定义工具,如count_words,使用TypeBox schema进行输入验证。pi.registerCommand则添加斜杠命令。测试时,使用pi -e ./permission-gate.ts --list-models anthropic加载扩展,该命令在安装的Pi二进制上成功运行。

在实际使用中,Pi的极简主义在三个方面表现突出:首先是会话树,通过/tree可以在任意点分支,尝试不同方法而不会丢失原始线程;其次是多提供商切换,支持主流API和本地模型;第三是扩展的可控性,用户可以根据自己的威胁模型构建权限处理。Pi的文档详细描述了扩展API,足以构建几乎任何内置功能未包含的内容。