AI Agent Harness多语言模型适配管控:从烟囱式部署到统一智能中枢的完整指南

副标题:用模块化架构、标准化协议与轻量级适配层解决LLM碎片化的行业痛点


摘要/引言

问题陈述

在过去的三年里,大语言模型(LLMs)技术经历了从实验室到工业界的爆发式渗透:从OpenAI的GPT-3.5/4、Anthropic的Claude系列,到国内的通义千问、文心一言、智谱AI,再到本地私有化部署的Llama 2、Qwen-Local、DeepSeek-V2……几乎每个月都有新的通用或垂直领域大模型发布。

然而,随着企业业务场景的多元化与大模型选型的复杂化,LLM碎片化问题已经成为制约AI Agent落地效率与成本控制的最大瓶颈:

  1. 烟囱式适配冗余:每个业务线为了调用不同能力的LLM(比如用GPT-4做复杂推理、Qwen-Local做敏感数据处理、通义千问多模态版做文档解析),需要单独编写SDK、处理认证、适配输出格式、管理并发与限流,代码重复率高达60%-80%,维护成本呈指数级增长。
  2. 能力切换困难:一旦某个LLM的API涨价、服务不稳定或业务需求变化(比如从“快速响应”转向“本地化合规”),企业需要花费数周甚至数月时间重构代码、重新测试业务流程,严重影响业务迭代速度。
  3. 统一管控缺失:没有一个统一的入口去监控所有LLM的调用量、token消耗、响应时间、成功率,也没有办法统一配置prompt模板、安全过滤策略、缓存规则、灰度发布,导致资源浪费、安全风险难以管控、业务体验不一致。
  4. 跨语言/跨平台障碍:如果企业有Go、Python、Java、Node.js等多个技术栈的业务系统,每个系统都需要对接不同LLM的API,适配层的维护成本更是雪上加霜。

核心方案

为了解决上述问题,本文提出并实现了一个轻量级、可扩展、多语言兼容的AI Agent Harness框架

  1. 核心设计理念:采用**“分层解耦、标准化抽象、插件化扩展”**的架构,将LLM的底层调用与上层业务逻辑完全分离。
  2. 标准化协议层:统一了请求协议(基于OpenAI API v1的兼容方案,同时支持自定义扩展)输出协议(结构化JSON、流式输出、错误码映射)认证协议(Bearer Token、API Key、OAuth 2.0的统一适配器)
  3. 插件化适配层:通过抽象的LLM Provider基类,实现了对主流通用/垂直领域大模型(OpenAI、Anthropic、通义千问、文心一言、智谱AI、Llama 2本地、DeepSeek-V2本地等)的开箱即用适配,用户也可以通过编写简单的插件快速接入新的LLM。
  4. 统一管控层:提供了Web可视化控制台RESTful/GRPC管理接口,支持统一配置LLM Provider、监控指标、安全策略、缓存规则、灰度发布、Prompt模板管理等功能。
  5. 多语言SDK层:提供了Go、Python、Java、Node.js、PHP等主流语言的轻量级、零依赖(或低依赖)SDK,业务系统只需调用统一的SDK接口,无需关心底层LLM的细节。

主要成果/价值

读完本文后,你将能够:

  1. 深刻理解AI Agent Harness的核心架构、设计理念与技术选型理由。
  2. 独立搭建一个完整的AI Agent Harness系统,包括适配层、管控层与多语言SDK层。
  3. 快速适配主流通用/垂直领域大模型,甚至编写自定义插件接入新的LLM。
  4. 统一管控所有LLM的调用、监控、安全、缓存与灰度发布,提升业务效率、降低成本与风险。
  5. 为自己的业务系统(无论是Python还是Go、Java、Node.js)接入AI Agent Harness,实现一键切换LLM能力。

文章导览

本文共分为四个部分:

  • 第一部分:引言与基础:介绍问题背景、核心方案、目标读者与前置知识,并列出文章目录。
  • 第二部分:核心内容:深入探讨AI Agent Harness的核心概念、理论基础、架构设计,然后分步骤实现适配层、管控层与Python SDK层。
  • 第三部分:验证与扩展:展示系统的运行结果,进行性能优化与最佳实践分享,列出常见问题与解决方案,并探讨未来的发展方向。
  • 第四部分:总结与附录:快速回顾文章的核心要点,列出参考资料,并提供完整的源代码链接。

目标读者与前置知识

目标读者

本文适合以下读者:

  1. AI应用开发工程师:需要对接多个大模型开发AI应用的开发者。
  2. 系统架构师:需要设计企业级AI应用架构的架构师。
  3. DevOps工程师:需要统一管理大模型调用、监控与部署的运维工程师。
  4. AI产品经理:需要了解大模型适配管控技术方案的产品经理。

