Skip to content
On this page

复杂系统任务拆解方法

背景来自对助理 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 产出核心分析模型

在完成用例场景化与逐层拆解后,需要将结果沉淀为分析阶段的核心模型。

关键产物包括:

  • 分析序列图
  • 分析类图
  • 关键业务的分析状态机图

这些模型承担两个核心作用:

  1. 表达系统的静态结构
  2. 表达系统的动态行为

它们不是实现细节的堆砌,而是对系统本质逻辑的抽象,是需求与设计之间的重要桥梁。


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. 小结

如果把复杂系统任务推进视为一条完整链路,那么至少包括三个逐层递进的阶段:

  1. 从用户视角建立系统认知
  2. 从黑盒拆解进入分析建模
  3. 从分析产物映射到设计与代码落地

而对于 agent 系统来说,这条链路还需要进一步演化为:

  • 可复用的 skill
  • 可动态编排的流程
  • 可持续承接的 state 与记忆系统

只有这样,复杂任务的推进才不只是一次性的人工处理,而能逐步沉淀为一套可复用、可扩展、可演进的方法体系。