用途:基于《软件设计的哲学》中“设计两个版本”的理念,为模块生成多个截然不同的接口设计并加以比较,避免第一个想法就定稿。
主要能力:先收集需求(模块解决什么问题、调用者是谁、关键操作、约束、内部与暴露的边界),再用 Task 工具并行启动 3 个以上子 agent,每个产出不同方案。可为各 agent 分配不同约束,例如最少方法数、最大化灵活性、针对最常见场景优化、借鉴特定范式或库。每个方案输出接口签名、使用示例、隐藏的内部实现和权衡取舍。
使用方式:依次展示各设计,让用户先消化再比较;随后从接口简洁性、通用与专用、实现效率、深度、正确使用与误用的容易程度等维度,用散文讨论权衡,突出分歧最大处;最后综合多个方案的洞见,询问哪个最适合主要使用场景、是否有值得融入的元素。
适用场景:设计 API、探索接口选项、比较模块形态、需要“设计两个版本”时。
限制与反模式:不要让子 agent 产生相似设计,必须强制截然不同;不要跳过比较,价值在于对比;不要实现,这纯粹关于接口形态;不要基于实现工作量来评估。