理想的AI工作流

AI、Agent、Skill、workflow、未来

Views:  times Updated on July 2, 2026 Posted by elmagnifico on July 2, 2026

Foreword

上一篇那套 Agent 工作流其实并不完善,它只是当下妥协出来的一套流程——文档先行、人卡在几个关口审一审、task.md 记着进度。说白了,是拿「流程纪律」硬填 Agent 接不进现有工程链路的坑。

那理想的工作流长啥样?光有纪律不够,还得往下再走一层:把调试、测试、联调都改造成 Agent 能直接上手的样子,人退到只管设计和审核。

一个够复杂的例子

先摆个够复杂的项目当靶子——能把它捋顺,剩下大部分工程场景也就差不多了:

嵌入式软件 A  基于 硬件 B
算法 C        服务于 PC 软件 D 和 PC 软件 E
PC 软件 D     基于通信协议 与嵌入式软件 A 交互
PC 软件 E     基于特定协议文件 与软件 D 交互
Web 软件 F    基于网络协议 与软件 D、E 交互
安卓端 G      基于网络协议 与软件 D 交互
iOS 端 H      基于网络协议 与软件 D 交互

这里先不考虑额外的自动化测试工程(就是那种独立于业务架构、单独起一套的测试工程)。我的想法是:测试能力最好长在每个组件自己身上,而不是另起一座测试孤岛。

flowchart LR
  B["硬件 B"] --> A["嵌入式 A"]
  A <-->|通信协议| D["PC 软件 D"]
  C["算法 C"] --> D
  C --> E["PC 软件 E"]
  D <-->|协议文件| E
  D <-->|网络协议| F["Web F"]
  D <-->|网络协议| G["安卓 G"]
  D <-->|网络协议| H["iOS H"]
  E <-->|网络协议| F

  classDef hw fill:#f8cecc,stroke:#b85450
  classDef emb fill:#dae8fc,stroke:#6c8ebf
  classDef pc fill:#d5e8d4,stroke:#82b366
  classDef net fill:#fff2cc,stroke:#d6b656
  class B hw
  class A emb
  class D,E,C pc
  class F,G,H net

这张图里,每条箭头都是 Agent 联调时要跨的边界。理想情况下,边界两头都该露出「机器能读、机器能调」的接口;可现实里呢,很多边界就只有个 GUI、一台示波器、或者一段得靠人眼看的波形——Agent 走到这儿就断了,再往前一步都迈不动。

边界 理想态里 Agent 能用的接口 现实里常见的断点
A ↔ B 仿真器 / 真机 MCP、寄存器 dump、固件烧录 CLI 只有 JTAG 调试器,外加人眼看灯
D ↔ A 协议帧日志、回放脚本、mock 设备 只有串口助手,肉眼对十六进制
D ↔ E 协议文件 + 结构化 diff 二进制专有格式,连 schema 都没有
D ↔ F/G/H HTTP/gRPC 契约 + 集成测试 API 一堆 UI 点击流,没有 headless 入口
算法 C 固定输入输出向量、基准测试 CLI 只有 MATLAB 图,没法量化断言

一句话:上篇解决的是「文档和代码怎么对上」,这篇要解决的是「Agent 到底摸不摸得到这些边」。

人把路铺好,Agent 才能跑闭环

理想的 Agent 工作流,我觉得能一句话概括:

该人干的人干好——定方向、划边界、把物理和权限上的路打通;编码、联调、测试丢给 Agent;最后审核还是人来拍板。

这么一来,工程师的身份其实变了:从「自己埋头写代码」变成「设计系统 + 管 Agent」。不是说细节就不管了,而是把细节约束提前写进一个 Agent 能读、能跑、还能自己判断对错的环境里。

假如上下文真的无限

先做个假设:要是 Agent 上下文接近无限,不会「聊着聊着就忘了 S8 之前不能写代码」,那工作流就能尽量照着人类团队那套来搭——产品提需求、开发写实现、测试验结果、负责人拍板,只不过每个岗位都能换成 Agent,人只挑几步插手。

但有个坑特别容易忽略:上下文无限 ≠ Agent 就可靠了。

  • 会话一长,早期定的规矩照样会被慢慢带跑偏,外部事实源(task.md、wolai 定稿)还是省不掉
  • 跨会话没有「责任连续性」,得靠文档和关口一棒一棒接
  • 「记得住」不等于「判断对」——复核、追溯表该做还得做

