dshbase

插件目录 / Developer / deepseek-harness-tool-palette

deepseek-harness-tool-palette

未验证 lizhecome

✓ 持续维护 基于 6 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
语言
2026-08-15最近推送
跨平台平台

功能简介

Progressive tool discovery and per-agent unlocking for DeepSeek Harness

我们的评价
未验证 — 尚未实测

Progressive tool discovery and per-agent unlocking for DeepSeek Harness 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

DeepSeek Harness Tool Palette

Progressive tool discovery for DeepSeek Harness. The bundle keeps a compact per-Agent tool palette and exposes tool_search; a search can preview or unlock the best matching installed tools for later steps.

中文说明

Why

A large plugin and MCP installation can contribute many tool schemas to every model request. Tool Palette starts each Agent with tool_search plus a deployment-selected baseline, then reveals other global tools only when the model searches for their capability. The ToolRuntime remains the single source of truth, so model presentation, lookup, Code Mode bindings, and execution change together.

Install

The repository is private, so clone it with an authenticated GitHub CLI session and install the checkout into a DSH profile:

gh repo clone lizhecome/deepseek-harness-tool-palette
cd deepseek-harness-tool-palette
dsh plugin --profile web add --ignore-workspace-root-check .

Replace web with headless or another profile name. The bundle is appended after the profile's existing bundles.

Model-facing tool

tool_search accepts:

  • query — a non-empty capability, operation, tool name, or parameter search.
  • unlock — defaults to true; false returns matches without changing the palette.

An exact tool name ranks first, followed by name fragments, full-description matches, parameter text, and individual query tokens. Ranking is deterministic, and ties use the exact tool name.

Example requests:

Find a tool that can write a file, then create notes.txt.
Search the installed tools for subagent delegation without unlocking anything.

A successful unlocking search returns the matched names and makes them visible in the next model step. Calling tool_search again can reveal more capabilities; already visible matches remain enabled without registering duplicate restrictions.

Default bundle configuration

The included cordis.patch.yml keeps these standard DSH tools visible before any search:

alwaysVisible:
  - read
  - glob
  - grep
  - exit_plan_mode
  - todo_write
maxResults: 8
maxQueryChars: 400
descriptionMaxChars: 240

tool_search is always included and must not be repeated in alwaysVisible. Exact configured baseline names are validated when an Agent is adopted; a missing name fails loudly rather than silently weakening the configured palette.

For a minimal palette, override the bundle row in the profile patch:

- id: tool-palette
  config:
    alwaysVisible: []
    maxResults: 6
    maxQueryChars: 300
    descriptionMaxChars: 180

Scope and lifecycle

Each live Agent owns one reversible allow-list restriction. Two root Agents unlock independently. A child Agent has its own restriction; when it unlocks a hidden global tool, Tool Palette also admits that name through the intersecting runtime-owner ancestors required to make it reachable. A sibling retains its own restriction and does not gain the tool. Tools registered directly in an Agent's own scope remain visible because Harness deliberately merges scope-local tools after that scope's restrictions.

Tool Palette adopts Agents that already exist when the plugin loads and watches later agent/created events. Agent disposal removes its state. Plugin unload or hot reload lifts every restriction before unregistering tool_search, restoring the ordinary Harness tool surface.

Unlock state is intentionally process-local and advisory. It is not written into the Session log and resets after Agent or plugin reconstruction; each model request still records the tool set through Harness's normal reconstructable request path.

Code Mode

In Code Mode, the reserved run_code transport remains visible because it is outside capability restrictions. The generated tools SDK initially declares tool_search and the configured baseline. After a nested tool_search call unlocks a capability, the next generated SDK includes that tool. Native function calling follows the same palette through ordinary schemas.

Security and policy

Tool hiding is progressive disclosure, not an authority boundary. Unlocking a tool does not bypass tools/pre-execute, monotonic guards, approval, sandboxing, filesystem observation, deadlines, or the tool's own validation. A deployment must keep using those mechanisms for security decisions.

The plugin performs no network requests, reads no files, starts no subprocesses, and stores no credentials. Catalog searches inspect the ToolRuntime's detached global schemas only. Search output is bounded by maxResults and descriptionMaxChars.

Model experience

Before a search, hidden global schemas do not enter the Agent's request, reducing the repeated tool-prefix cost. A search adds one retained tool call/result; unlocked schemas begin contributing tokens on the following step. Changing the visible schema set changes the model request prefix from that step, so provider KV-cache reuse can continue only through the preceding common prefix.

Limitations

  • Search covers global ToolRuntime schemas. Agent-local tools are already visible in their own scope and are not catalog results.
  • Matching is deterministic lexical search, not embeddings or an LLM call.
  • Unlocks last for the current live Agent lifecycle and are not a durable preference store.
  • A child unlock must widen intersecting ancestor restrictions; that ancestor Agent can then see the tool, while separately restricted siblings cannot.
  • Hiding a capability cannot secure it from trusted same-process code; policy belongs to guards, approvals, and capability providers.

Development

Requires Node.js 24 and pnpm 10.15.0.

pnpm install --frozen-lockfile
pnpm run check
npm pack --dry-run

The unit suite uses published Harness services and covers native presentation, Code Mode SDK regeneration, deterministic search, bounds, late registration, root and sibling isolation, child ancestry, existing-Agent adoption, misconfiguration, and complete plugin disposal.

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 deepseek-harness-tool-palette」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:lizhecome/deepseek-harness-tool-palette

Headless(CLI)profile:

dsh plugin --profile headless add github:lizhecome/deepseek-harness-tool-palette

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-27 · 标记 webonly
备注:验证: web-only;待 L4 web CDP;L4 web CDP runtime-fail on dsh 0.1.0-rc.8. 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →