MindSpore 发布 AKG Agent Harness 状态机设计:破解长程任务失控难题
在 AI Agent 从“单轮问答”迈向“长程自主执行”的过程中,如何确保 Agent 在无人监督下连续运行数十小时而不偏离预期,是业界面临的核心挑战。仅靠提示词(Prompt)约束往往因上下文压缩、指令偏移或逻辑漏洞导致 Agent 在若干轮后失控。
针对这一痛点,MindSpore 在其昇思 AKG Agent 框架中发布了一项关键技术设计:基于状态机的 Harness 架构。该方案通过代码逻辑而非纯提示词来定义流程边界,将 Agent 的自主推理能力与严格的流程控制解耦,为长程任务提供了可靠的“安全围栏”。
核心痛点:纯提示词驱动的局限性
在 Auto Research(自动研究循环)等长程任务中,Agent 需要迭代优化算子性能、代码结构或数据配方。然而,传统 ReAct(Reasoning-Action)模式存在天然缺陷:
- 线性结构无法闭环:ReAct 是线性的,难以自动完成“完成一轮后回到起点”的回环逻辑。
- 上下文脆弱性:随着对话轮次增加,历史上下文迅速膨胀。一旦触发
/compact压缩,关键细节丢失,Agent 极易遗忘已失败的方向或丢失历史经验。 - 边界模糊:若将流程约束写入系统消息,Agent 总有动机绕过检查(如跳过评测、修改验收标准);若写成硬编码 if-else,则失去了 Agent 的灵活性。
状态机与 ReAct 的分工协作
MindSpore 提出的解决方案是将状态机(State Machine)置于固定流程与端到端自驱的中间地带。
-
架构分层:
- 外层 Harness(状态机):负责定义当前阶段、可转移的下一阶段集合以及需保存的状态。它不干预 Agent 的具体推理,但强制规定“何时开始”、“何时结束”以及“允许做什么”。
- 内层 Agent(ReAct):在状态机划定的框架内,自主决定查阅文件、调用工具、修改代码及判断完成时机。
-
四阶段循环实战: 以算子性能调优为例,状态机定义了
plan(计划)→edit(修改)→eval(评测)→decision(决策)的闭环。若 Agent 试图跳过评测或修改验收条件,状态机将立即拦截并拉回允许范围。 -
动态适应性: 该设计具有高度的可调节性。对于仅需最终结果的端到端验证任务,状态机可退化为单状态循环;对于多阶段复杂任务,则需细化交付物格式与状态转移规则。
关键技术突破:上下文管理与多 Agent 协同
Harness 设计不仅解决了流程控制,更重构了上下文管理策略,带来三大核心收益:
1. 落盘 PLAN 文件:对抗上下文窗口限制
Auto Research 本质是枚举式探索。仅依赖对话历史难以满足长期任务需求,因为历史会超出 Context Window,且压缩后细节丢失。
- 解决方案:引入落盘的
PLAN文件。该文件仅记录可复用、可比较的结论(如方向尝试、性能指标摘要),而非原始日志或完整代码变动。 - 价值:Agent 决策时只需读取 PLAN 文件即可恢复历史信息,大幅降低对长上下文的依赖,确保任务从断点恢复时的连贯性。
2. Subagent 隔离:打破局部最优陷阱
当主 Agent 陷入连续失败或上下文被相似错误充斥时,启动一个零上下文的 Subagent。
- 机制:Subagent 作为上下文隔离工具,重新诊断问题并生成新方向,避免在主 Agent 的“思维定势”中挣扎。
- 原则:多 Agent 拆解并非自动优于单 Agent。主体执行仍由单一主 Agent 推进,仅在必要时临时介入 Subagent,防止风格冲突。
3. 评测托管:提升推理效率与稳定性
Harness 接管了所有非推理类动作(如运行评测、解析结果、判定优劣)。
- 优化效果:Agent 无需为这些动作分配上下文,也无需担心修改评测步骤本身。这使得 Harness 输出格式固定,提高了 LLM 调用的 KV Cache 命中率,显著降低了 API 开销。
实测成果:算子性能自动调优
在 Triton-Ascend 算子优化场景中,该 Harness 成功实现了自主组合多种优化写法:
- 算法重排:合并连续访存,移除冗余分支。
- 广播优化:用
torch.ones + triu取代arange。 - 掩码精简:去除冗余 mask 构造。
最终,Agent 在保留最佳版本(KEEP)、回滚退化版本(DISCARD)及处理编译错误(FAIL)的自动化流程中,实现了性能收益的最大化。
结语
MindSpore 的 Harness 设计标志着 Agent 编排进入了一种新的编程范式:从设计确定性代码转向约束 Agent 的动作空间。通过状态机与外部存储的结合,开发者得以在保留 Agent 灵活性的同时,获得企业级应用所需的稳定性、可追溯性与可复现性。
“编程的重心正从设计确定性的代码,转移到约束 Agent 动作的可能空间。”
社区互动 昇思 AKG 致力于构建开放的图算协同加速生态。开发者可通过 AtomGit Issues 提交问题,或通过 SIG 参与工作流程改善,共同推动 AI 算子编译技术的创新。