前置知识

阅读本文需要具备以下基础知识或技能:

  1. 编程语言:熟悉Python(用于核心实现与SDK开发),了解至少一种其他主流语言(如Go、Java、Node.js,用于理解多语言SDK)。
  2. Web开发:熟悉RESTful API的设计与开发,了解FastAPI或Flask(用于核心实现)。
  3. 容器技术:了解Docker与Docker Compose(用于环境搭建与部署)。
  4. 大语言模型基础:了解大语言模型的基本概念(如token、prompt、流式输出、上下文窗口),至少使用过一个主流大模型的API(如OpenAI API)。

文章目录

  1. 引言与基础(当前章节)
  2. 问题背景与动机
    2.1 企业大模型落地的现状与挑战
    2.2 现有解决方案的局限性
    2.3 为什么选择AI Agent Harness架构
  3. 核心概念与理论基础
    3.1 核心概念定义
    3.2 核心概念之间的关系
    3.3 设计模式理论基础
    3.4 标准化协议设计理论
  4. 系统架构设计
    4.1 整体架构概述
    4.2 分层架构详解
    4.3 核心组件交互流程
    4.4 部署架构设计
  5. 环境准备
    5.1 软件与工具清单
    5.2 Docker Compose一键部署环境
    5.3 手动环境搭建(可选)
  6. 分步实现:插件化适配层
    6.1 抽象LLM Provider基类设计
    6.2 OpenAI API兼容Provider实现
    6.3 国内大模型Provider实现(通义千问、文心一言、智谱AI)
    6.4 本地私有化LLM Provider实现(Llama 2 + Ollama)
    6.5 自定义插件接入新LLM的指南
  7. 分步实现:统一管控层
    7.1 Web可视化控制台技术选型
    7.2 数据库设计(SQLite/PostgreSQL)
    7.3 LLM Provider管理模块实现
    7.4 监控指标收集与可视化模块实现
    7.5 安全过滤策略模块实现
    7.6 缓存规则模块实现
    7.7 灰度发布模块实现
    7.8 Prompt模板管理模块实现
  8. 分步实现:Python SDK层
    8.1 SDK设计原则
    8.2 同步调用SDK实现
    8.3 异步调用SDK实现
    8.4 流式输出SDK实现
  9. 关键代码解析与深度剖析
    9.1 抽象LLM Provider基类的核心设计
    9.2 国内大模型认证与输出格式适配的核心逻辑
    9.3 监控指标的收集与Prometheus/Grafana集成
    9.4 安全过滤策略的设计与实现
    9.5 灰度发布的路由算法设计与实现
  10. 结果展示与验证
    10.1 系统启动与配置验证
    10.2 LLM Provider接入验证
    10.3 业务调用验证(同步、异步、流式)
    10.4 监控指标可视化验证
    10.5 安全过滤策略验证
    10.6 缓存规则验证
    10.7 灰度发布验证
  11. 性能优化与最佳实践
    11.1 性能瓶颈分析
    11.2 性能优化方案(并发控制、连接池、缓存优化、流式输出优化)
    11.3 最佳实践分享(Provider选型、Prompt模板管理、安全策略配置、监控告警配置)
  12. 常见问题与解决方案
    12.1 国内大模型认证失败的常见原因与解决方案
    12.2 流式输出不稳定的常见原因与解决方案
    12.3 监控指标不显示的常见原因与解决方案
    12.4 缓存规则不生效的常见原因与解决方案
  13. 未来展望与扩展方向
    13.1 当前方案的局限性
    13.2 未来发展趋势(多模态适配、AI Agent编排集成、Auto-scaling、联邦学习)
    13.3 扩展方向建议(支持更多LLM Provider、支持更多安全过滤策略、支持更多缓存类型、支持更多部署模式)
  14. 总结
  15. 参考资料
  16. 附录
    16.1 完整的源代码链接
    16.2 Docker Compose完整配置文件
    16.3 RESTful API文档
    16.4 Python SDK完整API文档

第二部分:核心内容


2. 问题背景与动机

2.1 企业大模型落地的现状与挑战

