无休止地采访用户,直到达成共识。将讨论映射为一棵设计树:每个决策分支为依赖它的子决策。
按轮次推进设计树。前沿指所有前提条件已经解决的决策:即你现在可以问的问题,而无需猜测尚未听到的答案。每轮询问整个前沿:为每个问题编号,并给出你的推荐答案。然后等待用户作答,再进行下一轮。
一轮的格式如下:
❓ **Q1** - **<问题标题>**:<问题正文,可能有多段,包括多个选项>
➡️ <你的推荐答案>
---
❓ **Q2** - **<问题标题>**:<问题正文,可能有多段,包括多个选项>
➡️ <你的推荐答案>
每个问题的措辞应使“是”表示接受你的推荐答案。
用户每轮的答案都会重塑设计树:已确定的决策将前沿向外推进,并解锁依赖它们的问题。重新计算前沿,然后询问下一轮。一个问题的答案若依赖于本轮中另一个仍开放的问题,则属于_后续_轮次,而非本轮。
查找_事实_是你的工作,绝不是用户的任务。当前沿问题需要从环境中获取事实(文件系统、工具等)时,派遣子代理去查找;不要询问用户可以自行查到的信息。不要因此阻塞:正在进行的探索是一个未解决的前提条件,因此只有依赖该子代理报告的问题需要等待;其余前沿问题现在即可询问。_决策_属于用户:向用户呈现每个决策并等待回答。
当前沿为空时对话结束:设计树的每个分支都已遍历,没有遗留任何隐含假设。在用户确认达成共识之前,不要执行任何操作。