Skip to content

从后端工程师的视角开发 Agent ​

系列副标题:把模型的候选决策,变成可执行、可验证、可恢复的业务任务。

这个系列面向已经理解 HTTP、数据库、事务、缓存和异步任务,希望进入 Agent 开发的工程师。读完后,读者应能解释一个 Agent 服务如何运行、哪里会失效,以及什么时候值得采用更复杂的设计。

**贯穿论点:模型可以动态决定下一步,但权限、任务事实、资源预算和验收责任,需要由系统明确承担。**同时,传统后端的正确执行并不自动证明模型结论可信。系列会沿两条线一起推进:一条管理动作与状态,另一条管理证据与判断。

这是完整的选题与写作设计,包含 16 篇核心论证;下面的演示均为待制作的实验方案,未声称已经实现、录制或得到性能结果。现有博客可作为素材,但本系列按工程问题重新组织,不按某门课程逐讲复述。

用同一个项目,把 16 篇连起来 ​

贯穿项目是一个企业故障排查与工单助手。用户提出:

“排查订单服务最近 30 分钟的 5xx,结合当前版本文档给出建议;我确认后再创建工单。”

最初只提供三种只读能力:查询模拟日志、检索授权文档、读取指定版本资料。后续逐步加入工单草稿、人工确认、模拟工单服务、异步执行、版本管理与评测。所有演示使用虚构客户和脱敏教学数据,外部写操作落到模拟服务。

案例同时具备几个必要矛盾:日志相似不等于根因相同,旧版说明可能高度相关,工具超时不代表操作没发生,用户中途可能改目标,两个工作进程可能同时恢复任务。这样每篇新增的机制都有具体原因。

贯穿的不变量有四条:

  • 每项确定结论都能回到适用的证据;证据不足时允许部分交付。
  • 每次动作都受当前身份、租户、任务范围与版本约束。
  • 外部动作结果未知时先对账,不擅自改成成功或失败。
  • 成功需要满足任务验收条件;模型生成完成标记只是候选信号。

权限和最小验收从第一篇就在原型中保留,后面的专篇再深入展开。教学顺序不代表可以先做一个无权限边界的系统,最后才补控制。

选题总目录 ​

篇题目核心思考本篇产物
01Agent 出现后,业务控制流应该交给谁?动态决策应放在信息不足且确有价值的位置,控制责任仍需明确决策权分工图、固定流程基线
02一次聊天,怎样变成一个可以交付的任务?对话、任务和执行尝试拥有不同生命周期任务模型、状态机、完成契约
03模型输出进入业务系统,需要经过哪些检查?格式、语义、证据与权限是不同的正确性层次决策协议、校验器、错误分类
04工具调用超时后,工单到底创建了吗?不确定结果来自分布式执行,提示词无法替代业务幂等操作账本、请求指纹、对账协议
05进程重启以后,Agent 应该从哪里继续?恢复执行必须尊重已经发生的事实和非确定产物检查点、恢复表、故障注入记录
06多个任务同时运行,怎样处理并发与取消?并发控制既约束资源,也决定谁有权提交当前结果版本提交、租约与隔离策略
07RAG 找到了文档,为什么仍然缺少答案?相关性、适用性、覆盖与支持关系需要分别验证证据表、主张表、检索诊断集
08上下文与记忆,如何设计读取、更新和失效?模型工作视图可以压缩,任务事实不能随摘要丢失上下文装配器、记忆分类与依赖图
09Agent 代表谁行动?从租户隔离到 MCP 授权连接协议、资源权限与信息发布范围承担不同责任能力约束、威胁模型、权限测试
10接口全绿,为什么 Agent 任务仍然失败?服务可用、任务正确与合理未知必须使用不同判据验收矩阵、校准集、回归集
11Agent 答错了,怎样定位第一处错误?执行轨迹提供过程证据,不能自动等同于因果解释Trace 与产物索引、分层替换实验
12一次任务值不值得继续消耗 Token?优化目标是满足质量约束的有效交付成本预算控制、路由基线、成本对照
13多 Agent 协作,什么时候值得增加复杂度?子任务分工只有超过通信、合并和相关错误成本才有收益协作契约、单 Agent 对照实验
14人工确认,如何成为任务协议的一部分?确认必须绑定具体动作;等待、过期和取消都属于状态确认对象、暂停恢复与交互草图
15只改了一段 Prompt,为什么也需要灰度发布?模型、提示、工具和知识快照共同决定系统行为运行清单、影子评测、迁移与回滚方案
16把前面所有设计放在一起:一个 Agent 服务如何验收?架构的价值必须由业务结果与故障处理证明最终架构、验收报告、能力边界