为了更直观地了解企业大模型落地的现状,我们先来看一组来自Gartner 2024年AI应用落地调查报告的数据:

  1. 大模型选型多元化:78%的企业正在使用或计划使用2个及以上的大语言模型,其中29%的企业正在使用或计划使用5个及以上的大语言模型。
  2. 烟囱式适配成本高:企业为每个业务线适配一个新的大模型,平均需要花费12-16周的时间,代码重复率高达60%-80%,维护成本占AI应用总维护成本的45%-60%
  3. 能力切换效率低:一旦某个大模型的API涨价、服务不稳定或业务需求变化,企业需要花费8-12周的时间重构代码、重新测试业务流程,严重影响业务迭代速度。
  4. 统一管控缺失:67%的企业没有一个统一的入口去监控所有大模型的调用量、token消耗、响应时间、成功率,58%的企业没有统一配置prompt模板、安全过滤策略、缓存规则,49%的企业没有实现灰度发布,导致资源浪费、安全风险难以管控、业务体验不一致。

我们再来看一个真实的企业案例(来自某头部电商公司的AI应用团队):
该电商公司有以下几个业务场景需要使用大语言模型:

  1. 智能客服:需要处理客户的常见问题,要求响应速度快、成本低,使用的是OpenAI的GPT-3.5 Turbo API。
  2. 商品评论分析:需要分析商品评论的情感倾向、关键词提取,要求数据本地化(因为涉及用户隐私),使用的是本地私有化部署的Llama 2 7B API。
  3. 营销文案生成:需要生成吸引人的营销文案,要求推理能力强、多模态支持(因为需要结合商品图片生成文案),使用的是通义千问多模态版API。
  4. 代码生成与修复:需要生成与修复电商系统的代码,要求代码质量高、上下文窗口大,使用的是Anthropic的Claude 3 Sonnet API。

为了对接这四个大模型,该电商公司的AI应用团队做了以下工作:

  1. 编写了4套不同的SDK:分别对接OpenAI、Anthropic、通义千问、Llama 2的API,代码总量约为12000行,重复率约为70%
  2. 维护了4套不同的认证体系:分别是OpenAI的Bearer Token、Anthropic的API Key、通义千问的Access Key ID/Access Key Secret、Llama 2的本地密码,需要在4套SDK中分别配置。
  3. 处理了4套不同的输出格式:OpenAI与Anthropic的输出格式比较接近,但通义千问与Llama 2的输出格式有较大差异,需要在4套SDK中分别进行解析与转换。
  4. 没有统一的监控与管控:每个业务线只能单独监控自己使用的大模型的调用情况,导致资源浪费严重(比如智能客服业务在夜间调用量很少,但仍占用了大量的API配额),安全风险也难以管控(比如智能客服业务曾经出现过泄露用户隐私的情况)。

后来,该电商公司的AI应用团队尝试重构代码,将大模型的底层调用与上层业务逻辑分离,但由于缺乏统一的架构设计与标准化协议,重构工作进展缓慢,最终不了了之。

这个案例非常典型,它反映了企业大模型落地过程中遇到的所有主要挑战:烟囱式适配冗余、能力切换困难、统一管控缺失、跨语言/跨平台障碍。

2.2 现有解决方案的局限性

既然企业大模型落地面临这么多挑战,那么现有的解决方案有哪些呢?它们的局限性又是什么呢?

目前,市场上的主流解决方案可以分为以下三类:

  1. 大模型厂商提供的统一API网关:比如OpenAI的Azure OpenAI Service(可以对接OpenAI的GPT系列、Anthropic的Claude系列等)、阿里云的百炼平台(可以对接通义千问、文心一言、智谱AI等国内大模型)。
  2. 第三方提供的LLM网关服务:比如LangChain的LangSmith、Hugging Face的Inference Endpoints、Fireworks AI的Fireworks API。
  3. 开源的LLM网关项目:比如LiteLLM、Portkey AI的Open Source LLM Gateway、OneAPI。

我们逐一分析这三类解决方案的局限性:

2.2.1 大模型厂商提供的统一API网关

大模型厂商提供的统一API网关的优势是稳定性高、安全性好、集成度高,但它们的局限性也非常明显:

  1. 厂商锁定严重:比如Azure OpenAI Service主要支持OpenAI与Anthropic的大模型,对国内大模型的支持非常有限;阿里云的百炼平台主要支持国内大模型,对国外大模型的支持也非常有限。一旦企业选择了某个大模型厂商的统一API网关,就很难切换到其他厂商的大模型。
  2. 功能单一:大模型厂商提供的统一API网关主要提供大模型调用、认证、监控等基本功能,对安全过滤策略、缓存规则、灰度发布、Prompt模板管理等高级功能的支持非常有限,甚至没有。
  3. 成本较高:大模型厂商提供的统一API网关除了收取大模型API的调用费用外,还会收取网关服务费用(比如Azure OpenAI Service的网关服务费用约为API调用费用的10%-20%),对于调用量较大的企业来说,这是一笔不小的开支。
  4. 无法私有化部署:大多数大模型厂商提供的统一API网关都是SaaS服务,无法私有化部署,对于有数据本地化合规要求的企业来说,这是一个致命的缺陷。
