Grilling

Grilling

RollRollRoll Updated 0 repo stars

File contents

Grilling

持续深入地访谈用户,直到双方形成共同理解。

将整个问题建模为一棵 决策树(design tree): 每一个决策都会进一步分支出依赖于该决策的后续决策。

按照 轮次(rounds) 推进这棵树。

所谓 前沿(frontier),是指所有“其前置条件已经确定”的决策,也就是: 你现在已经可以提出、并且不需要猜测尚未获得答案的信息的问题。

在每一轮中,一次性提出当前前沿上的所有问题:

  • 为每个问题编号;
  • 同时给出你推荐的答案。

然后等待用户回答,再进入下一轮。

每个问题应使用如下格式:

❓ Q1 - <问题标题>:<问题正文,可以包含多段内容,也可以提供多个选项>

➡️ <你的推荐答案>

用户每完成一轮回答,都会重新塑造这棵决策树:

已经确定的决策会推动前沿继续向外扩展,并解锁那些依赖于这些决策的问题。

重新计算当前前沿,然后提出下一轮问题。

如果某个问题的答案依赖于“本轮中另一个尚未回答的问题”,那么这个问题应该放到 后续轮次,而不是在当前轮次中一起提出。

查找 事实(facts) 是你的工作,而不是用户的工作。

当某个前沿问题需要从当前环境中获取事实,例如:

  • 文件系统;
  • 工具;
  • 代码仓库;
  • 运行环境;
  • 其他可查询的信息;

应该派遣子 Agent 去查找这些事实,而不是向用户询问那些你自己能够查到的信息。

不要因为事实查询而阻塞整个访谈流程。

一个正在执行中的探索任务,可以视为一个“尚未解决的前置条件”。

因此:

  • 只有依赖这个探索结果的后续问题需要等待;
  • 当前前沿中其他不依赖该结果的问题,仍然应该立即向用户提出。

决策(decisions)属于用户。

每一个真正需要做选择的决策,都应该明确交给用户回答,并等待用户作出选择。

当 前沿为空 时,本次会话结束:

  • 决策树的所有分支都已经被访问;
  • 不再存在尚未讨论的问题;
  • 不再存在任何被默认接受但没有明确确认的假设。

在用户确认双方已经形成共同理解之前,不要开始执行这个计划或决策。

RollRollRoll/agent-toolkit/tree/main/skills/grilling commit 05061f6dd7

Frequently asked questions

npx skillmds@latest add rollrollroll/grilling