首页 › ai-agents › 长程Agent:跨窗口自治工程

长程自主 Agent:跨上下文窗口的持久化自治工程

概述

当 Agent 的能力逼近"单窗口内可完成大部分任务"的临界点时,2026 年真正的工程前沿已从"单轮更强"转向"长程自治"——让 Agent 连续工作数小时甚至数天,横跨数十个上下文窗口而不崩。本期的核心发现是:长程 Agent 的成败不在模型,而在 harness(驱动外壳)与持久化基础设施。Anthropic 的实测揭示了一个反直觉事实:即便是前沿的 Opus 4.5 配合上下文压缩(compaction),仅凭一个高层级 prompt 也无法跨窗口交付生产级应用——它会"一把梭"耗尽上下文、或在看到部分进度后提前宣布完工。解决之道是一套"换班工程师"范式:初始化 Agent + 编码 Agent 双角色、进度文件、特性清单、git 历史四件套,外加 Temporal/Restate 等持久化执行引擎取代裸消息队列。本文拆解从状态桥接、幂等检查点到成本熔断、沙箱隔离的完整长程工程栈。

长程 Agent 基础设施对比

基础设施 / 方案 状态持久化 崩溃恢复 上手难度 适合任务时长 成本可控性 变现潜力
裸消息队列(SQS/Kafka) 弱(仅消息体) 无(at-least-once 重放) ★★ 分钟级 中 低
LangGraph Checkpoint 强(图状态快照) 时间旅行回放 ★★★ 小时级 中 中
Temporal / Restate 持久化执行 极强(步骤级) 进程崩溃无损恢复 ★★★★ 数天 高 高
Inngest 无服务器持久化 强(步骤事件) 自动重试续跑 ★★★ 小时~天 高 中高
Claude Agent SDK 双角色 harness 中(文件+git) 靠进度文件接力 ★★★ 跨多窗口 中 高
云厂商 Managed Agents 强(托管 session) 平台级保障 ★★ 小时级 低(厂商锁定) 中

一、跨上下文窗口的核心矛盾:换班工程师困局

长程 Agent 的根本难题,Anthropic 用了一个精准类比:一个软件项目由轮班的工程师承担,而每个新到的工程师对前一轮发生了什么毫无记忆。上下文窗口是有限的,绝大多数复杂项目无法在单一窗口内完成,于是 Agent 必须找到"跨会话桥接"的办法。

矛盾有两个具体表现。第一,"一把梭"失败:Agent 倾向于一次性做完整个应用,结果在实现中途耗尽上下文,留下一个"半成品且未文档化"的状态交给下一个会话;下一个会话不得不猜测发生了什么,花大量时间把基础功能重新跑通——即使有 compaction 也无法幸免,因为压缩并不总能把清晰的指令传给下一个 Agent。第二,"提前收工"失败:在项目进行到中后期,某个 Agent 实例环顾四周,看到已有不少进度,便误判任务完成而提前停止。

这个矛盾的本质是:长程任务需要"增量推进 + 状态交接"的能力,而单个会话的优化目标(一次性给出最完整答案)与长程目标(稳步推进、留下干净状态)是冲突的。破局的第一性原理,是把"一个无所不能的长任务 Agent"重构为"一套有纪律的换班协作流程"。

二、双角色 harness:initializer + coding Agent

Anthropic 给出的工程解法是双角色 harness,这套模式已被写入 Claude Agent SDK 的官方 quickstart(autonomous-coding)。核心是两个角色:

初始化 Agent(仅第一次会话运行),负责搭建整个项目的"地基",产出三件套: - init.sh 环境初始化脚本; - claude-progress.txt 进度日志(记录所有 Agent 做过什么); - 一个初始 git commit,标明新增了哪些文件。

编码 Agent(此后每个会话运行),被提示只做增量推进,并在会话结束时留下结构化更新,把环境维持在"可合并到 main 分支的干净状态"——无重大 bug、代码整洁、文档完善,下一位开发者能直接开新功能而不必先收拾烂摊子。

# 伪代码:双角色 harness 主循环(基于 Claude Agent SDK)
from claude_agent_sdk import Agent, query

