Skip to main content

8 posts tagged with "Pi"

View All Tags
· 5 min read

Pi 突然火,真正的看点不是"它是不是又一个 Coding Agent",而是 Agent 竞争的评判标准正在换轨:从比功能清单,变成比 harness

  1. 功能清单时代:比谁的 sub-agent、plan mode、memory、MCP 更全
  2. Pi 的反常克制:核心只留 read / write / edit / bash,能力全部外置
  3. 卖点变了:不是"我帮你做好了一切",而是"给你一块可改装的底盘"
  4. 三条路线:Pi 是可塑底座,OpenClaw 是常驻入口,HermesAgent 是学习循环
  5. 新的评判维度:能不能改造、工具怎么接、权限怎么管、上下文怎么压缩

Prompt 像说明书,harness 才是方向盘和刹车——这才是 Pi 这波火起来的底层原因。

· 6 min read

换更简单的 Harness,能把 Token 砍掉一半。Pi Agent 是这条线上的典型代表。

  1. 同模型实测:Pi 平均 2.82M token,是 Claude Code 5.52M 的 51%
  2. 耗时:Pi 8.75 分钟 vs Claude Code 11 分钟,差距有限。
  3. 极简默认:4 工具(read/write/edit/bash),系统提示词 < 1000 token。
  4. 双层扩展:Skill 是说明书;Extension 改写 Agent 自身运行方式。
  5. 自改造:Pi 自己读扩展文档、自己写代码改 Extension。
  6. Sub-agent:靠 Extension 实现,按角色配不同厂商模型和思考强度。
  7. SDK 嵌入:把 Pi 核心能力移出终端,作为应用里的 Agent 引擎。

开箱即用选 Claude Code / Codex;想改造 Agent 或嵌进自己的应用,选 Pi。

· 10 min read

Pi 不是「一个 CLI 加一个 RPC」——它是一个能在 CLI、Node.js 嵌入、子进程 RPC、JSONL 流四种场景下等价使用的 agent runtime。createAgentSession() 是统一入口。

  1. 统一入口createAgentSession() 同时支撑 CLI、SDK、RPC、JSON 四种姿势
  2. AgentSession 三类方法:Prompt 排队、事件订阅、模型 / 状态控制
  3. 四种运行模式:Interactive(TUI)/ Print(单次)/ RPC(stdin JSONL)/ JSON(事件流)
  4. SDK vs RPC 选型:Node.js 嵌入 → SDK;Python / Go / Rust 集成 → CLI RPC
  5. 最小 CLI 包装:40 行代码就能跑一个完整的 Pi agent
  6. 五大核心启发:Pi 给 AI 产品开发的 5 条原则
· 11 min read

Pi 在「统一多 provider」这件事上做得非常彻底——30+ 个内置 provider、4 种 key 解析语法、扩展可动态注册新 provider。但最值得记住的不是支持的 provider 多,而是它对「安全」这件事的态度:明确告知无沙箱,把隔离责任推给 OS / 容器 / 虚拟机

  1. 统一层 pi-ai:把 Anthropic / OpenAI / Google 等 API 收敛成统一接口
  2. 两类 provider:订阅型(OAuth via /login)和 API Key 型
  3. 4 种 key 解析:环境变量插值、shell 命令执行、转义符、字面量
  4. model id 不用手动维护:列表随每次 release 更新
  5. 思考等级 6 档:off / minimal / low / medium / high / xhigh
  6. 安全模型无沙箱,隔离责任在 OS / 容器 / 虚拟机层
· 9 min read

Pi 的 extension 是 TypeScript 模块,不是 YAML / JSON 也不是 hook 脚本。它能注册工具、命令、快捷键、provider、UI 渲染器,订阅 30+ 种生命周期事件——这套 API 是 Pi「minimal core」哲学的具体兑现。

  1. 形式:TypeScript 模块,default-export function (pi: ExtensionAPI) { ... }
  2. 作用域:全局 ~/.pi/agent/extensions/ 或项目本地 .pi/extensions/
  3. 三类能力:订阅事件、注册功能、主动操作 session
  4. 杀手锏pi.registerProvider() 动态注册 / 覆盖 provider,无需重启
  5. 状态管理:存在 tool result 的 details 里,跟着 entry 进 JSONL 树
  6. 安全警告:extension 以完整系统权限运行,只装可信来源
· 8 min read

Pi 把上下文压缩做成一等公民:自动触发、结构化摘要、可扩展、可手动控制。两种机制——压缩和分支摘要——共用同一套文件跟踪与摘要格式。

  1. 触发条件:上下文超阈值或 /compact 触发压缩;/tree 切分支触发分支摘要
  2. 核心字段reserveTokens(默认 16384)、keepRecentTokens(默认 20000)
  3. 七段式摘要 schema:Goal / Constraints / Progress / Key Decisions / Next Steps / Critical Context
  4. 关键设计:重复 compaction 从上一 compaction 的保留边界开始,磁盘上只有「三块」而非 N 段
  5. 累积文件跟踪:read/modified 文件清单跨多次 compaction 累积
  6. 可扩展session_before_compact 钩子允许扩展完全替换摘要生成
压缩和分支摘要在 Pi 里是同一种东西——都是为了「不丢历史的前提下让当前 leaf 轻装上阵」。
· 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 设计成树而不是线,不是「数据结构的偏好」,而是支撑所有核心能力的基础

· 7 min read

Pi 用一句话定义自己:核心要小,行为由扩展装配。

  1. 核心极简:默认不内置 MCP、sub-agent、plan mode、to-do、权限弹窗
  2. 4 个 npm 包:pi-ai / pi-agent-core / pi-coding-agent / pi-tui,单向依赖
  3. 最底层是 pi-ai:纯 LLM 适配,零 agent 概念
  4. 分层好处:每一层独立 npm 包,按需引入
  5. 核心只做四件事:加载扩展、跑 agent 循环、读写 session 文件、提供 TUI

记忆点:Pi 卖的不是「帮你做好了一切」,而是「给你一块可改装的底盘」。