RightProblem 是做什么的?
找到真正的问题,做出当下最有价值的下一步行动。
将用户预期的结果作为方向,而非承诺一次调用就能完成一个长期目标。将当前选定的工作问题视为在现有证据和约束下的最佳假设。进行足够深入的推理以做出正确选择,同时保持用户体验的简洁性。
何时使用
当一个问题被不同的表述方式可能会实质性地改变工作内容或提高实现用户预期结果的可能性时,使用此技能。典型信号包括:
- 一个伪装成任务的解决方案:“我应该做 X 吗?”
- 在真正障碍尚未确定之前,就提出的狭窄战术或实现请求
- 在没有证据的情况下提出的假定原因
- 选择被人为限制为用户指定的选项
- 反复努力却没有实质性进展
- 一个开放的、尚无法预见完整路径的目标
- 一个决策被未经检验的假设、风险、激励或瓶颈所主导
只有在重新定义问题可能实质性改善结果时,才应用完整方法。正常执行直接的事实性请求和结构良好的执行任务。当该技能被显式调用时,首先评估原始的问题表述是否已经是最有用的。
方法
1. 还原预期结果和交付契约
将输入分离为以下几部分:
- 用户最终想要的结果以及相关的时间范围
- 什么可观察的结果算作当前请求的成功
- 请求的工作:答案、解释、推荐、决策、诊断、计划、研究、创造、变更或其他执行
- 已知的事实和可用证据
- 仍不确定的推论
- 重要的未知信息
- 真实的约束和授权边界
- 关于原因或后果的假设
- 提议的解决方案或偏好的选项
- 当前被请求的即时行动或决策
内部提问:
如果字面请求被完美完成,用户希望现实世界中哪方面的状况会因此变得更好?
将预期结果与代理指标、战术、度量、惯例或借用来的期望区分开来。尊重用户明确选择的目标和价值观。保留交付契约:一个实现请求的结果仍然是实现,一个推荐请求的结果仍然是推荐。
2. 确定工作的形态
区分两种广泛的情况,但不要将每一个案例都强行贴标签:
- 有界工作: 请求的结果可以在现有上下文、工具和授权下完成并验证。解决它并验证验收条件。
- 开放或自适应工作: 目标是长期的、动态的、依赖于价值的,或者过于不确定以至于无法预知完整路径。识别当前的瓶颈、决定性的不确定性或信息量最大的安全行动,并将其推进到一个有用的检查点。
当前的一个工作问题是本次调用的焦点,而不是声称它是唯一的问题或解决它就能完成用户的整个目标。这个焦点可能需要几个相互依赖的步骤或子问题来产生有用的进展。
3. 仅在必要时澄清
将推断出的目标和价值观视为不确定的。只有在合理解释会导致实质不同的工作,且错误选择的代价高昂、难以逆转或可能使结果无效的情况下,才提出一个简洁的澄清问题。
当确实需要澄清时,在当前轮次返回该唯一的阻碍性问题,并在用户回答后继续工作流程。对于非关键性的差距,陈述一个合理的假设并继续。只要所需信息可以通过提供的上下文、系统、文件、数据、来源或工具获得,就直接进行调查。
4. 重新开放问题空间
将以下各项视为假设而非约束:
- 请求的字面措辞
- 怀疑的原因
- 提议的解决方案
- 假设的选项集
- 问题被描述的层级
- 隐含的步骤顺序
保留预期结果、证据、真实约束、交付契约和授权边界。考虑有用的问题是否存在于目标、系统、瓶颈、原因、决策、干预、实验或实现的层级。向上移动并不自动更好;只有在这样做能够改变工作或结果时才改变层级。
对于每个非平凡的重构,阅读 references/lenses.md。从不同系列中选择几个相关的视角,并内部生成一个多样化的集合——通常是 5–15 个——真正相互竞争的表述。保持搜索强烈,同时当额外的表述不再揭示与决策相关的替代方案时停止。
每个候选方案应识别出:
- 当前需要解决什么
- 什么证据会支持或削弱该表述
- 什么答案、决策、干预、实验或完成的操作能够创造有用的进展
当用户提出一个解决方案时,包括一个挑战它的表述,以及另一个给它公平机会胜出的表述。拒绝那些仅仅转述请求、假设未经支持的诊断、过于模糊无法行动、违反交付契约、超出授权范围、或未触及当前障碍的候选方案。
5. 通过目标杠杆选择当前的工作问题
选择那个其解决最能提高从当前状态实现用户预期结果概率的表述。目标杠杆支配所有其他标准。 在以下方面评估严肃的候选方案:
- 因果重要性: 该因素对结果的影响程度
- 决策相关信息增益: 合理的发现能在多大程度上改变行动
- 根源性: 它是否触及原因或约束性瓶颈,而非症状
- 进展价值: 解决它能在多大程度上推进当前请求或解锁后续工作
- 紧迫性和不可逆性: 延迟或错误行动是否会造成不成比例的代价
- 可行性: 它能否通过合理的努力、可用证据和允许的行动来解决
- 适应性: 结果或行动是否会提供反馈以改善下一个决策
在最强的几个表述之间运行一个反事实锦标赛:
- 如果这个被解决了,预期结果的可能性会增加多少?
- 如果改为完成字面请求,当前的障碍是否依然存在?
- 合理的发现是否会导致有意义的行动差异?
- 这个是否针对当前限制因素或决定性未知,而不是一个后续问题?
- 它是否足够具体以至于现在就可以推进,并且在范围之内?
- 如果这个表述是错的,行动是否会在可接受的代价下揭示这一点?
应用最终测试:
根据目前已知的信息,哪一项工作能在本次调用中创造最有价值的进展?
将其选为当前的工作问题。对于狭窄的技术请求,只有当该关切改变了技术选择时,才向上移动到产品、业务或系统的关切。否则保持技术性工作,并在适当的层面解决它。
6. 行动,检查结果,并更新
从重构继续到请求的工作:
- 回答或解释: 回答转换后的问题并支持结论。
- 推荐或决策: 分析决定性的权衡,并给出推荐或决策规则。
- 诊断: 检查证据,识别最受支持的原因,并尽可能验证它。
- 计划: 制定一个针对当前约束或不确定性的可执行计划。
- 研究: 收集和综合当前决策所需的信息。
- 创建或变更: 制作范围内的人工制品或进行更改,然后验证结果。
- 开放式目标: 选择一个能推进目标并改善下一个判断的有用行动、实验或决策。
在每次实质性结果之后,检查它是否支持当前的表述、暴露了不同的瓶颈、解决了请求,或者使另一个步骤明显更优。在同一调用中继续,只要下一步是合理的、可执行的、在范围内的,并且不依赖于不可用的外部反馈或仅限用户的价值选择。
对于开放或高度不确定的工作,优先选择可逆的、保持下行风险可承受的、并产生决策相关证据的行动。不要用无休止的分析来代替可负担的测试。
如果用户明确只请求当前的工作问题或问题表述,则提供该表述和简洁的 rationale。否则,在停止之前产生最有价值的答案或行动。
7. 在一个有用的检查点停止
当满足以下条件之一时,结束本次调用:
- 有界请求已完成并且其验收条件已检查
- 当前最有价值的行动或决策已完成
- 下一个判断依赖于尚未存在的现实世界反馈
- 下一步需要一个只有用户能提供的价值选择或信息
- 下一步行动超出了当前的授权或能力
- 进一步的调查不太可能改变行动到足以证明其成本合理
- 一个安全、可逆的下一步行动已准备好,并且稍后行动比现在继续分析更有价值
在开放式工作的检查点,为用户留下目前产生的结果或行动,并在必要时,留下应触发的重新评估的证据或事件。不要在没有证据的情况下暗示用户的长期目标已经完成。
8. 简洁回应
以答案、结果、推荐、诊断、计划或完成的变更作为开头。默认情况下,只展示:
- 结论或行动
- 使用或信任它所需的最少推理
- 只有在可能改变用户应如何行动时,才展示一个关键的不确定性或重新评估触发点
当一个实质性的重构有助于用户评估结果时,简要陈述当前的工作问题,然后立即进入答案或行动。遵循用户请求的格式。除非用户要求适当的解释,否则将候选集、评分、框架名称和模型比较保留在内部。
防护栏
- 在当前调用中做出最有价值的进展;不要承诺对长期结果的控制。
- 保留用户请求的交付类型、明确目标、约束和授权边界。
- 将当前的工作问题、提议的解决方案、假定的原因和选项集视为可修改的假设。
- 使用一个工作问题作为当前的焦点,同时允许多个必要的步骤来解决它。
- 只有当这样做能够改善实际的选择或结果时,才改变抽象层次。
- 当原始表述已经瞄准了最高杠杆的工作时,优先使用它。
- 保持内部推理严谨,默认响应易于使用。
当需要校准,或者有用的转换与无益的重新引导之间的界限不明确时,阅读 references/examples.md。
成功标准
对于有界工作,请求的结果已完成并经过检查。对于开放工作,Agent 已做出当前可用且最有价值的有理有据的进展,并在一个有用的检查点停止,避免了声称比证据支持的更多的确定性或完成度。
用户应该感觉:
Agent 理解了我试图完成什么,处理了当前最重要的事情,并推动了局面向前发展。