SuperAPI AI 工具集

pi-coding-agent-extensions

编程与开发

查看项目

更新于 10-16 10:36

技能介绍

概述

Pi Coding Agent 是一个开源的、基于终端的 AI 编程助手,与 Claude Code 类似。本项目(pi-vs-claude-code)提供了一批扩展(extensions),用于展示 Pi 的定制能力,涵盖自定义 UI 组件、多智能体编排、安全审计、跨智能体集成以及智能体之间的通信。

扩展是 TypeScript 文件,通过挂载 Pi 的生命周期事件来添加工具、修改 UI、拦截命令,并与其他智能体协调。

前置依赖

以下三项均为必需:

# 安装 Bun(运行时与包管理器)
curl -fsSL https://bun.sh/install | bash

# 安装 just(任务运行器)
brew install just  # macOS
# 或 cargo install just  # 跨平台

# 安装 Pi Coding Agent CLI
# 参见 https://github.com/mariozechner/pi-coding-agent

安装方式

# 克隆扩展仓库
git clone https://github.com/disler/pi-vs-claude-code.git
cd pi-vs-claude-code

# 安装依赖
bun install

# 复制环境变量模板
cp .env.sample .env
# 编辑 .env 并添加你的 API keys:
# OPENAI_API_KEY=sk-...
# ANTHROPIC_API_KEY=sk-ant-...
# GEMINI_API_KEY=...
# OPENROUTER_API_KEY=...

API Key 配置

Pi 不会自动加载 .env 文件,必须在启动前先 source 环境变量。

方式一 - 手动 source:

source .env && pi

方式二 - Shell 别名(添加到 ~/.zshrc):

alias pi='source $(pwd)/.env && pi'

方式三 - 使用 just(自动):

just pi  # .env 会自动加载

运行扩展

单个扩展

pi -e extensions/minimal.ts

叠加多个扩展

pi -e extensions/minimal.ts -e extensions/cross-agent.ts

使用 Just 配方

# 列出所有可用配方
just

# 常用配方
just ext-minimal              # 带上下文计量器的紧凑页脚
just ext-tool-counter         # 带工具使用统计的丰富页脚
just ext-subagent-widget      # 派生后台智能体并显示实时组件
just ext-agent-team           # 多智能体编排仪表盘
just ext-damage-control       # 带路径控制的安全审计
just ext-pi-pi                # 用于构建 Pi 智能体的元智能体
just coms-net-server          # 启动智能体间通信中枢
just coms                     # 连接到通信中枢
just all                      # 在独立终端中打开所有扩展

扩展架构

扩展导出一个带有生命周期钩子的 PiExtension 对象:

import type { PiExtension, PiApp } from "pi";

export default {
  name: "my-extension",
  version: "1.0.0",

  // 扩展加载时调用
  async init(app: PiApp) {
    // 注册工具、组件、命令
  },

  // 智能体处理一轮对话前调用
  async beforeTurn(app: PiApp, turn: Turn) {
    // 拦截或修改本轮对话
  },

  // 智能体完成一轮对话后调用
  async afterTurn(app: PiApp, turn: Turn) {
    // 记录、分析或触发后续操作
  },

  // 关闭时调用
  async destroy(app: PiApp) {
    // 清理资源
  }
} satisfies PiExtension;

主要能力与示例

极简页脚(Minimal Footer)

显示模型名称与上下文使用情况的紧凑 UI,通过在 init 中创建 Widget 并将其定位在 footer 实现。

自定义工具注册(Custom Tool Registration)

通过 app.registerTool 添加智能体可调用的新工具,示例为 analyze_code_quality,接收 file_path 参数并返回行数、复杂度与问题列表。

编辑器上方的实时组件(Live Widget Above Editor)

创建持久、实时更新的组件(position: "above-editor"),示例为工具调用次数的计数器,在 afterTurn 中统计 turn.toolCalls 并刷新 UI。

安全审计(Damage Control)

在 beforeTurn 中拦截并阻止危险命令。读取 .pi/damage-control-rules.yaml 规则文件,检查 blocked_patterns 与 allowed_paths,命中时抛出错误阻止执行。示例规则文件:

blocked_patterns:
  - "rm -rf /"
  - "dd if="
  - ":(){ :|:& };:"
  - "curl | bash"
  - "wget | sh"

allowed_paths:
  - "/tmp"
  - "./src"
  - "./tests"
  - "./extensions"

多智能体编排

子智能体派生(/sub 命令)

注册 /sub 命令,将任务交由后台 Pi 智能体处理,通过 child_process 的 spawn 启动 Pi 子进程,并在编辑器上方显示实时状态组件。用法示例:

/sub implement user authentication with bcrypt

智能体团队编排(Agent Team Orchestration)

采用调度器模式配合专家智能体。读取 .pi/agents/teams.yaml 配置,注册 dispatch_agent 工具,按 agent_name 委派任务给对应专家智能体(可指定各自模型)。示例配置:

agents:
  backend:
    description: Node.js/TypeScript backend specialist
    system_prompt: |
      You are an expert backend engineer specializing in Node.js, TypeScript,
      Express, and PostgreSQL. Focus on API design, database schemas, and server architecture.
    model: gpt-4o

  frontend:
    description: React/Next.js frontend specialist
    system_prompt: |
      You are an expert frontend engineer specializing in React, Next.js, and Tailwind.
      Focus on component architecture, state management, and responsive design.
    model: claude-opus-4

  security:
    description: Security auditing specialist
    system_prompt: |
      You are a security expert. Audit code for vulnerabilities, suggest fixes,
      and ensure best practices for authentication, authorization, and data protection.
    model: gpt-4o

Pi 与 Pi 之间的通信

本地通信(同一台机器)

基于 Unix socket 的点对点消息传递。扩展在 /tmp/pi-coms 下为每个会话创建 socket,并提供 coms_list、coms_send、coms_get 三个工具,分别用于列出可用智能体、发送消息、获取消息。

网络通信(跨机器)

基于 HTTP/SSE 的中枢,用于局域网或远程智能体协调。

启动中枢服务器:

# 本地开发(127.0.0.1)
just coms-net-server

# 局域网可访问(需要认证 token)
export PI_COMS_NET_AUTH_TOKEN=your-secret-token
just coms-net-server-lan

连接智能体:

# 终端 1
just coms1  # 使用 gpt-4o

# 终端 2(同一网络上的另一台机器)
just coms2  # 使用 claude-opus-4

该扩展(extensions/coms-net.ts)提供以下工具:

  • coms_net_list - 列出已连接的智能体
  • coms_net_send - 向特定智能体发送消息
  • coms_net_broadcast - 向所有智能体广播
  • coms_net_get - 获取待处理消息

跨智能体集成

可加载 Claude Code、Gemini、Codex 目录中的命令与技能(示例扩展 extensions/cross-agent.ts,资料中该部分代码被截断,完整实现暂未提供)。

限制与缺失信息

资料未说明本扩展集合的授权许可、收费标准、支持的 Pi 版本、Windows 原生支持情况,以及各配方的完整行为;跨智能体集成的代码示例在资料中不完整。以上内容暂未提供。