Skip to content

fix(skills): 限制 send 技能仅在飞书会话触发#495

Open
Phoobobo wants to merge 8 commits into
deepcoldy:masterfrom
Phoobobo:fix/send-skill-runtime-guard
Open

fix(skills): 限制 send 技能仅在飞书会话触发#495
Phoobobo wants to merge 8 commits into
deepcoldy:masterfrom
Phoobobo:fix/send-skill-runtime-guard

Conversation

@Phoobobo

Copy link
Copy Markdown
Contributor

改了什么

  • 收紧 botmux-send skill 的触发描述:仅在 prompt 有 botmux 路由上下文、存在 BOTMUX_SESSION_ID,或用户明确要求发送到飞书时使用
  • 明确 skill 可用、cwd 位于 botmux 仓库、机器安装了 botmux 都不能作为“当前用户来自飞书”的证据
  • 兼容会自动转发最终 assistant message 的 runtime:常规最终回复不再重复调用 botmux send
  • 增加单测,锁定上述运行上下文护栏

为什么

Pi 会按 Agent Skills 规范把全局 skill 的名称和 description 放入 system prompt,但不会自动执行 skill。旧 description 把“用户在飞书阅读”写成无条件事实,模型在普通本地 Pi 会话中可能仅因看到该 skill、且 cwd 恰好是 botmux 仓库,就误调用 botmux send。本 PR 在 skill 层补齐明确的运行时前置条件,避免误路由。

影响面

  • 仅修改内置 botmux-send skill 文案和对应单测
  • 不改 CLI 发送实现、daemon、飞书 API、会话后端或其它 CLI 适配器
  • 正常飞书会话已有 <botmux_routing> / <botmux_reminder>BOTMUX_SESSION_ID,原有发送能力不受影响
  • 普通本地 Pi/Codex/Claude 会话不会再因 skill 可见或仓库路径而试探性发送

验证

  • pnpm vitest run test/builtin-skills.test.ts:18/18 通过
  • pnpm build:通过
  • pnpm daemon:restart:6 个 PM2 应用均 online
  • pnpm test:552 个文件 / 9038 个用例通过;现有环境下 5 个文件 / 86 个用例失败,集中在 VC meeting daemon 与 worker terminal integration,与本次仅 skill 文案改动无关

@Phoobobo
Phoobobo requested a review from deepcoldy as a code owner July 16, 2026 12:11
@deepcoldy

Copy link
Copy Markdown
Owner

@Phoobobo 之前已经优化过了,不会往全局安装skill了,在非botmux场景还会走到么?

@Phoobobo

Phoobobo commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

会,来源不是 botmux daemon 现在的默认安装路径,而是独立安装/发布的同名 Agent Skill。我刚在一个没有 <botmux_routing>、也没有 BOTMUX_SESSION_ID 的普通本地 agent 会话里复现:harness 从 ~/.agents/skills/botmux-send/SKILL.md 暴露了这个 skill,旧 description 让我误判后执行了 botmux send,随后报 无法推断 session-id。当前 cwd 恰好又是 botmux 仓库,更容易强化误判。

所以你之前做的 prompt 默认 + 清理 CLI 全局目录是有效的,已经解决了 botmux 自己向 ~/.pi/agent/skills / ~/.codex/skills 等泄漏的问题;这个 PR 防的是 skill 被 Agent Buddy/其他 harness 独立全局安装后,在非 botmux runtime 中被触发。两层不冲突。合入后还需要按现有 skill 同步流程把新版文案发布到对应制品,外部副本才会实际得到护栏。

@Phoobobo

Copy link
Copy Markdown
Contributor Author

已持续同步到最新 master,当前无冲突、无未解决 review thread,pnpm build 与定向测试(21/21)均通过,PR diff 仍仅涉及 send skill 文案和对应测试。现在唯一 merge blocker 是审批,方便时请再看一下 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants