mcpField
P
pi-rpc-sdk

pi-rpc-sdk

github.com/romiluz13开发2076 次安装28 周前更新
代码仓库

关于 pi-rpc-sdk

为开发者提供 pi-mono 编码 Agent 的 RPC、JSON 事件流和 TypeScript SDK 集成指导。内容强调协议分帧规则,并说明何时选择进程内会话而非子进程。

主要功能

  1. 01RPC 分帧规范指导
  2. 02JSON 事件流用法
  3. 03TypeScript 会话嵌入
  4. 04多会话运行时指导

适用场景

  1. 01为编码 Agent 构建 RPC 客户端
  2. 02通过 JSON 事件观察 Agent 活动
  3. 03在 Node.js 中嵌入编码会话
  4. 04托管多个 Agent 会话

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/romiluz13/pi-agent-skills --skill pi-rpc-sdk

安装后在 Claude Code 中输入/pi-rpc-sdk确认已加载。

附带文件references/CORPUS.md

详细介绍

Pi RPC 和 SDK 集成

基础依据

  1. pi-mono/packages/coding-agent/docs/rpc.md — Framing 部分(仅使用 LF 作为记录分隔符;readline 与 U+2028/U+2029 不兼容)。
  2. pi-mono/packages/coding-agent/docs/sdk.md — 以编程方式创建会话的模式,以及 createAgentSession、AgentSession、createAgentSessionRuntime、ModelRegistry.create()、AuthStorage.create() 和 SessionManager.inMemory()。
  3. pi-mono/packages/coding-agent/docs/json.md — --mode json 事件流:会话标头、agent_*/turn_*/message_*/tool_execution_* 事件,以及 jq 筛选示例。
  4. pi-mono/packages/coding-agent/src/modes/rpc/rpc-client.ts — 适用时,作为 rpc.md 引言中提及的 TypeScript 客户端参考。
  5. pi-mono/packages/coding-agent/src/core/agent-session.ts — 进程内嵌入的 API 表面(根据 rpc.md 给 TypeScript 用户的说明)。

不变量

  • 分帧规则是 pi-mono/packages/coding-agent/docs/rpc.md 中的规范性文本;向客户端实现者提供建议时,必须严格引用或转述该文件内容。
  • 根据 rpc.md 的 Input expansion 部分中 prompt 命令下的说明,RPC 提示词会展开技能命令和提示词模板。
  • --mode json 用于只读观察(stdout 事件);--mode rpc 用于双向控制(stdin 命令 + stdout 响应)。两者用途不同,但都要注意 U+2028/U+2029 的分帧问题。
  • 对于 TypeScript/Node 嵌入,createAgentSession() 是主要工厂函数;它需要 sessionManager、authStorage 和 modelRegistry。对于高级多会话托管,可使用 createAgentSessionRuntime(),它会返回具有较低层级访问权限的 AgentSessionRuntime,可访问 agent、sessionManager、settingsManager、modelRegistry、extensions、bashExecutor 和 resourceLoader — pi-mono/packages/coding-agent/docs/sdk.md。

工作流

  • 选择集成方式:如果用户使用 Node/TS,请根据 rpc.md 建议优先选择 AgentSession,而不是子进程;引用该文件开头的 Note for Node.js/TypeScript users。
  • 排查分帧问题:重新阅读 Framing 部分;不要建议使用通用行读取器,因为它不符合规范。
  • JSON 事件流:如需只读观察 Agent 活动,请参考 json.md(--mode json);如需双向控制,请参考 rpc.md(--mode rpc)。
  • 进程内嵌入:对于不需要子进程隔离的 TypeScript/Node 用户,优先使用 createAgentSession(),而不是 --mode rpc。从 @mariozechner/pi-coding-agent 导入。请参阅 pi-mono/packages/coding-agent/docs/sdk.md 和 pi-mono/packages/coding-agent/examples/sdk/。

反模式

  • 不要描述与 rpc.md 相矛盾的分隔符行为(记录分隔符仅为 \n;输入时可选择去除 \r)。

评论

支持 Markdown