第 1 节 · 本站原创中文课程 · 建议 25 分钟
先建立 Pi 1.1 的项目地图
学完能做:区分 CLI、Agent、模型、Codemode、MCP 与持久化职责。
一次输入经过哪些层
Pi 的核心不是一个大文件。coding-agent 面向用户,负责 CLI、交互模式和会话;agent-core 管理消息、事件和工具调用;pi-ai 统一不同供应商的模型接口。先读 README 的三个核心包,再在 main.ts 找 createAgentSession 的入口定位。目录依赖不是调用证据:只有找到实际的导入、方法调用和事件回传,才能画出一次输入的运行链路。
1.0 的迁移边界
agent-core 的 1.0 CHANGELOG 明确移除实验性 AgentHarness、会话存储、持久化运行时及若干子路径。新版只保留 Agent、循环、代理流和类型。需要可恢复会话时阅读独立 pi-durable,而不是照搬旧版从 agent-core 导入 Harness 的代码。这个拆分是职责变化;Pi 版本到达 1.0,也不表示所有子包 API 都稳定,durable 仍标注 Experimental。
源码阅读有固定基线
本课程固定 v1.1.0 的 abe508e 提交,练习、引用和三栏工作台使用同一版本。Pi 默认继承宿主进程权限,根 README 说明它没有通用文件、进程、网络和凭证权限系统。后面看到 QuickJS 沙箱时,应区分脚本本身与它调用的宿主工具。先在纸上画边界,未查到的调用用待核对标记,不用包名填补推理。
1.1 的变化落在哪一层
从工具选择开始定位 1.1 的变化:+name/-name 在默认集合上增减,普通名称列表则替换选择,这属于 CLI 配置。后面的章节再分别核对实际执行的 durationMs、终端的 OSC 7501 和 Codemode 的图像分类。先把变化放回已有分层,再查能力和限制;工具选择不代替宿主权限,终端状态也不等于任务验收通过。
这是本站独立编写的讲解与示例,并非官方课程逐字翻译。理解之后,请完成下面的练习、自测和笔记。
参考来源:Pi v1.1.0 官方源码与文档