想象你是承办一场百桌婚宴的主厨。宾客已经落座,凉菜、热菜、主菜、甜品共上百道菜要按顺序端上桌。你不可能把一百道菜倒进一口锅里一次炒完——你要先设计菜单,把盛宴拆成一道道工序;要在厨房挂一块出品看板,随时知道哪道菜已上桌、哪道还在备料;每一轮菜上完,还要叫停试菜,确认口味没跑偏再继续。这场宴席,就是一次“长任务执行”。 AI Agent 面对的真实工作——整理三百页合同、自动修复一个 bug、批量生成五千篇商品文案——同样动辄几十到几百个步骤。模型像主厨一样,需要把大目标拆小、盯紧主题不跑偏、记录每一步状态、在关键节点停下校验、出了问题有预案、批量生产时有流程手册。本文就用这场婚宴作比喻,带你理解“长任务执行”的整套方法论,从任务分解、目标一致、进度追踪、检查点策略,到可靠性保障与生产落地实践。

岗位关联

掌握长任务执行,是 AI 工程师从“跑通 Demo”走向“上线生产”的分水岭——它决定了你交付的 Agent 能在真实业务中稳定跑完几百步,还是三步就翻车。

目录
  1. 可视化演示
  2. 任务分解层级
  3. 目标一致性维护
  4. 进度追踪机制
  5. 检查点策略
  6. 可靠性保障
  7. 生产落地实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示Agent长任务从分解、规划、执行到验证的全流程,包含任务树拆解、管道进度追踪与检查点验证机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

长任务执行四阶段 分解:拆为可管理子任务 规划:排序依赖与检查点 执行:逐步完成并追踪 验证:检查点保障一致性 四阶段循环保障长流程可靠性

任务分解层级

拿到“承办百桌婚宴”的委托后,有经验的主厨绝不会直接冲进厨房颠勺,而是先坐下来设计菜单。他会把整场宴席拆成四条主线:凉菜、热菜、主食、甜品;再把每条主线拆成一道道具体菜品,比如凉菜线下有口水鸡、夫妻肺片、拍黄瓜;最后,每道菜还要拆成备料、切配、烹调、装盘四个工序。菜单落定的那一刻,上百道菜的任务就不再是一团迷雾,而是可以分工、排期、验收的清单。

Agent 处理长任务的第一关同样如此。所谓“长任务”,就是需要数十甚至数百个步骤才能完成的复杂目标,例如“把公司过去一年的合同全部审阅并生成摘要”。如果让模型拿起这个目标直接干,它会像没有菜单的厨师一样,做着做着就乱了。因此第一步永远是任务分解:把顶层目标拆成若干个边界清晰、可以独立验证的子任务。

分解后的子任务通常形成一棵“目标树”:根节点是总目标,中间层是阶段任务,叶子节点是具体动作。分解时要守住两条纪律:第一,子任务互斥,同一件事不能被两个子任务重复做,否则产出会相互冲突;第二,依赖关系明确,“先查资料再写报告”的顺序不能颠倒,否则下游子任务会拿到错误的输入。工程上常用 Plan-and-Execute 这类编排模式,让模型先生成一份显式任务清单,再逐项执行,每一步都能追溯到“我在完成哪个子目标”。

就像婚宴菜单上每道菜归属明确、互不串味,分解出的子任务也各自独立、边界清晰。主厨凭菜单指挥后厨,Agent 凭任务清单逐步推进——这就是长任务执行的地基,地基不稳,后面的一切手段都无从谈起。

T总体=⋃i=1nTi,Ti∩Tj=∅ (i≠j)T_{\text{总体}} = \displaystyle\bigcup_{i=1}^{n} T_i, \qquad T_i \cap T_j = \varnothing \ (i \neq j)
总任务等于所有子任务的并集,且任意两个子任务互不重叠——这是任务清单“不重不漏”的数学表达。
  1. 子任务并集总任务 T_总体 等于所有子任务 T_i 的并集,所有子任务都做完,总目标即达成。
    T总体=⋃i=1nTi\displaystyle T_{\text{总体}} = \bigcup_{i=1}^{n} T_i
  2. 互斥约束任意两个子任务 T_i 和 T_j 交集为空,保证职责不重叠、不做重复功。
    Ti∩Tj=∅ (i≠j)\displaystyle T_i \cap T_j = \varnothing \ (i \neq j)

目标一致性维护

这桌婚宴的主题是“川味宴席,无辣不欢”。主厨心里始终绷着一根弦:即便在做清爽的凉菜,也要调一点微辣提味;即便做甜品,也不能甜得压过整桌的麻辣基调。如果后厨忙着忙着忘了主题,菜越做越清淡,宾客吃完只会觉得“这桌宴席没有灵魂”。

Agent 在长任务执行中最大的隐形风险,恰恰是“忘了主题”。模型每执行一步,只能看到当下的局部上下文;随着步骤增多,最初那句“我要审阅所有合同”会被大量中间内容淹没,模型渐渐跑偏,这就是目标漂移。为对抗漂移,工程上的第一道防线是把目标“固化”:将用户原始目标、验收标准、禁忌事项写进系统提示,让它在每一步推理中都占据最高优先级。

具体有三层手段。第一层,全局上下文窗口:原始目标放在上下文的固定头部,拼接进每一次模型调用,而不是只出现一次。第二层,目标指令固化:用结构化模板反复声明“你要做什么、做到什么程度算通过、不许做什么”,就像大字报贴满厨房。第三层,上下文容量控制:长任务中的历史信息指数增长,若不压缩,Token 窗口很快被塞满,关键决议反而被挤丢;因此要定期把旧对话摘要压缩,只保留决策记录。这三层合起来,保证“目标权重始终压过历史噪声”。

厨房里那张“川味”大字报,就是主厨的 System Prompt。再忙再累,抬眼就能看见,手里的勺子就不会跑偏。Agent 亦然——目标固化不是锦上添花,而是长任务不翻车的底线。

St=αG+∑k=1tγ t−khk,α≫γS_t = \alpha G + \displaystyle\sum_{k=1}^{t} \gamma^{\,t-k} h_k, \qquad \alpha \gg \gamma
每一步的决策信号 = 高权重的目标项 + 指数衰减的历史项。目标永远压过历史,这就是“固化目标”的数学本质。
  1. 目标主导项α 是一个很大的权重系数,乘上目标表示 G,让原始目标在每一步决策 S_t 中占据压倒性地位。
    αG\alpha G
  2. 历史衰减项第 k 步的历史信息 h_k 乘以 γ 的 t−k 次方,越久远的信息权重指数级下降,防止旧噪声喧宾夺主。
    ∑k=1tγ t−khk\displaystyle \sum_{k=1}^{t} \gamma^{\,t-k} h_k
  3. 主次序约束α 远大于 γ,数学上保证了目标信号永远强于任意单条历史信号,这正是“目标固化”的核心思想。
    α≫γ\alpha \gg \gamma

进度追踪机制

百桌婚宴同时开火,后厨要是没有一块出品看板,场面会立刻失控:凉菜上了三遍,甜品还没人动手;主打菜快出锅了才发现配菜没切。看板上写清楚每一道菜的状态——已上桌、正在炒、备料中——后厨才能有条不紊地调度。

Agent 执行长任务同样需要“看板”,这就是进度追踪。每完成一个步骤,Agent 都要把结果记录下来,并刷新整个任务的执行状态。这份记录不只是给人看的,更是给 Agent 自己看的:下一步该调什么参数、该用哪个工具,全靠对“当前进行到哪”的准确判断。没有进度追踪的 Agent,就像一个失忆的厨师,做完这道菜就忘了上一道在哪。

工程上常用三个机制。第一,状态快照:每步完成后,把当前文件系统、已写入内容、关键变量等状态序列化保存,必要时写入磁盘。第二,中间产物落盘:代码生成任务中每个模块的代码、文档任务中每章的校对结果都单独存档,而不是全部堆在上下文内存里——一旦进程崩溃,落盘数据就是全部家底。第三,进度可视化:用清单和进度条展示完成度,既辅助模型的下一步决策,也方便工程师一眼看出任务是否卡住。进度本身用最简单的完成率公式度量。