第一部分:建立任务与执行契约 ​

01 · Agent 出现后,业务控制流应该交给谁? ​

**核心判断:**可以把调查路径的选择交给模型,把必须遵守的条件交给确定性程序。是否采用 Agent,取决于动态选择是否改善任务结果,以及这份改善是否值得支付额外成本。

**正文推进:**从固定流程“查日志→读文档→写建议”出发。当日志提示需要另一份部署记录时,固定流程暴露缺口。引入模型决定下一项调查,但预算、可用工具与提交条件仍由外层执行器管理。由此解释工作流、路由和自主循环之间的实际差别:谁在什么时刻决定下一步。

接着列出决策权清单:模型可以建议查哪个错误码,程序决定能查哪个租户;模型可以建议结束,验收器检查证据是否齐全。这里的“检查”还需区分能写成规则的条件与需要人工或语义评审的判断。

**关键取舍:**固定流程容易预测,却可能覆盖不了开放调查;动态流程适应性更强,却增加步骤、费用与误选动作的机会。不要从“更自主”推导“更先进”。如果任务路径本来清晰,应允许固定流程赢得比较。

**图文与录屏:**同一批任务运行固定流程和有限循环。先给一条固定流程能完成的案例,再给一条需要追查依赖资料的案例。记录完成情况、调用数与耗时;任何效果数字都在实际运行后填写。

**本篇留下:**一张控制责任表和最小基线。下一篇把动态循环放入有生命周期的业务任务。工作流与 Agent 的区分参考 Anthropic;文中分工与案例为本系列设计。

02 · 一次聊天,怎样变成一个可以交付的任务? ​

**核心判断:**用户表达、任务目标和一次执行尝试不能共用一个模糊的“会话状态”。消息可以追加,任务可能修订,尝试可以失败重跑;三者的身份和生命周期不同。

**正文推进:**用户问“进度怎么样”时,原调查不应重建;用户把“订单服务”改为“库存服务”时,目标发生变化,旧结果不能继续提交。用这两个相邻场景推导 conversation_id、task_id、task_revision 与 attempt_id 的职责。

状态机区分运行、等待信息、等待确认、部分完成、完成、失败和取消。为每个终止状态写明可交付产物:预算耗尽后有可信证据的部分报告,不应与毫无结果的执行失败混在一起。聊天记录保留表达,任务记录保存当前有效事实。

**关键取舍:**只存一段摘要实现快,但难以验证遗漏;把每个语言细节都变成字段又会僵化。优先结构化会改变执行与验收的条件,例如租户、服务、时间窗口、允许动作、预算和产物版本。

**图文与录屏:**依次发送查询进度、修改目标、取消任务,展示数据库中的任务与执行尝试如何变化。验收关注“进度查询没有重启工作”“目标变化使相关产物失效”“取消后不会接受旧结果”,而非回复是否自然。

**本篇留下:**任务数据模型和状态转换表。每个状态都说明由谁、凭什么证据进入,后文恢复与人机交互据此展开。

03 · 模型输出进入业务系统,需要经过哪些检查? ​

**核心判断:**模型给出的是候选决策。JSON 可解析只证明结构符合要求;引用存在、参数适用、动作授权和事实受支持,还需要独立检查。

**正文推进:**安排四种输出:非法 JSON、合法但缺少字段、字段齐全却引用其他租户资源、资源合法但结论没有证据。它们不能都交给“重新生成一次”处理,因为失败原因与可修复方式不同。

定义 search、read、propose_ticket、finish 等带标签的决策,再检查结构、业务前置条件与权限。外部写动作进入执行层前,先生成稳定的内部操作意图,不能直接把模型提供的调用 ID 当作业务幂等依据。对无权限请求应拒绝或缩小范围,不能把拒绝变成不断猜参数的重试循环。

**关键取舍:**工具粒度过大,模型难以控制;粒度过小,调用链变长且更易漏条件。将粒度与任务对照:一个带业务语义的“读取本次故障资料”是否比暴露任意 SQL 更容易约束,代价又是什么?

