当前位置: 首页 > 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.jsqmd.com/news/1098733/

相关文章:

  • 二、Prometheus 安装和配置
  • CAN一致性-容错测试--CAN_H与CAN_L短路容错性测试(bus off)
  • 【安卓程序】古诗500首卡片式-墨韵诗笺 · 部署与优化指南
  • 告别云服务器!用旧手机+Debian+AidLux,5分钟搭建你的移动AI开发环境
  • TVA在具身智能产业化体系的落地案例详解(2)
  • metaIPC2 on FreeRTOS: 开发实战指南 (BK7258/BK7259)
  • 为什么选择openeuler/skills?5大优势助力AI Agent开发者提升效率
  • 别再傻傻手敲了!Python一行try-except秒杀数字判断,爽到飞起
  • Python5个常用高阶函数:map、filter、sorted、reduce、zip
  • 【域攻防】主机权限提升
  • python学习第三天
  • UE5 插件版本 - PS添加PostProcess Pass
  • 姿态估计数据集准备与 COCO 关键点标注实战
  • Claude Code从入门到精通(3)-settings.json 与 CLAUDE.md
  • XCOM 2模组管理器终极指南:如何用AML告别卡顿与冲突
  • Impacket实战指南:10大SMB渗透技巧与协议级攻击原理
  • 数学艺术图案画-曼陀罗(33)
  • Platinum-MD:如何让20年前的MiniDisc设备在现代电脑上重获新生?
  • 别再只会Ctrl+Alt+T了!VMware Workstation 17 Pro里这5个隐藏指令,效率翻倍
  • TVA在具身智能全栈能力体系中的关键作用(2)
  • 姿态估计模型评估与关键点精度优化
  • 从性能焦虑到流畅体验:如何通过Thorium浏览器重获网络冲浪的掌控感
  • 零基础 Vibe Coding 教程 安装 ClaudeCode+DeepSeek 20-25
  • JDBC基础(2)
  • 第十三篇:工业边缘与汽车数据空间——“能力出园”的智能制造
  • 多线程基础与线程模型精讲,线程生命周期、join/detach、参数传递陷阱、并发基础实战
  • 想提升用户体验?快把HTML5视频播放器代码嵌入你的网站
  • TVA在具身智能全栈能力体系中的关键作用(系列)
  • 【锦图简历】程序对简历扫描件的识别流程
  • 抖音视频下载神器:轻松保存无水印高清内容