Agent Runtime 架构拆解:Prompt 如何变成可校验的执行链路

发布时间:2026/7/15 18:59:06
Agent Runtime 架构拆解:Prompt 如何变成可校验的执行链路 一套可上线的 Agent Runtime关键不在模型而在可追踪、可验证、可修复的执行系统。很多人看 Agent第一眼会盯着模型参数多大、上下文多长、推理强不强。工程里真正麻烦的地方往往不在这里。用户只发出一句话系统却要判断意图、补齐字段、选择执行模式、调用工具、整理证据、生成草稿、做校验最后还要决定哪些信息值得沉淀。一个可用的Agent Runtime本质上是在模型外面加了一套执行系统。模型负责推理和表达Runtime 负责把一次概率生成变成一条可追踪、可回放、能重试的链路。没有这层工程约束模型很容易在复杂任务里变成“看起来会做事的聊天框”。下面用一个简单任务贯穿全文帮我整理上周几个项目会议的结论生成一份给团队看的周报。这句话看起来不复杂。真要让系统自动完成它至少要知道时间范围、项目范围、读者是谁、最终格式是什么哪些字段可以自动查哪些字段不能猜。Agent 的工作从这里开始。Runtime 总图模型只是一段执行链路里的一个节点Agent 不是“LLM 工具列表”。更准确的拆法是把它看成一条运行时管线前面把自然语言编译成任务结构中间用上下文和工具驱动执行后面用证据和校验决定能不能交付。图Agent Runtime 从用户请求到校验收尾的完整执行链路这张图把 Agent Runtime 拆成更适合工程讨论的视角模型不是入口也不是终点它夹在编排、状态、证据和校验之间。图Prompt 进入 Runtime 后先被编译成可执行任务契约Prompt Compiler先把一句话编译成任务契约Agent 收到用户请求后第一步不该急着回答。更稳的做法是先做 Prompt Compiler把自然语言转成一个带字段、约束和风险标记的任务契约。对“整理上周几个项目会议”这类任务来说系统要抽出task_type、time_range、audience、output_format还要标出哪些字段没有明确给出。例如项目列表可以通过日历和文档发现但 owner、deadline、项目状态不能随口补。{ task_type: weekly_report, slots: { time_range: last_week, projects: discover_from_tools, audience: team, output_format: weekly_report }, missing_slots: [project_list], must_not_guess: [owner, deadline, project_status], confidence: 0.82, clarification: { needed: false, reason: projects can be discovered from calendar and docs }}这里最关键的是“能不能猜”。低风险字段可以从默认偏好或上下文里补高风险字段必须查证查不到就标待确认。很多 Agent 失败不是模型不会写而是入口阶段没有把“禁止编造”的字段圈出来。机制运行时职责输出输入清洗处理指代、隐私字段、噪声文本必要时做 query rewrite更干净的用户请求意图分类判断当前是问答、写作、查询、操作还是混合任务task_type槽位填充抽取时间、对象、格式、收件人、范围等关键字段slots缺口检测按任务 schema 检查必填字段是否缺失missing_slots澄清策略判断追问、自动补全、继续执行还是兜底clarification样例库在这一层也有用。系统可以把用户请求转成检索 query找历史上相似任务的task_type、槽位结构和路由结果作为 few-shot 参考。这样模型不是凭感觉分类而是在已有执行样例附近做判断。Execution Router先选执行模式再绑定 Skill 和 Tool意图识别之后Runtime 要做一次路由决策。这里不只是“选哪个工具”。它要判断当前任务应该直接回答、追问、走 ReAct、走 Plan-Execute还是进入安全兜底。简单事实问题可以直接回答。目标明确、步骤稳定的任务适合 Plan-Execute。需要边查边判断、下一步强依赖工具返回的任务适合 ReAct。高风险或字段缺失严重的任务应该先问清楚不要用聊天模式硬跑。{ decision: { route: use_skill_and_tools, reasoning_mode: plan_execute, selected_skill: weekly-report, tool_candidates: [calendar.search, docs.search, im.search], plan: [ find meetings from last week, collect project evidence, draft weekly report, verify claims ], fallback: { if_low_confidence: ask_clarification, if_tool_unavailable: safe_execute_with_uncertainty } }}ReAct 和 Plan-Execute 的差别可以用下面这张图看清楚图ReAct 与 Plan-Execute 在执行节奏上的差异工程上最好不要让模型在全量 Skill 和 Tool 里自由挑。先由 Runtime 根据任务类型、风险和依赖关系筛出候选再把候选能力注入上下文。能力列表越大越需要路由层不能把“在一千个工具里选一个”的压力全甩给模型。决策问题更稳的处理方式什么时候用 ReAct下一步依赖工具观察结果或者资料状态不确定什么时候用 Plan-Execute目标清楚、步骤可拆、依赖关系比较稳定什么时候追问缺失字段会直接影响结果或带来风险什么时候兜底工具不可用、权限不足、风险超过阈值怎么避免无限循环设置最大轮次、工具预算、重复观察退出条件图上下文运行时把稳定规则与任务现场分层管理Context Runtime静态前缀管规则动态状态管现场模型每一轮看到的不是系统里所有信息。Runtime 会把上下文分成两类静态前缀和动态状态。静态前缀放稳定材料系统规则、工具 schema、Skill 说明、输出格式、长期项目约定。动态状态放当前任务现场已确认事实、未决问题、工具结果摘要、下一步目标。两者混在一起模型会被噪声拖垮缓存也很难命中。{ system_rules: [ do not fabricate facts, mark owner or deadline as pending if unsupported ], tool_schemas: [ calendar.search(range, keyword), docs.search(query, project), im.search(query, time_range) ], skill: { name: weekly-report, sections: [结论, 进展, 风险, 下周计划] }, project_rules: { tone: concise, must_trace_sources: true }}这里有两个容易混淆的缓存概念。KV Cache是单次生成内部的缓存避免每生成一个 token 都重新计算历史上下文。Prompt Cache复用的是跨请求的稳定前缀比如系统规则和工具定义。前者提升 decode 阶段效率后者降低重复前缀的计算成本。缓存对象复用范围典型内容主要收益KV Cache单次生成内部已处理 token 的 Key/Value降低逐 token 解码开销Prompt Cache多次请求之间系统规则、工具 schema、固定输出模板减少稳定前缀重复计算动态模板要特别小心。只要前缀里混入{{user_name}}、当前日期、临时工具结果原本可复用的稳定部分就可能变得不稳定。更好的做法是把固定规则和变化字段拆开稳定前缀尽量稳定变化字段放到动态后缀。Observation Loop工具结果不能原样塞回模型Agent 调工具后最忌讳把原始返回全文直接塞回下一轮。工具返回的是 observation不是下一轮 prompt。Runtime 要做的是抽取结构化事实、更新 working state再把下一轮要解决的问题交给模型。一个任务跑到中途状态里至少应该有这些内容任务目标、执行到哪一步、已确认槽位、事实列表、实体状态、未决问题、工具历史、证据索引和质量标记。{ task: { task_id: task_20260624_001, task_type: weekly_report, user_goal: 整理上周几个项目会议的结论生成一份给团队看的周报, status: in_progress }, execution: { reasoning_mode: plan_execute, current_step: collect_project_evidence, loop_count: 3, retry_count: 0, next_action: retrieve_more_evidence }, slots: { time_range: { value: last_week, status: confirmed, source: user_prompt }, projects: { value: [A, B, C], status: confirmed, source: calendar.search } }, open_questions: [ { field: deadline, project: A, reason: 周报需要 deadline但当前证据中没有明确日期, priority: medium, next_probe: { tool: im.search, query: A 项目 deadline } } ], quality_flags: { has_missing_required_fields: true, has_conflicts: false, needs_more_retrieval: true, safe_to_generate_draft: true }}这份状态不是越详细越好。它应该像飞行仪表盘只保留继续执行需要的信息。工具原文可以保留 source id没必要长期塞在 prompt 里。否则循环几轮之后上下文会变成日志垃圾场模型很难判断哪些是事实哪些只是历史噪声。图工具返回结果进入工作状态的处理过程同一事实多次返回不一致时不要直接覆盖。状态里应保留来源、时间、权威性和置信度新版本优先正式来源优先冲突内容进入待确认列表。Evidence Pipeline先召回一批再留下能支撑答案的证据生成之前Runtime 还需要做证据筛选。RAG 不是“搜到什么塞什么”。更合理的链路是query rewrite、混合召回、元数据过滤、reranker 重排、证据裁剪最后输出一个能支撑关键断言的 evidence bundle。图证据从召回到裁剪的质量控制链路Reranker 不应该只看 embedding 相似度。对周报任务来说是否包含 owner、deadline、风险、决策结论来源是不是正式会议纪要更新时间是不是最新都要参与排序。政策、合规、生产操作这类场景还要提高权威来源的权重。{ evidence_bundle: [ { claim_target: A 项目优先做 MVP, source_type: meeting_note, authority: official, freshness: high, rank: 1 } ], dropped_items: [无关闲聊, 重复讨论, 过时草稿], memory_summary: { confirmed_facts: 6, open_questions: [B owner, C deadline] }}证据裁剪的目标不是让上下文更短而是让模型只看到“能支撑当前回答”的材料。旧版本文档、重复聊天、情绪化闲聊、没有 source id 的转述都应该被降权或丢弃。证据处理环节主要风险工程处理召回漏掉关键来源多路检索query rewrite适当放宽召回重排语义相似但不权威加入来源权威性、新鲜度、字段覆盖度裁剪上下文被噪声挤满去重压缩按 claim 保留材料冲突处理新旧结论互相打架同时保留冲突来源标待确认Draft Generator生成的是草稿不是最终答案到了生成阶段模型拿到的已经不是用户原始 prompt而是任务契约、静态规则、动态状态和证据集合。好的生成要受约束输出结构要固定关键断言要有来源不确定字段要显式标出来。{ draft_answer: { summary: 上周 A/B/C 三个项目均有明确进展, sections: [ { name: 结论, content: ... }, { name: 风险, content: ... } ], uncertain_items: [B owner, C deadline], citations: [meeting_note_2026_06_21, project_doc_A] }}这里最好把生成产物叫 draft。这个命名很重要它会提醒系统后面还有校验。很多事故都发生在“模型写完就直接返回”的链路里语言很顺但里面混进了无证据 owner、错误 deadline 或旧版本状态。生成阶段常见的工程约束包括机制作用Prefill让模型先吸收静态前缀、动态状态和证据集合Decode按 token 连续生成正文Stream Generation分片返回支持取消、中断和超时处理Format Constrained Generation用 schema、固定标签或模板减少格式漂移表达可以润色事实不能自由发挥。证据里没有的结论不要靠“合理推断”补上缺字段就写待确认。图 按关键断言检查证据支持再决定保留、补查或改写Verifier按 claim 检查不要只给整段答案打分草稿生成后Runtime 要做验证。验证不是看文章顺不顺而是看有没有漏字段、有没有编造、有没有和证据冲突。比较稳的办法是claim extractionevidence linking把草稿拆成最小关键断言再逐条找证据支持。{ verification_result: { coverage_ok: false, unsupported_claims: [B 项目 owner 是李四], missing_fields: [C 项目 deadline], contradictions: [ { claim: A 项目风险解除, evidence: 会议纪要里仍标记为高风险 } ], next_action: retry_with_more_evidence }}claim 不需要切得过碎。结论、风险、负责人、截止日期、数值、状态变化要查修辞性句子不用查。证据不足和证据矛盾也要分开处理找不到证据是 insufficient证据明确反向支持是 contradiction。前者可以补查或标不确定后者必须改写或阻断。图草稿按关键断言进行证据校验与修复分流校验还包括格式、敏感信息和内容安全。比如输出结构不合法时直接修格式存在未脱敏人名、手机号、邮箱时阻断高危操作建议要进人工确认或安全降级。Repair Loop校验失败后要补查、改写或降级校验没过不等于整个任务失败。Runtime 应该把问题映射成具体修正动作缺证据就补查表达不合规就改写字段不确定就标待确认工具失败就走重试策略。关键是别无脑重生整篇这样很可能把原来的问题换个说法再写一遍。{ finalization: { status: retry_required, reason: missing evidence for B owner and C deadline, retry_plan: [ { action: retrieve_more, source: im.search, target: B owner }, { action: revise_answer, mode: mark_uncertain } ], user_visible_output: null }}重试必须有预算。比如最多补查两次、改写一次再失败就进入 fail-safe说明缺口和可用信息不要一直循环。LangChain 多代理流程陷入长时间循环、工具费用失控根源往往就是没有把退出条件和预算做成硬约束。失败类型修复动作工具超时按工具类型重试超过次数后降级证据不足针对缺口字段二次检索证据冲突保留冲突来源删除确定性结论格式错误走结构化修复不重跑全部任务高风险不确定请求用户确认或转人工Closure答案发出后任务还没真正结束Agent 返回最终答案之后还需要做收尾。这里的核心问题是哪些信息可以进入长期记忆哪些只属于本次任务现场哪些日志要保留给评估和排障。{ task_closure: { status: completed, long_term_memory_candidates: [ { type: user_preference, content: 团队周报偏好结论先行、风险单独列出, write_back: true, reason: stable and reusable } ], short_term_memory_cleanup: [ raw_tool_results, temporary_search_candidates, intermediate_drafts ], evaluation_log: { tools_used: [calendar.search, docs.search], retry_count: 1, verification_passed: true } }}长期记忆不能变成垃圾桶。稳定偏好、项目固定规则、用户明确确认的信息可以写入一次性会议结论、临时搜索候选、原始工具日志不应该长期保存。记忆还要带来源、时间戳和版本新信息和旧记忆冲突时先进入候选区别直接覆盖。短期记忆和长期记忆的职责可以这样分类型保存内容读写方式退出策略短期记忆当前任务状态、最近工具结果摘要、未决问题每轮读取和更新任务结束后压缩或清理长期记忆稳定偏好、项目规则、可复用背景新任务开始时读取确认后低频写入被新版本覆盖、长期不用或用户否认时降权任务日志也要保留到合适粒度。工具调用、重试次数、失败原因、验证结果值得保存原始敏感内容、无关中间草稿、可还原隐私的 trace 不该长期留着。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】