**图文与录屏:**让四类候选逐项通过校验链,显示在哪层被拦截;加入合法正例,证明校验器允许正确动作。若采用录制好的模型响应,明确标为协议回放,不将其当作模型准确率实验。

**本篇留下:**决策协议与错误分类。下一篇从“允许调用”继续追问“调用后世界实际发生了什么”。

04 · 工具调用超时后,工单到底创建了吗? ​

**核心判断:**超时首先意味着客户端不知道结果。工单可能已经创建,重试策略因此必须围绕业务操作身份设计,而不是围绕一条失败日志设计。

**正文推进:**画出“保存工单→响应丢失→客户端重试”的时序。同一个业务意图使用稳定操作 ID,并绑定请求内容指纹;同 ID、同内容返回原结果,同 ID、不同内容报告冲突。同时区分传输重试与模型重新规划后产生的新意图。

继续追问并发与崩溃:两个请求同时检查“未完成”时谁获胜?本地标记成功之前进程退出又怎么办?唯一约束、处理中状态和服务端幂等各自解决一部分问题;若最终副作用位于不支持幂等的另一个服务,仍存在无法靠本地事务消除的窗口。

**关键取舍:**重试有助于最终完成,却可能重复副作用;永不重试避免部分重复,也会损失可恢复任务。无法查询又无法幂等时,应保留结果未知并进入对账路径。补偿也是新业务动作,不能假装所有影响都能撤销。

**图文与录屏:**模拟服务首次创建成功但丢弃响应。错误版本生成两张工单,修复版本以原操作 ID 查回一张;再测试同键不同正文。录屏必须显示服务端记录,而不只展示客户端“成功”消息。

**本篇留下:**操作账本和错误恢复策略;明确演示的顺序调用保证与尚未覆盖的分布式边界。

第二部分:处理时间、并发与信息变化 ​

05 · 进程重启以后,Agent 应该从哪里继续? ​

**核心判断:**恢复的目标是延续已经成立的业务事实。让模型重新思考同一个问题,可能生成不同草稿和动作,不能把这种重生成视为透明重放。

**正文推进:**分别在模型结果生成后、工具执行后、产物提交前终止进程,检查哪些东西已经持久化。区分任务检查点、操作账本和产物引用;恢复器先对账未知操作,再组装下一轮所需上下文。

用户已确认草稿 R1,恢复后却生成 R2,是最有价值的反例:旧确认不能因为 task_id 相同就覆盖新内容。将非确定输出保存为产物并绑定版本,明确哪一步可以重算、哪一步必须复用或重新确认。

**关键取舍:**每一步持久化增加写入和维护成本,过粗的检查点则扩大重做范围。依据动作成本与副作用选择边界,检查框架具体恢复语义;不能从“支持 checkpointer”推出任意业务恰好执行一次。LangGraph 文档区分线程检查点与跨线程存储,也明确内存保存器不会跨进程重启持久化。参考:官方持久化说明

**图文与录屏:**在预先声明的三个故障点强制退出并恢复,核对操作数量、产物内容和任务状态。没有实际完成故障注入时,只交付状态推演,不写“已经支持生产级恢复”。

**本篇留下:**恢复决策表与检查点策略。下一篇再处理同时出现两个恢复者的情况。

06 · 多个任务同时运行,怎样处理并发与取消? ​

**核心判断:**异步执行解决等待问题,并发控制决定结果由谁提交。取消请求可以让工作尽快停止,但无法凭空撤回已经发出的外部动作。

**正文推进:**两个 worker 同时读取任务第 7 版,一个先提交到第 8 版,另一个晚到的结果必须经过版本条件检查。介绍比较后更新、任务租约与隔离令牌的分工;指出租约过期并不证明旧 worker 已停止,外部写入若要防止旧执行者,还需执行端配合检查。

接着把取消拆成请求、执行者观察、停止调度、完成对账几个阶段。对已经提交的工单,可以存在“调查已取消、工单已创建”的真实状态,不应强行压成“什么都没发生”。

**关键取舍:**并发越大,吞吐不一定越高:模型限流、数据库连接和下游工具容量都可能成为瓶颈。采用有上限的队列和按租户隔离的预算,避免一个长任务占满整个服务。此处讨论 worker 调度,第 13 篇再讨论多个模型如何分工决策。