所以哪怕上下文不再是瓶颈,流程纪律和那些能被观测的边界,依旧是硬需求;区别只是你能腾出更多精力,去搞「链路打通」这件正事。

人该干啥

理想态里,人确实不用一行行去写实现了。但下面这几件事,短期内真不好甩给 Agent:

人留着的活 为啥甩不掉
定方向、划范围 「要做啥」得人说了算,不然 Agent 分分钟给你 scope creep
划协议和模块边界 A~H 之间谁跟谁说话、合同是啥,这得架构师定
打通物理世界 真机、夹具、烧录器、各种权限——Agent 没有手,够不着
审核拍板 安全、业务意图、能不能交给客户,这些 AI 不背锅
把工程改造成 Agent 友好 加 CLI、加结构化日志、加可回放测试——这是落到人头上的新「搬砖」

最后一条最关键:理想工作流不是干等 Agent 变强就行,而是人得主动把环境收拾成一个 Agent 能上岗干活的车间

Agent 的壁垒

要是真打算一切围着 Agent 转,那软件之间的交互、调试、测试都得为它服务。可现在的工具链基本是给人、给业务用的,Agent 在不少环节根本插不进手。

1. 没有 CLI,也没有能下断言的输出

测试这一环,特别多是靠人眼判断的,要么软件压根没有命令行式的输入输出。这种工具 Agent 用不了,测试就又被踢回给人。上篇说过那句话:能编译通过 ≠ 能自测。

2. 图和文之间那道墙(原生 UI 尤其惨)

UI 的设计和实现之间,在非 Web 的场景下,几乎没有一门 Agent 能操作的「中间语言」——你想用代码或文字精确描述「这个控件偏了 2px」「这个动效不对劲」,太难了。Web 好歹还有 DOM 加截图兜底,桌面和移动端的原生 UI 就更吃亏。

3. 视频和图文之间,差距更大

这比静态图又高一层:时序、动画、音画同步……Agent 理解起来成本陡增。录屏加抽帧对比能缓解一点,但离「能下可靠断言」还差得远。这一层现阶段 Agent 基本进不来,只能等技术再往前走走。

4. 状态和时序这道坎

很多 bug 根本不在「某一帧画面」上,而是藏在时序、并发、中断、实时性里——协议莫名少了一帧、DMA 跟主循环抢资源、电机响应慢了 3ms。这类问题没有一张稳定的文本快照能截下来,Agent 拿不到「现场」,只能干等着人来一句「刚才好像卡了一下」。

Agent 友好

「为 Agent 改造」不能拍脑袋,我归了四条,拿来挨个对比够不够格:

可观测 — 状态能用文本或结构化数据吐出来(日志、dump、协议帧、指标)
可驱动 — 能用命令行 / API / 脚本触发,不靠鼠标点
可断言 — 结果能让程序判定对错,不只靠人眼,不凭感觉
可复现 — 同样的输入能稳定重放(硬件场景下就是能录能回放)

四条全占上,Agent 才可能在这个环节自己跑出闭环;缺一条,人就还得在那儿补位。

把 Agent 当员工

软硬件联调这块,得能模拟硬件,最好直接把真机接进流程——让 Agent 能直接调:烧录、读寄存器、发指令、读传感器,连硬件调试那条链路也接进来。

一句话:把 Agent 当个正常员工看待,人手里有啥工具,就得给它配上对应的接口。

以上述项目为例:

  • 好处:不必另起一套独立测试工程架构,协议联调、硬件逻辑、软件互动可以在同一条链路上闭环验证
  • 现状难点:硬件没有接入 Agent——没有「Agent 能发指令、读状态、判定硬件是否稳定」的链路打通。Agent 写完软件补丁,闭环断在真机这一侧,只能等人工测试一遍、口述结果
  • 理想态:Agent 完成编码和可自动化部分的测试;人只做设计评审、安全审核、以及 Agent 够不着的物理操作授权

这其实就是上篇「测试压力全压人身上」的极端版:越靠近物理世界,改造成本越高,可一旦打通,闭环带来的收益也越大。

多Agent融合