看板上的每一条记录,都是后厨的定心丸。Agent 的快照和落盘就是它的出品看板——哪怕进程崩溃、机器重启,重新翻开看板,一切尽在掌握,任务就能接着往下走。

Progress=∑i=1kwi∑i=1nwi×100%\text{Progress} = \frac{\displaystyle\sum_{i=1}^{k} w_i}{\displaystyle\sum_{i=1}^{n} w_i} \times 100\%
完成率 = 已完成步骤的加权和 ÷ 全部步骤的加权和。权重代表步骤的重要性或耗时,权重相同时退化为“步数比”。
  1. 已完成权重和分子把所有已完成步骤 i=1..k 的权重 w_i 加起来,权重代表步骤的耗时或重要性。
    ∑i=1kwi\displaystyle \sum_{i=1}^{k} w_i
  2. 总权重分母是所有步骤权重之和,把进度归一化到 0 到 1 之间。
    ∑i=1nwi\displaystyle \sum_{i=1}^{n} w_i
  3. 百分比化乘以 100% 得到直观的完成率;若所有步骤权重相等,公式即“已完步骤数 ÷ 总步骤数”。
    ×100%\times 100\%

检查点策略

经验老道的主厨会在宴席中安排几个“刹车站”:凉菜全部上齐后,停一停,试一片口水鸡,确认麻辣度够不够;热菜过半时,再停一停,确认主菜火候和分量。通过试菜才继续下一流程,不通过就立刻回炉。这一停,看似耽误几分钟,实际上避免了“整场宴席结束才发现前面全错”的灾难。

Agent 的检查点机制正是这个“刹车站”:在任务的关键节点插入“暂停—校验—继续或回滚”的逻辑。执行到检查点时,Agent 不急着往下冲,而是先验证当前产出是否满足验收标准;不满足就回退到上一个检查点的状态重新执行,绝不让错误带着跑完全程。

使用检查点要把握三个要点。第一,检查点选取:放在依赖关系密集处和阶段边界处,比如“资料收集完毕”“第一版代码编译通过”;间隔太密浪费 Token,太疏则纠错成本高。第二,分支回滚重试:检查点保存时的完整状态快照是回滚的凭据,恢复状态后可以只重做失败那一段,而不是从头再来。第三,校验方式:人工规则、自动化测试、模型自评(LLM-as-judge)三种手段结合使用。从概率上看,有了重试机制,最终成功率会指数级逼近 1。

试菜过关才敢继续上菜——检查点后的 Agent 同样“验收通过才继续”。错误被拦截在萌芽阶段,而不是等十道流程全做完,才发现第一道菜就咸了。

P成功=1−(1−p)rP_{\text{成功}} = 1 - (1 - p)^{r}
在 r 次尝试内至少成功一次的概率 = 1 − 单次失败概率的 r 次方。重试次数越多,全盘皆输的可能就越小。
  1. 单次失败概率(1−p) 表示单次执行失败的概率,p 为单次成功率,可由历史统计或模型置信度估计。
    (1−p)(1-p)
  2. 连续失败r 次尝试全部失败的概率是 (1−p) 的 r 次方,随着 r 增大迅速坍缩。
    (1−p)r(1-p)^{r}
  3. 至少一次成功用 1 减去“全部失败”,得到 r 次尝试内至少成功一次的概率,这就是重试策略的底气来源。
    1−(1−p)r1 - (1-p)^{r}

可靠性保障

就算菜单周密、看板清晰,婚宴现场依然会出意外:主菜食材临时缺货、某道菜炒糊了、传菜员上错了桌。成熟的厨师团队不慌,因为他们早有预案——换一种风味相近的食材、重新做一份、先上备选菜稳住场面,并且把这次事故记进手册,防止再犯。

Agent 长任务的可靠性保障,就是一套同样的“出错—纠错—复盘”闭环。核心机制是自检与反思循环:每完成一段工作,Agent 先自己审阅产出,找出缺陷;然后带着批评意见重做一遍,直到自检通过。这就像厨师炒完菜先尝一口再装盘——自己那关过不了,菜就不该端出去。