**图文与录屏:**控制两个 worker 的返回顺序,模拟租约过期和取消晚到;核对旧结果未覆盖当前状态、已发生动作仍可查询。再用长短任务混合说明排队时间与服务时间需要分别统计。

**本篇留下:**提交条件、取消语义和资源边界,让“支持并发”成为可检查的声明。

07 · RAG 找到了文档,为什么仍然缺少答案? ​

**核心判断:**检索相关文档,只完成了证据链的入口。当前任务需要的是适用版本下足以支持具体主张的材料,并且应知道还缺什么。

**正文推进:**建立四份故障资料:旧版恢复说明、当前版本配置、错误码描述、部署事实。旧版最容易匹配关键词,但不适用;配置说明介绍某项能力,也不能证明本次部署已经启用。由此分开相关性、版本适用性、运行事实和推断。

将回答拆成“观察到什么”“可能原因”“已排除什么”“还缺什么”,分别绑定来源位置。把未知和反证分开:查不到部署配置不能直接宣布配置错误。权限筛选贯穿检索和读取,不能把跨租户正文先送进模型,再期待回答阶段删除。

**关键取舍:**增大召回能提高覆盖,也会带来噪声与上下文成本;提高排序相关性不能修复候选集合中根本不存在的证据。用人工选定证据替换检索结果,区分召回问题与综合问题,再选择改动。

**图文与录屏:**让错误版本引用旧资料,再显示版本筛选后仍然缺少部署事实。修复后的结果可以是“需补充信息”,不必强行得到一个肯定根因。验收同时看必要证据覆盖和结论支持。

**本篇留下:**证据对象与主张表,为后续上下文压缩保留不能丢失的条件。

08 · 上下文与记忆,如何设计读取、更新和失效? ​

**核心判断:**上下文是供当前模型决策使用的工作视图;长期事实、任务进度和操作状态有各自的权威来源。可以重建视图,不能仅凭一段摘要改写事实。

**正文推进:**将消息历史、已确认约束、证据引用、待调查缺口、用户偏好和操作结果分类。哪些每轮都要装入,哪些按需读取,哪些只需要稳定引用?用“压缩摘要遗漏了不得自动建单”解释为什么关键约束不能靠语言摘要独自承载。

随后讨论写入:模型推测的偏好不能覆盖用户明确说明;新版文档使旧主张失效,需要沿依赖关系更新。长期记忆如果由模型自行提炼,还应保存来源、适用范围、更新时间与修正路径,避免错误因反复召回变成看似可靠的常识。

**关键取舍:**更大上下文提高可见信息量,却不能保证模型使用正确;摘要节省输入,也可能丢掉限制条件。用任务必须保留的信息清单评价压缩,而不是只比较压缩率。

**图文与录屏:**运行到长任务中段后裁剪聊天历史,核对关键约束仍在;更新一条部署事实,观察哪些主张失效、哪些资料可复用。用引用回读恢复详细证据。

**本篇留下:**上下文装配策略和记忆更新规则。数据库与缓存经验在这里有用,但模型选取和概括信息的语义误差仍需单独评测。

第三部分:建立安全、质量与成本的判断依据 ​

09 · Agent 代表谁行动?从租户隔离到 MCP 授权 ​

**核心判断:**模型掌握工具描述,并不意味着它获得该工具的全部权限。每次执行仍需确认当前用户、代理服务、目标资源和委托范围之间的关系。

**正文推进:**从模型把 tenant_id 改成另一个客户开始:身份与租户来自可信会话和后端策略,不能由模型参数自报。再加入文档中的伪指令,展示不可信材料如何诱导一个有权限的执行器越界。

把只读、内部写入、对外发布分开。能读取故障资料,不代表能将原始日志发送到任意地址;模型摘要仍可能带有敏感内容。MCP 负责一部分互操作与协议约定,业务系统仍需实施资源检查和适当的凭证使用边界。官方安全文档专门讨论令牌透传、会话冒用等问题,接入协议本身不是安全验收结论。参考:MCP 安全实践

**关键取舍:**仅暴露窄工具容易约束,灵活性较低;任意 HTTP、SQL 或终端工具更通用,但授权、沙箱和信息流控制范围扩大。根据任务选能力,不以工具数量衡量系统完整程度。

