开发与工程 coding-agenttypescriptagent-looptool-callingtutorialpinano-pi

PI from Scratch

600 行 TypeScript 打造超级迷你版 pi,带你从 0 手写一个能读文件、改代码、执行命令的 coding agent。

FollowAgents 评估 · FARS-2.1
不推荐
56/ 100 五分制 2.8 / 5
1 2 3 4 5 6
1信任安全12 / 29 · 2.1/5

证据显示这是一个教学用 coding agent,内置工具可读写文件、执行命令(e2e 测试直接演示写文件)。运行时依赖为零,dependency_security 可给满分;数据流因文章+Trace 断点设计而相对透明。扣分点:未见任何用户确认机制(命令执行、文件写入无审批),无回滚/撤销设计,外部副作用(shell、文件系统)无防护或边界声明,API 密钥仅靠环境变量、无泄露防护说明,最小权限原则未体现(工具直接获得任意命令执行能力)。

2可靠稳定9 / 14 · 3.2/5

测试覆盖了 agent loop 核心路径(纯文本、tool_call 执行回填、未知工具报错回填)及 session 持久化 round-trip,与 README 描述的架构自洽;e2e 脚本对缺失 API key 有明确中文报错并退出。扣分点:未知工具的错误是回填进 Context 的字符串而非面向用户的清晰失败报告,e2e 中引用的 'GLM-5.2' 模型名真实性存疑,无重试/限流处理证据。

3适用触发12 / 18 · 3.3/5

受众和场景非常明确:想从零理解 pi 数据流的开发者,README 语气和结构都服务这一目标,可给满分。模型名与 Base URL 可配置(OpenAI 兼容接口),环境适配尚可。扣分点:触发精度不适用/未见证据;能力边界仅靠'教学项目'定位隐含表达,未明确说明生产使用限制;Node 22+ 要求有说明但无降级方案。

4规范维护11 / 18 · 3.1/5

安装说明完整(Node 22+、npm install、环境变量、本地网站运行、e2e 用法),LICENSE 文件与 package. 元数据一致的 MIT 可给满分。信息架构(文章+逐步补全的编辑器+Trace)有特色。扣分点:无 CHANGELOG、无已知限制章节、无贡献/维护指引,发布者身份未验证且无维护承诺证据,示例只有 e2e 一个、无 FAQ,版本停留在 0.1.0。

5有效结果9 / 13 · 3.5/5

输出采用结构化事件流(assistant_text/tool_call/tool_result/turn_end)并支持 session 持久化,可用性尚可;600 行实现 agent loop 的边际价值在于教学而非生产替代,README 也如实定位。扣分点:作为实际 Agent 产品输出可用性一般(无确认、无审计、无中断恢复),成本收益取决于学习目的,通用任务价值有限,且 '600 行' 等宣传数字无法从给定文件核实。

6证据核验3 / 8 · 1.9/5

测试文件与声称的核心路径可对应,README 提供了上游 pi 仓库和 pi-book 链接便于溯源。扣分点:'600 行'、'所有组件符合直觉' 等宣称无行内证据支撑;赞助商推荐语(OpenModel、Cubence)带有推广性质,事实陈述与营销混合未分离;除上游链接外缺少独立佐证,且本次为静态审查无法执行验证。

证据充分度: 评估于 2026年9月10日 审查版本 599d0ba646c5
源码中未见的安全控制:执行前用户确认、回滚或恢复路径
使用前请注意
  • 该项目的工具可直接执行任意 shell 命令并读写文件,且未见确认或沙箱机制;请在隔离环境中运行,切勿用于处理不受信任的任务。
  • 这是一个教学项目而非生产级 Agent:无回滚、无审计、无已知限制说明,不要将其用于真实代码库的自动化修改。
  • README 中的赞助商推荐(OpenModel、Cubence)带有推广链接和推荐码,属营销内容,请独立评估。
  • API 密钥通过环境变量传入,请避免在 shell 历史或日志中泄露;e2e 测试会写入并删除 /tmp 下文件。
  • e2e 中引用的 'GLM-5.2' 模型名未经核实,使用前请确认你实际可用的模型。
  • '600 行' 等数字为作者宣称,本次静态审查无法核实。
评估证据 [1][2][3][4][5][6]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

PI from Scratch 是一个教学型项目(仓库 SaladDay/pi-from-scratch),通过约 600 行 TypeScript 从零实现一个名为 nano-pi 的迷你 coding agent。项目沿用了开源项目 pi 的数据流拆解方式,删除工程细节、保留核心思想,说明 agent loop 与 tool-calling 的基本原理。它能读文件、改代码、执行命令,运行时需要一个 OpenAI 兼容 API 和模型名配置。配套教学网站把文章与源码并置展示:阅读推进时右侧编辑器会逐步补全代码,并提供 Trace 跟踪功能,可以打断点逐行查看代码执行流。线上 trace 为预先生成的静态数据,浏览网站本身不会发起模型请求。适合想理解 pi 类 coding agent 内部机制的工程师,而非作为生产级 agent 直接采用。

