关于 pi-rpc-sdk
为开发者提供 pi-mono 编码 Agent 的 RPC、JSON 事件流和 TypeScript SDK 集成指导。内容强调协议分帧规则,并说明何时选择进程内会话而非子进程。
主要功能
- 01RPC 分帧规范指导
- 02JSON 事件流用法
- 03TypeScript 会话嵌入
- 04多会话运行时指导
适用场景
- 01为编码 Agent 构建 RPC 客户端
- 02通过 JSON 事件观察 Agent 活动
- 03在 Node.js 中嵌入编码会话
- 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 集成
基础依据
pi-mono/packages/coding-agent/docs/rpc.md— Framing 部分(仅使用 LF 作为记录分隔符;readline与 U+2028/U+2029 不兼容)。pi-mono/packages/coding-agent/docs/sdk.md— 以编程方式创建会话的模式,以及createAgentSession、AgentSession、createAgentSessionRuntime、ModelRegistry.create()、AuthStorage.create()和SessionManager.inMemory()。pi-mono/packages/coding-agent/docs/json.md—--mode json事件流:会话标头、agent_*/turn_*/message_*/tool_execution_*事件,以及jq筛选示例。pi-mono/packages/coding-agent/src/modes/rpc/rpc-client.ts— 适用时,作为rpc.md引言中提及的 TypeScript 客户端参考。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