dg-ai-notes
buchidonggua/dg-ai-notes加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Pi Agent Logo
2024 年下半年,AI Agent 赛道迎来了真正的爆发——Claude Code、Cursor、Cline 相继走红,让"让 AI 帮人写代码"这件事从极客玩具变成了日常工具。但与此同时,一个巨大的认知鸿沟也在悄然扩大:大多数用户只会用这些工具,却不知道它们背后的 Agent SDK 是怎么工作的。
正是这个背景,让一个叫"冬瓜"的 AI 技术博主决定做一件费力不讨好的事——把一个真实的、生产级的 Agent SDK(Pi-Agent)源码,从里到外拆解成一本可以跟着敲的电子书。这本名为 dg-ai-notes 的教程,在 GitHub 上已获得超过 3000 颗 star,成为了理解 AI Agent 内部机制的热门中文学习资源。
在深入 dg-ai-notes 之前,有必要先弄清楚它的研究对象——Pi-Agent 到底是什么。
Pi-Agent(GitHub 95.2k★)是开发者 @earendil-works 开源的 Agent SDK,定位是生产级 AI Agent 的运行时底座。它的设计理念非常明确:不追求提供最"聪明"的 AI 能力,而是把 Agent 系统的工程骨架做扎实——消息系统怎么组织、Agent Loop 怎么实现、工具怎么注册和执行、会话怎么持久化、扩展怎么热插拔。
用更直白的话说:Pi 是那些"顶级 AI 编程工具"背后的无名英雄。Claude Code、Cursor 的内部架构,都在 Pi 里能找到对应的实现。理解了 Pi,你就不只是会用这些工具,而是能真正理解它们为什么这样设计。
Pi 的架构分为四层:
| 层级 | 包名 | 职责 |
|---|---|---|
| LLM 接口层 | @earendil-works/pi-ai | Provider 抽象、流式响应、认证 |
| 核心引擎层 | @earendil-works/pi-agent-core | Agent Loop、工具执行、消息/事件 |
| 编码 Agent 层 | @earendil-works/pi-coding-agent | 会话管理、扩展、Skills、资源加载、SDK+CLI |
| Web UI 层 | @earendil-works/pi-web-ui | Lit 组件、Artifacts、沙箱 |
这个分层设计的核心价值在于关注点分离:核心层不依赖 UI,所以同一个 Agent 引擎既可以在终端 TUI 里跑,也可以在网页里跑,还可以通过 SDK 嵌入任何 Node.js 应用。
dg-ai-notes 围绕 Pi-Agent 展开,但内容深度分成了三个不同层次,每一层面向不同的学习者:
这是教程最核心的部分,用 10 个章节系统拆解 Pi 的设计逻辑。与大多数"贴代码 + 写注释"的源码解读不同,dg-ai-notes 每章都围绕三个问题展开:"是什么 / 怎么做 / 为什么这样设计"。
内容包括(部分):
特别值得一提的是,源码精读篇提供了 TypeScript + Python 双版本对照——Pi 官方用 TypeScript 实现,但 dg-ai-notes 同时提供了 Python 版本的源码解读,覆盖了不同背景的开发者。配合超过 30 张配图和一份可交互的 Agent Loop 实验场,学习者可以直接改参数、单步运行、观察 Loop 行为。
如果说源码精读是"内功心法",实战篇就是"招式套路"。这一部分以一个**企业数据分析助手(DataAgent)**为贯穿案例,从零开始带读者搭一个可部署的垂直 Agent:
实战篇的独特之处在于:它不讲"怎么用 Pi",而是讲**"改哪一层、为什么这样接"**。每章配套一组代码(L01–L07),npm install 后即可直接运行。
这是整个教程最"脑洞"的部分——作者把 dg-ai-notes 的内容蒸馏成了一个 Hermes Agent Skill(dg-piagent),装进 Claude Code、ZCode、Codex 等 AI 编程工具后,AI 可以直接查阅 Pi-Agent SDK 的用法文档,在开发过程中充当实时助手。
Skill 提供了两个视角:
这个 Skill 解决了 AI 编程工具的一个核心痛点——通用 AI 对特定 SDK 的 API 参数、边界条件、最佳实践往往"一知半解"。通过把经过验证的 SDK 知识注入 Skill,AI 在开发 pi-agent 代码时能给出更准确的建议,少走弯路。
dg-ai-notes 的在线版本(dg-ai-notes.pages.dev)本身就是一个工程质量的展示。技术栈选型非常明确:
这带来的用户体验提升是显著的:在线版支持 TypeScript/Python 双语言版本一键切换(源码精读篇),右侧 TOC 随系列隔离,深色/浅色/跟随系统三模切换,以及"沉浸式阅读"模式(F 键全屏正文)。这些特性在一个普通 Markdown 文件中是无法实现的。
部署层面,项目使用 Cloudflare Pages 进行静态托管,npm run build 输出到 dist/ 后直接推送到 Pages,零服务器成本、全球 CDN 加速。对于想要离线阅读的用户,也可以直接下载仓库中的 Markdown 原稿,或在 Releases 页面下载 PDF 版本。
dg-ai-notes 面向两类受众,设计了清晰的分叉路径:
| 受众 | 推荐起点 | 预期收获 |
|---|---|---|
| 有 TypeScript 基础,想动手写 Agent | 实战上手篇(P01) | 7 章后有一个可运行的垂直 Agent |
| 想深度理解 Agent 内部机制 | 源码精读篇 TypeScript 版(M01) | 理解 Pi 的设计取舍,能做二次开发 |
| Python 开发者 | 源码精读 Python 版(M01) | 零 TypeScript 障碍,直接读 Python 实现 |
对于完全没有编程经验的用户,dg-ai-notes 可能不是最佳起点——它默认读者具备基本的命令行操作能力和至少一门语言的语法基础。但对于有中级以上编程经验、想深入理解 AI Agent 工程的开发者,这个教程的价值远超大多数付费课程。
3000+ star 并不是一个轻松的数字。在 GitHub 这个以英文为主的开源生态中,一个纯中文的技术教程能获得如此关注,本身就说明了它的稀缺性——国内开发者对 Agent 内部机制深度解读的需求,一直缺乏高质量的本土化内容。
在 Issues 和 Discussions 中,可以见到读者讨论 Agent Loop 的边界条件、Compaction 的触发策略、多轮会话的上下文管理策略……这些都不是"怎么注册账号"级别的问题,而是真正在思考 Agent 系统设计的工程师才会提出来的问题。
客观地说,dg-ai-notes 也有它的一些局限性:
更新节奏依赖上游:作为 Pi-Agent 的配套教程,dg-ai-notes 的内容与 Pi 的版本紧密绑定。Pi SDK 仍在活跃开发中(Skill 中标注核对了 pi-coding-agent v0.83.0),教程内容需要持续跟进才能保持同步。
Python 版本内容相对精简:Python 版的源码精读是对 TypeScript 版的翻译,而非 Python 原生实现。对于 Python 开发者而言,这意味着要理解 Pi 的 Python 版,仍需要对照 TypeScript 版本来理解。
动手门槛不可忽视:虽然声称"零基础可学",但源码精读篇中大量涉及 TypeScript 高级类型(TypeBox、模板字面量类型)、异步流式处理等概念,实际门槛建议有 1–2 年实际项目经验。
dg-ai-notes 真正的价值,不在于教会你"怎么用 Pi",而在于它展示了一种理解 AI 系统的思维方式——从源码出发,理解每一个设计决策背后的 trade-off,然后用这些知识构建自己的判断力。
在 AI 工具日新月异的今天,这种"底层能力"比学会使用任何一个具体工具都更有持久价值。Pi-Agent 的架构设计代表了当前 Agent SDK 的一种主流方向,而 dg-ai-notes 则是目前中文领域理解这一方向的最佳入口之一。