Skip to main content

12 posts tagged with "Pi"

View All Tags
· 8 min read

Pi 把「一次会话」抽象成一颗 JSONL 树。每条 entry 是一个节点,节点之间靠 idparentId 串成父子关系;当前活跃的位置是「叶子」。

  1. 存储:JSONL 树形文件,按工作目录分组存到 ~/.pi/agent/sessions/
  2. 数据格式:每行一条 entry,类型由 type 字段区分,节点靠 id/parentId 串成树
  3. 消息模型分两层pi-ai 给基础 LLM 类型,pi-coding-agent 扩展出 BashExecution / Custom 等专用消息
  4. BashExecution 是 Pi 特有:把 !!! 命令结构化地放进会话,跟普通 tool result 分开
  5. custom vs custom_message:前者只存盘不进入 LLM context,后者进入 context
  6. 树形的设计:撑起分支探索、无损压缩、多事件流并行

Pi 把 Session 设计成树而不是线,不是「数据结构的偏好」,而是支撑所有核心能力的基础

· 14 min read

Pi 用一句话定义自己:核心要小,行为由扩展装配。本篇先看它最上层的哲学,再落到 4 个 npm 包的源码目录里。

  1. 核心极简:默认不内置 MCP、sub-agent、plan mode、to-do、权限弹窗
  2. Harness ≠ 模型:LLM 是发动机、Harness 是车辆系统——这一层直接决定成本与效果
  3. 两条路径:产品派(Claude Code / Codex)成品房 vs 框架派(Pi)毛坯房
  4. 双层扩展:Skill 改方法,Extension 改 Agent 自身运行方式
  5. 4 个 npm 包:pi-ai / pi-agent-core / pi-coding-agent / pi-tui,单向依赖
  6. 透明可读 → 自改造:Pi 自己读自己的扩展文档、自己写代码修改 Extension
  7. 同模型实测:同模型同任务,Pi / CC token 比 51%、耗时 ~80%
  8. 核心只做四件事:加载扩展、跑 agent 循环、读写 session 文件、提供 TUI

记忆点:Pi 卖的不是「帮你做好了一切」,而是「给你一块可改装的底盘」——也是一个「让你能看到 Agent 怎么跑的透明壳」。