具体策略有三条。第一,自检反思:让模型生成“自我批评”,据此修正输出,常用“生成→评估→改进”循环,评估信号必须来自外部反馈(测试报错、编译失败),否则只是自我吹捧。第二,重试与降级:外部 API 调用失败自动重试;若某个子任务反复失败,降级为更简单的实现——比如先输出伪代码再逐步补全——避免整个任务卡死。第三,最终验收测试:长流程结束后运行自动化测试或人工抽检,用客观证据判定“任务真的完成了”,而不是模型自说自话。可靠性可以用平均重试次数来量化。

应急预案不是“出事了再想”,而是提前写好的后手。Agent 的自检、重试、验收,就是它的应急手册。有了这套闭环,长任务才能“步步为营,百步不垮”。

E[R]=∑k=0∞k⋅(1−p)k⋅p=1−ppE[R] = \displaystyle\sum_{k=0}^{\infty} k \cdot (1-p)^{k} \cdot p = \frac{1-p}{p}
重试次数服从几何分布:成功率 p 越高,平均重试次数越低。这是容量规划和成本估算的数学依据。
  1. 几何分布建模重试次数 R 的概率质量函数为 (1−p)^k·p,表示“失败 k 次后终于成功”;对 k 加权求和得到期望。
    ∑k=0∞k⋅(1−p)k⋅p\displaystyle \sum_{k=0}^{\infty} k \cdot (1-p)^{k} \cdot p
  2. 级数收敛等比级数收敛到闭合形式 (1−p)/p,p 越大,期望重试次数越小——这个值就是任务可靠性的量化标尺。
    1−pp\frac{1-p}{p}

生产落地实践

一个只承办过三场家宴的厨师团队,和承办过三百场婚宴的专业团队,差别不在单道菜的手艺,而在流程沉淀。专业团队把切配标准化、时间表精确到分钟、常见事故写进手册——任何一个新厨师照着手册执行,都不会出大错。这就是“从能做,到稳定能做”的差距。

Agent 长任务从技术原型走向生产,同样要跨过这道差距。两个最具代表性的场景:文档处理长流程(批量合同审阅、年报摘要生成)和代码生成长任务(自动修复 issue、生成整个模块并跑测试)。原型阶段只要“能跑通一条链路”就算成功;生产阶段则要求“一天跑几百条任务,条条不翻车”。这背后的工程体系,就是生产级落地的核心。

生产环境通常要搭四道护栏。第一,任务队列调度:长任务实例互不共享状态,通过队列排队执行,一个任务崩溃不影响其他任务。第二,全链路可观测:每次执行的 trace 日志、Token 消耗、检查点通过率全部上报,异常能被回溯定位。第三,灰度治理:新策略先跑小流量,对比成功率、重试率指标,达标才放量。第四,成本控制:设置最大步数与 Token 预算,任务失控时自动熔断,防止无限烧钱。最终用可用性指标向业务方交底。

三百场婚宴靠的是标准手册与复盘文化。生产级 Agent 长任务同样靠“队列 + 日志 + 灰度 + 预算”这套工程护栏,才能从实验室里的可运行,炼成生产线上的可信赖。

可用性=Ttotal−TfailTtotal×100%\text{可用性} = \frac{T_{\text{total}} - T_{\text{fail}}}{T_{\text{total}}} \times 100\%
服务可用性 = (总时间 − 失败时间) ÷ 总时间。99.5% 是生产团队对业务方最常承诺的硬指标。
  1. 总运行时间T_total 是统计周期内的总时间,如一个月共 43200 分钟。
    TtotalT_{\text{total}}
  2. 不可用时间扣除T_fail 是失败、重试耗尽、宕机等不可用时间之和,从总时间中扣除。
    Ttotal−TfailT_{\text{total}} - T_{\text{fail}}
  3. 归一化为百分比相除得到服务可用性,例如 99.5%,这是生产环境向业务方承诺的硬性服务等级。
    ×100%\times 100\%

AI 应用场景

金融机构批量合同审阅

阶段:长任务编排 + 检查点校验

解决的问题:传统方式下,审阅一份 300 页的承销合同需要资深律师 2 天,批量化更无从谈起。长任务 Agent 把“文档解析→条款抽取→风险规则匹配→生成审阅摘要”拆成四个阶段,每阶段结束设置检查点,风险条款异常时回滚重跑,审阅质量和速度都大幅提升。

