Learn Pi Agent
真正的 Agent Harness 工程。pi 已经转着循环,你只需要把机制挂上去。
核心模式
pi 内部跑着同一个循环:调用模型、执行工具、回传结果。你要做的是在这个循环上挂机制 —— 工具、权限、事件、知识、会话、委派、集成。
s01_agent_session/code.ts
const { session } = await createAgentSession({ sessionManager: SessionManager.inMemory() })
// 观察循环的每一次呼吸
session.subscribe((event) => {
if (event.type === "message_update") process.stdout.write(event.assistantMessageEvent.delta)
})
// 一次 prompt = 一整个 agent loop
await session.prompt("看看当前目录,告诉我这是什么项目")学习路径
12 个渐进式章节,从一次最简会话到多种机制装进同一个 AgentSession
s0117 行
AgentSession
一个 prompt() 就是一整个 agent loop,pi 已经替你转好了。
s0227 行
自定义工具
加一个能力,只加一个 handler。
s0330 行
权限闸门
先划边界,再给自由。
s0447 行
事件与钩子
观察用事件,干预用钩子,主循环永远不改。
s0546 行
Skill 按需加载
系统提示里只有名字和描述,正文等命中再读。
s0625 行
Prompt 模板
把「怎么问」也标准化。
s0737 行
会话与分支
会话是树,不是一条直线。
s0850 行
子 Agent
用上下文预算换取专注度。
s0955 行
RPC 集成
stdin 发命令,stdout 收事件。
s1036 行
自定义 Provider
pi 的模型层是开放的。
s1138 行
Pi Package
一个单元,一次安装。
s1265 行
完整 Harness
所有扩展点最终都汇入同一条循环。
机制分层
四个正交的关注点组合成完整的 Harness