**图文与录屏:**用虚构跨租户文档和模拟外发端测试越权与注入,同时跑合法任务检查误拦截。观察工具服务端究竟收到什么,不只看助手是否口头拒绝。

**本篇留下:**能力矩阵与威胁模型。它们进入下一篇的独立验收维度,不能被更高答案分抵消。

10 · 接口全绿,为什么 Agent 任务仍然失败? ​

**核心判断:**HTTP 成功描述请求处理,工具成功描述一次操作,任务成功描述用户条件满足。三者需要各自的观测与分母。

**正文推进:**展示三份“服务正常”的结果:正确建单但根因错误、根因有依据但建了两张工单、资料缺失而诚实部分交付。由此建立证据支持、动作正确、约束满足、交付程度四维验收,避免只看最终回答的流畅程度。

程序核对工单数量、权限与引用有效性;人工参考或校准后的语义裁判检查支持关系。裁判本身需要反例:专业措辞、很多引用或更长答案是否掩盖了错误?固定故障回归集与估计真实流量表现的数据集分别组织。

关键取舍:“多跑几次至少成功一次”与“每次稳定成功”是不同能力;只有能识别成功结果并承担重试成本,前者才可能转化为产品收益。重复任务还需处理随机性与样本相关性,不把改写十遍的问题当成十个独立业务场景。

**图文与录屏:**让接口、工具和任务三个面板对同一案例显示不同结果,再展示正确部分交付如何被单独统计。比较两个提示版本时保留逐任务差异,不仅展示平均分。

**本篇留下:**最小验收矩阵与数据划分约定。Agent 评测的任务、轨迹和结果分层可参考 Anthropic 工程文;本系列验收场景独立设计。

11 · Agent 答错了,怎样定位第一处错误? ​

**核心判断:**可观测性应该帮助重建“看到了什么、调用了什么、提交了什么”。模型事后生成的理由不能单独证明实际执行过程,更不能自动证明错误原因。

**正文推进:**在 trace 中关联任务、尝试、模型调用、检索、工具操作、产物与评分版本。记录动作所依赖的观察和产物摘要,保存受控回读入口;无需把模型私有推理当成必需日志。

然后用分层替换寻找原因:先给人工确认的证据,看综合是否恢复;再固定候选动作,检查执行器;最后固定最终产物,检查评分器。轨迹显示先后关系,替换实验提供更有区分力的诊断,但也需承认多个错误可能同时存在。

**关键取舍:**完整记录利于调试,却增加费用与数据暴露;全部摘要节省空间,却可能丢失定位依据。为普通任务、失败任务和敏感材料设置不同保留策略。若只采样失败案例,不能用它们估计总体失败率。

**图文与录屏:**从一句错误建议沿引用找到旧文档,再重跑只替换证据的对照;把“模型没有读到”和“读到了却误解”显示为不同错误类别。工具可使用熟悉的 tracing 思路,字段需按选定规范版本落地。参考:OpenTelemetry 通用 Trace 约定

**本篇留下:**一条可审查的失败记录。下一篇根据定位结果分配优化预算。

12 · 一次任务值不值得继续消耗 Token? ​

**核心判断:**便宜的一次调用未必产生便宜的一次有效交付。需要把失败、补查、重试、人工复核与等待一起纳入优化范围。

**正文推进:**定义本系列的任务成本口径,例如在同一任务集合上,以全部尝试费用除以成功交付数,同时另报部分交付、失败与人工复核。不能只统计成功那一次的 Token,隐藏前面的尝试。

分别比较减少上下文、增加补查、使用不同能力模型与语义缓存。先定位瓶颈:证据缺失时增加推理轮数未必有效;错误查询时换大模型也可能掩盖接口问题。缓存键需要绑定租户、问题语义、资料版本与权限变化;不同缓存层的保证要分别说明。

**关键取舍:**更长思考或更多候选可能提高效果,也可能引入新错误。为每个任务建立总预算与阶段预算,取消或超限后停止新增动作,处理已经发生的调用。路由器也有误判成本,不能默认它免费而准确。

**图文与录屏:**在同一任务集合、同一验收规则下比较固定预算与按证据缺口补查的策略,展示质量、费用、p95 耗时和最差案例。简单任务与复杂任务分层报告,阈值由实验得出,不能提前编造提升。