具体案例:某券商投行部把 200 份历史合同接入该工作流,40 人天的工作量压缩到 2 小时完成;每份合同生成可追溯的检查点日志,风控部门可逐一核验。

GitHub Issue 自动修复机器人

阶段:代码生成长任务 + 自检反思循环

解决的问题:传统修 bug 需要工程师反复定位、修改、跑测试,来回多轮。长任务 Agent 把修复流程拆成“复现→定位→生成补丁→跑测试→提交 PR”五步,每步状态落盘;测试失败时,带着报错信息回退到上一步重新生成,形成自检闭环——就像主厨尝出菜咸了,不是整桌重做,而是回锅调味。

具体案例:某开源团队部署修复机器人处理“依赖版本过旧”类 issue,一年合入 300 个 PR,平均重试率控制在 15% 以内,人工只需审核最终补丁。

电商大促商品详情批量生成

阶段:生产落地 + 监控治理

解决的问题:传统方式下运营团队人工撰写 5000 个商品的详情页,耗时数周且质量参差。长任务流水线以“队列调度 + 预算护栏 + 监控大盘”的方式批量生产,失败任务自动隔离重跑,不拖累整体进度——相当于承办过三百场宴席的团队,靠标准手册让新厨师也能稳定出菜。

具体案例:某电商平台在“双11”前用该流水线 3 天生成 5000 篇商品详情,监控大盘实时剔除异常任务,最终点击转化率提升 12%。

Python 演示

python64 行
"""Long-task runner demo: checkpoints, retries, progress tracking"""import random  class AgentWorkflow:    def __init__(self, total_steps=12, checkpoints=(4, 8), max_retries=3, seed=42):        random.seed(seed)        self.total_steps = total_steps        self.checkpoints = checkpoints        self.max_retries = max_retries        self.done = 0        self.history = []        self.checkpoint_passed = 0     def _execute_one(self, step_idx):        """Simulate one step with random failure"""        if random.random() < 0.25:            raise RuntimeError("step {} failed".format(step_idx))        return "step{}_result".format(step_idx)     def _validate(self, done_count):        """Count checkpoints covered by current progress"""        return len([c for c in self.checkpoints if c <= done_count])     def run(self):        """Main loop: step -> retry on failure -> checkpoint validation"""        while self.done < self.total_steps:            step_idx = self.done + 1            ok = False            for attempt in range(self.max_retries + 1):                try:                    result = self._execute_one(step_idx)                    self.history.append((step_idx, attempt + 1, result))                    ok = True                    break                except RuntimeError as exc:                    print("  retry {}: {}".format(attempt + 1, exc))            if not ok:                raise RuntimeError("step {} exhausted, abort".format(step_idx))            self.done += 1            self.checkpoint_passed = self._validate(self.done)            self._report()        return self._summary()     def _report(self):        progress = self.done * 100 // self.total_steps        print("[progress {}%] done {}/{} checkpoints {}".format(            progress, self.done, self.total_steps, self.checkpoint_passed))     def _summary(self):        total_attempts = sum(a for _, a, _ in self.history)        return {            "total_steps": self.total_steps,            "done_steps": self.done,            "checkpoints_passed": self.checkpoint_passed,            "total_attempts": total_attempts,            "retry_rate": round((total_attempts - self.total_steps) / self.total_steps, 3),        }  if __name__ == "__main__":    workflow = AgentWorkflow(total_steps=12, checkpoints=(4, 8), max_retries=3)    summary = workflow.run()    print("task summary:", summary)
目的:用一个小型长任务执行器演示本文全部核心机制——逐步执行、失败重试、检查点校验、进度上报与最终指标统计,运行后可直接观察 25% 随机失败率下的重试行为。
  1. random.seed(seed)固定随机种子,让同一份代码每次复现相同的失败模式,方便测试与教学。
  2. raise RuntimeError("step {} failed".format(step_idx))模拟真实长任务中偶发的步骤失败,触发重试逻辑。
  3. for attempt in range(self.max_retries + 1):允许每个步骤最多重试 max_retries 次,对应“检查点回滚前先重试”。
  4. self.history.append((step_idx, attempt + 1, result))把每次尝试写入历史,供最终复盘与指标统计。
  5. self.checkpoint_passed = self._validate(self.done)每完成一步就重新计算通过多少个检查点,动态更新进度。
  6. progress = self.done * 100 // self.total_steps用已完成步数除以总步数得到百分比进度,相当于出品看板上的完成率。
  7. retry_rate: round((total_attempts - self.total_steps) / self.total_steps, 3)用重试率量化可靠性,这是生产监控的核心指标之一。

