Self-Ask 的核心是递归问题分解——将一个复杂问题拆解为一系列可以被直接回答的子问题,每个子问题通过外部工具(主要是搜索引擎)获取答案,最后将所有中间答案聚合为最终回复。ReAct 的核心则是推理-行动循环——在每一步中根据当前状态决定做什么,执行后根据结果调整下一步策略。
维度 | Self-Ask | ReAct |
|---|---|---|
核心定位 | 事实拆解型推理 | 任务执行型交互 |
推理逻辑 | 先拆分子问题,查询后再作答 | 思考-行动-观察循环执行 |
工具依赖 | 主要依赖搜索类工具 | 支持全类型工具 |
灵活性 | 较低,流程标准化 | 较高,动态适应各类场景 |
典型场景 | 多跳问答、事实核查 | 智能客服、工具调用、实时交互 |
简而言之,Self-Ask 适合路径可预测的事实类问题,ReAct 适合需要动态调整的交互式任务。
Self-Ask 的输出结构是"Follow-up Question → Intermediate Answer"的嵌套对,整个推理过程更像是一个预定义的分解树。ReAct 的输出结构是"Thought → Action → Observation"的线性序列,每一步都依赖于上一步的实际结果,具有更强的适应性。