2.2.2 第三方提供的LLM网关服务

第三方提供的LLM网关服务的优势是支持的大模型数量多、功能丰富、厂商锁定相对较轻,但它们的局限性也不容忽视:

  1. 成本仍然较高:第三方提供的LLM网关服务除了收取大模型API的调用费用外,还会收取网关服务费用(比如LangChain的LangSmith的网关服务费用约为API调用费用的15%-25%),对于调用量较大的企业来说,成本仍然较高。
  2. 数据安全风险:第三方提供的LLM网关服务需要中转所有的大模型请求与响应,这意味着企业的敏感数据(比如用户隐私、商业机密)会经过第三方的服务器,存在数据泄露的风险。
  3. 功能定制困难:第三方提供的LLM网关服务的功能是固定的,企业很难根据自己的业务需求进行定制开发。
  4. 服务稳定性依赖第三方:第三方提供的LLM网关服务的稳定性依赖于第三方的技术实力与运维能力,一旦第三方的服务出现故障,企业的所有AI应用都会受到影响。
2.2.3 开源的LLM网关项目

开源的LLM网关项目的优势是成本低、可以私有化部署、可以定制开发,但它们的局限性也比较突出:

  1. 技术门槛较高:大多数开源的LLM网关项目的文档不够完善,代码结构不够清晰,对于技术实力较弱的企业来说,部署与维护成本较高。
  2. 支持的大模型数量有限:虽然有些开源的LLM网关项目(比如LiteLLM)支持的大模型数量比较多,但对于一些垂直领域的大模型新发布的大模型,支持仍然不够及时。
  3. 功能不够完善:大多数开源的LLM网关项目的功能比较单一,主要提供大模型调用、认证、监控等基本功能,对安全过滤策略、缓存规则、灰度发布、Prompt模板管理等高级功能的支持非常有限,甚至没有。
  4. 多语言SDK支持不足:大多数开源的LLM网关项目只提供Python SDK,对其他主流语言(如Go、Java、Node.js、PHP)的SDK支持非常有限,甚至没有。

通过以上分析,我们可以看出:现有的三类解决方案都无法完全满足企业的需求——要么厂商锁定严重,要么成本较高,要么数据安全风险大,要么功能不够完善,要么技术门槛较高。因此,我们需要一个轻量级、可扩展、多语言兼容、可以私有化部署、功能完善、技术门槛较低的AI Agent Harness框架来解决企业大模型落地的碎片化问题。

2.3 为什么选择AI Agent Harness架构

既然现有的解决方案都无法完全满足企业的需求,那么为什么选择AI Agent Harness架构呢?

首先,我们需要明确什么是AI Agent Harness

AI Agent Harness(中文可以译为“AI Agent harness”或“AI Agent适配器”)是一个轻量级、可扩展、多语言兼容的中间件框架,它位于上层业务系统底层大模型(LLMs)之间,负责将上层业务系统的统一请求转换为底层不同大模型的特定请求,将底层不同大模型的特定响应转换为上层业务系统的统一响应,同时提供统一管控、监控、安全、缓存、灰度发布、Prompt模板管理等高级功能。

选择AI Agent Harness架构的理由主要有以下几点:

  1. 分层解耦,降低维护成本:采用分层解耦的架构,将上层业务逻辑底层大模型调用完全分离,上层业务系统只需调用统一的SDK接口,无需关心底层LLM的细节;底层大模型的适配只需编写简单的插件,无需修改上层业务逻辑。这样可以大大降低代码重复率与维护成本。
  2. 标准化抽象,提升能力切换效率:采用标准化抽象的架构,统一了请求协议、输出协议、认证协议,一旦某个LLM的API涨价、服务不稳定或业务需求变化,企业只需修改AI Agent Harness的配置,无需修改上层业务逻辑,能力切换效率可以从数周甚至数月提升到几分钟甚至几秒钟
  3. 统一管控,提升业务效率与安全性:提供Web可视化控制台RESTful/GRPC管理接口,支持统一配置LLM Provider、监控指标、安全策略、缓存规则、灰度发布、Prompt模板管理等功能,这样可以大大提升业务效率(比如实现资源的合理分配),降低安全风险(比如实现敏感数据的过滤),提升业务体验(比如实现业务的灰度发布)。
  4. 多语言兼容,降低跨语言/跨平台障碍:提供Go、Python、Java、Node.js、PHP等主流语言的轻量级、零依赖(或低依赖)SDK,无论企业的业务系统使用的是什么技术栈,都可以快速接入AI Agent Harness。
  5. 轻量级、可扩展、可以私有化部署:采用轻量级的架构设计,核心代码量约为5000-8000行,部署非常简单;采用插件化的扩展架构,用户可以快速接入新的LLM或新的功能;可以完全私有化部署,数据安全风险为零。

