✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

《Agent Harness入门教程》


1 AI Agent与Harness概述
    1.1  什么是AI Agent

    1.2  什么是Agent Harness

    1.3  为什么需要Harness

2 核心概念与架构模式
    2.1  Agent的核心循环

    2.2  Harness的典型架构

    2.3  单Agent vs 多Agent

    2.4  Agent生命周期

    2.5  核心术语表

3 环境搭建与基础组件
    3.1  选择LLM Provider

    3.2  搭建最小Harness

    3.3  实现工具调用机制

    3.4  结构化输出与解析

    3.5  日志与调试基础

4 工具系统设计
    4.1  工具的定义与注册

    4.2  工具Schema设计

    4.3  安全沙箱

5 记忆与会话管理
6 Agent推理与规划
7 商业项目实战练习

选择LLM Provider(OpenAI/Anthropic/本地模型)

创建时间:2026-09-02 更新时间:2026-09-04 阅读次数:1152 次

一个看似简单实则关键的决策

在开始搭建Harness之前,你需要做出的第一个技术决策是:用哪个LLM Provider?

这个决策看似简单——不就是选一个API服务商吗?但它实际上影响着Harness的每一个后续设计:工具调用的格式、错误处理策略、成本结构、延迟预算、甚至数据安全架构。

更微妙的是,这个决策不是一次性的。Provider在快速迭代,模型能力在持续变化,价格在动态调整。你今天选择的最优方案,三个月后可能不再是。因此,本节的目标不仅是帮你做出当前的选择,更是帮你建立一套评估Provider的思考框架,让你在未来能够持续做出有依据的判断。

候选方案的概览

截至2026年,Agent开发中主流的LLM Provider可以分为三大类:

类别 代表 特点
商业API(云端) OpenAI、Anthropic、Google Gemini 能力最强,使用方便,成本可控,但数据需出域
本地部署(开源模型) Llama、Qwen、DeepSeek等 数据不出域,成本可预测,但需要运维能力
混合方案 敏感数据用本地模型,通用任务用商业API 平衡安全与能力,但架构复杂度最高

每一类方案都有其忠实的拥趸和合理的适用场景。没有"最好"的Provider,只有最适合你约束条件的Provider。

评估Provider的五个维度

选择Provider不是比较"谁的模型更聪明",而是在五个维度上做出权衡:

维度一:模型能力

这可能是你最关心的维度,但它不是唯一重要的维度。

模型能力包括:

  • 推理能力:能否处理多步推理和复杂决策?
  • Function Calling质量:能否准确输出结构化的工具调用?参数提取是否可靠?
  • 指令遵循:能否严格遵守系统提示词中的行为规则?
  • 上下文窗口:能容纳多少对话历史和工具定义?

一个常见的误区:只看模型的"跑分"(如MMLU、GPQA等学术基准),而忽视Function Calling的实际表现。一个学术跑分很高的模型,可能在工具调用场景中表现糟糕。对于Agent来说,Function Calling质量的重要性不亚于推理能力。

建议:在确定候选模型后,用第7章的评估方法,在你的具体场景上做对比测试。学术基准只能作为初筛,场景实测才是最终依据。

维度二:成本结构

LLM的成本不是固定的,它取决于三个变量:

$$\text{成本} = \text{输入token数} \times \text{输入单价} + \text{输出token数} \times \text{输出单价}$$

Agent场景的成本有几个特殊之处:

第一:Agent的token消耗远大于聊天应用。 每次循环都要把完整的对话历史(包括所有工具定义和中间结果)重新发送给LLM。一个5轮循环的Agent任务,token消耗可能是单轮对话的10倍以上。

第二:工具Schema本身也消耗token。 每个工具的JSON Schema(名称、描述、参数定义)都会被塞进系统提示词。工具越多,每次调用的固定开销越大。

第三:输出token比输入token贵。 大多数Provider对输出token的定价远高于输入token。Agent的循环中,LLM每次都要输出决策(可能是工具调用请求),这会累积可观的输出token消耗。

建议:在估算成本时,用真实的循环次数和token消耗数据,而非假设。第9章会讨论如何精确追踪成本。在初始选择阶段,至少要做一次"最坏情况"的成本估算:假设每个任务平均需要10轮循环,每轮消耗5000个输入token和500个输出token,计算每天1000个任务的总成本。

维度三:延迟与吞吐