nano-pi 用 TypeScript 实现了一个最小可运行的 coding agent 循环:通过 OpenAI 兼容接口(默认 https://api.openai.com/v1)调用大模型,让模型读文件、修改代码并执行命令。安装后通过 npm run dev 启动,用 NANOPI_API_KEY 提供凭证,可用 NANOPI_MODEL 指定模型、NANOPI_BASE_URL 指定兼容接口地址。教学网站(pi-from-scratch.vercel.app)将文章与 nano-pi 源码同步展示,编辑器随阅读进度逐步补全代码,并支持 Trace 断点逐行跟踪执行流;网站上的 trace 是预生成的静态数据,浏览不消耗模型调用。

  1. 想理解 agent loop 和 tool-calling 原理的工程师,希望用 600 行代码看清 pi 类 coding agent 的最小核心
  2. 计划基于 pi 构建自己 agent 的开发者,想先通过删繁就简的 nano-pi 掌握其数据流
  3. 教学或团队分享场景,用 Trace 断点逐行讲解 agent 代码执行流
  4. 已读过 pi-book 的读者,想动手从零实现一遍再深入原版 pi
  5. 想在教学网站上一边读文章一边看代码逐步补全的自学者

这个 Agent 有哪些优点和局限?

优点
  • 体积极小:约 600 行 TypeScript 即可实现完整 agent 循环,阅读成本极低
  • 配套教学网站将文章、逐步补全的源码和 Trace 断点跟踪结合,代码执行流可视化
  • 遵循 pi 的数据流拆解,保留核心思想、去除工程细节,学习路径清晰
  • 通过 NANOPI_BASE_URL 兼容任意 OpenAI 兼容接口,不绑定单一模型提供商
局限
  • 定位是教学项目而非生产工具,不适合直接用作日常 coding agent
  • 运行依赖 Node.js 22+ 和自备的 OpenAI 兼容 API,密钥与调用费用需用户自行承担
  • API 默认基于 OpenAI 兼容协议,若目标服务协议不兼容需要额外适配
  • 仓库未提供测试、发布版本等工程化证据,代码质量与长期维护无从评估

如何安装或部署这个 Agent?

需要 Node.js 22 或更高版本,以及一个 OpenAI 兼容 API 的密钥。克隆仓库后:

bash

npm install
export NANOPI_API_KEY=your-api-key
npm run dev

可选环境变量:NANOPI_MODEL(模型名)、NANOPI_BASE_URL(OpenAI 兼容接口地址,默认 https://api.openai.com/v1)。

如需本地运行教学网站:

bash

cd web
npm install
npm run dev

如何使用这个 Agent?

配置 NANOPI_API_KEY(以及可选的 NANOPI_MODEL 和 NANOPI_BASE_URL)后运行 npm run dev 启动 nano-pi,它会把请求发送到你指定的 OpenAI 兼容接口。要学习实现原理,可访问 pi-from-scratch.vercel.app 在线阅读:右侧编辑器随阅读进度补全 nano-pi 代码,Trace 功能支持打断点逐行跟踪执行流;线上 trace 是静态预生成数据,浏览网站不会发起模型请求。

这个 Agent 与同类方案有什么区别?

项目明确以开源项目 pi 为蓝本:pi 是完整的工程实现,而本项目删除 pi 的工程细节、保留核心思想,用约 600 行代码实现超级迷你版。README 还提到 pi-book 一书可作为完成 nano-pi 后继续深入 pi 的进阶参考。

常见问题

浏览教学网站会产生模型调用费用吗?
不会。网站上的 trace 是预先生成的静态数据,浏览网站不会发起模型请求;只有本地运行 nano-pi 时才会调用 API。
必须使用 OpenAI 官方 API 吗?
不必。任何 OpenAI 兼容接口都可以,通过 NANOPI_BASE_URL 指定地址,NANOPI_MODEL 指定模型即可。
它能替代我日常使用的 coding agent 吗?
不能。它是一个约 600 行的教学实现,目的是让你理解 pi 的核心思想,不具备生产级工程能力。
需要什么运行环境?
Node.js 22 或更高版本,以及一个 OpenAI 兼容 API 的密钥(通过 NANOPI_API_KEY 提供)。
如何在本地运行教学网站?
进入 web 目录后执行 npm install 和 npm run dev 即可;网站源码与文章位于同一仓库。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents