@gugu-acp/pi-acp

中文文档
1.1.0发布于 2026/11/01MITES Module构建来源已验证

Gugu build的pi-acp 0.0.34:上游源代码加上补丁 https://github.com/GUYI-AI/gugu-acp/tree/main/bridges/pi-acp

中文使用文档
文档目录11 节
  1. 状态
  2. 功能
  3. 先决条件
  4. 安装
  5. 将pi-acp添加到ACP客户端,例如: Zed
  6. 环境变量
  7. 削减命令
  8. 身份验证(ACP注册表支持)
  9. 开发
  10. 限制
  11. 许可证

Gugu构建。 @gugu-acp/[email protected] = pi-acp V0.0.34 + 4补丁(es)保留 gugu-acp;每个补丁都说明了为什么需要它,它对应于哪个上游PR,以及何时可以删除它。类似于apache 2.0的上游。

pi-acp

运河管理局(代理客户端协议)适配器 pi 编码剂(该死的编码剂)。

pi-acp 沟通 ACP JSON-RPC 2.0在工作室 到ACP客户端(如Zed编辑器)和刷出 pi --mode rpc,在两者之间桥接请求/事件。

状态

这是一个mvp风格的适配器,旨在在今天很有用,并且易于迭代。某些ACP特性可能未实现或不受支持(参见 限制). 以发展为中心 Zed 编辑器支持,其他客户端可能具有不同级别的兼容性。

预计会有一些小的突破性变化。

功能

  • 将辅助输出作为ACP进行流处理 agent_message_chunk
  • 将pi工具执行映射到ACP tool_call / tool_call_update
    • 当ACP客户端支持打开所引用的文件/上下文时,工具调用位置会显示出来
    • 在作为ACP工具位置发出之前,pi的相对文件路径会根据会话cd进行解析,这使得像Zed这样的客户端可以使用后续功能
    • 为 edit, pi-acp 尝试从唯一字符中推断基于1的行号 oldText 匹配预编辑文件快照,并在可能的情况下将其包含在发出的工具位置中
    • 为 edit, pi-acp 在工具运行之前对文件进行快照并发出ACP 结构的差异 (oldText/newText)
  • 会话持久性
    • PI将自己的会话存储在 ~/.pi/agent/sessions/...
    • pi-acp 将小映射文件存储在 ~/.pi/pi-acp/session-map.json 所以 session/load 可以重新连接到以前的PI会话文件吗
  • 削减命令
    • 加载与pi约定兼容的基于文件的斜杠命令
    • 为无头/编辑器的使用添加一组内置命令
    • 支持技能命令(如果在pi设置中启用,它们显示为 /skill:skill-name 在ACP客户端)
  • 上下文窗口使用情况
    • 报告pi的实际上下文占用(get_session_stats → contextUsage)作为ACP发送给客户端 usage_update 每次转弯后,打开 session/new 和 session/load,然后进行型号切换
    • 需要pi版本,其 get_session_stats 反应包括 contextUsage;否则不会报告使用情况
    • 在压缩之后,pi可能还没有一个值得信赖的令牌计数,因此客户机将保留之前的值,直到下一次模型响应
  • 技能由pi直接加载,并在ACP会话中可用
  • (Zed) pi-acp 在会话中发出“启动信息”块(pi版本,上下文,技能,提示,扩展-类似于 pi 在终端)。您可以通过设置禁用它 quietStartup: true 在PI设置(~/.pi/agent/settings.json 或者 <project>/.pi/settings.json). 当 quietStartup 启用, pi-acp 如果安装的pi版本过时,仍然会发出“新版本可用”消息。
  • (Zed)在Zed中支持会话历史记录 v0.225.0. 会话加载/历史映射到pi的会话文件。会话可以在 pi 在ACP客户端。

先决条件

确保安装了pi

npm install -g @earendil-works/pi-coding-agent
  • node . js 22 +
  • pi V0.81.0 +已安装并可在您的 PATH (适配器运行 pi 可执行的)
  • 配置 pi 分别为您的模型提供程序/API密钥

安装

将pi-acp添加到ACP客户端,例如: Zed

使用ACP注册表在Zed或其他客户端支持它:

在Zed中启动注册表 zed: acp registry 命令和选择 pi ACP 列表中的适配器。这将自动将代理服务器配置添加到 settings.json 并保持更新:

  "agent_servers": {
    "pi-acp": {
      "type": "registry",
    },
  }

使用 npx (不需要全局安装,总是加载最新版本):

将以下内容添加到Zed中 settings.json:

  "agent_servers": {
    "pi": {
      "type": "custom",
      "command": "npx",
      "args": ["-y", "pi-acp"],
      "env": {}
    }
  }

全球安装

npm install -g pi-acp
  "agent_servers": {
    "pi": {
      "type": "custom",
      "command": "pi-acp",
      "args": [],
      "env": {}
    }
  }

从源

npm install
npm run build

将ACP客户端指向构建的 dist/index.js:

  "agent_servers": {
    "pi": {
      "type": "custom",
      "command": "node",
      "args": ["/path/to/pi-acp/dist/index.js"],
      "env": {}
    }
  }

环境变量

  • PI_ACP_ENABLE_EMBEDDED_CONTEXT=true 广告机场核心计划 promptCapabilities.embeddedContext 对客户端的支持。
  • 默认值:unset/其他值表示 false.
  • 当禁用时,兼容的ACP客户端应该避免发送嵌入式 resource 块。如果他们还是送了他们, pi-acp 通过将它们转换为纯文本提示上下文,仍然可以优雅地降级。

你可以在Zed设置中添加环境变量:

  "agent_servers": {
    "pi": {
      "type": "custom",
      "command": "node",
      "args": ["/path/to/pi-acp/dist/index.js"],
      "env": {
          "PI_ACP_ENABLE_EMBEDDED_CONTEXT": "true",
      }
    }
  }

削减命令

pi-acp 支持斜杠命令:

1)基于文件的命令(又名提示)

加载:

  • 用户命令: ~/.pi/agent/prompts/**/*.md
  • 项目的命令: <cwd>/.pi/prompts/**/*.md

2)内置命令

  • /compact [instructions...] -运行PI压缩(可选的自定义指令)
  • /autocompact on|off|toggle -切换自动压实开关
  • /export -将当前会话导出为会话中的HTML格式 cwd
  • /session -显示会话统计(令牌/消息/成本/会话文件)
  • /name <name> - set会话显示名称
  • /queue all|one-at-a-time -设置PI队列模式(不稳定特性)
  • /changelog 打印已安装的PI变更日志(尽最大努力)
  • /steering -映射到 pi 转向模式,获取/设置
  • /follow-up -向 pi 后续模式,get/set

其他内置命令:

  • /model -没有实现(使用Zed中的模型选择器UI)
  • /thinking -映射到Zed中的‘mode’选择器
  • /clear -未实现(使用ACP客户端‘new’命令)

3)技能命令

  • 技能命令可以在pi设置中启用,并将在ACP客户端的斜杠命令列表中显示为 /skill:skill-name.

注意:目前不支持pi扩展提供的斜杠命令。

身份验证(ACP注册表支持)

这个代理支持 终端身份验证 为 运河管理局注册. 在Zed中,这将显示an 进行身份验证 在终端中启动PI的横幅。 在终端中启动pi以进行交互式登录/设置:

pi-acp --terminal-login

您的ACP客户机还可以根据所发布的代理自动调用此功能 authMethods.

开发

npm install
npm run dev        # run from src via tsx
npm run build
npm run lint
npm run test

项目布局:

  • src/acp/* - ACP服务器+翻译层
  • src/pi-rpc/* pi子进程包装器(RPC协议)

限制

  • 没有ACP文件系统委托(fs/*),没有ACP终端授权(terminal/*). PI在本地读/写和执行。
  • MCP服务器在ACP参数中被接受,并存储在会话状态中,但不通过该适配器连接到pi。如果你使用 pi MCP适配器 它将在ACP客户端中可用。
  • 助理流当前发送为 agent_message_chunk (没有单独的思想流)。
  • 队列是在客户端实现的,应该像pi一样工作 one-at-a-time
  • ACP客户端还不支持会话历史记录,但ACP会话来自 pi-acp 可以 /resume直接用PI表示D

许可证

麻省理工学院(见 许可证)。

版本与发布记录

@gugu-acp/pi-acp 共发布 2 个版本,首次发布于 2026/09/25;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.1.0latest2026/11/012 天前
1.0.02026/09/251 个月前

关于 @gugu-acp/pi-acp 的常见问题

@gugu-acp/pi-acp 是什么?

Gugu build的pi-acp 0.0.34:上游源代码加上补丁 https://github.com/GUYI-AI/gugu-acp/tree/main/bridges/pi-acp

如何安装 @gugu-acp/pi-acp?

在项目目录运行 npm install @gugu-acp/pi-acp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pi-acp,可以用 npx pi-acp 直接运行。

@gugu-acp/pi-acp 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/gugu-acp__pi-acp 是否存在。

@gugu-acp/pi-acp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@gugu-acp/pi-acp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@gugu-acp/pi-acp 可以商用吗?

@gugu-acp/pi-acp 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@gugu-acp/pi-acp 还在维护吗?

最新版本 1.1.0 发布于 2026/11/01(2 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/09/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。