惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
L
LangChain Blog
博客园_首页
J
Java Code Geeks
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
WordPress大学
WordPress大学
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
C
Check Point Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
D
Docker
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ

Java for You

AI写了80万行Rust,最值得学的却是它花十倍精力读代码 - Java for You - java4u 部署大模型别先选GPU,先回答你愿意承担多少运维 - Java for You - java4u 语音AI为什么总抢话?用VAD和打断机制做对实时对话 - Java for You - java4u AI每次提交都查漏洞,真正的升级是把证明链放进评审 - Java for You - java4u 把评测员请进AI实验室,独立性反而更难证明了 - Java for You - java4u 《深入分析Java Web技术内幕》.pdf - Java for You - java4u 《JAVA网络编程》.pdf - Java for You - java4u 《Java 工程师成神之路》.pdf - Java for You - java4u Copilot开始统计“真正用过什么”:AI落地终于不只看活跃人数 - Java for You - java4u 多Agent最怕的不是答错,而是崩溃后不知道做到哪一步 - Java for You - java4u Claude放宽生命科学限制:代价是验证、分级和30天留存 - Java for You - java4u Anthropic公开内部AI研发速度:真正该盯的是三个分母 - Java for You - java4u 4 bit模型为何不等于显存缩小四倍?量化账单这样算 - Java for You - java4u GPU抢不到就换一种:训练任务需要先声明可替代性 - Java for You - java4u 数据不能集中,算力也不统一:联邦学习终于面对运维现实 - Java for You - java4u OpenAI开始公开模型失配个案:真正重要的是这套报告制度 - Java for You - java4u 广告开始和你对话:Sponsored Agents改变的不是文案 - Java for You - java4u 语义相近却总找错资料?从Embedding看懂向量检索 - Java for You - java4u AI算力开始听电网指挥:比换GPU更现实的增产方法 - Java for You - java4u 票据抽取不一定要上最大模型:先看版式是否真的变化 - Java for You - java4u 临床AI别再只比像不像标准答案,先算医生少改了多少 - Java for You - java4u AI做长程科研,真正稀缺的不是更多Agent而是反证链 - Java for You - java4u AI代码审计最危险的不是漏报,而是团队开始不再相信它 - Java for You - java4u 100万Token不等于模型全记住:从KV Cache看懂长上下文成本 - Java for You - java4u AI写歌有了工程图:YuE2把旋律和和弦放回可编辑层 - Java for You - java4u Claude接入十余种金融系统后,真正稀缺的是可追溯的审批链 - Java for You - java4u 本地语音AI不等于零风险:VoiceStudio最值得看的三条边界 - Java for You - java4u AI代码评审开始跑测试,真正该升级的是团队证据链 - Java for You - java4u 4万星的Agent技能提醒我们:答案太全也可能不可用 - Java for You - java4u 流式JSON为什么总报错?理解结构化输出就能接稳AI接口 - Java for You - java4u
Agent不是多想几步就能上线:用状态机管住自动行动 - Java fo...
蜗牛 · 2026-09-17 · via Java for You

笔电与咖啡

Agent会调用工具,不等于它适合直接碰订单、邮件和生产系统。AWS在9月14日发布自动补货方案:模型预测需求,Agent发现激增,流程核对供应商,常规情况自动下单,规则不匹配就交给人。读懂它,你会掌握一个长期有用的基础概念——用状态机把AI的“想”和系统的“做”分开。

最新事件里真正值得学的东西

这套方案用Chronos-2预测未来7天需求;Databricks Genie Agent找出预测均值至少为过去14天1.5倍、且历史均值不低于1的商品;Amazon Quick再读取供应商数据,选择能覆盖需求的最低价供应商,通过API(应用程序编程接口)下单。没有单一供应商满足条件时,流程创建人工复核任务。

亮点不是“AI自己买货”,而是每一步都有输入、规则和退出条件。外部动作只发生在前置状态已经确认之后,异常不会被模型用一句自信回答掩盖。

状态机解决什么问题

