$ cat ~/map/pi-orchestrator.md
pi-orchestrator
把主代理裁剪到只剩 delegate 工具,指挥隔离且带预算的子代理干活。
extensions✓ 9月3日
事实速查
- GitHub Stars
- ★ 2
- Forks
- 0
- 许可证
- —
- npm / 月
- —
- 最后推送
- 2026年10月9日
安装
pi install npm:@saifymatteo/pi-orchestrator## 速览
把主代理变成编排者的扩展:工具被裁剪到保留清单,真实工作的唯一途径是 delegate——它派生隔离的 pi --mode rpc 子代理,带轮次预算与停滞看门狗。
## 要点
- $before_agent_start 钩子每轮追加一条委派策略,内容由发现的子代理舰队与实际保留的工具生成;setActiveTools 每轮重新应用保留清单,覆盖后注册的工具。
- $tool_call 门禁拦截保留清单之外的一切调用并给出委派指引;delegate 以 PI_ORCHESTRATOR_CHILD=1 派生 `pi --mode rpc --no-session` 子进程,子代理会自行停用本扩展。
- $delegate 有三种形态:{agent, task} 单个任务;tasks[] 并行任务(最多 8 个、并发 4);chain[] 依赖链,用 {previous} 占位符引用上一步结果。
- $轮次预算在触限时软性引导(steer),超过预算 + 5 轮即硬杀;停滞看门狗对 stallTimeoutMs(默认 10 分钟)无输出的子代理硬杀,任何输出都会重置计时。
- $子代理成败以 RPC 的 agent_settled 事件为准——退出码仅作参考,因为完工的子代理本来就会被 SIGTERM。
- $要求 pi 0.84 及以上;配置位于 ~/.pi/agent/orchestrator.json(enabled、keepTools、childBlockedTools 等)。
## 常见问题
Q 怎么并行分发任务?
用 tasks[] 调用 delegate——最多 8 项、并发 4;步骤之间有依赖时改用 chain[] 加 {previous} 占位符。
Q 子代理没动静了会怎样?
停滞看门狗会对 stallTimeoutMs(默认 10 分钟)无输出的子代理硬杀;期间任何输出都会重置计时器。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年9月3日