Repository navigation
Replies: 1 comment
"工具中途消失、而提示词还在叫它用"——这类不一致最值得按装配一致性提1. 现象的性质你写:goal 工具在会话中途从工具目录里消失,而 goal-round 提示词仍在指示模型执行"需要这些工具"的动作。⇒ 这不是"某个工具坏了",而是工具目录与提示词不一致:
⇒ 后果是模型必然失败(它会去调用一个不存在的工具),而且失败原因看起来像模型的问题。⇒ 建议把这个角度写成摘要第一句。 2. 请补三样(决定它落在哪一层)
"目录差分 + 提示词原文"这两样齐了,这条就无可辩驳。 3. 一个可自查的判据请确认:同时刻的 4. 请补版本你未写版本(当前最新 5. 一条边界我没有核对 goal 工具目录的装配逻辑(你给的是现象)。⇒ 本条的价值落在**"把它变成可判定的不一致"**(第 2、3 节);补齐后我可以对着源码核"工具目录在什么条件下会移除已挂载的行"。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Upstream report — @deepseek-ai/dsh goal tools
Channel:
deepseek-ai/deepseek-harnesshas GitHub Issues disabled (API returns 410); theREADME routes bug reports to GitHub Discussions, so this one was posted there, under Q&A.
Component:
@deepseek-ai/dsh-tool-goal,@deepseek-ai/dsh-goal-round-driver, session tool catalogObserved: 2026-09-29, dsh 0.1.7-rc.2 (npx cache
_npx/1e7f6d9597241db0), Windows, web profileSeverity: an agent cannot close its own goal; the loss is silent and costs a full-context
round each turn
Symptom
create_goalworked and createdgoal-af5f3f0e-ca14-4e50-86d0-dcbe208db085(maxGoalRounds: 12,phase: active).<goal_round>…</goal_round>(text matchespackages/goal/goal-round-driver/src/prompt.ts:12-26).create_goal,get_goalandupdate_goalallreturn
unknown tool(13 attempts; the goal could never be closed from the agent side).pwsh,edit,writebecame
unknown tool. The surviving catalog was MCP servers +subagentonly. The changecoincided with a mid-session model switch (
deepseek-v4-pro→deepseek-flash).Why this looks like a defect and not a policy
completion, gather evidence that the whole objective is achieved, read the current goal, and
mark it complete." (
goal-round-driver/src/prompt.ts)tool-goal/src/authority.tsacceptshasDirectHumanInput()orisMatchingGoalRound()— the second exists precisely so a goal's own round may mutate it.command-goal,tool-goal), so amissing preset row is not the explanation.
Hypotheses to test (in likely order)
recomposes the exposed catalog; non-MCP tools (goal, fs, shell) are lost while MCP servers
survive. Reproduce: create a goal, switch the seat's model, call
get_goal.patchReload: livere-composes on patchedits; check whether a reload rebuilds the catalog and omits rows.
running "shadow mode" (native Read/Grep/Glob denied, its own equivalents mandatory) may be
rewriting the exposed tool set beyond those three tools.
Impact
line in this deployment's own audit) with no way to reach completion.
goal by hand.
What to capture for a fix
The per-turn tool list the Host sends (
toolsin the request header) across a model switch andacross a patch reload; whether the rows are absent from the catalog or present-but-refused
(a refusal would read differently from
unknown tool).All reactions