状态机把流程表示为有限状态和允许的转换。例如订单只能从“已检测”到“已决策”,再到“待审批”或“可执行”;不能从“刚收到预测”直接跳到“已下单”。它解决三个问题:让当前进度可见、限制非法跳转、让失败后知道从哪里恢复。

可以把它类比成机场登机:值机、安检、登机口核验都有明确状态,缺一步就不能上飞机。类比的边界是,软件状态机还要处理并发、重复消息和外部API失败,不是排队走完步骤就必然成功。

准确地说,状态机是一个由状态集合、事件集合、转换规则和终止状态组成的模型。Agent可以建议下一个事件,但程序负责验证转换是否合法。若执行会产生真实副作用,还需幂等键:同一请求即使因重试到达两次,也只能产生一次订单。

mermaid diagram

最小实践

下面用纯Python模拟补货状态机,不需要第三方依赖或密钥。保存为workflow.py,运行python3 workflow.py。金额超过1000元时进入人工审批;相同SKU(库存保有单位)和批次生成同一幂等键,避免重复执行。

from dataclasses import dataclass
from hashlib import sha256

@dataclass
class Job:
    sku: str
    batch: str
    amount: int
    state: str = "DETECTED"

def advance(job: Job, approved: bool = False) -> str:
    if job.state == "DETECTED":
        job.state = "NEEDS_REVIEW" if job.amount > 1000 else "READY"
    elif job.state == "NEEDS_REVIEW" and approved:
        job.state = "READY"
    elif job.state == "READY":
        key = sha256(f"{job.sku}:{job.batch}".encode()).hexdigest()[:12]
        job.state = f"EXECUTED:{key}"
    return job.state

job = Job("SKU-42", "2026-09-17", 1800)
print(advance(job))
print(advance(job, approved=True))
print(advance(job))

第一段定义业务字段与初始状态。第二段只允许三条转换:检测后按金额分流、人工批准后进入可执行、可执行时生成幂等键并进入终态。最后三行演示高金额订单依次得到NEEDS_REVIEWREADY和带键的EXECUTED。本次任务已在Python 3实际运行,输出符合上述顺序。

至少三个常见误区

误区一,把模型的自然语言计划当状态。计划会改写,状态必须由程序持久化。误区二,有人工审批就安全;如果审批页面不展示金额、来源和将调用的工具,人只是盲点按钮。误区三,失败后直接重跑整个Agent;外部动作可能已成功,只是响应丢失,必须先用幂等键查询。误区四,把所有异常都交给模型自我修复;权限、预算和合规冲突应进入确定性拒绝或人工队列。

还有一个常见误区是只记录成功终态。生产系统同样需要REJECTEDEXPIREDFAILED_RETRYABLE等状态,否则运维人员只能从日志猜测任务究竟在等人、已过期还是可以安全重试。状态名称应描述业务事实,不要写成“模型觉得可能失败”这类不可验证的句子。

适用与不适用

它适合步骤有限、状态可枚举、动作有明确副作用的流程,如退款、采购、发布和工单流转。不适合用状态机穷举开放式研究的每个思考分支;那类任务可让模型自由探索,但在下载、发信、付款等边界重新接入状态机。

部署时还要把状态存进数据库或工作流引擎,而不是只留在模型上下文。进程重启后,程序应从持久化状态继续;多人审批时,应使用版本号或事务避免两个人同时推进同一任务。模型输出只是事件候选,只有通过校验的事件才能真正改变状态。

每次转换还应记录操作者与原因,便于追责和回放。

我的判断与5分钟实践题

我的判断是,生产Agent的竞争力不只来自模型智力,而来自“自由推理、确定执行”的分层。模型负责理解模糊目标,工作流负责预算、权限、审批、重试和终态。越接近真实世界副作用,越应该让后者占主导。

5分钟实践:给示例增加REJECTED终态;当approved=False且审核已明确拒绝时进入该状态,并保证之后任何调用都不能变成READY。再写两个断言:被拒任务不执行;同一SKU和批次的幂等键保持一致。

你的业务里,哪一种Agent动作必须在执行前停下来等人确认?

关注「蜗牛聊AI」,一起看懂技术变化背后的真正机会。