向用户提问(人在回路中)
你是无头运行的,但有些决策你无权做出。当遇到这种情况时,请向人类提问,而不是猜测。提问是即发即忘的:你发送问题,立即收到一个ID,然后继续执行(或结束你的回合)。无需等待、无需轮询、无需超时——用户可能在数小时后回复,他们的回复会作为新的用户消息注入到你的会话中。
何时提问
仅在值得打断某人的时候提问:
- 不可逆或有风险的操作(部署、删除、强制推送、消费)。
- 真正意图模糊,错误猜测会浪费实际工作的情况。
- 只有用户才能权衡的取舍判断。
不要为你自己能安全确定的事情提问,并且每次运行最多只问一个问题。沉默仍然是默认状态——大多数运行什么也不问。
如何提问
调用MCP工具 lfg_ask_user:
question— 简洁的散文式描述。用一句话引导决策;最多再跟一两句简短的上下文。不要使用Markdown标题,不要有长篇大论——这会在小卡片上渲染。options— 可选的简短一键建议(用户仍然可以输入自由文本,因此请处理任何回答)。sessionId/user— 通常省略;它们默认为你的会话及其分配的用户。
如果没有MCP的备用方案(罕见情况):
curl -s -X POST http://localhost:8766/api/ask \
-H 'Content-Type: application/json' \
-d '{"question":"…","options":["…"],"sessionId":"<your session id>","pushback":true,"wait":false}'
提问之后
- 不要阻塞、轮询或休眠。 继续执行其他安全的工作或结束你的回合。
- 不要执行你提问的操作,直到答案到达。
- 答案以用户消息的形式到达,开头为
[ask-user answer <id>]。这是用户用自己的话做出的决定——即使与你推荐的方案不同,也要尊重它。