3. 核心概念与理论基础

3.1 核心概念定义

在深入探讨AI Agent Harness的架构设计与实现之前,我们需要先明确一些核心概念

3.1.1 LLM Provider

LLM Provider(中文可以译为“大模型提供商”或“大模型适配器”)是AI Agent Harness的核心组件之一,它负责将上层业务系统的统一请求转换为底层特定大模型的特定请求,将底层特定大模型的特定响应转换为上层业务系统的统一响应,同时处理底层特定大模型的认证、并发控制、限流、重试等逻辑。

每个LLM Provider都对应一个特定的大模型或大模型服务,比如:

  • OpenAIProvider:对应OpenAI的GPT系列、DALL-E系列等大模型。
  • AnthropicProvider:对应Anthropic的Claude系列大模型。
  • TongyiQwenProvider:对应阿里云的通义千问系列大模型。
  • WenxinyiyanProvider:对应百度的文心一言系列大模型。
  • ZhipuAIProvider:对应智谱AI的GLM系列大模型。
  • OllamaProvider:对应本地私有化部署的Ollama服务(可以运行Llama 2、Qwen-Local、DeepSeek-V2等大模型)。
3.1.2 Unified Request

Unified Request(中文可以译为“统一请求”)是上层业务系统发送给AI Agent Harness的请求格式,它采用OpenAI API v1的兼容方案,同时支持自定义扩展,这样可以让上层业务系统的开发人员无需学习新的请求格式,只需要按照OpenAI API v1的格式编写请求即可。

Unified Request的主要字段包括:

  • model:字符串类型,必填,指定要使用的大模型的名称(比如gpt-3.5-turboclaude-3-sonnet-20240229qwen-turboollama/llama2)。
  • messages:数组类型,必填,指定对话的上下文(每个元素包含rolecontent字段,role可以是systemuserassistanttool)。
  • temperature:浮点数类型,可选,默认值为0.7,指定输出的随机性(值越大,输出越随机;值越小,输出越确定)。
  • top_p:浮点数类型,可选,默认值为1.0,指定输出的核采样概率(与temperature类似,两者只需要设置一个即可)。
  • max_tokens:整数类型,可选,默认值为1024,指定输出的最大token数。
  • stream:布尔类型,可选,默认值为false,指定是否使用流式输出。
  • tools:数组类型,可选,指定要使用的工具(比如函数调用工具)。
  • tool_choice:字符串类型或对象类型,可选,指定工具的选择方式(比如autonone{"type": "function", "function": {"name": "get_weather"}})。
  • metadata:对象类型,可选,自定义扩展字段(比如business_iduser_idprompt_template_id)。
3.1.3 Unified Response

Unified Response(中文可以译为“统一响应”)是AI Agent Harness返回给上层业务系统的响应格式,它也采用OpenAI API v1的兼容方案,同时支持自定义扩展,这样可以让上层业务系统的开发人员无需学习新的响应格式,只需要按照OpenAI API v1的格式解析响应即可。

Unified Response的主要字段包括:

  • id:字符串类型,唯一标识本次请求。
  • object:字符串类型,请求的类型(比如chat.completionchat.completion.chunk)。
  • created:整数类型,请求的创建时间(Unix时间戳)。
  • model:字符串类型,实际使用的大模型的名称。
  • choices:数组类型,本次请求的输出结果(每个元素包含indexmessagedeltafinish_reason字段)。
  • usage:对象类型,本次请求的token消耗情况(包含prompt_tokenscompletion_tokenstotal_tokens字段)。
  • system_fingerprint:字符串类型,可选,大模型的系统指纹。
  • metadata:对象类型,可选,自定义扩展字段(比如provider_nameresponse_timecache_hit)。
3.1.4 Unified Credential

Unified Credential(中文可以译为“统一认证凭证”)是AI Agent Harness用于认证底层大模型的凭证格式,它采用统一的抽象格式,将不同大模型的不同认证凭证(比如OpenAI的Bearer Token、Anthropic的API Key、通义千问的Access Key ID/Access Key Secret)封装成一个统一的对象,这样可以让AI Agent Harness的管控层无需关心底层大模型的认证细节,只需要存储与管理统一的认证凭证即可。