async def long_run(project_prompt, max_sessions=40):
    # 第一轮:initializer agent,铺设地基
    await query(prompt=INIT_PROMPT.format(goal=project_prompt), agent="initializer")
    # 此后每轮:coding agent,增量推进
    for i in range(max_sessions):
        result = await query(prompt=CODE_PROMPT, agent="coding")
        if result["all_features_passing"]:
            break  # 全部特性通过即收工,避免提前完工误判

优缺点:优点是极其务实——不依赖任何玄学的"长记忆"模型能力,只用文件与 git 这种确定性载体做状态交接;缺点是对 prompt 工程要求高,进度文件格式一旦漂移,后续会话的"理解"质量会下降。变现评估:这是目前最易打包成"长程编码训练营"的范式,门槛在 prompt 而非基础设施,适合做成 2~3 天的实战工作坊。

三、特性清单工程:用"200 条失败用例"锁死提前完工

针对"提前收工"这个最隐蔽的失败模式,解法是一份详尽到偏执的特性清单(feature list)。初始化 Agent 会被提示,把用户的高层级需求展开为一份全面的功能需求文件。在 claude.ai 克隆这个例子里,这意味着展开出超过 200 条特性,例如"用户能打开新对话、输入查询、按回车、看到 AI 回复"。所有特性初始都被标记为 failing,这样后续编码 Agent 就有一份"完整功能长什么样"的清晰轮廓。

{
  "category": "functional",
  "description": "New chat button creates a fresh conversation",
  "steps": [
    "Navigate to main interface",
    "Click the 'New Chat' button",
    "Verify a new conversation is created",
    "Check that chat area shows welcome state",
    "Verify conversation appears in sidebar"
  ],
  "status": "failing"
}

这套机制的精妙之处在于:它把"任务是否完成"从模糊的 Agent 主观判断,转化为客观的、可枚举的、逐条可验证的清单。编码 Agent 每轮的退出条件不再是"我觉得做完了",而是"还有 N 条 failing,继续干"或"全部 passing,真正收工"。这同时治理了两种失败:清单未展开完 → Agent 不会一把梭(因为得逐条实现);清单全绿 → Agent 不会提前停(因为有客观证据)。

优缺点:优点是把验收标准工程化、可自动化测试,长程质量可度量;缺点是特性清单本身的质量决定上限——漏列的特性会永远不被实现。变现评估:可包装为"长程 Agent 验收工程"咨询,尤其适合有明确功能规格的 To B 交付场景(合同 = 特性清单)。

四、持久化执行引擎:为什么裸消息队列会害死长程 Agent

长程 Agent 一旦需要"等"——等人工审批、等外部 API、等数天后的某个条件——就会撞上一面墙:普通的 HTTP 请求在 30 秒后超时,普通的异步队列用 at-least-once 投递。而 LLM 的规划是非确定性的:同一个输入,两次调用可能走出不同路径。当队列因网络抖动重投一条消息时,Agent 会从某个不确定的中间状态重新跑,副作用(发邮件、写库、扣款)被执行两次,状态机彻底错乱。

这就是 2026 年"持久化执行(durable execution)"成为长程 Agent 标配的原因。代表选手是 Temporal、Restate、Inngest,它们的共同特征是:把工作流编码为一系列可重放的步骤,每一步的结果都被持久化;进程崩溃后,引擎从最后一个已确认的步骤恢复,而不是从消息开头重放。

# Restate 风格:把 Agent 循环写成可恢复的持久化函数
@restate.service
class AgentJob:
    async def run(self, ctx, task):
        plan = await ctx.run("plan", lambda: llm_plan(task))      # 步骤持久化
        for step in plan:
            done = ctx.get(f"step_{step['id']}")                    # 已完成的步骤跳过
            if done: continue
            res = await ctx.run(f"step_{step['id']}", lambda: execute(step))
            if res.needs_human:
                await ctx.sleep(days=7)  # 可睡 7 天等人,崩溃也不丢
        return "done"

优缺点:优点是崩溃恢复与幂等性的工程级别保障,是数天级长程任务上生产的必选项;缺点是学习曲线陡(要按"可恢复"范式重写代码),引入分布式系统复杂度。变现评估:极高——"把你的 Agent 改造成 durable"是企业上生产前最愿意付费的咨询项之一,Temporal/Restate 认证工程师是 2026 年稀缺技能。

五、异步队列陷阱与幂等-检查点范式

