跳转到内容

Pi Agent Harness 项目介绍

Pi Agent Harness 项目介绍

项目定位

Pi 是由 Earendil Works 开源的 AI 编程助手 Monorepo,提供从底层 LLM API 统一封装到上层交互式编码 CLI 的完整技术栈。

它解决的是一类问题:如何让一个 Agent 在长时间运行中可靠地与多个 LLM 提供商交互、管理不断增长的上下文、在运行中被外部”转向”,并支持可插拔的技能系统。

核心能力

  • Agent 运行时(pi-agent-core):事件驱动的 Agent 循环,支持流式响应、并行/串行工具执行、steering/followup 消息队列、beforeToolCall/afterToolCall 生命周期钩子
  • 统一 LLM API(pi-ai):封装 OpenAI、Anthropic、Google、Bedrock、Mistral、Cloudflare 等 15+ 提供商,统一的 streamSimple 接口、OAuth 设备码登录、prompt 缓存亲和性
  • 编码 Agent CLI(pi-coding-agent):交互式编码助手,支持 read/bash/edit/write/grep/find/ls 等核心工具、SKILL.md 技能系统、JSONL 会话持久化、上下文自动压缩
  • 终端 UI 库(pi-tui):差分渲染的 TUI 组件库,包含编辑器、输入框、选择列表、Markdown 渲染、图片显示

技术栈

维度选择
语言TypeScript(Node.js 22+,支持 Bun)
构建esbuild + shx
类型检查TypeScript 5.9(erasable syntax,Node strip-only)
Lint/FormatBiome 2.3
测试Vitest
包管理npm workspaces(monorepo)
SchemaTypeBox(运行时类型验证)
会话存储JSONL + 内存双后端
CI/CDGitHub Actions + npm trusted publishing

架构概览

快速体验

Terminal window
# 从源码运行
git clone https://github.com/earendil-works/pi.git
cd pi
npm install --ignore-scripts
npm run build
./pi-test.sh # 启动交互模式
# 或直接使用 npm(发布版)
npx @earendil-works/pi-coding-agent -p "解释这段代码"

教程导读

本教程分为 AI 应用开发工程 两个维度:

AI 应用教程 从项目出发,抽象出 Agent 设计的通用知识,涵盖:

  • Agent 核心循环的 steering/followup 消息队列架构
  • 工具调用的并行/串行执行与生命周期钩子
  • 上下文压缩与分支摘要策略
  • 基于 SKILL.md 的技能系统
  • 树状会话管理与 JSONL 持久化
  • 多提供商 LLM API 统一抽象

开发工程教程 聚焦项目的具体工程实践:

  • TypeScript monorepo 的分层构建与 erasable syntax
  • npm 依赖供应链加固
  • 可配置的 resolveConfigValue 系统
  • TUI 差分渲染组件库
  • 本地发布 smoke test 流程