**本篇留下:**带质量约束的预算决策记录。它也为下一篇的多 Agent 成本比较提供共同口径。

第四部分:协作、交互与持续上线 ​

13 · 多 Agent 协作,什么时候值得增加复杂度? ​

**核心判断:**把一个任务拆给多个模型,只有在信息、能力或并行性收益超过重复调查、沟通与合并成本时才值得采用。角色名称本身不产生独立判断能力。

**正文推进:**让日志调查与文档调查形成两个子任务,约定输入、权限、证据引用、完成条件和预算。协调者最后合并主张,而不是简单拼接两段文字。若两个子任务对版本或根因有冲突,先核对依据,不能默认多数意见正确。

区分多 worker 执行一个策略与多个模型拥有不同决策职责。两个 Agent 共用同一段错误摘要,很可能产生相关错误;把同一提示复制三次也不能假装获得三份独立证据。

**关键取舍:**信息能独立收集时有并行空间;强顺序依赖和频繁交换上下文时,协调成本可能抵消收益。看关键路径、总 Token、合并错误和失败恢复,不只看墙钟时间。子任务还需继承第 06 篇的取消与版本检查。

**图文与录屏:**固定工具、资料和总预算,对比单 Agent、多 Agent 分工及只做普通并行检索的基线。专门加入证据冲突,观察合并者是否发现;缺乏稳定优势时,结论允许保留单 Agent。

**本篇留下:**协作契约与是否拆分的证据。编排模式参考 Anthropic,具体分工方案以本项目实验验证。

14 · 人工确认,如何成为任务协议的一部分? ​

**核心判断:**确认是用户对具体动作内容的授权事件,不能只是一个永久的布尔值。澄清、授权与质量复核还应有不同界面和状态。

**正文推进:**模型缺少服务版本时请求澄清;准备建单时展示草稿并请求授权;结论存在证据冲突时请求业务复核。这三种人类介入解决不同问题,不应全部用“是否继续”表达。

工单确认绑定目标项目、正文、附件、任务版本和有效期。用户确认后,后台修改了正文或收到新证据,系统需要按照约定重新核对,而非沿用旧确认。重复点击也只应确认或提交同一个业务意图。

**关键取舍:**每一步都问用户会增加等待与疲劳;完全不问又可能把语义不确定性扩散到真实动作。根据已授范围和动作影响安排介入点,先完成可审阅草稿,再提出具体问题。等待期间释放执行资源,同时保留恢复所需状态。

**图文与录屏:**准备 R1、用户确认、后台产生 R2、旧确认提交被拒绝,然后展示明确差异并重新确认。再测试过期确认、重复点击和取消,核对模拟工单数量。

**本篇留下:**确认对象、交互草图和等待恢复协议。第 09 篇解决“能否授权”,本篇解决“怎样表达、记录并继续执行”。

15 · 只改了一段 Prompt,为什么也需要灰度发布? ​

**核心判断:**提示、模型、工具契约、检索配置和知识快照一起决定行为。版本管理应覆盖这个组合,并考虑仍在运行的旧任务。

**正文推进:**一次“让回答更主动”的提示更新,可能使模型更早结束调查或更频繁提出写动作。建立运行清单,保存影响结果的配置、来源版本与验收版本;外部模型若无法冻结快照,明确这一复现限制。

先离线回归,再用不会提交真实写动作的影子运行比较,最后按风险扩大流量。不能让影子任务复用真实提交工具,造成双写。失败分类除了超时和异常,还包括无依据结论、过早结束、复核量和成本变化。

**关键取舍:**固定版本有利于复现,却要维护多套能力;全量切换简单,却可能让旧检查点无法恢复。对长任务选择固定旧运行环境或显式迁移,记录是否需要重新验收、重新确认。回滚配置也不会自动撤回已经创建的工单。

**图文与录屏:**新提示在简单案例上表现更好,却在缺证据案例中提前交付;回归阻止放量。再展示旧任务在新版工具字段下的兼容失败,以及所选择的迁移处理。

**本篇留下:**发布清单、阻止放量条件和回滚后的对账步骤。不同 SDK 的具体接口留到实现时按版本核对。

16 · 把前面所有设计放在一起:一个 Agent 服务如何验收? ​

**核心判断:**最终架构必须解释每个组件解决的故障,以及其成本。能画出完整架构图,还不足以证明项目已经交付。