常见误区

误区反正现在上下文窗口这么大,把整个任务所有步骤一次写进提示词,让模型一口气干完就行,根本不用拆任务。

正解上下文窗口再大也有上限,而且步骤越多越容易目标漂移——就像把所有菜倒进一口锅,火候、口味、顺序全部失控。正确做法是任务分解、分步执行、检查点校验,让模型像主厨按菜单一道道出菜。长文本生成和长任务执行是两回事:前者只是一次输出,后者涉及工具调用、状态变更和多步决策。

为何常见:短期 Demo 中模型确实能一口气输出长文,让人误以为“长上下文 = 长任务能力”,但生产任务的可变性和状态复杂度远超一次生成的范畴。

误区停下来校验会打断 Agent,不如让它一口气跑完,出错了再从头来,反正失败率不高。

正解从头重跑的成本远高于检查点校验。几何分布告诉我们,单步成功率 p 越低,从头重跑的期望次数越高;而检查点把错误拦截在局部,回滚范围大幅缩小。停一停试菜,是为了避免整桌宴席最后才发现味不对。

为何常见:人本能地觉得“停下来检查”是打断,忽略了错误蔓延到全程时“全部重做”的更大代价。

误区每步打印一句日志就行了,反正模型自己心里有数,不需要额外做状态记录。

正解打印日志是给人看的,进度追踪的核心是状态落盘与决策依据。模型没有“心里有数”的持久记忆——不落盘的状态在进程崩溃、上下文压缩后全部丢失。快照和中间产物让任务可断点续跑,也让外部工具能校验进度真实性。

为何常见:交互式聊天中对话历史看起来“一直在”,让人误以为运行中的状态天然持久化,实际上下文随时可能被清洗或溢出。

误区让模型自己检查自己的产出,等于让考生自己批卷子,肯定自我感觉良好,毫无意义。

正解自检反思循环的关键在于反馈来自外部环境的真实结果——测试是否通过、编译是否报错、接口是否返回异常。接入真实反馈后,它等价于“尝一口再做调整”的闭环;若反馈只来自模型想象,那确实只是复读机。脱离外部信号谈自检,才会陷入自我安慰。

为何常见:把“模型生成的批评文本”误当成“外部反馈”,忽略了 Reflexion 循环中环境信号才是修正的依据。

面试题

Q1. 长任务执行中,把顶层目标拆成多个子任务的首要意义是什么?

单选题 · easy

  • A.让代码结构更美观整洁
  • B.让模型逐步推进防跑偏← 正确答案
  • C.减少模型生成的文字量
  • D.提高上下文窗口的长度

答案:B。任务分解的意义不是让代码好看或省字,而是把“数十步的大目标”变成“可逐项执行、可独立验证的小步骤”,防止模型一步到位时顾此失彼。就像婚宴菜单,把百桌宴席拆成一道道菜,后厨才知道先做什么、后做什么。

Q2. 下列哪个机制主要用于防止长任务执行中的“目标漂移”?

单选题 · easy

  • A.把原始目标固化进系统提示← 正确答案
  • B.每步结束后清空全部历史
  • C.把目标放进最后一条消息
  • D.禁用一切外部工具调用

答案:A。目标漂移指模型在大量中间步骤中逐渐忘记原始目标。把目标固化进系统提示,让它在每次调用中都占据主导位置,是标准应对手段。清空历史、禁用工具属于自残式操作;目标放进末位消息同样会被后续内容冲淡。

Q3. 检查点机制的核心价值在于什么?

单选题 · easy

  • A.加快单步执行速度
  • B.让错误在局部被拦截← 正确答案
  • C.消除所有模型幻觉
  • D.减少提示词的长度