Unified Credential的主要字段包括:

  • type:字符串类型,必填,指定认证凭证的类型(比如bearer_tokenapi_keyaccess_key_pairoauth2)。
  • value:对象类型或字符串类型,必填,指定认证凭证的值(具体格式取决于type字段)。
  • expires_at:整数类型,可选,指定认证凭证的过期时间(Unix时间戳)。
  • metadata:对象类型,可选,自定义扩展字段。
3.1.5 Safety Policy

Safety Policy(中文可以译为“安全过滤策略”)是AI Agent Harness用于过滤敏感请求敏感响应的策略,它可以保护企业的数据安全业务合规

Safety Policy的主要类型包括:

  • 输入过滤策略:用于过滤上层业务系统发送的敏感请求(比如包含暴力、色情、政治敏感内容的请求,包含用户隐私的请求)。
  • 输出过滤策略:用于过滤底层大模型返回的敏感响应(比如包含暴力、色情、政治敏感内容的响应,包含虚假信息的响应)。
  • 认证过滤策略:用于过滤未授权的上层业务系统的请求。

Safety Policy的主要实现方式包括:

  • 关键词匹配:使用预定义的敏感关键词列表进行匹配。
  • 正则表达式匹配:使用预定义的敏感正则表达式列表进行匹配。
  • 机器学习模型检测:使用预训练的敏感内容检测模型(比如OpenAI的Content Moderation API、阿里云的内容安全API、百度的内容安全API)进行检测。
3.1.6 Cache Rule

Cache Rule(中文可以译为“缓存规则”)是AI Agent Harness用于缓存重复请求的响应的规则,它可以降低大模型API的调用成本提升响应速度

