尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从零构建AI智能体:Hermes-Agent框架核心概念与实践指南

从零构建AI智能体:Hermes-Agent框架核心概念与实践指南 1. 项目概述从零认识 Hermes-Agent最近在跟几个做AI应用开发的朋友聊天发现大家不约而同地提到了一个词Hermes-Agent。这名字听起来挺“高大上”乍一听还以为是哪个奢侈品品牌跨界搞AI了。其实它是一个在开发者圈子里特别是那些热衷于探索大模型LLM应用落地的工程师中逐渐火起来的技术框架。简单来说你可以把它理解为一个“智能体Agent的调度与执行中枢”。我自己最初接触它是因为在尝试用大模型API比如GPT-4、Claude等去自动化处理一些复杂、多步骤的任务时遇到了瓶颈。比如我想让AI帮我分析一份财报然后根据分析结果生成一份投资建议PPT。这个任务涉及“阅读理解-数据分析-观点提炼-格式生成”等多个环节。单纯调用一次大模型的“聊天”接口很难连贯、可靠地完成。我需要一个能管理任务状态、能调用不同工具如计算器、搜索引擎、文档生成器、能在步骤间传递和校验数据的“大脑”。这就是Hermes-Agent要解决的核心问题。它本质上是一个开源框架旨在降低构建复杂、可执行、多步骤AI智能体的门槛。无论你是想做一个自动化的数据分析助手一个智能的客服工单处理系统还是一个能联网搜索并撰写报告的内容生成工具Hermes-Agent都提供了一套标准化的“蓝图”和“工具箱”。对于刚入门的开发者而言理解它的核心设计思想比一上来就啃代码更重要。它不是一个“黑箱”魔法而是一套让你能清晰定义AI如何思考、如何行动的方法论。接下来我会从一个实践者的角度带你一步步拆解Hermes-Agent从核心概念到环境搭建再到亲手实现第一个能真正干活的智能体。我们会避开那些空洞的理论直接聚焦在“怎么做”和“为什么这么做”上。2. 核心概念与设计思想拆解在开始写代码之前我们必须先统一“语言”。Hermes-Agent以及类似的Agent框架建立在几个关键概念之上理解它们你就能看透大多数智能体项目的本质。2.1 什么是“智能体Agent”在这里Agent不是一个科幻概念。你可以把它想象成一个具备特定目标、能够感知环境、进行决策并执行动作的虚拟实体。在我们的语境下这个“实体”的核心是一个大语言模型LLM。目标Goal这是智能体的出发点。比如“查询北京今天天气并告诉我是否需要带伞。”感知Perception智能体通过“工具Tools”来感知环境。环境可以是互联网、数据库、本地文件系统或者用户输入。决策DecisionLLM根据当前目标、历史对话和感知到的信息决定下一步该做什么。是调用某个工具还是直接给出答案动作Action执行决策比如调用一个“天气查询API”工具。状态State智能体需要记住之前的对话、工具执行的结果这是它进行连贯思考的基础。Hermes-Agent框架的核心工作就是帮你管理这个“感知-决策-动作”循环并维护智能体的状态。2.2 Hermes-Agent 的架构核心Planner, Tools, Memory大多数实用的Agent框架都遵循类似的模式Hermes-Agent也不例外它的设计清晰地区分了三个核心角色规划器Planner这是智能体的“战略大脑”。它的职责是将一个复杂的用户请求比如“帮我制定一份一周健身计划”分解成一系列可执行的子任务或步骤。例如分解为1. 询问用户健身目标与水平2. 查询健身知识库3. 生成每日训练项目4. 编排成计划表。Planner通常也由LLM驱动但它的提示词Prompt是专门为任务分解设计的。工具Tools这是智能体的“手和脚”。一个智能体再聪明如果无法与现实世界交互也只是个聊天机器人。Tools就是赋予它交互能力的模块。常见的工具有搜索工具调用搜索引擎API。计算工具执行数学运算。代码执行工具在安全沙箱中运行Python代码。API调用工具与任何外部服务如天气、股票、数据库通信。文件操作工具读写本地文件。 Hermes-Agent框架提供了定义和注册工具的标准化方式让LLM可以方便地了解和调用它们。记忆Memory这是智能体的“笔记本”。它需要记住两件事对话历史和用户说了什么。工具执行历史每一步调用了什么工具输入输出是什么。 有了Memory智能体才能进行多轮对话才能在复杂任务中回溯上下文避免重复操作或陷入逻辑循环。Hermes-Agent通常会管理短期会话内记忆并与向量数据库等结合实现长期记忆。2.3 与其它框架的对比为什么选择 Hermes-Agent市面上类似的框架不少比如LangChain、LlamaIndex、AutoGen等。Hermes-Agent的特点在于它的轻量、清晰和易于定制。LangChain功能极其强大生态丰富但学习曲线陡峭抽象层较多有时感觉“厚重”。对于快速原型验证或中小型项目可能有点杀鸡用牛刀。LlamaIndex更专注于数据索引和检索增强生成RAG在Agent工作流方面不是其最核心的焦点。AutoGen由微软推出支持多智能体协作对话概念先进但配置相对复杂。Hermes-Agent的定位更像是为开发者提供一套构建智能体最核心、最必要的“骨架”它不试图囊括一切而是保持核心简洁将扩展性留给开发者。这对于入门学习和中等复杂度的项目来说反而是一个优势代码更易读问题更易排查。注意框架的选择没有绝对优劣取决于项目需求和个人偏好。从Hermes-Agent入手能让你更透彻地理解Agent运行的基本原理未来再迁移到其他框架也会事半功倍。3. 环境准备与基础配置实战理论说得再多不如动手跑一行代码。我们从一个最简单的“Hello Agent”开始搭建你的第一个Hermes-Agent环境。3.1 基础环境搭建Python与虚拟环境假设你已经有Python 3.8的环境。第一步永远是创建独立的虚拟环境这是避免依赖冲突的好习惯。# 创建项目目录并进入 mkdir my-first-hermes-agent cd my-first-hermes-agent # 创建虚拟环境这里使用venv你也可以用conda python -m venv venv # 激活虚拟环境 # 在Windows上 venv\Scripts\activate # 在macOS/Linux上 source venv/bin/activate激活后你的命令行提示符前应该会出现(venv)字样。3.2 安装 Hermes-Agent 核心库目前Hermes-Agent可以通过pip从官方源或镜像源安装。由于开源项目迭代快建议关注其GitHub仓库获取最新安装方式。# 通常的安装命令是这样的请以官方文档为准 pip install hermes-agent # 同时我们需要安装一个LLM的SDK这里以OpenAI为例你需要有自己的API Key pip install openai如果安装过程中遇到问题通常是网络或依赖冲突。可以尝试使用国内镜像源并确保pip版本最新。pip install --upgrade pip pip install hermes-agent -i https://pypi.tuna.tsinghua.edu.cn/simple3.3 获取并配置LLM API密钥Hermes-Agent本身不提供LLM它需要连接后端的AI服务。我们以OpenAI GPT为例。访问OpenAI平台注册并获取API Key。在项目根目录创建一个名为.env的文件用于安全地存储密钥切记不要将此文件提交到Git。# .env 文件内容 OPENAI_API_KEY你的实际api密钥sk-xxxxxx在Python代码中使用python-dotenv库来加载环境变量。pip install python-dotenv3.4 验证安装第一个“对话式”智能体创建一个hello_agent.py文件写入以下代码import os from dotenv import load_dotenv from hermes_agent.agent import Agent # 假设核心类名为Agent请根据实际文档调整 from hermes_agent.models.llm import OpenAIChatModel # 假设的LLM集成类 # 1. 加载环境变量 load_dotenv() # 2. 初始化LLM模型 # 这里需要根据Hermes-Agent的实际API调整 llm OpenAIChatModel( api_keyos.getenv(OPENAI_API_KEY), modelgpt-3.5-turbo # 或 gpt-4 ) # 3. 创建一个最简单的Agent它还没有任何工具 agent Agent(llmllm) # 4. 运行一个简单对话 if __name__ __main__: response agent.run(你好请介绍一下你自己。) print(Agent回复:, response)运行这个脚本python hello_agent.py。如果你看到LLM返回了一段自我介绍那么恭喜你Hermes-Agent的基础环境已经跑通了这虽然只是一个简单的聊天但我们已经完成了框架与LLM的对接。实操心得在第一步很多人会卡在环境变量加载或API密钥错误上。一个调试技巧是在代码中临时打印os.getenv(“OPENAI_API_KEY”)的前几位确认密钥是否正确加载打印后立即删除这行代码避免泄露。另外不同版本的Hermes-Agent其类名和初始化方式可能有变务必以当前版本的官方文档为准上述代码是一个概念示例。4. 核心功能实现打造你的第一个工具调用智能体现在我们让智能体真正“动”起来给它装上“手”——也就是工具Tool。我们将创建一个具备简单计算和网络搜索能力的智能体。4.1 定义自定义工具一个加法器在Hermes-Agent中工具通常被定义为一个类其中包含工具的描述和具体的执行函数。# my_tools.py from hermes_agent.tools import tool # 假设的装饰器 from pydantic import Field, BaseModel # 首先定义工具的输入参数模型 class AddInput(BaseModel): a: float Field(..., description第一个加数) b: float Field(..., description第二个加数) # 使用tool装饰器注册工具 tool(args_schemaAddInput, description将两个数字相加。) def add_numbers(a: float, b: float) - str: 执行加法运算 result a b return f{a} {b} {result} # 再定义一个获取当前时间的工具模拟 import datetime class GetTimeInput(BaseModel): # 这个工具不需要输入参数 pass tool(args_schemaGetTimeInput, description获取当前的系统时间。) def get_current_time() - str: 返回当前时间字符串 now datetime.datetime.now() return now.strftime(%Y-%m-%d %H:%M:%S)关键点解析tool装饰器这是向框架声明“这是一个工具”的关键。args_schema参数指定了工具输入的结构框架会利用这个信息来引导LLM生成正确的调用参数。Pydantic模型用于严格定义工具输入的类型和说明。Field(..., description“...”中的描述非常重要LLM就是靠这个描述来理解这个工具是干什么的、需要什么参数。工具函数执行实际工作的函数。返回结果最好是字符串便于LLM理解和后续处理。4.2 集成工具并创建智能体接下来我们修改主程序将工具加载给Agent。# main_agent.py import os from dotenv import load_dotenv from hermes_agent.agent import Agent from hermes_agent.models.llm import OpenAIChatModel from my_tools import add_numbers, get_current_time # 导入我们定义的工具 load_dotenv() llm OpenAIChatModel(api_keyos.getenv(OPENAI_API_KEY), modelgpt-3.5-turbo) # 创建Agent时传入工具列表 agent Agent( llmllm, tools[add_numbers, get_current_time] # 注册工具 ) if __name__ __main__: # 测试1让Agent使用加法工具 query1 请计算一下 123.45 加上 678.9 等于多少 print(用户提问:, query1) response1 agent.run(query1) print(Agent回复:, response1) print(- * 50) # 测试2混合任务 query2 现在几点了然后再帮我算算现在的时间小时数加上10是多少 print(用户提问:, query2) response2 agent.run(query2) print(Agent回复:, response2)运行这段代码你会看到Agent首先识别出需要调用get_current_time工具获取时间后在后续的“思考”中它需要解析出时间中的“小时数”然后调用add_numbers工具进行计算。这个过程完全是自动的框架处理了工具的选择、参数提取和结果整合。4.3 实现网络搜索工具使用Serper API示例真正的智能体离不开外部信息。我们集成一个真实的搜索工具。这里以Serper一个Google搜索API为例。去Serper官网注册获取免费API Key。在.env文件中添加SERPER_API_KEY你的serper_key。安装请求库pip install requests。创建搜索工具# search_tool.py import os import requests from hermes_agent.tools import tool from pydantic import Field, BaseModel from dotenv import load_dotenv load_dotenv() class SearchInput(BaseModel): query: str Field(..., description需要搜索的查询词) tool(args_schemaSearchInput, description使用搜索引擎获取最新的网络信息。) def search_web(query: str) - str: 调用Serper API进行搜索 url https://google.serper.dev/search headers { X-API-KEY: os.getenv(SERPER_API_KEY), Content-Type: application/json } payload {q: query} response requests.post(url, headersheaders, jsonpayload) response.raise_for_status() data response.json() # 简化处理只返回第一个结果的摘要 if organic in data and data[organic]: first_result data[organic][0] return f搜索结果{first_result.get(title, )}\n链接{first_result.get(link, )}\n摘要{first_result.get(snippet, )} else: return 未找到相关结果。在主程序中导入并添加这个工具到tools列表。现在你的Agent就具备了联网搜索能力。你可以问它“特斯拉最新的车型有什么特点”它会自动调用搜索工具获取信息然后组织语言回答你。注意事项工具调用是Agent的核心也是最容易出错的地方。第一工具的描述description要清晰准确这是LLM选择工具的主要依据。第二工具函数的输入输出要稳定做好异常处理避免因为一个工具崩溃导致整个Agent流程失败。第三网络工具或API调用工具要注意速率限制和错误重试机制。5. 规划器Planner与多步骤任务实践到目前为止我们的Agent还处于“单步反应”模式用户问一个问题它决定调用一个或按顺序调用几个工具来回答。但对于更复杂的任务我们需要一个**规划器Planner**来预先制定步骤。5.1 理解规划器的工作流程规划器本身通常也是一个LLM调用。它的输入是用户目标和可用工具列表。它的输出是一个计划这个计划可能是一个步骤列表Step-by-Step Plan。例如用户目标是“分析苹果公司AAPL过去一个月的股价趋势并总结可能的原因。” 一个可能的计划是步骤一调用搜索工具查询“AAPL past month stock price”。步骤二从搜索结果中提取股价数据可能需要调用一个数据解析工具。步骤三调用计算工具计算涨跌幅、移动平均等。步骤四调用搜索工具查询“AAPL recent news events”。步骤五综合股价数据和新闻生成分析报告。Hermes-Agent的规划器模块会帮你封装这个“任务分解-计划生成”的过程。5.2 配置并使用内置规划器我们修改Agent的创建方式显式地启用规划功能。# planner_agent.py import os from dotenv import load_dotenv from hermes_agent.agent import Agent from hermes_agent.models.llm import OpenAIChatModel from hermes_agent.planner import SimplePlanner # 假设有一个简单的规划器类 from my_tools import add_numbers, get_current_time from search_tool import search_web load_dotenv() llm OpenAIChatModel(api_keyos.getenv(OPENAI_API_KEY), modelgpt-3.5-turbo) # 1. 初始化规划器 planner SimplePlanner(llmllm) # 2. 创建Agent并传入规划器 agent Agent( llmllm, tools[add_numbers, get_current_time, search_web], plannerplanner # 关键指定规划器 ) if __name__ __main__: complex_query 我想了解人工智能在医疗领域的最新进展然后基于这些进展 推测一下未来三年可能对普通人健康管理产生最大影响的一项技术是什么。 请分步骤进行先搜索最新进展再进行分析推测。 print(复杂任务:, complex_query) response agent.run(complex_query) print(\nAgent的完整回复:) print(response)当你运行这段代码时框架内部的执行逻辑会是Planner介入分析complex_query。Planner生成一个计划可能是隐式的不直接输出文本例如先调用search_web(“人工智能 医疗 最新进展 2024”)再让LLM基于搜索结果进行分析推测。Agent根据计划逐步执行先执行搜索将搜索结果作为上下文再让LLM生成分析推测的最终答案。5.3 调试与观察规划过程对于开发调试了解Agent的“思考过程”至关重要。Hermes-Agent通常提供日志或中间状态输出功能。# 在创建Agent时可以开启详细日志具体方式取决于框架实现 # 例如可能有一个参数是 verboseTrue agent Agent(llmllm, tools..., plannerplanner, verboseTrue) # 或者在运行后访问agent的会话历史 response agent.run(complex_query) print(\n 本次执行的内部步骤记录 ) # 假设agent有history或steps属性 for i, step in enumerate(agent.session_history): # 属性名可能是 session_history, steps, log print(f步骤 {i1}: {step.action} | 结果: {step.result[:100]}...) # 打印前100字符通过观察这些中间步骤你可以清楚地看到Agent是否正确地识别了需要规划的任务。Planner生成的步骤是否合理。在每一步中它选择了哪个工具参数是什么。工具返回的结果是否被正确传递。这是优化你的工具描述和Prompt的关键依据。6. 记忆Memory管理与会话持久化一个没有记忆的Agent每次对话都是全新的开始无法处理涉及上下文的复杂交互。Hermes-Agent提供了记忆管理机制。6.1 短期记忆会话上下文默认情况下Agent在单次run调用中会维护一个会话上下文这就是短期记忆。它包含了本次对话中所有的用户消息、AI回复以及工具调用的输入输出。这保证了在同一个任务中Agent能记住之前做了什么。6.2 长期记忆向量数据库集成对于需要跨会话记忆知识或事实的场景就需要长期记忆。这通常通过集成向量数据库Vector Database来实现也就是常说的RAG检索增强生成。基本原理是将历史对话、知识文档等内容通过嵌入模型Embedding Model转换成向量一串数字存入向量数据库如Chroma, Pinecone, Weaviate。当用户提出新问题时将问题也转换成向量在向量数据库中搜索与之最相关的历史片段。将这些相关片段作为“上下文”或“背景知识”连同当前问题一起发送给LLM从而生成更有依据的回答。Hermes-Agent框架可能提供了与向量数据库集成的接口或模式。# 概念性代码展示如何扩展Agent以支持向量记忆 from hermes_agent.memory import VectorMemory # 假设的向量记忆类 import chromadb # 以ChromaDB为例 # 初始化向量数据库客户端和集合 chroma_client chromadb.PersistentClient(path./chroma_db) collection chroma_client.get_or_create_collection(nameagent_memory) # 创建向量记忆模块 vector_memory VectorMemory( embedding_model“text-embedding-ada-002”, # 例如使用OpenAI的嵌入模型 vector_storecollection, k5 # 每次检索最相关的5条记忆 ) # 将向量记忆传递给Agent agent Agent( llmllm, tools..., plannerplanner, memoryvector_memory # 使用向量记忆 ) # 在运行前可以预存一些知识 vector_memory.add_texts([ “项目A的API密钥配置在环境变量中。”, “用户张三偏好简洁的汇报格式。”, “我们的服务器地址是 api.example.com。” ]) # 当用户问“我们的服务器地址是什么”时Agent会先从vector_memory中检索到相关信息再生成回答。6.3 记忆的实践技巧与陷阱记忆窗口限制LLM有上下文长度限制。即使有向量检索最终送入LLM的“上下文”也是有限的。需要精心设计摘要和检索策略确保送入最关键的信息。记忆的“污染”不是所有历史对话都值得记忆。错误的工具调用结果、无关的闲聊如果被存入长期记忆可能会干扰未来的决策。需要考虑记忆的过滤和清理策略。成本考量每次调用嵌入模型和向量检索都有成本金钱或计算时间。对于简单会话使用简单的对话历史记忆即可对于知识库问答再启用向量记忆。实操心得在项目初期可以先用简单的对话历史记忆。当需要实现“记住用户偏好”或“基于知识库问答”时再引入向量数据库。集成时先从简单的文档QA开始确保检索的准确率再逐步应用到更复杂的Agent记忆场景中。一个常见的坑是检索到的记忆片段可能包含无关信息导致LLM回答跑偏需要通过优化检索查询Query和元数据过滤来改善。7. 部署与性能优化考量当你开发完成一个功能完善的Agent后下一步就是考虑如何把它部署出去供他人使用并确保其运行稳定、高效。7.1 部署模式选择命令行接口CLI最简单的方式。将你的Agent脚本包装成一个命令行程序通过python your_agent.py “用户问题”来交互。适合内部工具或演示。Web API服务最通用的方式。使用FastAPI、Flask等框架将Agent封装成HTTP端点。# 使用FastAPI的简单示例 from fastapi import FastAPI, HTTPException from pydantic import BaseModel app FastAPI() # 全局初始化你的Agent注意在生产中要考虑并发和初始化开销 # agent create_your_agent() class QueryRequest(BaseModel): question: str app.post(/ask) async def ask_agent(request: QueryRequest): try: response agent.run(request.question) return {answer: response} except Exception as e: raise HTTPException(status_code500, detailstr(e))部署时可以使用Uvicorn或Gunicorn作为ASGI服务器。集成到现有应用将Agent作为一个模块集成到你的网站、聊天机器人或移动App的后端中。7.2 性能与成本优化Agent应用的核心成本来自LLM API调用Token费用和工具调用如搜索API。优化至关重要。优化提示词Prompt Engineering为Planner和主Agent编写清晰、简练的指令减少不必要的Token消耗。明确限制工具的使用条件和范围。缓存策略对相同的用户查询或工具调用结果进行缓存。例如使用functools.lru_cache缓存工具函数的结果前提是结果在短期内不变。对于LLM响应如果问题确定性强也可以考虑缓存。异步执行如果多个工具调用之间没有依赖关系可以考虑使用异步Async来并发执行缩短整体响应时间。Hermes-Agent可能支持异步的Agent运行方式。设置超时与重试为LLM调用和工具调用设置合理的超时时间并实现重试逻辑特别是对网络工具提高系统的健壮性。监控与日志记录每次运行的Token消耗、工具调用次数、耗时等指标。这有助于分析瓶颈和成本中心。7.3 安全性与可靠性工具调用的沙箱化对于执行代码、访问文件系统的工具必须运行在严格的沙箱环境中防止恶意指令造成破坏。用户输入验证与过滤对用户输入进行基本的清理和检查防止Prompt注入攻击诱导Agent执行非预期操作。API密钥管理永远不要在代码中硬编码API密钥。使用.env文件、环境变量或专业的密钥管理服务如AWS Secrets Manager。限流与降级为你的API服务设置限流防止滥用。在LLM服务不可用时有降级方案如返回缓存答案或友好错误。8. 常见问题排查与调试技巧实录在开发Hermes-Agent应用的过程中你一定会遇到各种问题。下面是我踩过的一些坑和解决方法。8.1 Agent不调用工具总是直接回答可能原因1工具描述不清晰。LLM不理解你的工具能干什么。解决仔细检查tool装饰器中的description参数和args_schema中每个Field的description。用最自然、最准确的语言描述工具的功能和参数。可以尝试让LLM角色扮演问它“如果你有一个能做XXX的工具你会怎么描述它”可能原因2LLM能力不足或Prompt引导不够。较弱的模型如GPT-3.5-turbo在复杂工具调用上可能不如GPT-4稳定。解决在初始化Agent的System Prompt中加入强制的指令例如“你必须使用可用的工具来回答问题。在回答前先思考需要调用哪个工具。” 也可以尝试升级到更强的模型。可能原因3用户问题太简单。对于“你好吗”这种问题LLM认为不需要工具。这是正常的。8.2 工具调用参数错误或格式不对可能原因LLM生成的参数不符合args_schema定义的Pydantic模型。解决开启详细日志查看LLM决定调用工具时生成的原始参数是什么。确保你的Pydantic模型字段类型定义正确如int,str,float。在工具函数内部开始时可以加入print(f”Received args: {a}, {b}”)来调试。考虑在Planner或Agent的Prompt中加入输出格式的示例Few-Shot Prompting教LLM如何生成正确的JSON参数。8.3 多步骤任务中Agent陷入循环或步骤混乱可能原因Planner的指令不明确或者Agent的状态管理出现问题。解决强化Planner的Prompt要求它输出明确、离散、可验证的步骤。例如“计划必须是一个编号列表每个步骤必须以‘步骤X [动作]’的格式明确写出。”检查Memory是否正常工作。是否每一步的结果都正确传递到了下一步可能是记忆被意外清空了。为循环设置一个最大迭代次数。例如如果连续5次调用了同一个工具或步骤没有推进则终止任务并报错。8.4 响应速度慢分析使用监控日志分析时间花在哪里。LLM响应慢这是主要瓶颈。考虑使用流式响应如果框架支持先返回部分答案或者优化Prompt减少Token数。工具调用慢特别是网络工具。为工具调用添加并行处理如果步骤间无依赖或设置更短的超时时间并准备备用方案。向量检索慢检查向量数据库的索引是否合理检索的k值是否过大。8.5 如何获取更详细的运行日志这是调试的基石。除了框架自带的verbose模式你可以在关键位置添加Python标准日志。import logging logging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__) # 在你的工具函数、Agent核心循环等处添加日志 logger.info(f”准备调用工具 {tool_name}, 参数: {params}”) logger.debug(f”LLM原始响应: {llm_raw_response}”)把日志输出到文件方便你仔细分析Agent的完整“思考链”。开发Hermes-Agent应用是一个典型的“迭代优化”过程。从最简单的工具开始逐步增加复杂度仔细观察每一步的输出不断调整你的工具设计、Prompt和流程控制。它不是一个配置好就能百分百工作的魔法盒而是一个需要你精心设计和调试的智能系统。当你看到它能够流畅地理解复杂指令、自动调用工具并完成既定任务时那种成就感是非常独特的。
返回列表