当前位置: 首页 > news >正文

AI渐进编程之五:给 Agent 穿上动力装甲——SIADOS 状态转移方法

前一篇我们讲的是状态机怎么描述转移。
这一篇继续往前走,重点不在“状态怎么摆”,而在一轮任务推进里,状态怎么更新,系统怎么靠反馈继续往前走

为了说明这个过程,本书把一轮任务拆成六个部分,称为SIADOS

  • S:State
  • I:Input
  • A:Analysis
  • D:Driver
  • O:Output
  • S’:State Update

这六步不是为了显得复杂,而是为了把 AI 编程从“一次性输出”变成“有反馈的持续推进”。


1. 为什么要从一次输出,变成 SIADOS?

如果只有一次输出,系统最多只能回答“这一轮做了什么”。
但真实任务不是一轮结束的,尤其是这些情况:

  • 论文要反复修改
  • 代码要多轮修复
  • 状态要持续维护
  • 失败要留下轨迹
  • 下一轮要基于上一轮继续推进

这时,真正重要的就不是“这一轮写了什么”,而是:

  • 这一轮之前系统处于什么状态
  • 这一轮输入了什么
  • 这一轮分析出了什么
  • 这一轮执行了什么
  • 这一轮输出了什么
  • 这一轮之后状态变成了什么

这就是 SIADOS 的意义。


2. SIADOS 里的六步分别做什么?

2.1 S:State

State 不是聊天记录,而是当前项目已经确认的事实。

比如:

  • 当前任务是什么
  • 当前允许修改的范围是什么
  • 已知问题有哪些
  • 上一轮结果是什么

2.2 I:Input

Input 是这一轮新的输入。

它可以来自:

  • 人类的新要求
  • 上一轮的验证结果
  • 当前任务的补充信息
  • 新发现的约束或问题

2.3 A:Analysis

Analysis 是分析任务边界和风险。

这一轮能不能做、该不该做、要不要缩小范围,通常都在这一层判断。

2.4 D:Driver

Driver 是真正执行动作的部分。

它负责把分析结果变成修改、调用或其他受控动作。

2.5 O:Output

Output 是这一轮产生的结果。

可能是:

  • 文本修改
  • 代码 diff
  • 验证结果
  • 问题记录
  • 新状态的候选内容

2.6 S’:State Update

State Update 是最关键的一步之一。

它把这一轮真正有用的事实写回状态,供下一轮继续使用。


3. 为什么状态更新比一次性输出更重要?

因为 AI 编程真正难的地方,不是开始做事,而是:

  • 做完之后,下一轮怎么接着做
  • 失败之后,下一轮怎么避免重复失败
  • 状态变化之后,系统怎么知道自己有没有在往前走

如果没有状态更新,SIADOS 就只是一次普通输出。
但有了状态更新,SIADOS 才变成一个真正的循环。


4. 为什么失败也必须写回状态?

很多人会下意识觉得,失败就失败了,重来就行。
但在 AI 编程里,这样做很容易让系统一直重复同一种错。

所以失败不能只停留在“结果不对”,
还要进入状态,变成可复用的反馈。

比如:

  • 这次为什么失败
  • 哪些路径已经试过
  • 哪些动作已经证明无效
  • 下一轮不要再走哪条路

这就是为什么本书一直强调:

失败不是消失,而是要被保存下来。


5. 什么叫收敛?

收敛不是一个很玄的词。
在这本书里,它的意思其实很朴素:

系统在多轮运行后,不再原地摆动,而是逐步接近一个可接受结果。

也就是说,收敛至少要满足三个迹象:

  • 修改范围越来越清楚
  • 失败路径越来越少
  • 状态越来越稳定

如果系统每一轮都在换方向、换文件、换理由,那就不是收敛,
而是摆动。


6. 为什么循环里的反馈比一次性输出更重要?

因为一次性输出只能说明“这一轮给出了什么”,
循环里的反馈才能说明“系统有没有越走越对”。

举个很简单的例子:

只看一次输出

你可能看到 AI 改了文本,看起来也通顺,似乎没问题。

看循环反馈

你会继续观察:

  • 它是不是只改了允许范围
  • 它有没有把问题写回状态
  • 下一轮是不是还在重复同样的错误
  • 失败后它有没有修正方向

这就是循环的价值。
它让 AI 不只是“能说”,而是“能在反馈里修正自己”。


7. 状态更新和收敛之间是什么关系?

这两者是连在一起的。

状态更新做对了

下一轮就能拿到正确的输入。

下一轮输入正确了

系统才有机会继续往收敛方向走。

如果状态更新错了

下一轮就会在错误基础上继续跑,最后越来越偏。

所以,状态更新不是附属动作,
它本身就是收敛的一部分。


8. 一个最小的 SIADOS 例子

可以先这样理解:

state:current_task:revise Introductionscope:[Introduction]issues:[claim too strong]input:request:reduce claim strengthconstraint:do not touch Abstract / Conclusionanalysis:scope_ok:truerisk:cross_section_driftaction_plan:revise Introduction onlydriver:action:apply_patchoutput:changed_sections:[Introduction]validation:pendingnotes:[claim weakened,no scope violation]state_update:current_task:revise Introductionscope:[Introduction]issues:[abstract may need later review]last_result:local refinement done

这里的重点不是 YAML,
而是它表达了一件很具体的事:

  • 这一轮不是结束
  • 这一轮只是推进了一步
  • 下一轮可以基于更新后的状态继续做

9. SIADOS 最容易犯的错

9.1 只记结果,不记原因

这样下一轮还是不知道为什么会失败。

9.2 只记失败,不记可继续的部分

这样系统会把自己卡死。

9.3 状态太重

每轮都写一堆无用信息,最后更新成本太高,没人愿意维护。

所以状态更新要控制粒度:
只保留能影响下一轮判断的内容。

10. SIADOS 和状态机、Harness 的关系

这一点要一起看。

Harness 做什么?

  • 限制动作
  • 检查结果
  • 执行验证
  • 约束下一步

状态机做什么?

  • 定义阶段之间怎么转
  • 定义什么时候能进入下一步
  • 定义失败后该去哪里
  • 定义哪些状态之间不能乱跳

SIADOS 做什么?

  • 把一轮任务拆成可执行的六步
  • 把输入、分析、执行、输出和状态更新串起来
  • 让下一轮真的能基于上一轮继续

可以这样理解:

  • Harness 是执行层的控制器
  • 状态机是控制层的骨架
  • SIADOS 是一轮推进的工作流

没有状态机,Harness 容易变成一堆临时规则。
没有 Harness,状态机又只是纸面结构,落不到实际动作上。
没有 SIADOS,系统就没有一个清楚的单轮推进框架。

11. 本章小结

这一章想讲清楚的核心是:

AI 编程不是一次性输出,而是一轮一轮在 SIADOS 里推进。

状态更新的意义,不是把历史堆起来,
而是把下一轮真正需要的事实写回去;
收敛的意义,不是每一轮都完全正确,
而是系统能在反馈中越来越接近可接受结果。

下一章,我会继续讲:为什么状态更新必须和验证结合起来,以及为什么“看起来对”不等于“真的对”。

http://www.gsyq.cn/news/1610699.html

相关文章:

  • 告别云服务器!用旧手机+Debian+AidLux,5分钟搭建你的移动AI开发环境
  • Claude Code从入门到精通(3)-settings.json 与 CLAUDE.md
  • XCOM 2模组管理器终极指南:如何用AML告别卡顿与冲突
  • Platinum-MD:如何让20年前的MiniDisc设备在现代电脑上重获新生?
  • JDBC基础(2)
  • 想提升用户体验?快把HTML5视频播放器代码嵌入你的网站
  • 抖音视频下载神器:轻松保存无水印高清内容
  • PC大型3A 角色扮演游戏(RPG)《怪物猎人物语3:命运双龙》网盘下载 免BIOS 中文版
  • 阿里云图像搜索完整对接指南:从开通到API/SDK深度集成
  • G-Helper:华硕笔记本的轻量级控制中心,三步告别臃肿系统
  • Mac 新手必装工具清单:从效率、安全到清理维护的完整指南(2026 更新版)
  • LabVIEW VISA异步I/O提升吞吐量
  • puzzle(1131)指路罗马
  • 3分钟彻底解决Windows和Office激活难题:KMS_VL_ALL_AIO完整操作指南
  • YOLO26N 姿态估计 RKNN 部署:RK3588 NPU 实战
  • 扣子【Coze】实战:别再花钱买绘本了!用扣子一键生成,孩子天天要看新故事
  • 基于 Simulink 的工业离心机变频调速系统 S-Ramp(S型加减速)曲线规划仿真实战教程。
  • JMeter 实现:上接口失败则不执行下一个接口
  • JavaScript的DOM操作基础
  • docker python images Docker Python镜像别乱拉!容器和镜像傻傻分不清,你还在踩坑?
  • YOLO26N 姿态估计 TensorRT 部署:Jetson 实时推理
  • 经典 CNN 网络 VGG
  • 配置外置与敏感隔离:基于 Django-environ 的多环境配置管理策略
  • 性能测试进阶:从压测工具到容量规划的系统工程实践
  • 学 Simulink — 航空航天 270 V DC 高压直流电源变换器的短路保护仿真
  • 二升三年级暑假特色作业(pdf图文版)
  • 【论文阅读笔记10】小样本充电数据驱动的电池寿命预测——双流ViT与ESA
  • DeepSeek 开始摇人,有点猛啊。
  • Magpie终极指南:15种超分辨率算法重塑Windows窗口放大体验
  • YOLO26N 姿态估计 INT8 量化:低算力设备极致优化