当前位置: 首页 > news >正文

There Are Many Agent Harnesses, But pi.dev Is Yours

Claude Code、Cursor、Codex、Gemini CLI——每个编码 Agent 都有自己的工作流。你得学习它的操作方式,适应它的子 Agent 策略,接受它的权限弹窗。如果某个功能没有内置?等官方更新。

Pi 的哲学完全相反:改造工具适应你的工作流,而不是反过来。

Pi 是一个极简的终端编码 Agent。它提供原语,不提供功能。子 Agent、计划模式、权限管理、MCP 支持——这些在其他工具里是内置的,在 Pi 里你可以自己构建,或者从 3143 个社区包里安装一个。

GitHub 55k star,MIT 协议,由 Earendil Inc. 开发。

这篇文章涵盖什么

  • Pi 的核心哲学:原语而非功能
  • 核心能力
  • 扩展系统和包生态
  • 上下文工程
  • 四种运行模式
  • 和其他 Agent 的定位差异

核心哲学:提供原语,不提供功能

Pi 的 README 有一节叫「What we didn't build」,列出了它故意不内置的功能:

不内置 你怎么获得
MCP 安装 pi-mcp-adapter 包,或用 Skills 构建 CLI 工具
子 Agent 安装 pi-subagents 包,或通过 tmux 启动多个实例
权限弹窗 安装 pi-permission-system 包,或构建自己的审批流
计划模式 安装 plan-mode 扩展,或写入文件
内置 TODO 安装 rpiv-todo 包,或用 TODO.md 文件
后台 Bash 用 tmux

这不是偷懒,而是设计选择。Pi 提供扩展 API(TypeScript 模块),可以访问工具、命令、快捷键、事件和完整 TUI。你不想要的永远不存在,你想要的可以随时加上。

甚至可以让 Pi 自己构建扩展——它会修改自己的代码,你 /reload 后继续工作。

核心能力

15+ 模型供应商,数百个模型

Anthropic、OpenAI、Google、Azure、Bedrock、Mistral、Groq、Cerebras、xAI、Hugging Face、Kimi、MiniMax、OpenRouter、Ollama 等。会话中切换模型:/modelCtrl+LCtrl+P 循环收藏。

树状会话历史

会话存储为树结构。/tree 导航到任何历史节点继续。所有分支在单个文件中。支持书签、过滤、导出 HTML、上传 GitHub Gist 生成可分享 URL。

实时转向(Steering)

Agent 工作时你可以提交消息。Enter 发送转向消息(当前工具执行完后中断后续工具),Alt+Enter 发送追加消息(等 Agent 完成后再处理)。

上下文工程

Pi 的系统提示词非常精简,让你做真正的上下文工程:

  • AGENTS.md:项目指令,从 ~/.pi/agent/、父目录和当前目录加载
  • SYSTEM.md:按项目替换或追加系统提示词
  • Compaction:接近上下文限制时自动摘要旧消息,支持自定义摘要策略
  • Skills:带指令和工具的能力包,按需加载,不占用提示缓存
  • Prompt 模板:可复用提示词,/name 展开
  • 动态上下文:扩展可以注入消息、过滤历史、实现 RAG 或长期记忆

扩展系统

扩展是 TypeScript 模块,拥有完整 API 访问权限。50+ 内置示例:

subagent/          — 子 Agent 系统
plan-mode/         — 计划模式
permission-gate.ts — 权限门控
protected-paths.ts — 路径保护
ssh.ts             — SSH 远程执行
sandbox/           — 沙盒执行
doom-overlay/      — 在终端里玩 DOOM
custom-compaction/ — 自定义上下文压缩
git-checkpoint.ts  — Git 检查点

安装和分享:

# 从 npm 安装
pi install npm:@foo/pi-tools# 从 Git 安装
pi install git:github.com/badlogic/pi-doom# 打包发布到 npm

包生态:3143 个社区包

pi.dev/packages 展示了所有社区提交的包。按下载量排名的热门包:

包名 功能 月下载
context-mode MCP 插件,节省 98% 上下文窗口 117K
pi-subagents 子 Agent 委派,链式/并行执行 99.8K
pi-mcp-adapter MCP 协议适配器 88.9K
pi-web-access 网页搜索、URL 获取、YouTube 理解 59.8K
rpiv-ask-user-question 结构化问卷(替代自由输入) 37.2K
rpiv-todo TODO 覆盖层(会话重启不丢失) 33.2K
pi-lens 实时代码反馈(LSP/linter/类型检查) 21K
pi-chrome 使用你已登录的 Chrome 10.7K
pi-hermes-memory 持久记忆 + 会话搜索 8.8K
pi-telegram Telegram 运行时适配器 8.2K

这些包都是社区用 Pi 的扩展 API 构建的,不是官方预制的。

四种运行模式