回到 A~H 那张图,真要并行干,基本就是一个组件开一个 Agent,各跑各的会话。那它们之间怎么对齐?靠的不是谁记着谁,而是协议文档当合同——边界上的协议、报文格式、接口契约都写死在文档里,改 A 的 Agent 和改 D 的 Agent 各自照着合同来。谁想动合同,就得回到人这儿重新评审。这跟上篇团队版里「多方 Agent + 协议文档联调」是一个意思,只是这里把它当成默认姿势。

还有个容易被忽略的点:Agent 既写代码又写测试,等于自己给自己发合格证。所以人审的时候,重点不光是看代码,更得看测试本身合不合理——断言够不够狠、边界有没有漏、是不是为了让用例「变绿」把条件写松了。测试用例的设计意图这一关,还得人来守。

改造成本

为 Agent 重做调试、测试链路,是实打实要砸进去的工程量,不是改几行 Skill 就完事的:

要砸的地方 举个例子 短期啥感受
协议可观测 D↔A 通信录包 + 文本回放 开发节奏变慢
原生 UI 可测 G/H 加 headless 或截图 diff 管线 得动客户端架构
硬件在环 真机 MCP、仿真器、安全互锁 要硬件团队配合
规范成文 MVVM、日志、目录约定写进 task.md 文档变厚

怎么取舍:小需求、一次性脚本,犯不上全链路改造,上篇那套妥协流程就够用了。但要是个长期维护的多端 + 嵌入式产品,那越早把边界上那四条判据补齐越划算——Agent 能扛的环节越多,人就越往「架构师 + 审核员」那个位置挪。

不是所有项目都得追理想态。关键是先搞清楚断点卡在哪,再决定是花钱打通链路,还是干脆让人补位。

理想工作流

把前面这些收回到例子上,理想态大概是这么转的:

  1. :定义各组件的职责和协议合同;把定稿沉淀到需求 / task.md;给 Agent 开通真机、网络、仓库的权限
  2. Agent(可以按组件各开一条会话):读合同 → 改 A/D/E… → 用 CLI/API 把自己这块测了 → 跨边界的就用录包 / mock / 集成脚本联调
  3. 人审核:协议变更、安全相关、UI 主观体验、真机实飞——关口不过就不合并
flowchart TB
  HUMAN["人:方向 / 边界 / 权限 / 审核"]:::human
  AGENT["Agent:编码 / 自测 / 联调脚本"]:::ai
  CHAIN["Agent 友好链路<br/>CLI · 日志 · 录包 · 真机 MCP"]:::chain
  PROD["A~H 各组件"]:::prod

  HUMAN -->|定契约| PROD
  HUMAN -->|打通| CHAIN
  CHAIN --> AGENT
  AGENT -->|可观测可驱动| PROD
  AGENT -->|阻塞 / 需拍板| HUMAN

  classDef human fill:#d5e8d4,stroke:#82b366,color:#333
  classDef ai fill:#dae8fc,stroke:#6c8ebf,color:#333
  classDef chain fill:#fff2cc,stroke:#d6b656,color:#333
  classDef prod fill:#f5f5f5,stroke:#999,color:#666

说到底,上篇拼的是文档纪律,这篇拼的是环境纪律。两样叠一块,才勉强够得着「Agent 写完就能交付、人只管设计和审核」那个理想。

Summary

上篇那套妥协流程,解决的是「别让 Agent 跑偏」;这篇想再往前一步,解决「别让 Agent 卡在链路外头」。几个结论:

  • 协议边界就是 Agent 的联调边界,每条边都得往「可观测、可驱动、可断言、可复现」上靠
  • 四道坎:没 CLI、图文、视频、时序——越往后越难啃,嵌入式真机是最硬那块骨头
  • 人的活儿变了:少写实现,多去划边界、打通物理渠道、改造环境、做审核
  • 上下文再大,也替不掉外部事实源和关口
  • 改造成本是真金白银,得按项目掂量——小需求用妥协流程,长期多端、嵌入式才值得砸链路下去

理想不是「Agent 啥都能干」,而是「该它闭环的地方,它真能闭上」;闭不上的,人就老老实实补位,别假装全自动。

往远了说,这事不光取决于 Agent 多聪明,更取决于整条工具链愿不愿意把「机器能用的接口」露出来——厂商给硬件、给软件配上 CLI 和 MCP,给调试器留个程序能调的口子。这一步迈出来之前,理想工作流就还只是「理想」。

Quote

人手里有啥工具,就得给 Agent 配上对应的接口——不然所谓工作流,只是换了个写代码的实习生,谈不上什么新工种。