一页浓缩全部决策规则。每条规则的完整论证在对应模块;Capstone 全景应用见 13-capstone-project/。易变数字标注「截至 2026-08-30」。
定义(Building Effective Agents):工作流 = LLM+工具按预定义代码路径编排;智能体 (agent) = LLM 动态指挥自己的流程与工具使用。
| 信号 | 选择 |
|---|---|
| 一次调用 + 检索/few-shot 就够 | 单次调用(不上 agentic 系统)——很多应用到此为止 |
| 输入有清晰类别,处理方式各异 | Routing(可配便宜模型) |
| 任务可分解为固定顺序子步骤 | Prompt chaining(延迟换准确率;中间加程序化 gate) |
| 子任务独立 / 需多视角 | Parallelization(分段/投票) |
| 有清晰评估标准且迭代有可测收益 | Evaluator-optimizer |
| 步骤不可预知但可现场分解 | Orchestrator-workers |
| 开放式、步数不可预测、路径无法硬编码 | Agent(须有停止条件+步数上限+人审检查点) |
| 长时程异步、不想自建 loop/沙箱 | Managed Agents(beta,截至 2026-08-30) |
反模式:为 agentic 而 agentic——「只在能证明改善结果时才增加复杂度」;反向反模式:开放式任务硬编 pipeline。经验值:客服类先分诊(简单单次调用 → 任务 workflow → 疑难 agent)。
| 倾向 直接 API 集成 | 倾向 MCP |
|---|---|
| 1–2 个系统、工具 <10、单应用消费 | 多 server、工具几十上百、多 host 复用 |
| 延迟敏感、要精细重试/熔断 | 已有现成 server(GitHub/Slack/DB…)或平台团队供给 |
| 凭证必须留在自己服务里 | 需要运行时发现(tools/list) |
混合是常态:核心链路 direct + 长尾 MCP。MCP 改变的是「模型如何发现与调用工具」,不改变「系统如何实现」。工具描述视为不可信输入(第三方 server);工具定义吃上下文,超窗口 1%–5% 再上 progressive discovery / tool search。
| 知识体量 | 选择 |
|---|---|
| < 200k token(约 500 页)且高频复用 | 塞上下文 + prompt caching(断点放稳定前缀末尾) |
| 大库、按需取片段 | RAG:hybrid(embeddings+BM25, RRF 融合)→ rerank(Top-150→Top-20)→ metadata pre-filter |
| Agent 要现场探索、索引会过时 | Agentic search(搜索工具交给模型;慢、步数不定) |
任何窗口都有 context rot(塞得下≠答得准)。精确 token(错误码/SKU/编号)靠 BM25,语义改写靠 embeddings——官方默认 hybrid。权限与新鲜度用 pre-filter 解决(tenant/valid_until 在候选集形成前过滤),不是生成后检查。
| 触发 | 动作 |
|---|---|
| 不可逆/高价值动作(退款>阈值、账户变更、删除、对外发送) | 审批门:模型只创建冻结申请,人批准才执行 |
| 低置信 / 无充分证据 / 合规敏感话题 | 会话升级人工 |
| 用户显式要求 / 情绪负面 | 会话升级人工 |
| 降级链打穿 / 熔断全开 | 系统级升级 |
人审是架构一等公民:结构化交接(摘要+已执行动作+证据+建议),处置结果回写评估集。高危动作在审批门故障时冻结排队,绝不「临时绕过」。
cache_control 放「跨请求不变的最后一个块」——时间戳/动态内容放前面=永远付全价。LLM 指令 ≠ 应用层强制。翻译规则:每个「模型不该做 X」都要变成「系统使 X 不可能」:
| 能力级 | 控制点 |
|---|---|
| 读(低危) | 服务端以用户身份调用 + 字段脱敏 |
| 读(租户敏感) | 数据范围硬过滤(pre-filter / 行级安全)——物理隔离,非 prompt 承诺 |
| 写 | 服务端参数校验 + 策略引擎 + 审计 |
| 执行(不可逆) | 模型无此工具;申请→审批→执行三段式,执行通道在代码里 |
Prompt 级加固(角色边界、防注入指令)是纵深防御的一层,永远不是边界。能力面 = 攻击面:最小工具清单本身就是安全设计。注入防御五层:入口筛查 → 检索内容=数据(非指令)→ 权限过滤 → 最小工具面 → 出口检测(PII/敏感)。
错误发生
├─ 4xx 参数/鉴权类 ──────────── 不重试;记日志;修调用方
├─ 429 限流 ─────────────────── 读 Retry-After → 退避重试(计入预算)
├─ 5xx / 超时 ───────────────── 指数退避+jitter 重试 ×≤2(计入预算)
│ └─ 仍失败 → 熔断器计数
│ └─ 熔断开 → 新请求走降级链:
│ 强模型→弱模型→缓存模板+表单收集→人工队列
├─ 工具业务错误(订单不存在)── is_error 回传模型,让它自我修正
├─ 工具/检索基础设施挂 ──────── 该依赖独立熔断;全局不倒
│ └─ 检索挂 + 需要证据 ────── 无证据不回答 → 直转人工
└─ 预算耗尽 / 链打穿 ────────── 会话挂起 → 升级队列 + 用户明确告知
三条不变式:①预算之内才有资格重试;②无证据不回答(宁可升级不出编造);③每次降级都是可观测事件(降级率异常=事故信号)。审计必须能回放「谁在哪个策略依据下做了什么」。
/\
/ \ 降本:缓存+Batches+分层路由+top-k 收紧
/ \ —— 多轮缓存命中可把输入成本压到 1/10
/ LLM \
/ 系统 \ 提速:streaming、小模型、并行化、
/__________\ 缓存(首字延迟)、精简上下文
延迟 ↓(快) 可靠性 ↑(稳)
| 优先谁 | 手段 | 付出 |
|---|---|---|
| 成本 | 分层路由、缓存、Batches、收紧 top-k/输出预算 | 延迟(批处理)或质量风险(降档) |
| 延迟 | streaming、小模型、并行工具、缓存 | 成本(并行/缓存写溢价)、复杂度 |
| 可靠性 | 降级链、熔断、人审、多级 fallback | 成本(冗余)、延迟(审批等待) |
没有三角全优:明确 SLA(如首字 p50≤5s)、预算($/会话)、可用性目标(99.5%),再排优先级。灰度发布(1%→5%→25%→100%)+ 分标签指标 + 自动回滚是三角的「安全网」。
规则出处与完整论证:📚 目录01–12各模块(仓库目录);全景应用案例:13-capstone-project/。关键官方锚点:Building Effective Agents、Contextual Retrieval、Prompt Caching、Batch Processing、MCP Specification、Mitigating Jailbreaks(均于 2026-08-30 核验,清单见sources/sources-13-capstone.csv)。