答案:B。检查点让 Agent 在关键节点暂停、校验、回滚,错误在小范围内被拦截,而不是蔓延到整个任务链。它不能加快单步速度,更无法消除幻觉,只是防止小错酿成大祸——就像宴席上到一半先试菜,而不是散席才发现味不对。

Q4. 长任务中“中间产物落盘”有哪些好处?

多选题 · mid

  • A.崩溃后可断点续跑← 正确答案
  • B.释放上下文空间压力← 正确答案
  • C.让进度可被外部校验← 正确答案
  • D.保证模型推理速度翻倍

答案:ABC。落盘让中间结果从易失的上下文内存转移到持久存储:进程崩溃后可读取快照续跑;已完成产出移出窗口,释放 Token 空间;外部审计还能基于落盘文件校验进度。落盘与推理速度没有直接关系,选 D 属于想当然。

Q5. 自检反思循环中,最关键的反馈来源是什么?

单选题 · mid

  • A.模型对自身的信心分数
  • B.外部环境的真实结果← 正确答案
  • C.另一个模型的赞美
  • D.预训练数据的统计分布

答案:B。自检反思要有效,反馈必须来自外部真实结果——测试是否通过、编译是否报错、用户是否确认。如果反馈只是模型自己想象,相当于厨师闭着眼睛说自己菜炒得好,毫无意义。信心分数、他人赞美都不构成客观纠错依据。

Q6. 已知单步成功率为 0.8,最多尝试 3 次,最终成功概率约为多少?

单选题 · hard

  • A.0.800
  • B.0.992← 正确答案
  • C.0.968
  • D.0.936

答案:B。按重试公式 P = 1 − (1−0.8)³ = 1 − 0.2³ = 0.992。三次全部失败的概率只有 0.008,这正是“重试把最终成功率顶到接近 1”的底气。选 0.800 是忘了考虑重试;0.968 与 0.936 是把幂次或底数算错了。

Q7. 下列哪项最能体现长任务中的“降级策略”?

单选题 · mid

  • A.加大温度让输出更随机
  • B.用简单方案替代卡死的子任务← 正确答案
  • C.直接终止整个长任务执行
  • D.把错误日志打印到控制台

答案:B。降级指子任务反复失败时,用更简化的方案绕过瓶颈,比如先输出伪代码再逐步补全,避免整个任务卡死或直接终止。加大随机性只会更不可控,打日志只是观测手段——就像主菜缺货时先上备选菜稳住场面。

Q8. 生产环境中部署长任务 Agent,通常需要哪些工程护栏?

多选题 · hard

  • A.最大步数与 Token 预算限制← 正确答案
  • B.任务队列隔离各实例状态← 正确答案
  • C.全链路日志与指标监控← 正确答案
  • D.关闭一切失败重试机制

答案:ABC。生产级长任务需要预算熔断防烧钱、队列隔离防实例互相污染、日志监控防黑盒。关闭重试机制反而会大幅降低最终成功率——正如公式 1−(1−p)^r 所示,重试是可靠性的重要来源,属于典型的“省小钱坏大事”。

Q9. 上下文容量控制的主要目的是什么?

单选题 · mid

  • A.显著提升单步的执行速度
  • B.防止历史堆满挤掉关键信息← 正确答案
  • C.让全部历史对话一字不差
  • D.降低单次模型调用的费用

答案:B。长任务中历史信息指数增长,若不做摘要压缩,上下文窗口会被旧内容塞满,原始目标和关键决议反而被挤丢。容量控制的目的不是追求一字不差,而是淘汰噪声、保住关键决策。速度与费用的变化只是副产品,不是主要目的。

Q10. 关于“进度追踪”与“检查点”机制,以下说法正确的有哪些?

多选题 · hard

  • A.快照记录可恢复任务状态← 正确答案
  • B.检查点校验通过才能继续← 正确答案
  • C.两者都依赖中间产物持久化← 正确答案
  • D.检查点越密集任务成本越低

答案:ABC。快照保存状态用于恢复,检查点以“校验通过才推进”拦截错误,二者都以中间产物落盘为前提。但检查点越密集,校验调用的开销越高,通常要在纠错收益与 Token 成本之间取平衡,并非越密越好——就像婚宴不能每上一道菜就停十分钟试味。