**正文推进:**从用户提交故障调查开始,贯穿任务创建、证据收集、候选判断、检查、人工确认、工单执行和最终交付。将接口层、任务存储、模型适配器、证据模块、执行器、审计与验收放在同一张图上,但第一版允许它们作为单体模块存在。

说明什么情况下才需要独立队列、共享存储或更多 worker:依据负载、恢复要求和隔离需求拆分,避免为了展示技术栈引入没有被任务证明必要的组件。框架选择也回到这些责任能否清楚实现和验证。

**关键取舍:**评估整个系统时,不能把只有部分机制实现的演示称为生产系统。明确已实现、已验证、设计待做和超出范围四类能力,并附证据。最终结论也应写出哪些任务不适合当前 Agent。

**图文与录屏:**至少演示正常交付、缺证据、工具超时、进程重启、用户取消、跨租户请求、提示注入、旧确认、预算耗尽和版本迁移十类路径。每个结果回到数据库或产物核对,同时说明语义判断仍有哪类不确定性。

**本篇留下:**可复现入口、架构决策记录、任务验收结果、费用与限制。系列在这里闭合:交给模型的自主性,最终由什么证据证明值得保留?

保证每篇有思考的编辑标准 ​

每篇文章只围绕一个主要矛盾推进。核心判断必须能够被反例挑战,出现什么结果会推翻或缩小结论,应在写作前明确。

编辑检查合格表现需要返工的表现
问题具体给出谁在什么条件下遇到什么失败只说可靠性、安全性或效率很重要
推导连续失败暴露缺口,缺口导出机制,再解释剩余边界概念、框架名和最佳实践并排堆放
方案可比较至少有一个简单基线和明确代价默认更复杂方案一定更好
证据可检查展示中间产物、状态或对照结果只展示最终回答和作者评价
结论有限定写明前提、未覆盖情景及失效条件一次成功就声称通用可靠或零幻觉
前后有承接本篇产物在后文继续使用每篇换一个完全无关的演示项目

“核心思考”最终要落到一个选择:什么时候采用、什么时候不采用、付出什么、如何知道判断错了。单独增加术语、篇幅或架构图,都不能替代这四件事。

一篇图文与一期录屏怎样共用素材 ​

图文保留完整推导、数据结构、对照表、原始资料和实验边界;录屏选择一个能看见结果的反例,完成“复现→定位→修改→再次验证”。不必把全文逐句念出来。

每篇准备同一套素材:失败输入、最小环境、预期行为、实际输出、修复前后差异、尚未解决的问题。概念示意、模拟器执行和真实模型调用分别标注;录制过程不承担性能统计,结果数字来自独立保存的实验记录。

首批先完成 01–04,形成一条完整的小闭环:为什么需要动态调查、如何建任务、怎样接受候选动作、工具失败怎样恢复。它们也能提前暴露后续项目是否过大。如果单篇同时需要解释多个新机制,可拆正文内的小节与补充实验,主标题仍保留一个明确问题。

读者反馈重点记录“是否复现、在哪一步失败、遇到什么不同前提”。这些反馈可以增加后续实验,不应为了更刺激的标题先写出未经验证的效果。

与现有内容的衔接及资料边界 ​

配套分析:Agent 去魅专题已经提供 8 篇正文,逐项讨论哪些机制能够复用后端技术,哪些只在部分层次成立,以及模型语义带来的新增责任。可先阅读概念分析,再按本页制作实战内容。

已有Agent 工程实战可提供基础概念和离线代码素材,Stanford 2026 系列可用于原理补充。本系列的贡献是把后端已有经验与新增的不确定性逐一对应,再用同一个业务任务验证这条迁移路径。

资料核对日期为 2026-09-20。本文就近引用的官方材料用于核实概念与机制,不代表已经复现其系统。LangGraph 文档路径已有调整,本文采用当前可访问的持久化入口;OpenTelemetry 的生成式 AI 约定也有迁移提示,因此选题不硬编码具体版本字段。正式写实现篇时,应记录实际使用版本与访问日期。

本页交付范围:16 篇选题、逐篇核心论证、方案取舍、图文录屏实验设计和编辑标准。完整文章、项目实现与视频是下一阶段的制作产物。

返回 Agent 专题 · 后端与分布式 · 阅读路线