Skip to content
KucaitangPublic

About

用于pi拉取子智能体完成任务的插件,静默回复,避免污染上下文

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

pi-silent-subagent

一个 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"] 喵~

工作原理

  1. 模型调用 subagent 工具,传入 task(及其它可选参数)喵~
  2. 插件通过 pi --mode json -p --no-session 拉起一个独立的 pi 子进程喵~
  3. 子进程解析任务、调用工具、生成最终回复,全程不向父进程推送任何中间更新喵~
  4. 插件从子进程的 JSONL 事件流中提取最后一条 assistant 文本作为最终结果喵~
  5. 只把最终结果返回给父模型,主对话干净、不污染喵~

安全与限制

  • 防递归:插件通过环境变量 PI_SUB_AGENT_DEPTH 限制最多一层子智能体,子智能体内部再调用本工具会被拒绝,避免无限递归喵~
  • 超时:默认 10 分钟超时,超时会被强制终止(约定退出码 124)喵~
  • 中止传播:主会话 Ctrl+C 会传播到子进程,一并终止喵~
  • 错误处理:子进程退出码非 0、stopReason 为 error/aborted 时,工具会返回错误信息而非静默失败喵~

与官方 subagent 示例的区别

官方 examples/extensions/subagent 会流式展示子智能体的工具调用和进度,功能也更复杂(多 agent、并行、链式)喵~ 本插件是它的「静默精简版」,只保留「单个任务 → 静默执行 → 返回最终结果」这一条路径,正是为了满足「仅返回最终结果而不展现具体过程」的需求喵~

About

用于pi拉取子智能体完成任务的插件,静默回复,避免污染上下文

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors