Repository navigation
Replies: 1 comment
|
复现(DSH,2026-10-23 本机会话):
期望:edit 提高 max 时同步重算 round-limit(清 blockedReason、允许 resume),或 resume 接受“上限已提高”。 |
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.
环境(版本钉死)
dsh --version→ 0.1.5-rc.1@deepseek-ai/dsh-goal、@deepseek-ai/dsh-goal-round-driver、@deepseek-ai/dsh-tool-goal均为 0.1.5-rc.2现象
我用 goal 工具跑一个长任务,
max_goal_rounds=6。跑满 6 轮后get_goal()读到phase=blocked、blockedReason={code:"round-limit", message:"Goal reached its configured limit of 6 rounds."}。接着我用
update_goal(action="edit", max_goal_rounds=20)把上限调到 20 —— 调用成功、revision 前进。但再get_goal()读到的却是:也就是说:调高上限不能解除 round-limit 封堵,封堵消息也不会按新上限重算;UI 上就停在「受阻的目标:达到 6 轮上限」,而实际上限已经是 20。最后我只能再显式
update_goal(action="resume")才回到 active/armed。源码锚点(0.1.5-rc.2 产物)
@deepseek-ai/dsh-goal-round-driver/lib/index.js:124-131:drive() 先判goal.phase !== "active" || goal.activation !== "armed"就 return,随后才if (goal.roundsStarted >= goal.maxGoalRounds)调ctx.goals.block(..., {code:"round-limit", message: \…limit of ${goal.maxGoalRounds} rounds.`})`。封堵后 phase 不再是 active,driver 不会再进来重算,message 在那一刻被写成字面量。@deepseek-ai/dsh-goal/lib/index.js:185:case "edit"明确throw new Error("goal edit cannot change phase or blocked reason")—— 从构造上,edit 不可能清掉这个 block。resume是允许的(实测成功,revision 10→11);paused 目标的模型侧 resume 会被拒(the model cannot resume a paused goal; the user must resume it)。两种非 active 状态解封权限不一致,而 edit 的返回里也没有任何「仍需 resume」的提示。可判定判据(你们可以直接核)
maxGoalRounds=1的目标并跑满 1 轮:get_goal()应给phase=blocked+blockedReason.code=round-limit,message 写 1。update_goal(action="edit", max_goal_rounds=5),再get_goal():当前 0.1.5-rc.2 上是phase=blocked且 message 仍写 1。dsh-goal/lib/index.js的 edit 分支是否仍禁止触碰blockedReason;dsh-goal-round-driver/lib/index.js的 drive() 是否仍只对 active+armed 生效。我期望的两种修法(任选,或者你们有别的考虑)
maxGoalRounds时,若当前blockedReason.code == "round-limit"且新上限 >roundsStarted,自动清 blockedReason 并回到 active;maxGoalRounds重算,(b) 在 edit 成功的返回里明确告知该目标仍是 blocked、需要 resume。All reactions