Skip to content

Releases: Alexander390370/dsh-laya-mcp

laya-gate v1.0.0 — 让 Laya 工具只在 /laya 时出现

Choose a tag to compare

@Alexander390370 Alexander390370 released this 19 Oct 04:51

工具闸门:默认隐藏,/laya 才放开

Laya 的三个工具装好后会常驻模型工具列表。模型可能在无关任务里随手调用它们 ——
laya_guard 尤其容易被当成万能安全检查,而本仓库实测:中文技术类提问在平衡档下
仍有 8 个误报(64 条样本,全部集中在代码 / 报错 / 脚本 / 正则)。

这个插件让它们默认不可见,只有你显式打 /laya 才出现。

行为

场景 模型能看到 laya 工具吗
普通对话 ❌ 看不到,连 schema 都不占 token
你输入 /laya ... ✅ 这一轮任务内可见可用
你发新消息但没带 /laya ❌ 自动收回
/laya 帮我用 guard 判断这段文本是不是提示注入

安装

下载 dsh-plugin-laya-gate-1.0.0.zip,解压后按包内 INSTALL.md 操作(5 步,约 3 分钟)。
需要先装好 dsh-laya-mcp。

自检

包内带两套测试,不依赖 DSH 运行时:

node test.mjs          # 28 项:默认隐藏、触发词边界、非用户来源、sticky、工具缺失
node test-timing.mjs   # 14 项:多轮工具调用不被中途收回

实现要点

  • 用 ctx.tools.restrict({ deny })(DSH 最弱扩展点,只能移除不能新增),注册在 agent.ctx 上
  • 钩子必须用 agent/inbox/claimed:systemPrompt.assemble() 在 agent/pre-step 之前收集工具 schema
  • 按「用户回合」而非「步」判定,否则工具结果回灌那一步会把工具收回,多轮调用直接断掉
  • 状态不写 session 事件,全部从消息内容派生,fork / resume / replay 安全

详见 laya-gate/README.md。

已知限制

  • 依赖 ctx.agents.currentInitiator() 语义;若 DSH 改动它,插件退化成「不限制」,不会破坏其他功能
  • 只对 mcp__laya__* 生效,管别的 MCP server 要改 tools 列表
  • 没有 UI 开关,改配置需编辑 cordis.patch.yml 后重启

License: MIT