一个 Pi 扩展插件,赋予 Pi「唤起子智能体完成指定任务」的能力,并且只返回子智能体的最终运行结果,不展示具体过程喵~
子智能体是一个独立的 pi 子进程,拥有隔离的上下文窗口,所以它执行任务时产生的工具调用、推理步骤、流式输出等中间过程都不会出现在主对话里,主对话只会收到它最终给出的结果喵~
pi-silent-subagent/
└── index.ts # 扩展入口(单文件,无需编译)
把 index.ts 放进 Pi 的用户扩展目录(目录名可自定义,但必须是一个子目录)喵~
Windows(Git Bash):
mkdir -p ~/.pi/agent/extensions/silent-subagent
cp index.ts ~/.pi/agent/extensions/silent-subagent/index.ts对应 Windows 实际路径:C:\Users\15194\.pi\agent\extensions\silent-subagent\index.ts 喵~
也可以临时加载(不复制)喵:
pi --extension ./pi-silent-subagent/index.ts安装后重启 Pi(或在 Pi 里执行 /reload)即可生效喵~
本插件注册了一个名为 subagent 的工具,模型会在需要时自动调用它,无需手动输入命令喵~ 你只需要用自然语言向 Pi 下达任务,例如喵:
帮我用子智能体分析一下 src/utils 目录的代码结构,只告诉我结论
模型会据此调用 subagent 工具,静默执行后把结果带回给你喵~
| 参数 | 必填 | 说明 |
|---|---|---|
task |
✅ | 要委派给子智能体完成的任务描述,尽量具体、自包含 |
model |
❌ | 子智能体使用的模型,格式 provider/model(如 deepseek/deepseek-v4-pro)。省略则继承父会话当前模型 |
cwd |
❌ | 子智能体工作目录。省略则继承父会话当前目录 |
tools |
❌ | 限制子智能体可用的工具,如 ["read","grep","bash"]。省略则使用全部默认工具 |
systemPrompt |
❌ | 附加给子智能体的系统提示,用于定制角色/行为,如「你是一名资深代码审查员」 |
定制角色喵:
让一个资深 Python 审查员子智能体审查 E:\app\pi 里的代码,只给我审查结论
模型会传入 systemPrompt: "你是一名资深 Python 代码审查员…" 来定制子智能体角色喵~
限制工具喵:
用一个只能读文件的子智能体统计这个仓库有多少个 .ts 文件
模型会传入 tools: ["read","grep","find","ls"] 喵~
- 模型调用
subagent工具,传入task(及其它可选参数)喵~ - 插件通过
pi --mode json -p --no-session拉起一个独立的 pi 子进程喵~ - 子进程解析任务、调用工具、生成最终回复,全程不向父进程推送任何中间更新喵~
- 插件从子进程的 JSONL 事件流中提取最后一条 assistant 文本作为最终结果喵~
- 只把最终结果返回给父模型,主对话干净、不污染喵~
- 防递归:插件通过环境变量
PI_SUB_AGENT_DEPTH限制最多一层子智能体,子智能体内部再调用本工具会被拒绝,避免无限递归喵~ - 超时:默认 10 分钟超时,超时会被强制终止(约定退出码 124)喵~
- 中止传播:主会话 Ctrl+C 会传播到子进程,一并终止喵~
- 错误处理:子进程退出码非 0、
stopReason为error/aborted时,工具会返回错误信息而非静默失败喵~
官方 examples/extensions/subagent 会流式展示子智能体的工具调用和进度,功能也更复杂(多 agent、并行、链式)喵~ 本插件是它的「静默精简版」,只保留「单个任务 → 静默执行 → 返回最终结果」这一条路径,正是为了满足「仅返回最终结果而不展现具体过程」的需求喵~