Agent对延迟的敏感度远高于聊天应用。

聊天应用的延迟是"一次等待"——用户发一条消息,等一次回复。Agent的延迟是"多次等待的累加"——如果每次LLM调用需要2秒,5轮循环就是10秒。这还不包括工具执行的时间。

延迟的关键指标:

  • TTFT(Time to First Token) :从发出请求到收到第一个token的时间。影响用户"Agent开始动了"的感知。
  • 总响应时间:完成一次完整LLM调用的时间。
  • 吞吐限制:Provider对API调用频率的限制(如RPM,每分钟请求数)。高并发场景下,吞吐限制可能成为瓶颈。

建议:在评估Provider时,实际测量你的场景下的端到端延迟——包括网络往返、LLM生成时间、工具执行时间。不要只看Provider公布的平均延迟数据,关注P95延迟(95%的请求在多少时间内完成),因为长尾延迟对用户体验的伤害最大。

维度四:数据安全与合规

这可能是决定性的维度,尤其是对于企业用户。

核心问题:你的数据能不能发到外部API?

  • 如果Agent处理的是公开信息,数据出域可能不是问题
  • 如果Agent处理的是用户隐私、商业机密、医疗记录、金融数据,数据出域可能是不可接受的
  • 某些行业有明确的合规要求(如GDPR、HIPAA),限制了数据的使用方式

三种方案的数据安全对比:

方案 数据出域 合规风险 适用场景
商业API 是 取决于Provider的数据政策 非敏感数据、通用场景
本地部署 否 最低 敏感数据、强合规要求
混合方案 部分 取决于路由策略 敏感与非敏感数据混合

建议:在技术选型之前,先搞清楚你的合规约束。如果你的场景不允许数据出域,商业API的选择空间就非常有限,本地部署可能成为唯一方案。合规约束不是技术选型的"附加条件",而是前置条件。

维度五:稳定性与生态

稳定性:Provider的API可用性如何?是否频繁变更?是否有完善的降级机制?

生态:Provider的工具链是否成熟?是否有良好的SDK支持?社区是否有丰富的调试和监控工具?

一个实际的问题:Provider是否会静默更新模型?OpenAI和Anthropic都会在用户无感知的情况下微调模型版本。这意味着你的Agent行为可能在没有改动任何代码的情况下发生变化。这是商业API的固有特性,你需要通过Harness的评估体系来检测和应对这种漂移(第8章会详细讨论)。

三个主要选择的深入分析

OpenAI

优势:

  • Function Calling生态最成熟:OpenAI是最早推出Function Calling的Provider,其工具调用格式已成为事实标准。大量框架(包括LangChain、Agents SDK)和工具(包括Langfuse、LangSmith)都以OpenAI的API为第一支持对象。
  • 模型选择丰富:从轻量快速的gpt-4o-mini到能力最强的旗舰模型,覆盖了不同的成本-能力平衡点。
  • 文档和社区:OpenAI的文档质量在行业中是标杆,社区资源丰富,问题容易找到解决方案。

劣势:

  • 数据出域:所有数据都发送到OpenAI的服务器。对于数据敏感的场景,这是硬伤。
  • 静默更新:模型版本会在无通知的情况下调整,Agent行为可能突然变化。
  • 价格波动:OpenAI的价格调整相对频繁,长期成本预测困难。

适合谁:大多数通用场景的默认选择。尤其是当你需要快速搭建原型、充分利用Function Calling生态时。

Anthropic

优势:

  • 推理能力强:Claude系列在复杂推理和长文本理解方面表现出色。尤其在需要精细的指令遵循和长篇文档分析的场景中。
  • Function Calling能力也在成熟:Claude的工具调用虽然起步晚于OpenAI,但质量已基本对齐,且在并行工具调用方面有独特设计。
  • 长上下文窗口:Claude的上下文窗口在同价位中通常更大,适合需要大量工具定义或长对话历史的场景。

劣势:

  • 生态兼容性:虽然Claude的工具调用格式与OpenAI接近,但部分框架和工具对Claude的支持仍不如OpenAI完善。
  • 成本:在同等能力级别上,Claude的价格通常略高于OpenAI。

适合谁:需要强推理能力的复杂Agent、大量文档处理的场景、以及偏好Anthropic在AI安全方面立场的团队。

本地部署(开源模型)