对于不想上重型持久化引擎的团队,退而求其次的方案是在裸队列之上手工补齐幂等与检查点。核心三件套:

  1. 幂等键(idempotency key):每条 Agent 任务带唯一 key,执行前先查"是否已处理过",副作用操作(付款、发通知)用 key 去重,确保 at-least-once 重投不会造成双倍副作用。
  2. 检查点-恢复(checkpoint-resume):Agent 每完成一个有意义的子目标,就把中间状态序列化入库;崩溃后从最近检查点续跑,而非从零开始。
  3. 死信队列(DLQ):重试 N 次仍失败的任务进 DLQ,等人工介入,防止毒丸消息无限重放烧钱。

这套范式比持久化引擎轻,但正确性全靠开发者自觉——一旦某个副作用忘了加幂等键,长程任务在某次重投后就会"双花"。LangGraph 的 Checkpoint 把这套机制内置化了一些:它把 Agent 的图状态做快照,支持"时间旅行"回放到任意历史节点调试,对"为什么会走偏"的事后分析极有价值。

优缺点:轻量、与现有架构兼容;但错误面大,幂等性是出了名的难做对。变现评估:中等——更适合作为"长程 Agent 健壮性"课程的一个模块,而非独立产品。

六、后台 Agent UX 范式:30 秒 HTTP 墙之后的异步通知

长程化不只是后端工程问题,更是交互范式问题。2026 年一个清晰趋势是后台 Agent(background agent)成为新的"结对编程"形态:Cursor、Claude Code、Devin 都允许把一个长任务派发到后台,让 Agent 独立跑几十分钟到几小时,期间工程师可以并行做别的事。

这打破了传统的"30 秒 HTTP 墙"——用户不再盯着一个 spinner 苦等,而是收到异步通知(任务完成、需要决策、遇到阻塞)。UX 上关键设计包括:可中断(随时叫停跑偏的 Agent 以止损)、可审查的 diff(Agent 提交的不是黑盒结果,而是可逐行 review 的变更)、进度可见(通过进度文件/任务列表感知 Agent 在哪一步)。Cursor 的后台任务、Devin 的异步 PR、Claude Code 的长任务都是这一范式的实现。

优缺点:优点是释放人类注意力,是长程 Agent 真正进入日常工作流的形态;缺点是异步 UX 设计难——通知太频繁打扰、太少又会忘,中断粒度难拿捏。变现评估:高——"后台 Agent 工作流"是面向开发者的 SaaS 切入点,产品形态成熟。

七、成本熔断、可观测与沙箱隔离三道护栏

长程 Agent 一旦自主跑数小时,失控成本和安全面是两大隐患,必须三道护栏同时上:

成本熔断:为每个长程任务设置 token/美元预算硬上限与电路熔断器。Agent 可能在死循环里烧钱(反复调同一个失败的工具),熔断器在预算触顶时强制中止,防止单个跑飞的任务清空账户。

可观测性:长程 Agent 必须接 OpenTelemetry 全链路追踪——每一次工具调用、每一次模型决策、每一步的状态转移都要留痕。没有可观测,长程 Agent 就是黑盒,事后无法定位"它为什么在第三小时走偏了"。

沙箱隔离:长程 Agent 需要受限的工具访问与执行隔离。主流方案是 Docker 容器、gVisor、Firecracker microVM,以及完全托管的云沙箱。值得注意的是,Meta 在 2025 年 12 月以超 20 亿美元收购的新加坡 Agent 创业公司 Manus,其核心资产之一就是云沙箱执行环境——长程 Agent 的代码执行被隔离在云端微 VM 中,既能跑长任务又不威胁宿主。这是"沙箱即基础设施"被巨头认可的信号。

flowchart TB
    subgraph 护栏["长程 Agent 三道护栏"]
        B[成本熔断<br/>预算硬上限 + 电路熔断器]
        O[可观测性<br/>OpenTelemetry 全链路追踪]
        S[沙箱隔离<br/>Firecracker microVM / 云沙箱]
    end
    A[长程任务派发] --> Loop[Agent 循环<br/>跨多上下文窗口]
    Loop -->|每步| B
    Loop -->|每步| O
    Loop -->|每次执行| S
    B -->|超预算| Halt[强制中止]
    S -->|越权| Block[拦截危险操作]
    Loop --> Done[结构化产物 + 进度文件]

优缺点:三道护栏缺一不可,缺失任何一道都可能导致长程 Agent 在生产中"翻车";缺点是工程量大,是长程 Agent 上生产的主要成本。变现评估:高——"长程 Agent 安全与成本治理"可直接做成企业级平台功能。

