跳到主要内容

Harness 优化与 Meta-Harness

目录

优化目标:不只「更快」,而是「更省、更稳、更可调」

Agent Harness 的优化维度与纯 API 不同:多步放大任何一步的浪费。一次 5 步 Agent 请求若每步多 500ms 延迟、多 2k input token,总成本可能是单次聊天的 5–10 倍。

维度指标2026 参考方向
延迟P95 end-to-end并行 tool、流式首 token、小模型路由
成本$/successful taskPrompt cache、RAG 减量、步数压缩
成功率task completion rateEval Harness 回归、repair 一次
安全guardrail block rate误杀率与漏放率分开看

延迟优化

1. 流式优先

  • LLM:边生成边推给前端(SSE / Web Streams)
  • 工具:能异步的不要阻塞 UI(「正在查询订单…」状态)
  • 编排:不要等所有 tool 完成才 stream——部分 SDK 支持 interleaved streaming

2. 并行工具

模型一次返回多个 tool_calls 时,无依赖的工具并行执行

searchUser(id)  ─┐
searchOrder(id) ─┼→ 合并结果 → 下一步 LLM
getInventory() ─┘

Harness 在网关层做 dependency graph(简单场景:全部并行;复杂场景用 LangGraph)。

3. 模型路由(Model Routing)

子任务模型
意图分类 / 是否需 tool小、快、便宜
复杂推理 / 长文档推理或 flagship
结构化提取带 Structured Outputs 的 mini

路由本身可以是 Harness 里的一次 cheap classifier call,或规则(消息长度、是否含附件)。

4. speculative 执行(谨慎)

对高概率 tool(如「查当前用户 profile」)在用户消息到达后 与 LLM 并行 prefetch——命中则省一步。必须有 cache invalidation,否则易脏读。

成本优化

1. Prompt Caching

稳定前缀(system + 工具 schema + 长期 Skill)尽量放 cacheable 块;Harness 保证:

  • system 字符串版本化,勿随意改标点
  • 工具 schema 变更走发布流程(触发 Eval)

2. 减少步数

  • 合并 toolgetOrderDetail 代替 getOrder + getItems + getShipping
  • Plan 一次执行:Plan-Execute 减少「想一步动一步」的往返
  • 提前终止:输出验证通过即 stop,不要多余「总结一步」

3. Context 减量

模式 ② 上下文预算;额外技巧:

  • RAG hyde / rerank 提高精度,降低 k
  • Tool result 只回模型需要的字段(projection)

4. 批处理与队列

非实时任务(报表 Agent)走队列 + 批 API,不占在线 P95。

稳定性:自愈与重试

失败类型Harness 策略
429 / 5xx指数退避 + 换 region/备用 provider
JSON 解析失败同一模型 repair prompt 一次
Tool 超时标记 partial,让模型换策略或告知用户
重复 loop模式 ④ 检测后注入「你必须给出 final answer」

禁止:无上限重试同一 tool call——会放大下游压力。

Meta-Harness:用 Agent 优化 Agent

Meta-Harness 指:外层再用模型或自动化 分析 trace、调 Harness 参数,而非直接面向用户。

用途示例
日志分析nightly 扫 trace,聚类「重复失败 tool」
Prompt 调优对 Eval 失败 case 生成 patch 建议(人审后合并)
策略搜索A/B maxSteps=3 vs 5 的成功率与成本
合成数据从生产 trace 脱敏生成 Golden Set

边界:Meta-Harness 不得自动改生产配置 without 门禁;输出应是 PR + Eval 通过。

Agent性能优化与监控 的关系

该文偏 指标与架构;本文偏 Harness 层可拧的旋钮。面试可合并回答:

性能分三层:模型选型与 cache、Harness 步数与并行、基础设施 autoscale。Agent 场景最大杠杆通常是 减步数 + 工具并行 + 小模型路由

前端视角的 Harness 优化

  • 可中断:AbortController 贯穿 fetch 与 AI SDK
  • 乐观 UI:tool 执行中展示 skeleton,不白屏
  • traceId 展示(内测):客服可复制 trace 给研发
  • Debounce 合并:用户连发消息时 cancel 上一轮 run

延伸阅读