优势:

  • 数据完全不出域:这是本地部署最核心的价值。对于强合规要求的场景,这可能是唯一选择。
  • 成本可预测:没有按token计费的不确定性,成本主要是硬件和运维。
  • 完全可控:可以微调模型、修改推理参数、甚至定制模型架构。

劣势:

  • 能力差距:开源模型在Function Calling质量和推理能力上,与顶级商业API仍有差距。这个差距在快速缩小,但在复杂Agent场景中仍然显著。
  • 运维负担:需要自己管理GPU资源、推理服务、模型更新。这不是"装个软件"那么简单。
  • 生态不成熟:围绕开源模型的Agent工具链(可观测、评估、调试)仍在发展中。

适合谁:数据合规是第一优先级的企业;有专门ML运维团队的团队;需要深度定制模型能力的场景。

一个务实的建议:如果你选择本地部署,优先选择对Function Calling支持最好的开源模型,而非推理跑分最高的。在Agent场景中,工具调用的可靠性比通用智能更重要。

混合方案:一条务实的路径

在实践中,越来越多的团队采用混合方案:

  • 敏感数据:走本地模型,确保数据不出域
  • 通用任务:走商业API,享受最强的能力和最成熟的生态
  • 路由逻辑:在Harness中实现一个模型路由器,根据任务类型和敏感级别决定使用哪个Provider

混合方案的架构:

用户请求 → Harness
        │
        ▼
┌─────────────────┐
│ 模型路由器       │
│                 │
│ 判断:          │
│ 含敏感数据?     │
└────┬────────┬───┘
     │        │
敏感 │        │ 非敏感
     ▼        ▼
┌──────────┐ ┌──────────┐
│ 本地模型  │ │ 商业API  │
└──────────┘ └──────────┘

混合方案的代价是架构复杂度:你需要维护两套模型的接口适配、两套评估基线、两套成本追踪。但它可能是在约束条件下最优的工程折衷。

一个决策框架

综合以上分析,这里给出一个简化的决策流程:

第一步:确认合规约束
│
├── 数据不允许出域? → 本地部署或混合方案
│
└── 数据可以出域? → 进入第二步
│
第二步:评估能力需求
│
├── 复杂推理、精细指令遵循? → 优先考虑Anthropic Claude
│
├── 工具生态、快速迭代、成本敏感? → 优先考虑OpenAI
│
└── 需要对比实测? → 两个都测,用评估集说话
│
第三步:估算成本与延迟
│
├── 预算有限? → 选择性价比高的模型(如gpt-4o-mini)
│
└── 延迟敏感? → 实测P95延迟,选择满足预算的最快模型

本书的技术选型

基于以上分析,本书做出以下选择:

主选Provider:OpenAI API(兼容接口)

理由:

  • 1、Function Calling格式是事实标准,代码示例的普适性最强
  • 2、生态最成熟,可观测和评估工具的集成最顺畅
  • 3、兼容接口意味着你可以用相同的代码调用其他Provider(如DeepSeek、Kimi等提供OpenAI兼容接口的服务)

代码层的应对策略:

本书的示例代码使用OpenAI SDK,但所有代码都遵循一个原则:通过配置而非硬编码来指定Provider。这意味着你可以将base_url和api_key替换为任何兼容的Provider,而不需要修改核心逻辑。

from openai import OpenAI

# 通过配置选择Provider,而非硬编码
client = OpenAI(
    base_url=os.getenv("LLM_BASE_URL", "https://api.openai.com/v1"),
    api_key=os.getenv("LLM_API_KEY"),
)

这段代码可以无缝切换Provider。当你在后续章节中读到"调用LLM"时,记住:具体调用的是哪个Provider,是你的配置决策,而非代码结构的一部分。

本节小结

选择LLM Provider是Harness设计的第一块基石。这个决策应该在五个维度上做出:模型能力、成本结构、延迟与吞吐、数据安全与合规、稳定性与生态。

没有普适的最优选择。在你的约束条件下做出最合理的权衡,并保持切换的灵活性——这才是正确的策略。本书的示例代码使用OpenAI兼容接口,但所有设计原则和架构模式,对于任何Provider都同样适用。

在下一节中,我们将开始实际搭建:安装依赖、初始化项目结构、跑通最小Harness的第一个组件。

本教程共32节,当前为第11节!
本教程最新修订时间为:2026-09-30 09:02:04

📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...