八、人机协同门控与渐进自治

最后一层是自治级别的渐进释放。长程 Agent 不应一开始就 fully autonomous,而应按 Level 1~5 的自治分级逐步放权:低级别时每个高风险动作(合并代码、发送外部消息、付款)都需人工审批门控(human approval gate);随着 Agent 在该任务上的可靠度被评估数据证实,再逐级放宽门控频率。

这要求一套评估闭环:持续记录 Agent 在每个动作类型上的成功率、回退率、人工干预率,用数据驱动"是否可以降低这一类动作的门控级别"。Anthropic Managed Agents、各家 Agent 平台都在朝"session + 评估 + 渐进自治"的方向收敛。其本质是:长程自治不是开关,而是一个由证据驱动的、缓慢拧开的过程。

优缺点:优点是兼顾效率与安全,是企业敢用长程 Agent 的前提;缺点是评估基础设施搭建成本高,且"该不该放权"的判断需要领域知识。变现评估:高——"Agent 自治度治理平台"是合规敏感行业(金融、医疗)的刚需。

长程 Agent 完整工作流架构

flowchart LR
    U[用户高层级需求] --> Init[初始化 Agent<br/>仅第 1 轮]
    Init --> F1[特性清单 200+<br/>全标 failing]
    Init --> P[claude-progress.txt]
    Init --> G[初始 git commit]

    subgraph Loop["持久化执行循环(Temporal/Restate)"]
        direction TB
        C[编码 Agent<br/>每轮增量推进]
        C -->|读| P
        C -->|读| F1
        C --> Exec[执行 + 工具调用]
        Exec --> Sandbox[Firecracker 沙箱]
        Exec -->|副作用| Idem[幂等键去重]
        Exec --> CK[检查点入库]
        C -->|写回| P
        C -->|翻转状态| F1
        Gate{高风险动作?} -->|是| HITL[人工审批门控]
        Gate -->|否| Exec
    end

    Init --> Loop
    Budget[成本熔断器] -.监控.-> Loop
    Obs[OTel 可观测] -.追踪.-> Loop
    F1 -->|全绿| Done[真正收工]

场景化推荐方案

个人开发者 / 小团队快速试水:用 Claude Agent SDK 双角色 harness(initializer + coding)+ 进度文件/特性清单,零基础设施成本,先把"跨窗口不崩"跑通。最适合 PoC 和学习。

需要等外部事件 / 数天级任务:上 Temporal 或 Restate 持久化执行引擎,把 Agent 循环写成可恢复步骤,崩溃无损续跑。这是长程上生产的必选项。

无服务器 / 不想运维:选 Inngest,托管持久化 + 自动重试,适合中小规模后台 Agent 工作流。

面向开发者的 SaaS 产品:走后台 Agent UX 范式——异步派发 + 通知 + 可审查 diff,产品形态成熟,变现直接。

合规敏感行业(金融/医疗):必须三道护栏(成本熔断 + 可观测 + 沙箱)全上,并配 Level 1~5 渐进自治门控,用评估数据驱动放权。

一句话红线:长程 Agent 的护城河不在模型大小,而在 harness 纪律与持久化基础设施——谁先把"换班工程师"流程和 durable execution 跑顺,谁就拿到长程自治的入场券。


参考来源

  1. Effective harnesses for long-running agents — Anthropic Engineering — Anthropic 官方长程 Agent 工程原文(2025-11-26),详述 initializer/coding 双角色、compaction 局限、特性清单与进度文件范式
  2. The Agent Session Duration Revolution: From Sub-Second to Multi-Hour Autonomous Runs — 解析"第三波:自主长程执行"浪潮与各平台会话时长实现差异
  3. Durable Agents: Why Async Queues Break for Long-Running AI Workflows — 论证 at-least-once 投递 + 非确定性 LLM 规划导致裸队列失效,呼吁持久化执行
  4. The Background Agent UX Paradigm 2026 — 后台 Agent 作为新结对编程形态:Cursor、Claude Code、Devin 的异步通知与可中断设计
  5. Meta's Manus Unveils Cloud Sandbox for AI Agent Execution — Meta 20 亿美元收购 Manus 后推出云沙箱执行环境,标志"沙箱即基础设施"被巨头认可

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入