Skip to content

ExitPlanMode 后计划被反复发送到 channel #64

Description

@hilr

Bug

之前 PR #59 修了 ExitPlanMode 没把计划发给用户的问题。但 ExitPlanMode 是 requiresUserInteraction() 的工具,CLI 在等用户点「批准」按钮。我们只 surface 了计划,没有 feed back 审批结果。

表现

  1. Agent 进入 plan 模式,写好计划,调用 ExitPlanMode
  2. 计划发到 channel(PR fix: surface plan content to IM channel on ExitPlanMode #59 修好的部分)
  3. CLI 阻塞,等待 tool_result 审批
  4. 用户回复一句 → run()client.query(reply) 当作新消息发进去
  5. CLI 的 pending tool_use 没被解决,重新 emit → 计划又被发一遍 → 死循环

期望

用户回复后能正常 break 出 plan 模式,开始执行或者根据反馈修改计划。

解决方向

复用 AskUserQuestion 的 _pending_ask 机制:

  • ExitPlanMode 触发时,surface 计划 + 提示文字("回复 Yes 批准 / No <修改意见>"),设置 pending state,return
  • 下一次 run() 解析用户回复(Yes/No 前缀,中英文都支持),把对应的 tool_result 发回去让 CLI 继续
  • No 后面的文字作为修改意见发回 LLM
  • 没匹配上 Yes 的回复默认拒绝 + feedback,避免没明确批准就跑计划

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions