feat(mode): ask_user_question joins the plan allowlist; the section steers to the exit tool

Live-session feedback (a real Zed elicitation round-trip): the model
presented its finished plan as a plain reply and asked the USER to
switch modes — the exact reversal the roadmap warns about — because the
shipped section's 'present it with the exit_plan_mode tool' read as a
suggestion. The section now says a finished plan is delivered by
calling exit_plan_mode, preferred over pasting it as a plain reply or
asking the user to switch modes — firmer, without imperatives.

ask_user_question enters the shipped plan allowlist (asking is
read-only-safe), and the section points a blocked decision at it. The
plan-acp-agent example composes the bash family (default mode only —
plan's allowlist keeps excluding it, so the two modes now demo a real
difference) plus tool-ask-user; both recorded scenarios re-recorded:
the pin now shows plan = [ask_user_question, exit_plan_mode, read,
todo_write] and post-exit default = the full eight-tool surface.
This commit is contained in:
kingwl
2026-07-10 15:05:26 +08:00
parent 14f7976e3d
commit 02e0756b78
12 changed files with 1127 additions and 1029 deletions

View File

@@ -21,6 +21,12 @@ flowchart LR
bundle_agent_core --> spine_loop["ctx.agents + ctx.agentLoop"]
plugin_plan-acp_mode["mode<br/>@deepseek-ai/dsh-mode"]
cfg --> plugin_plan-acp_mode
plugin_plan-acp_bash["bash<br/>@deepseek-ai/dsh-bash-local"]
cfg --> plugin_plan-acp_bash
plugin_plan-acp_tool_bash["tool-bash<br/>@deepseek-ai/dsh-tool-bash"]
cfg --> plugin_plan-acp_tool_bash
plugin_plan-acp_tool_ask_user["tool-ask-user<br/>@deepseek-ai/dsh-tool-ask-user"]
cfg --> plugin_plan-acp_tool_ask_user
plugin_plan-acp_fs_local["fs-local<br/>@deepseek-ai/dsh-fs-local"]
cfg --> plugin_plan-acp_fs_local
plugin_plan-acp_fs_policy["fs-policy<br/>@deepseek-ai/dsh-fs-policy"]
@@ -36,6 +42,9 @@ flowchart LR
| `llm-deepseek` | `@deepseek-ai/dsh-llm-deepseek` |
| `acp-agent` | `@deepseek-ai/dsh-acp-agent` |
| `mode` | `@deepseek-ai/dsh-mode` |
| `bash` | `@deepseek-ai/dsh-bash-local` |
| `tool-bash` | `@deepseek-ai/dsh-tool-bash` |
| `tool-ask-user` | `@deepseek-ai/dsh-tool-ask-user` |
| `fs-local` | `@deepseek-ai/dsh-fs-local` |
| `fs-policy` | `@deepseek-ai/dsh-fs-policy` |
| `tool-fs` | `@deepseek-ai/dsh-tool-fs` |