Appearance
复杂系统任务拆解方法
背景来自对助理 agent 后续优化方向的复盘。
在面对复杂需求时,我并没有始终严格按照既定的 A / B / C 方式推进,因为ABC本质上不能承载复杂任务的全流程推进,和稳定记忆
因此,我希望将复杂任务推进过程中的关键节点进一步沉淀为目标明确的 skill,并通过人为动态编排来提升整体执行质量。
当流程逐步稳定后,后续还可以继续抽象出 D 类复杂任务推进流程。
同时,复杂任务通常具有长周期、跨阶段依赖强、上下文连续性要求高等特征,因此在 state 层也需要有更完整的设计。
1. 从用户视角建立系统认知
这一阶段的核心目标,不是立即进入实现,而是先建立对业务领域的整体理解,并从最终用户的角度界定系统边界、交互方式与核心约束。
在这一阶段,研发更多承担辅助理解与技术可行性判断的职责;真正的重点,是把“系统在用户眼中应该如何工作”表达清楚。
1.1 构建领域知识体系
基于原始需求素材,深入调研并梳理必要的领域知识,形成标准化的领域认知模型。
核心目标包括:
- 产出标准化的领域类图,明确核心实体及其关系
- 建立团队协作中的公共语义基础,至少保证参与者对核心概念有一致理解
- 识别领域规则、术语边界和约束条件
- 提前进行技术可行性调研,避免后续推进中暴露明显的实现瓶颈
这一阶段的重点,不是追求设计细节,而是保证团队对“系统所处领域”形成基本一致的理解框架。
1.2 绘制业务全景序列图
在具备基础领域认知后,需要从业务流程出发,绘制包含系统边界的顶层业务序列图。
在这一视角下,目标系统仍然被视为一个黑盒,关注重点包括:
- 系统与外部参与者(Actor)的交互过程
- 业务流转中系统边界的识别
- 外部交互点与交互规则的梳理
- 从业务序列图中提炼出用户视角下的系统用例
- 明确系统对外提供的交互契约
这一阶段的目的,是把“用户如何与系统发生关系”表达清楚,为后续用例分析和黑盒拆解建立输入。
1.3 细化交互规则与表现层
针对每一个系统用例,进一步补足用户可感知的交互规则与表现形式,使用户视角真正闭环。
重点包括:
- 前置条件
- 后置条件
- 异常处理流程
- 用户可感知的反馈机制
- 必要时补充 UI 原型或交互草图
- 明确顶层交互约束,例如平台限制、使用门槛、交互原则等
这一阶段的产出,不是技术实现方案,而是“系统对用户应当如何呈现与响应”的清晰定义。
2. 从系统黑盒进入分析阶段
这一阶段的目标,是打破系统的黑盒状态,将用户视角下的高层用例转化为可分析、可推演、可验证的内部逻辑模型。
从这一阶段开始,研发成为核心参与角色,因为重点已经从“系统应该做什么”进入“系统内部如何完成”。
2.1 用例场景化与实例化
将抽象的用户用例转化为可分析的具体场景(Case),作为系统内部分析的起点。
需要完成的工作包括:
- 为每个用例构造典型 Case
- 为每个 Case 绘制系统内部序列图
- 还原真实的数据流转路径
- 明确对象之间的职责分配与调用关系
这里的 Case,本质上是对业务序列图中“某一次具体交互”的实例化。
这一层的意义在于把“用户想做什么”,推进到“系统内部究竟发生了什么”。
2.2 逐层剥离内部逻辑并标准化接口
在系统内部序列图的基础上,持续对逻辑进行逐层拆解。
当拆解过程中识别出以下对象时:
- 其他子系统
- 外部服务
- 第三方平台
- 团队责任边界之外的黑盒
就需要将其交互逻辑单独剥离出来分析,并标准化为 API 接口契约。
这一过程应当递归进行,直到达到以下状态:
- 责任边界内的黑盒被充分拆解
- 每个黑盒系统都被分解为可理解的协作单元
- 每个边界的输入、输出、约束与责任都被明确表达
这里的关键不在于“无限细拆”,而在于拆解到当前责任边界内足够可理解、可设计、可落地。
2.3 产出核心分析模型
在完成用例场景化与逐层拆解后,需要将结果沉淀为分析阶段的核心模型。
关键产物包括:
- 分析序列图
- 分析类图
- 关键业务的分析状态机图
这些模型承担两个核心作用:
- 表达系统的静态结构
- 表达系统的动态行为
它们不是实现细节的堆砌,而是对系统本质逻辑的抽象,是需求与设计之间的重要桥梁。
3. 从分析模型进入设计阶段
这一阶段的目标,是把分析层面的逻辑正确性继续推进到工程层面的可实现性。
分析模型回答“系统本质上如何工作”,设计模型回答“系统在当前技术栈和工程约束下应该如何实现”。
3.1 分析模型向设计模型映射
以分析阶段产出的序列图、类图和状态机图为输入,结合既定的技术栈、代码规范、工程约束与架构原则,映射为最终设计模型。 实践下来这一步也可以省略,直接拿着分析类图和静态架构约束也能生成比较规范可靠的代码。
这一过程中需要补足:
- 具体算法细节
- 数据结构设计
- 持久化结构设计
- 模块边界划分
- 设计模式应用
- 工程实现约束
最终形成的设计产物通常包括:
- 静态架构约束(例如代码分层、模块边界、编码规范、实现军规等)
- 设计类图(Design Class Diagram)
- 设计序列图(Design Sequence Diagram)
- 设计状态机图(Design State Machine)
这一阶段的重点,不只是“把分析图换个名字”,而是把分析模型中未定型的实现细节继续收敛到工程可执行的层面。
3.2 自动化映射与代码落地
在理想状态下,可以基于模型驱动架构(MDA)思想,或借助特定代码生成工具,将规范化的设计模型自动映射为初始代码框架。
这一方向的价值主要体现在:
- 降低人工编码偏差
- 提高设计与实现的一致性
- 提升复杂系统开发效率
- 为 agent 驱动的工程协作提供稳定的中间层
如果前面的分析与设计模型足够规范,那么代码生成就不再只是“辅助功能”,而可能成为复杂任务推进中的关键加速器。

