摘要 本报告系统梳理 Harness Engineering(驾驭工程)这一新兴 AI 工程学科的核心概念、技术体系、最佳实践和行业趋势。研究目标是为飞常准国际机票 AI 订票助手的智能体能力建设提供理论基础和工程参考。报告基于 300+ 篇外部资料的综合分析,核心引用 25 篇原文(保存在 原始资料/ 目录)。
Harness Engineering 由 OpenAI 在 2026 年初正式提出。他们的 Codex 团队用 3 人、5 个月时间,在零人工编码的情况下交付了 100 万行代码——靠的不是更强的模型,而是一套精心设计的"驾驭系统"。
OpenAI 核心论述 "When the agent struggles, we treat it as a signal: identify what is missing—tools, guardrails, documentation—and feed it back into the repository." —— OpenAI: Harness Engineering
Martin Fowler / Thoughtworks 团队随后将其系统化为三个组成部分 (Fowler: Harness Engineering):
LangChain 在其「Agent Harness 解剖学」一文中给出了最简洁的定义 (LangChain: Anatomy of an Agent Harness):
Harness(驾驭系统) = 模型本身之外的所有代码、配置和执行逻辑。
包括:系统提示词、工具描述、基础设施(文件系统、沙箱、浏览器)、子代理编排逻辑、中间件 Hooks 等。
HumanLayer 的文章 (HumanLayer: Skill Issue) 一语中的:
"The model is probably fine. It's just a skill issue."
LangChain 用实验证明了这一点 (LangChain: Improving Deep Agents):仅通过优化 Harness(不换模型),他们的 coding agent 在 Terminal Bench 2.0 上从第 30 名跃升至第 5 名,得分从 52.8% 提升到 66.5%——纯粹靠工程,不靠模型升级。
对机票业务的启示 我们构建 AI 订票助手时,不应把重心放在"等更好的模型"上,而应投资于 Harness——工具面、上下文管理、治理规则、评估体系。这才是真正的竞争壁垒。
LangChain 提出了清晰的三层分类 (LangChain: Frameworks vs Runtimes vs Harnesses):
| 层级 | 定义 | 代表产品 |
|---|---|---|
| Framework(框架) | 提供核心抽象,建立心智模型 | LangChain, Vercel AI SDK, CrewAI, OpenAI Agents SDK |
| Runtime(运行时) | 生产级基础设施:持久执行、流式、HITL、持久化 | LangGraph, Temporal, Inngest |
| Harness(驾驭系统) | "Batteries-included"——默认提示词、固执己见的工具处理、规划能力、文件系统 | Claude Code, DeepAgents, Codex |
对我们的映射
- Framework 层:选用 Claude Agent SDK 或 LangGraph 作为底层框架
- Runtime 层:需要自建或选型持久执行引擎(支持断点续跑、人工介入)
- Harness 层:这是核心投资方向——即 AI订票助手-Harness工程方案 中定义的 6 层架构
根据 LangChain 的解剖 (08-anatomy):
核心文件:AGENTS.md / CLAUDE.md
GitHub 分析了 2,500+ 个仓库后总结出六大核心覆盖领域 (GitHub: Great AGENTS.md):
关键原则 "The best agent files grow through iteration, not upfront planning." —— GitHub: Great AGENTS.md
对机票 Agent 的映射:我们的 AGENTS.md 应定义订票 Agent 的操作契约——哪些工具可以自主调用(搜索类)、哪些需要确认(下单类)、哪些绝对禁止(跨用户数据访问)。
Anthropic 的工具设计指南 (Anthropic: Writing Tools) 给出了核心原则:
"More tools don't guarantee better performance."
不要把每个 API 端点包成一个工具。应该:
Anthropic 的高级工具使用 (Anthropic: Advanced Tool Use) 引入了三个关键能力:
| 能力 | 解决的问题 | 效果 |
|---|---|---|
| Tool Search Tool | 工具库上下文膨胀 | 77K → 8.7K tokens(-85%),准确率 49% → 74% |
| Programmatic Tool Calling | 中间结果污染上下文 | Token -37%,支持并行编排 |
| Tool Use Examples | 参数使用模式不清 | 准确率 72% → 90% |
对机票工具面的启示 我们的 8 个核心工具(search_flights, evaluate_plans 等)需要:
- 每个工具附带 2-3 个使用示例(日期格式、航段表达、多乘客参数)
- 返回值用自然语言("北京首都 → 东京成田"而非"PEK→NRT")
- 搜索工具支持 concise/detailed 两种返回格式
Anthropic 定义 (Anthropic: Context Engineering):
Context = the set of tokens included when sampling from a LLM. Engineering = optimizing utility of those tokens against inherent LLM constraints.
LangChain 总结了四大上下文管理策略 (LangChain: Context Engineering):
| 策略 | 含义 | 关键技术 |
|---|---|---|
| Write | 将信息保存到上下文窗口外 | Scratchpads, 跨会话记忆 |
| Select | 按需检索相关信息 | RAG, 知识图谱, 语义检索 |
| Compress | 仅保留必要 token | 自动压缩(Claude Code 在 95% 容量时触发), 修剪 |
| Isolate | 将信息分散到独立上下文 | 子代理(上下文防火墙), 沙箱, 状态隔离 |
随着 token 增长,LLM 准确率下降——Transformer 的 n² 注意力关系被拉伸。
长期运行的 Agent 面临四种上下文退化:
对订票 Agent 的启示 订票场景天然涉及大量结构化数据(航班列表、价格矩阵、中转方案),极易触发 context rot。我们需要:
- 工具返回值必须做压缩(只返回 Top 5 方案摘要,不是全量数据)
- 评估子任务使用子代理隔离(风险检查 Agent、价格比较 Agent 各自独立上下文)
- 建立 Booking Context Graph 作为结构化外部记忆
Anthropic 的 Agent Skills (Anthropic: Agent Skills) 引入了三级渐进式披露 (Progressive Disclosure):
"This metadata is the first level of progressive disclosure: it provides just enough information for Claude to know when each skill should be used without loading all of it into context."
核心价值:在不膨胀上下文的前提下,给 Agent 注入领域专业知识。
对机票 Agent 的映射 订票 Agent 可以按以下方式组织 Skills:
- booking-rules.skill:订票规则(退改签政策、行李规则等)
- risk-assessment.skill:风险评估(天气、签证、中转时间等)
- pricing-strategy.skill:比价策略(日历低价、临近机场、混合舱位等)
这些 Skill 平时只占 ~80 tokens,仅在相关场景被触发时才加载完整内容。
OWASP 发布了专门针对 Agent 应用的安全风险清单(OWASP Top 10 for Agentic Applications),10 大风险包括:
Martin Fowler 团队 (Fowler: Humans and Agents) 提出三种人机协作模式:
| 模式 | 描述 | 适用性 |
|---|---|---|
| Outside the Loop | 人类只定义目标,Agent 全权执行 | 低风险、可验证的任务 |
| In the Loop | 人类逐步审批 Agent 的每个动作 | 高风险但会成为瓶颈 |
| On the Loop(推荐) | 人类设计约束系统,Agent 在其中运作 | Harness Engineering 的本质 |
对机票治理的映射
- 搜索组工具(search_flights 等):Outside the Loop — 自主执行
- 评估工具(evaluate_plans):Outside the Loop — 自主执行但结果需风险标签
- 下单工具(create_booking):In the Loop — 必须持有 confirmation token
- 售后转接(handoff_aftersales):In the Loop — 必须转人工
LangChain 的行业调查 (LangChain: State of Agent Engineering) 显示:
> "Context engineering is the dividing line between teams that ship and those that don't." —— LangChain State of Agent Engineering 2026
结合各方最佳实践,建议按四个维度建立评估体系:
| 维度 | 指标 | 来源 |
|---|---|---|
| 任务质量 | 推荐方案可执行率、价格偏差、对话完成率 | Anthropic + Sierra tau-bench |
| 工具质量 | 调用成功率、平均时延、误用率、无效调用占比 | Anthropic Writing Tools |
| 治理质量 | 红线违规次数、token 绕过尝试、人工接管率 | OWASP Agentic Top 10 |
| 业务价值 | 单次决策时长、每单平均成本、售后率、投诉率 | Klarna Case Study |
Anthropic 的「Effective Harnesses for Long-Running Agents」(Anthropic: Effective Harnesses) 提供了一个特别有参考价值的模式:
| 组件 | 职责 |
|---|---|
| Initializer Agent | 首次会话建立基础设施:init.sh、claude-progress.txt、功能清单、初始 git commit |
| Coding Agent | 后续会话:读进度文件 → 选优先功能 → 实现 → 测试 → 提交 |
对机票 Agent 的启示 订票 Agent 的长期运行场景(如复杂多段行程规划)可以借鉴这个模式:
- 建立 booking-progress.json 跟踪多步骤订票过程
- 每个"会话"(用户交互轮次)只推进一个确定步骤
- 通过 init 步骤自动加载用户上下文、偏好、历史
Klarna 是目前最知名的 AI Agent 生产案例 (Klarna Case Study):
对机票业务的警示 机票订购比客服更复杂(涉及资金、合约、不可逆操作)。必须:
- 从 Day 1 就建立"确认 → 执行"的二步链路
- 高风险操作绝对不能靠"提醒模型小心",必须结构性不允许
- 预留人工接管通道,且接管时能看到完整操作轨迹
Claude Agent SDK (Anthropic: Claude Agent SDK) 定义了标准的 Agent 循环:
Anthropic 的经典指南 (Anthropic: Building Effective Agents) 定义了五个可组合模式:
| 模式 | 适用场景 | 订票场景映射 |
|---|---|---|
| Prompt Chaining | 顺序拆解固定子任务 | 搜索 → 风险评估 → 推荐排序 |
| Routing | 按输入类型分发到专门处理器 | 国内/国际、单程/往返/多程 |
| Parallelization | 独立子任务并行跑 | 多航线同时搜索、多维度并行评估 |
| Orchestrator-Workers | 动态拆解任务给多个 worker | 复杂多段行程的分段规划 |
| Evaluator-Optimizer | 一个生成、一个评估迭代优化 | 方案生成 + 方案质量审查 |
核心原则 "Success in the LLM space isn't about building the most sophisticated system. It's about building the right system for your needs." —— Anthropic: Building Effective Agents
综合以上研究,对照 AI订票助手-Harness工程方案,补充以下建议:
| 层级 | 当前状态 | 建议补充 |
|---|---|---|
| Instruction Layer | 方案分散在多份文档中 | 建立统一 AGENTS.md,按 GitHub 六大核心领域组织 |
| Tool Surface | 8 个核心工具已定义 | 补充工具示例、response_format、命名空间,参考 Anthropic 工具设计原则 |
| Context Layer | 概念阶段 | 定义 Booking Context Graph 最小实体模型,实现 Write/Select/Compress/Isolate 四策略 |
| Governance Layer | 有红线意识 | 落实结构化治理:confirmation token、三级权限、审计日志 |
| Evaluation Layer | 提了 promptfoo | 按四维度(任务/工具/治理/业务)建立评估基线 |
| Skills | 无 | 按渐进式披露设计 booking-rules / risk-assessment / pricing-strategy Skills |
必读清单(按优先级排序)
- OpenAI: Harness Engineering — 开创性文章,理解整体理念
- Anthropic: Building Effective Agents — 五大模式,最实用的架构指南
- LangChain: Anatomy of Agent Harness — Agent = Model + Harness 核心公式
- Anthropic: Writing Tools — 工具设计原则,直接指导我们的 8 个工具
- Anthropic: Context Engineering — 四策略框架,解决订票场景的上下文膨胀
- LangChain: Improving Deep Agents — 纯 Harness 优化提升 13.7 分的实证
- Fowler: Humans and Agents — "On the Loop" 治理哲学
- Anthropic: Agent Skills — 渐进式披露,解决领域知识注入
- GitHub: Great AGENTS.md — 指令层设计最佳实践
- LangChain: State of Agent Engineering — 行业基准数据
模型质量线性增长(且所有竞对共享),而 Harness 质量是指数级放大器——这才是我们应该投资的方向。