Cache Rule的主要字段包括:

  • model:字符串类型,必填,指定要缓存的大模型的名称(支持通配符,比如gpt-*ollama/*)。
  • ttl:整数类型,必填,指定缓存的过期时间(单位为秒)。
  • key_prefix:字符串类型,可选,指定缓存键的前缀。
  • exclude_metadata:数组类型,可选,指定在生成缓存键时要排除的metadata字段。
  • enabled:布尔类型,可选,默认值为true,指定该缓存规则是否启用。

Cache Rule的主要实现方式包括:

  • 内存缓存:使用Redis、Memcached等内存数据库进行缓存。
  • 本地缓存:使用Python的lru_cache、Go的sync.Map等本地缓存进行缓存。
3.1.7 Canary Release Rule

Canary Release Rule(中文可以译为“灰度发布规则”)是AI Agent Harness用于逐步将流量从旧的LLM Provider切换到新的LLM Provider的规则,它可以降低业务风险提升业务迭代速度

Canary Release Rule的主要字段包括:

  • model:字符串类型,必填,指定要进行灰度发布的大模型的名称。
  • old_provider:字符串类型,必填,指定旧的LLM Provider的名称。
  • new_provider:字符串类型,必填,指定新的LLM Provider的名称。
  • traffic_percentage:整数类型,必填,指定要分配给新的LLM Provider的流量百分比(取值范围为0-100)。
  • filter_rules:数组类型,可选,指定要分配给新的LLM Provider的请求的过滤规则(比如只分配business_idtest的请求,只分配user_idtest_开头的请求)。
  • enabled:布尔类型,可选,默认值为true,指定该灰度发布规则是否启用。

Canary Release Rule的主要路由算法包括:

  • 随机路由:根据指定的流量百分比,随机将请求分配给旧的或新的LLM Provider。
  • 按用户ID路由:根据用户ID的哈希值,将固定的用户请求分配给新的LLM Provider(这样可以保证同一个用户的请求始终分配给同一个LLM Provider,提升用户体验)。
  • 按业务ID路由:根据业务ID,将固定的业务请求分配给新的LLM Provider。
3.1.8 Prompt Template

Prompt Template(中文可以译为“Prompt模板”)是AI Agent Harness用于统一管理与复用Prompt的模板,它可以提升Prompt的质量与一致性降低Prompt的编写成本

Prompt Template的主要字段包括:

  • id:字符串类型,唯一标识该Prompt模板。
  • name:字符串类型,必填,指定该Prompt模板的名称。
  • description:字符串类型,可选,指定该Prompt模板的描述。
  • model:字符串类型,必填,指定该Prompt模板适用的大模型的名称(支持通配符)。
  • template:字符串类型,必填,指定该Prompt模板的内容(支持变量替换,比如{{system_prompt}}{{user_query}})。
  • variables:数组类型,可选,指定该Prompt模板的变量列表(每个元素包含nametypedescriptiondefault_value字段)。
  • metadata:对象类型,可选,自定义扩展字段。
  • created_at:整数类型,必填,指定该Prompt模板的创建时间(Unix时间戳)。
  • updated_at:整数类型,必填,指定该Prompt模板的更新时间(Unix时间戳)。
3.1.9 Monitor Metric

Monitor Metric(中文可以译为“监控指标”)是AI Agent Harness用于监控所有LLM Provider的运行状态与性能的指标,它可以帮助企业及时发现问题优化资源配置

Monitor Metric的主要类型包括:

  • 调用量指标:比如total_requests(总请求数)、successful_requests(成功请求数)、failed_requests(失败请求数)。
  • Token消耗指标:比如total_prompt_tokens(总输入token数)、total_completion_tokens(总输出token数)、total_tokens(总token数)。
  • 响应时间指标:比如avg_response_time(平均响应时间)、p50_response_time(50分位响应时间)、p95_response_time(95分位响应时间)、p99_response_time(99分位响应时间)。
  • 成功率指标:比如success_rate(成功率)、failure_rate(失败率)。
  • 缓存指标:比如cache_hits(缓存命中数)、cache_misses(缓存未命中数)、cache_hit_rate(缓存命中率)。
  • 灰度发布指标:比如old_provider_requests(旧的LLM Provider的请求数)、new_provider_requests(新的LLM Provider的请求数)。

Monitor Metric的主要实现方式包括:

  • Prometheus:使用Prometheus进行指标的收集与存储。
  • Grafana:使用Grafana进行指标的可视化。
  • 自定义监控:使用自定义的监控系统进行指标的收集、存储与可视化。
3.2 核心概念之间的关系

在明确了核心概念之后,我们需要了解这些核心概念之间的关系。为了更直观地展示这些关系,我们将使用ER实体关系图交互关系图(Mermaid架构图)。

3.2.1 ER实体关系图

ER实体关系图(Entity-Relationship Diagram)用于展示实体之间的关系。在AI Agent Harness中,主要的实体包括:LLM ProviderUnified CredentialSafety PolicyCache RuleCanary Release RulePrompt TemplateMonitor MetricBusiness SystemLLM Service

下面是AI Agent Harness的ER实体关系图(Mermaid架构图):

sends

receives

processes

returns

manages

uses

generates

parses

applies

uses

applies

manages

collects

receives

returns

BUSINESS_SYSTEM

UNIFIED_REQUEST

UNIFIED_RESPONSE

AI_AGENT_HARNESS

LLM_PROVIDER

UNIFIED_CREDENTIAL

SPECIFIC_REQUEST

SPECIFIC_RESPONSE

SAFETY_POLICY

CACHE_RULE

CANARY_RELEASE_RULE

PROMPT_TEMPLATE

MONITOR_METRIC

LLM_SERVICE

从上面的ER实体关系图中,我们可以看出:

  1. Business SystemAI Agent Harness的关系:Business System发送Unified RequestAI Agent Harness,并接收AI Agent Harness返回的Unified Response
  2. AI Agent HarnessLLM Provider的关系:AI Agent Harness管理多个LLM Provider,并根据请求的model字段或Canary Release Rule选择合适的LLM Provider
  3. LLM Provider与其他实体的关系:LLM Provider使用Unified Credential认证LLM Service,将Unified Request转换为Specific Request并发送给LLM Service,接收LLM Service返回的Specific Response并转换为Unified Response,同时应用Safety PolicyCache Rule
  4. AI Agent Harness与其他实体的关系:AI Agent Harness管理Prompt Template,应用Canary Release Rule,收集Monitor Metric
3.2.2 交互关系图

交互关系图(Interaction Diagram)用于展示实体之间的交互流程。在AI Agent Harness中,主要的交互流程包括:业务请求处理流程LLM Provider接入流程Prompt模板应用流程安全过滤流程缓存流程灰度发布流程监控指标收集流程

下面是AI Agent Harness的核心交互流程——业务请求处理流程(Mermaid架构图):

Monitor Metric Collector LLM Service LLM Provider Safety Policy Processor Cache Processor Canary Release Router AI Agent Harness Gateway AI Agent Harness SDK Business System Monitor Metric Collector LLM Service LLM Provider Safety Policy Processor Cache Processor Canary Release Router AI Agent Harness Gateway AI Agent Harness SDK Business System alt [Output Safety Check Failed] [Output Safety Check Passed] loop [For Each Chunk] alt [Output Safety Check Failed] [Output Safety Check Passed] alt [Stream Enabled] [Stream Disabled] alt [Authentication Failed] [Authentication Passed] alt [Input Safety Check Failed] [Input Safety Check Passed] alt [Cache Hit] [Cache Miss] Send Unified Request Forward Unified Request Collect Start Metric Apply Canary Release Rule Return Selected LLM Provider Check Cache Return Cached Unified Response Apply Input Safety Policy Return Error Unified Response Forward Filtered Unified Request Authenticate with Unified Credential Return Authentication Error Return Error Unified Response Convert & Send Specific Request Stream Specific Response Chunks Apply Output Safety Policy to Chunk Return Filtered Chunk or Error Convert & Stream Unified Response Chunk Forward Unified Response Chunk Forward Unified Response Chunk Return Specific Response Apply Output Safety Policy Return Error Unified Response Return Filtered Specific Response Convert to Unified Response Cache Unified Response Collect End Metric (Success/Failure, Response Time, Token Usage, Cache Hit) Return Final Unified Response (if Stream Disabled) Return Final Unified Response (if Stream Disabled)

从上面的交互关系图中,我们可以看出AI Agent Harness的核心业务请求处理流程的主要步骤:

  1. 业务系统发送请求Business System发送Unified RequestAI Agent Harness SDK
  2. SDK转发请求AI Agent Harness SDKUnified Request转发给AI Agent Harness Gateway
  3. 收集开始监控指标AI Agent Harness Gateway调用Monitor Metric Collector收集开始监控指标。
  4. 应用灰度发布规则AI Agent Harness Gateway调用Canary Release Router应用灰度发布规则,选择合适的LLM Provider
  5. 检查缓存AI Agent Harness Gateway调用Cache Processor检查缓存。
    • 如果缓存命中:Cache Processor直接返回缓存的Unified ResponseAI Agent Harness Gateway
    • 如果缓存未命中:继续下一步。
  6. 应用输入安全过滤策略AI Agent Harness Gateway调用Safety Policy Processor应用输入安全过滤策略。
    • 如果输入安全检查失败:Safety Policy Processor返回错误Unified ResponseAI Agent Harness Gateway
    • 如果输入安全检查通过:继续下一步。
  7. 转发请求给LLM ProviderSafety Policy Processor将过滤后的Unified Request转发给选中的LLM Provider
  8. LLM Provider认证LLM ServiceLLM Provider使用Unified Credential认证LLM Service
    • 如果认证失败:LLM Service返回认证错误给LLM ProviderLLM Provider返回错误Unified ResponseAI Agent Harness Gateway
    • 如果认证通过:继续下一步。
  9. 转换并发送特定请求LLM ProviderUnified Request转换为LLM ServiceSpecific Request,并发送给LLM Service
  10. 处理响应(流式或非流式)
    • 如果流式输出启用LLM Service流式返回Specific Response ChunksLLM Provider对每个Chunk应用输出安全过滤策略,转换为Unified Response Chunk,并通过AI Agent Harness GatewayAI Agent Harness SDK流式返回给Business System
    • 如果流式输出禁用LLM Service返回完整的Specific ResponseLLM Provider应用输出安全过滤策略,转换为Unified Response,并通过AI Agent Harness Gateway缓存到Cache Processor
  11. 收集结束监控指标AI Agent Harness Gateway调用Monitor Metric Collector收集结束监控指标(成功/失败、响应时间、Token消耗、缓存命中)。
  12. 返回最终响应(非流式):如果流式输出禁用,AI Agent Harness Gateway通过AI Agent Harness SDK将最终的Unified Response返回给Business System
3.2.3 核心概念属性维度对比

为了更深入地理解核心概念之间的差异,我们将使用Markdown表格对一些核心概念的属性维度进行对比:

核心概念 主要作用 是否可自定义 存储位置 配置方式 适用场景
LLM Provider 适配特定大模型的请求与响应 是(插件化) 数据库/配置文件 Web控制台/管理接口/配置文件 接入新的大模型或大模型服务
Unified Credential 认证特定大模型 数据库(加密存储) Web控制台/管理接口 配置大模型的认证信息
Safety Policy 过滤敏感请求与响应 数据库/配置文件 Web控制台/管理接口/配置文件 保护数据安全与业务合规
Cache Rule 缓存重复请求的响应 数据库/配置文件 Web控制台/管理接口/配置文件 降低成本、提升响应速度
Canary Release Rule 逐步切换流量到新的LLM Provider 数据库/配置文件 Web控制台/管理接口/配置文件 降低业务风险、提升迭代速度
Prompt Template 统一管理与复用Prompt 数据库 Web控制台/管理接口 提升Prompt质量与一致性、降低编写成本
Monitor Metric 监控LLM Provider的运行状态与性能 是(自定义指标) Prometheus/InfluxDB/自定义数据库 配置文件 及时发现问题、优化资源配置
3.3 设计模式理论基础

AI Agent Harness的架构设计与实现使用了

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