基于Harness Engineering的AI智能体工程化实践:以Hermes Agent构建金融问答系统

发布时间:2026/6/30 21:44:22
基于Harness Engineering的AI智能体工程化实践:以Hermes Agent构建金融问答系统
在实际 AI 大模型应用开发中将模型能力转化为稳定、可控、可复用的服务或智能体是工程落地的核心挑战。Harness Engineering 作为一种新兴的工程范式强调通过系统化的工具链和流程来“驾驭”大模型确保其行为符合预期。而 Hermes Agent 则是一个具体的、开源的 AI 智能体框架旨在简化智能体的构建、部署和管理。对于开发者而言理解如何将 Harness Engineering 的理念应用于 Hermes Agent 的实践中是从理论走向项目落地的关键路径。本文面向希望深入 AI 智能体开发的工程师、技术决策者以及对大模型应用工程化感兴趣的读者。我们将从 Harness Engineering 的核心概念出发结合 Hermes Agent 框架完成一个从零搭建、配置、开发到部署的完整智能体项目。你将不仅学会如何使用 Hermes Agent更能理解其背后的工程化设计思想掌握如何构建一个具备可观测性、可维护性和可扩展性的 AI 智能体系统。文章最后会提供常见问题的排查路径和生产环境的最佳实践建议。1. 理解 Harness Engineering 与 AI 智能体在深入代码之前必须厘清两个核心概念Harness Engineering 和 AI 智能体。它们分别代表了工程方法论和具体的技术实体。1.1 Harness Engineering驾驭而非盲从大模型Harness Engineering 并非一个特定的工具或框架而是一种工程哲学和实践体系。它的核心目标是解决大模型应用中的不确定性、高成本和运维复杂性。你可以将其理解为针对大模型的“DevOps”或“MLOps”思想的延伸与特化。传统的软件开发依赖确定性的逻辑而大模型LLM的输出具有概率性。Harness Engineering 强调通过工程手段来约束、引导和评估这种概率性确保应用的可控性。其关键实践通常包括提示工程系统化将提示词Prompt视为可版本化、可测试、可复用的代码资产进行管理。工作流编排将复杂的 AI 任务分解为多个可预测、可监控的步骤如检索、推理、工具调用、验证。评估与监控建立自动化的评估流水线持续监控智能体的输出质量、延迟、成本等关键指标。韧性设计为智能体设计降级策略、重试机制和人工审核流程以应对模型服务不稳定或输出不符合要求的情况。工具链集成将智能体开发无缝集成到现有的 CI/CD、日志、监控和部署体系中。简单来说Harness Engineering 回答的是“如何像管理一个软件系统一样去管理一个基于大模型的应用”。1.2 AI 智能体具备自主行动能力的程序单元AI 智能体AI Agent是一个能够感知环境、进行决策并执行行动以实现目标的软件实体。在本文语境下它特指基于大语言模型LLM驱动的智能体。其核心组件通常包括规划模块将复杂目标拆解为子任务或步骤。记忆模块保存对话历史、工具调用结果等上下文信息。工具使用模块调用外部 API、数据库、函数等来获取信息或执行操作。行动模块执行规划好的步骤通常是调用工具或生成最终响应。一个简单的“查询天气并建议穿衣”的智能体其内部流程可能是1. 规划识别用户意图为“天气查询”和“穿衣建议”2. 行动-工具调用调用天气 API 获取数据3. 记忆存储天气数据4. 规划根据天气数据规划生成建议的步骤5. 行动-生成响应综合信息生成自然语言回复。Hermes Agent 就是一个旨在降低此类智能体构建难度的框架。它提供了规划、工具调用、记忆管理等基础组件的抽象和实现让开发者可以更专注于业务逻辑。1.3 两者的结合用工程化方法构建可靠智能体将 Harness Engineering 应用于 Hermes Agent 开发意味着项目初始化阶段就考虑代码结构、配置管理和依赖隔离。开发阶段编写可测试的提示词和工具函数并建立评估用例。部署阶段确保智能体服务具有完善的日志、监控和健康检查。运维阶段能持续收集交互数据用于迭代优化提示词和模型选择。接下来的章节我们将遵循这一思路从环境准备开始一步步构建并“驾驭”一个 Hermes Agent 智能体。2. 环境准备与 Hermes Agent 安装配置一个稳定的环境是后续所有工作的基础。我们将在一个隔离的 Python 虚拟环境中进行并选择主流的操作系统作为示例。2.1 基础环境与前置依赖首先确保你的系统已安装 Python推荐 3.9 或 3.10和 pip。接着我们创建并激活一个虚拟环境这是管理项目依赖的最佳实践可以避免包冲突。# 创建项目目录并进入 mkdir hermes-agent-project cd hermes-agent-project # 创建虚拟环境以 venv 为例 python -m venv venv # 激活虚拟环境 # 在 Linux/macOS 上 source venv/bin/activate # 在 Windows 上 venv\Scripts\activate # 激活后命令行提示符前通常会出现 (venv) 标识Hermes Agent 的核心运行依赖于大模型。你需要准备一个可用的 LLM API 密钥。本文以 OpenAI API 为例因为它兼容性好文档齐全。你也可以使用其他兼容 OpenAI 接口的模型服务如本地部署的 Qwen、通义千问等。# 在虚拟环境中安装 Hermes Agent 的核心库 # 请注意hermes-agent 的包名可能在 PyPI 上有所不同请以官方文档为准。 # 这里假设包名为 hermes-agent并使用 openai 作为默认适配器。 pip install hermes-agent openai # 设置你的 OpenAI API 密钥或其他兼容服务的密钥和 Base URL # 方法一设置为环境变量推荐便于不同环境配置 # Linux/macOS: export OPENAI_API_KEYyour-api-key-here # Windows (PowerShell): $env:OPENAI_API_KEYyour-api-key-here # 方法二在代码中直接设置仅用于测试不推荐生产环境注意永远不要将 API 密钥等敏感信息硬编码在代码中或提交到版本控制系统。生产环境应使用环境变量、密钥管理服务或配置文件并加入.gitignore。2.2 Hermes Agent 的安装验证与初步配置安装完成后我们可以通过一个最简单的脚本来验证环境是否就绪并理解 Hermes Agent 的基本工作模式。创建一个名为test_setup.py的文件import os from hermes_agent import HermesAgent from hermes_agent.tools import BaseTool from pydantic import Field # 1. 定义一个简单的工具 class GreetingTool(BaseTool): 一个向用户问好的工具。 name: str Field(description用户的姓名) def run(self): return f你好{self.name}欢迎使用 Hermes Agent。 # 2. 初始化智能体并注册工具 agent HermesAgent( modelgpt-3.5-turbo, # 指定使用的模型 tools[GreetingTool] # 注册我们定义的工具 ) # 3. 运行智能体 if __name__ __main__: # 确保已设置 OPENAI_API_KEY 环境变量 response agent.run(请向马士兵问好。) print(Agent Response:, response)运行这个脚本python test_setup.py如果一切正常你应该能看到类似以下的输出表明智能体成功调用了GreetingTool并返回了结果Agent Response: 你好马士兵欢迎使用 Hermes Agent。这个简单的测试验证了Hermes Agent 库已正确安装。环境变量API Key已生效。智能体能够理解用户意图“问好”并正确匹配和调用我们定义的工具。2.3 项目结构规划在开始正式项目前规划一个清晰的目录结构是 Harness Engineering 的第一步。这有助于代码管理、团队协作和后续的部署。hermes-agent-project/ ├── .env # 存储环境变量需加入.gitignore ├── .gitignore ├── requirements.txt # 项目依赖清单 ├── config/ │ └── settings.yaml # 应用配置文件模型参数、工具开关等 ├── src/ │ ├── __init__.py │ ├── agents/ # 智能体定义目录 │ │ ├── __init__.py │ │ └── financial_agent.py │ ├── tools/ # 工具定义目录 │ │ ├── __init__.py │ │ ├── calculator.py │ │ └── web_search.py │ ├── memory/ # 记忆后端定义可选 │ │ └── __init__.py │ └── utils/ # 工具函数 │ └── __init__.py ├── tests/ # 测试用例 │ ├── __init__.py │ ├── test_agent.py │ └── test_tools.py ├── scripts/ # 部署或运维脚本 │ └── start_agent.py └── logs/ # 日志目录程序生成使用requirements.txt固化依赖# 生成 requirements.txt pip freeze requirements.txt后续团队成员或部署服务器可以通过pip install -r requirements.txt一键安装所有依赖。3. 构建一个金融问答智能体项目实战现在我们运用 Harness Engineering 的方法构建一个相对复杂的“金融大模型问答机器人”智能体。该智能体需要具备查询金融术语、进行简单计算如复利以及联网搜索最新财经新闻的能力。3.1 项目设计与技术栈选型核心目标为用户提供准确、及时的金融信息查询和计算服务。核心组件规划与推理引擎由 Hermes Agent 框架 LLM如 GPT-3.5/4承担。工具集FinancialGlossaryTool查询本地金融术语库。FinancialCalculatorTool执行金融计算如现值、终值、年化收益率。WebSearchTool调用搜索引擎 API 获取实时新闻如 SerpAPI、DuckDuckGo。记忆系统使用 Hermes Agent 内置的会话记忆维持多轮对话上下文。知识库可选进阶使用 RAGRetrieval-Augmented Generation技术将公司内部的金融研究报告向量化供智能体检索。这需要引入LangChain、Chroma/Milvus等库。技术栈LLM 接口OpenAI API兼容 Hermes Agent。智能体框架Hermes Agent。Web 框架用于提供 API 服务FastAPI。向量数据库用于 RAGChroma轻量级适合演示。工具依赖requests用于网络搜索、numpy/pandas用于计算。3.2 实现核心工具工具是智能体的“手”和“脚”。我们首先实现三个核心工具。1. 金融术语查询工具 (src/tools/financial_glossary.py)这个工具模拟一个本地的小型知识库。在实际项目中它可能连接数据库。from hermes_agent.tools import BaseTool from pydantic import Field from typing import Dict class FinancialGlossaryTool(BaseTool): 查询金融术语定义的工具。 term: str Field(description需要查询的金融术语例如‘市盈率’、‘量化宽松’) # 模拟一个简单的内存词典 _glossary: Dict[str, str] { 市盈率: 市盈率Price-to-Earnings Ratio, P/E是公司市值与其净利润的比率用于评估股票估值水平。, 量化宽松: 量化宽松Quantitative Easing, QE是一种货币政策中央银行通过购买长期债券等方式向市场注入流动性。, 年化收益率: 年化收益率是将当前收益率日收益率、周收益率、月收益率换算成年收益率来计算的是一种理论收益率。, } def run(self): definition self._glossary.get(self.term) if definition: return f术语 ‘{self.term}’ 的定义是{definition} else: return f抱歉知识库中未找到术语 ‘{self.term}’ 的定义。2. 金融计算工具 (src/tools/financial_calculator.py)这个工具封装一些常见的金融计算函数。from hermes_agent.tools import BaseTool from pydantic import Field import math class FinancialCalculatorTool(BaseTool): 执行金融计算的工具。支持复利终值计算。 principal: float Field(description本金现值, gt0) annual_rate: float Field(description年化利率小数形式如0.05代表5%, ge0) years: int Field(description投资年限, gt0) def run(self): 计算复利终值FV PV * (1 r)^n future_value self.principal * math.pow(1 self.annual_rate, self.years) return { principal: self.principal, annual_rate: self.annual_rate, years: self.years, future_value: round(future_value, 2), formula: FV PV * (1 r)^n }3. 网络搜索工具 (src/tools/web_search.py)这个工具需要调用外部 API。以 SerpAPI 为例你需要去其官网注册获取 API Key。from hermes_agent.tools import BaseTool from pydantic import Field import requests import os class WebSearchTool(BaseTool): 使用 SerpAPI 进行网络搜索的工具。 query: str Field(description搜索查询词) num_results: int Field(default3, description返回的结果数量) def run(self): api_key os.getenv(SERPAPI_API_KEY) if not api_key: return 错误未设置 SERPAPI_API_KEY 环境变量。 params { q: self.query, api_key: api_key, num: self.num_results } try: response requests.get(https://serpapi.com/search, paramsparams, timeout10) response.raise_for_status() data response.json() # 简化处理只提取有机搜索结果 organic_results data.get(organic_results, []) summaries [] for result in organic_results[:self.num_results]: title result.get(title, 无标题) snippet result.get(snippet, 无摘要) link result.get(link, #) summaries.append(f- {title}: {snippet} ({link})) if summaries: return f关于 ‘{self.query}’ 的搜索结果\n \n.join(summaries) else: return f未找到关于 ‘{self.query}’ 的相关结果。 except requests.exceptions.RequestException as e: return f网络搜索请求失败{str(e)}注意生产环境中应对 API 调用进行更完善的错误处理、重试和超时控制并将 API Key 通过配置中心或密钥管理服务注入。3.3 组装智能体并创建服务入口现在我们将工具组装到智能体中并创建一个 FastAPI 服务来提供 HTTP 接口。1. 定义智能体 (src/agents/financial_agent.py)import os from hermes_agent import HermesAgent from src.tools.financial_glossary import FinancialGlossaryTool from src.tools.financial_calculator import FinancialCalculatorTool from src.tools.web_search import WebSearchTool def create_financial_agent(): 创建并配置金融问答智能体工厂函数。 agent HermesAgent( modelgpt-3.5-turbo, # 可根据需要切换为 gpt-4 或其他模型 tools[ FinancialGlossaryTool, FinancialCalculatorTool, WebSearchTool, ], system_prompt你是一个专业的金融助手名为‘金智通’。你的职责是准确、清晰地回答用户关于金融术语、计算和市场信息的问题。 请遵循以下规则 1. 优先使用提供的工具来获取准确信息。 2. 如果用户的问题涉及计算务必使用计算工具并展示过程。 3. 对于实时性要求高的问题如股价、新闻使用网络搜索工具。 4. 回答要简洁专业避免冗长和模糊。 5. 如果工具无法提供答案请如实告知不要编造信息。 , verboseTrue # 设置为 True 可以在控制台看到详细的推理过程便于调试 ) return agent # 创建一个全局智能体实例对于简单应用 financial_agent create_financial_agent()2. 创建 FastAPI 服务入口 (scripts/start_agent.py)from fastapi import FastAPI, HTTPException from pydantic import BaseModel from src.agents.financial_agent import financial_agent import uvicorn import logging # 配置日志 logging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__) app FastAPI(title金融问答智能体 API, description基于 Hermes Agent 构建的金融问答服务) class ChatRequest(BaseModel): message: str session_id: str None # 可选用于区分不同会话的记忆 class ChatResponse(BaseModel): response: str session_id: str None app.post(/chat, response_modelChatResponse) async def chat_with_agent(request: ChatRequest): 与金融智能体对话的端点。 try: logger.info(f收到请求: session_id{request.session_id}, message{request.message[:100]}...) # 这里 session_id 可以用于关联不同的记忆存储简化示例中未实现 agent_response financial_agent.run(request.message) logger.info(f智能体回复生成完毕。) return ChatResponse(responseagent_response, session_idrequest.session_id) except Exception as e: logger.error(f处理请求时发生错误: {e}, exc_infoTrue) raise HTTPException(status_code500, detailf智能体处理失败: {str(e)}) app.get(/health) async def health_check(): 健康检查端点。 return {status: healthy} if __name__ __main__: # 启动服务监听本地 8000 端口 uvicorn.run(app, host0.0.0.0, port8000)3.4 运行与验证安装额外依赖pip install fastapi uvicorn requests pydantic设置环境变量确保OPENAI_API_KEY和SERPAPI_API_KEY已设置。启动服务cd hermes-agent-project python scripts/start_agent.py看到类似Uvicorn running on http://0.0.0.0:8000的输出即表示启动成功。测试接口 使用curl或 Postman 等工具测试。# 测试健康检查 curl http://localhost:8000/health # 测试智能体对话 curl -X POST http://localhost:8000/chat \ -H Content-Type: application/json \ -d {message: 请解释一下什么是市盈率}预期返回包含金融术语定义的 JSON 响应。# 测试计算功能 curl -X POST http://localhost:8000/chat \ -H Content-Type: application/json \ -d {message: 如果我有10000元年化收益率5%投资10年最终能得到多少钱}预期返回包含复利计算结果的响应。# 测试搜索功能 curl -X POST http://localhost:8000/chat \ -H Content-Type: application/json \ -d {message: 今天A股市场有什么重要新闻}预期返回基于网络搜索的新闻摘要。通过以上步骤一个具备基本功能的金融问答智能体后端服务就搭建完成了。智能体会根据你的问题自动判断并使用相应的工具来生成回答。4. 工程化提升配置、日志、监控与测试一个能在生产环境运行的智能体远不止于功能实现。接下来我们按照 Harness Engineering 的理念对其进行工程化加固。4.1 外部化配置管理将模型参数、API端点、开关等配置从代码中分离。我们使用Pydantic Settings和.env文件。创建config/settings.pyfrom pydantic_settings import BaseSettings from pydantic import Field class Settings(BaseSettings): # LLM 配置 openai_api_key: str Field(..., envOPENAI_API_KEY) openai_base_url: str Field(https://api.openai.com/v1, envOPENAI_BASE_URL) llm_model: str Field(gpt-3.5-turbo) # 工具配置 serpapi_api_key: str Field(..., envSERPAPI_API_KEY) web_search_enabled: bool Field(True) # 应用配置 agent_verbose: bool Field(False) # 生产环境建议关闭详细日志 api_host: str Field(0.0.0.0) api_port: int Field(8000) class Config: env_file .env extra ignore # 忽略未定义的额外环境变量 settings Settings()在项目根目录创建.env文件并加入.gitignoreOPENAI_API_KEYsk-你的密钥 OPENAI_BASE_URLhttps://api.openai.com/v1 LLM_MODELgpt-3.5-turbo SERPAPI_API_KEY你的SerpAPI密钥 WEB_SEARCH_ENABLEDtrue AGENT_VERBOSEfalse API_HOST0.0.0.0 API_PORT8000修改financial_agent.py和start_agent.py从config.settings导入配置。4.2 结构化日志与监控日志是排查问题的生命线。为智能体添加结构化日志。修改start_agent.py的日志配置import structlog # 配置 structlog 或 logging确保记录关键信息请求ID、会话ID、用户输入、工具调用、模型响应、耗时、错误。 logger structlog.get_logger() app.post(/chat) async def chat_with_agent(request: ChatRequest): request_id str(uuid.uuid4()) log logger.bind(request_idrequest_id, session_idrequest.session_id) log.info(chat.request.received, message_previewrequest.message[:50]) start_time time.time() try: response agent.run(request.message) duration time.time() - start_time log.info(chat.request.succeeded, durationduration, response_previewresponse[:50]) return {response: response} except Exception as e: log.error(chat.request.failed, errorstr(e), exc_infoTrue) raise HTTPException(...)同时考虑在工具类的run方法中也加入日志记录工具调用的输入和输出。4.3 编写单元与集成测试测试是保障智能体行为符合预期的关键。由于 LLM 输出具有不确定性测试重点应放在工具逻辑、流程编排和关键约束上。创建tests/test_tools.pyimport pytest from src.tools.financial_calculator import FinancialCalculatorTool def test_financial_calculator(): tool FinancialCalculatorTool(principal10000, annual_rate0.05, years10) result tool.run() assert isinstance(result, dict) assert future_value in result # 使用近似值断言 assert abs(result[future_value] - 16288.95) 0.1 assert result[formula] FV PV * (1 r)^n def test_financial_calculator_invalid_input(): with pytest.raises(ValueError): # 本金应为正数 FinancialCalculatorTool(principal-1000, annual_rate0.05, years10)创建tests/test_agent_integration.py模拟测试# 这是一个集成测试示例可能需要 mock LLM 的调用 from unittest.mock import MagicMock, patch from src.agents.financial_agent import create_financial_agent def test_agent_tool_selection(): # Mock LLM 的响应使其明确选择计算工具 mock_response MagicMock() # 这里需要根据 Hermes Agent 实际的内部调用方式进行调整 # 核心思想是模拟 LLM 返回一个包含工具调用指令的响应 with patch(hermes_agent.hermes_agent.OpenAI) as mock_openai: mock_client MagicMock() mock_openai.return_value mock_client # 配置 mock 返回一个指示调用 FinancialCalculatorTool 的响应 # 具体 mock 逻辑取决于 Hermes Agent 的内部实现 agent create_financial_agent() # 调用 agent.run并验证其内部是否尝试调用了正确的工具 # 这需要你对框架有较深了解或查阅其测试用例 pass运行测试pytest tests/ -v4.4 性能与安全考量速率限制与重试为 OpenAI API 等外部服务调用添加指数退避重试机制并遵守其速率限制。输入验证与清理在 API 端点对用户输入进行基本的验证和清理防止 Prompt 注入攻击。输出审查对于涉及金融建议等敏感场景应考虑在最终输出前加入人工审核或规则过滤层。成本监控记录每次对话消耗的 Token 数设置预算告警。5. 常见问题排查与最佳实践在开发和运维 Hermes Agent 智能体时你会遇到一些典型问题。以下是一个排查清单和最佳实践指南。5.1 常见问题排查表问题现象可能原因检查步骤解决方案智能体不调用工具直接回答1. 系统提示词未明确要求使用工具。2. 工具描述不够清晰。3. 模型如 gpt-3.5-turbo对工具调用的支持不稳定。1. 检查system_prompt是否包含“请使用工具”等指令。2. 检查工具类的__doc__和字段description是否准确。3. 将verboseTrue查看模型原始的响应消息。1. 强化系统提示词。2. 优化工具描述使其与用户问题匹配度更高。3. 升级到更强大的模型如 gpt-4或使用框架提供的更强制工具调用模式。工具调用参数错误1. 模型未能正确解析用户意图为工具参数。2. 工具参数定义类型、约束与模型理解不匹配。1. 查看verbose日志看模型生成的工具调用 JSON 是否格式正确。2. 检查 Pydantic 字段类型如float,int和验证器如gt0。1. 在提示词中举例说明参数格式。2. 考虑在工具run方法内部增加更健壮的类型转换和错误处理。API 调用失败网络、密钥1. 环境变量未设置或错误。2. 网络超时或代理问题。3. API 密钥无效或额度不足。1. 使用os.getenv(KEY)打印检查。2. 使用curl或requests直接测试 API 端点。3. 查看对应服务商的控制台。1. 确认.env文件已加载或部署环境变量已配置。2. 增加请求超时和重试逻辑。3. 更换或充值 API 密钥。服务启动失败提示导入错误1. 依赖未安装或版本冲突。2. Python 路径问题src模块未识别。1. 运行pip list检查关键包。2. 在项目根目录运行python -c “import src”测试。1. 使用requirements.txt重新安装依赖。2. 确保在项目根目录下运行或设置PYTHONPATH。响应速度非常慢1. LLM API 本身延迟高。2. 工具调用如网络搜索耗时过长。3. 智能体进行了复杂的多步规划。1. 分别测试 LLM API 和工具调用的耗时。2. 查看日志分析时间消耗在哪个环节。1. 为工具调用设置合理的超时时间。2. 考虑使用缓存如对术语查询结果缓存。3. 优化提示词引导模型进行更简洁的规划。5.2 生产环境最佳实践清单配置管理永远不要将密钥硬编码。使用环境变量、云服务商的密钥管理服务如 AWS Secrets Manager Azure Key Vault或专业的配置中心。依赖锁定使用pip freeze requirements.txt或poetry/pipenv来精确锁定所有依赖的版本确保环境一致性。容器化部署使用 Docker 将智能体及其所有依赖打包成镜像。这能极大简化部署并保证在不同环境开发、测试、生产中运行一致。FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [python, scripts/start_agent.py]健康检查与就绪探针确保你的 HTTP 服务如 FastAPI有/health端点并在部署如 Kubernetes中配置就绪探针确保流量只被引导到健康的实例。全面的日志与指标记录每个请求的完整链路包括用户输入、工具调用详情、LLM 请求/响应、最终输出、耗时和错误。将这些日志发送到集中式日志系统如 ELK Stack。同时收集关键指标QPS、响应延迟、错误率、Token 消耗。限流与熔断在 API 网关或应用层实现限流防止突发流量打垮智能体或消耗过多 API 额度。为依赖的外部服务如 LLM API、搜索 API设置熔断器。评估与迭代建立自动化评估流程。收集一批代表性问题黄金数据集定期如每天用最新版本的智能体跑一遍评估其回答质量、工具使用准确率等。用数据驱动提示词和工具的迭代优化。制定降级策略当核心 LLM 服务不可用或返回质量极差时应有降级方案。例如回退到更稳定的模型或直接返回预设的友好错误信息而不是让用户长时间等待或得到混乱的答案。遵循以上从理论到实践再到工程化部署的完整路径你不仅能构建出功能性的 AI 智能体更能构建出稳定、可靠、可维护的智能体服务。这才是 Harness Engineering 的精髓所在——将大模型的强大能力真正地“驾驭”到生产系统之中。