4. 面向 agent 编排的进一步抽象
当复杂任务推进链路逐渐清晰后,就需要进一步考虑如何将这一过程沉淀为可复用的能力单元,并通过编排机制支撑长期复杂任务的持续推进。
4.1 将关键节点沉淀为 skill
一个清晰的方向是,把复杂任务推进中的每个关键节点抽象为目标明确的 skill。
理想状态下,每个 skill 都应尽量显式定义:
- 输入
- 输出
- 完成标准
- 依赖条件
- 适用阶段
这样,复杂任务的推进过程就不再只是临时性人工处理,而可以被拆解为多个可复用、可编排的能力模块。

4.2 通过动态编排组织复杂任务推进
在 skill 被逐步沉淀后,可以通过人为动态编排,将复杂任务分阶段推进。
核心思路包括:
- 根据任务所处阶段选择合适 skill
- 根据中间产物动态决定后续路径
- 将复杂任务拆解为若干可控制的阶段性目标
- 在流程逐渐稳定后,再进一步抽象出更高层的复杂任务流程(例如后续的 D 类流程)
这意味着复杂任务不再只是“顺序执行一串步骤”,而是逐步演化为可组合、可裁剪、可演进的推进体系。
4.3 复杂任务中的 state 与上下文承接
复杂任务通常具有以下特点:
- 生命周期长
- 中间状态多
- 跨阶段依赖强
- 对上下文连续性要求高
因此,state 层的设计不能只停留在“保存结果”,还需要重点关注以下内容:
- 当前任务所处阶段
- 已完成节点
- 尚未解决的问题
- 关键决策记录
- 中间产物索引
- 可恢复的上下文记忆
也就是说,复杂任务的推进不仅是流程编排问题,同时也是状态管理与记忆承接问题。
只有把这部分设计清楚,复杂任务才具备真正长期、稳定推进的可能。

5. 小结
如果把复杂系统任务推进视为一条完整链路,那么至少包括三个逐层递进的阶段:
- 从用户视角建立系统认知
- 从黑盒拆解进入分析建模
- 从分析产物映射到设计与代码落地
而对于 agent 系统来说,这条链路还需要进一步演化为:
- 可复用的 skill
- 可动态编排的流程
- 可持续承接的 state 与记忆系统
只有这样,复杂任务的推进才不只是一次性的人工处理,而能逐步沉淀为一套可复用、可扩展、可演进的方法体系。