模式 用途
Interactive 完整 TUI 体验,日常编码
Print/JSON pi -p "query" 脚本化,--mode json 事件流
RPC JSON over stdin/stdout,非 Node 集成
SDK 嵌入到你的应用中

OpenClaw(GitHub 374k star)就是用 SDK 模式把 Pi 嵌入为自己的编码引擎。

安装

# macOS / Linux
curl -fsSL https://pi.dev/install.sh | sh# Windows PowerShell
powershell -c "irm https://pi.dev/install.ps1 | iex"# npm / pnpm / bun
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pnpm add -g --ignore-scripts @earendil-works/pi-coding-agent
bun add -g --ignore-scripts @earendil-works/pi-coding-agent

和其他 Agent 的定位对比

维度 Pi Claude Code Cursor Codex
核心哲学 极简 + 可扩展 全功能一体化 IDE 集成 安全优先
子 Agent 扩展(可安装) 内置 内置 有限
MCP 扩展(可安装) 内置 内置
权限管理 扩展(可安装) 内置弹窗 内置 沙盒
供应商锁定 15+ 供应商 Anthropic 多供应商 OpenAI
包生态 3143 个社区包 Skills
可嵌入 SDK 模式
模型切换 会话中切换 固定 可选 固定
开源 MIT

关键区别:Pi 不是给你一套固定的功能让你适应,而是给你一套 API 让你构建自己想要的工作流。

技术栈

  • TypeScript — 全栈
  • Node.js — 运行时
  • MIT 协议
  • pnpm monorepo — 包管理

适用场景

  • 定制控:不喜欢 Claude Code 的子 Agent 策略?用 Pi 构建你自己的
  • 多模型用户:同一个会话中随时切换 Anthropic/OpenAI/Google/本地模型
  • 工具构建者:用 Pi 的扩展 API 构建工具,打包分享给社区
  • 集成开发者:用 SDK/RPC 模式把 Pi 嵌入你的产品
  • 极简主义者:只想要一个终端 Agent,其他什么都自己搭

作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

http://www.jsqmd.com/news/892398/

相关文章:

  • FPGA硬件加速高光谱目标检测:ATDCA-GS算法优化与工程实践
  • Lovable招聘系统搭建必须掌握的6个开源组件选型逻辑(附GitHub Star≥12k的实测对比表)
  • 基于Transformer的稀疏结构感知:CraterSense实现月球自主导航新突破
  • 凸二次规划(convex quadratic programming) - ace-
  • 2026台州黄金回收门店实测|三家靠谱上门回收品牌 - 资讯速览
  • 基于PUF与DICE的物联网设备硬件可信根架构设计与实现
  • 五、ESP32 UDP通信实战:从零搭建轻量级数据传输通道
  • Proteus 8.13仿真DHT11温湿度报警系统:从零搭建到按键调试(附完整源码)
  • 你还在用Excel管理Lindy项目交付节点?这6个冷门但致命的自动化断点正悄悄拖垮你的SLA
  • Simulink模块搭建vsS函数:为什么你的控制器跟踪正弦信号总有残余误差?
  • 基于VS-BEAM与卷积自编码器的脑肿瘤MRI智能诊断方法解析
  • 基于HAR-TD3与VAE的主动配电网电压无功协同控制方法
  • 【无代码AI Agent落地避坑手册】:12个真实客户失败案例+可复用的Checklist模板
  • 基于ONNXRuntime C#实现的高性能YOLO推理框架
  • 2026徐州黄金回收店铺推荐省心指南:5大避坑铁律+4步正规流程+本地靠谱商家推荐 - 寻茫精选
  • 2026年4月南京优秀的不锈钢板材定制厂家报价多少,常规不锈钢卷材/430不锈铁板材,不锈钢板材生产厂家报价多少 - 品牌推荐师
  • 【Unity开发字典】分包、黏包基本概念和处理逻辑实现
  • 3分钟彻底改造macOS光标:用Mousecape打造你的个性化桌面体验
  • CANoe诊断安全解锁实战:手把手教你用CPAL脚本搞定27服务密钥交换
  • 别再为STM32串口打印发愁了!HAL库下三种printf重定向方案实测对比(含MicroLIB配置)
  • YOLOv8杂草识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
  • 离散模型解析嵌入式束缚态与法诺共振:从原理到光子器件设计
  • 基于 SkiaSharp 的 WPF AvaloniaUI 极简动图播放方案
  • 《从 Transformer 矩阵乘法说起:KV Cache 到底是在缓存什么?》
  • 盒须图实战指南:用五数概括做数据诊断与异常识别
  • 异步联邦学习与图神经网络驱动的微服务异常检测实践
  • Realtek r8125 DKMS驱动:Linux 2.5G网卡自动适配终极指南
  • 前沿话题:深度学习、3DGS、语义SLAM与多传感器融合
  • 告别adb shell input!用Python+uiautomator2写Android自动化脚本,效率翻倍
  • LeetCode刷题 day20