Skip to main content
ask_user 允许代理向人类提出一到三个结构化问题,并 等待回答。它适用于真正属于用户的决策, 而不是例行确认,或代理可以从请求、 代码,或合理默认值中推导出的信息。 该工具仅在主会话中可用。子代理和其他非主 运行不会获得它。

回答问题

您可以从任何受支持的对话界面进行回答:
  • Web Control UI 会在输入框上方直接停靠一个问题面板。对于 多问题提示,该面板一次显示一个问题,并通过一个简短的步骤器逐步推进。解决后,面板会关闭,聊天中 只保留一个简洁的答案摘要。
  • Telegram、Discord 和 Slack 会为单选、单问题提示渲染原生按钮。
  • 纯文本回复适用于任何频道。您可以回复一个数字、一个选项标签, 或者您自己的答案。
OpenClaw 始终启用一个自由文本的 其他 答案。代理不得向已编写的选项列表中添加 Other 选项。

平台行为

答案在每个受支持的会话界面上都有效。Web Control UI 使用一个停靠式步骤器,在展开时会替代输入框;折叠后会在一条纤细的问题栏下恢复完整输入框。iOS、macOS 和 Android 显示内联卡片;多个问题会作为一种有意的、适合触控的模式叠放在一起。每个平台都会将问题到答案的摘要保留在当前聊天时间线中,不会因超时而移除,而且 Skip 在所有地方都可用。 无法使用原生按钮的提示,包括多问题和多选提示,会在各渠道降级为可读文本。Control UI 保留完整的结构化步骤器。

超时和无答案

默认超时时间为 900 秒。timeoutSeconds 会被限制在 30 到 3600 秒的范围内。 如果问题在答案到达之前过期或被取消,工具会返回 status: "no_answer"。然后代理会基于自己的最佳判断继续执行。 中止的代理运行会取消其挂起的 Gateway 问题。 Gateway 问题记录包含可选的来源 runId。客户端可以 使用它将提示及其最终答案摘要与正确的代理轮次保持关联, 包括在重新连接并通过 question.listquestion.get 恢复问题之后。

工具 schema

multiSelect: true 时,用户可以选择多个选项。每个问题的答案值都以数组形式返回。 示例已回答结果:

模型指导

面向模型的契约告诉代理要:
  • 仅在真正由用户决定且因此被阻塞时才提问;
  • 优先只问一个问题,且最多不超过三个;
  • 将推荐选项放在第一位,并在其标签后加上 (Recommended)
  • 省略手动编写的 Other 选项,因为自由文本会自动添加;
  • no_answer 后继续依据最佳判断执行。
代理不应使用 ask_user 来询问是否可以继续,或用于确认 其自身的计划。