资讯动态

从工具调用到协作伙伴:Agent范式跃迁与工业级落地实战

发布时间:2026/10/3 18:49:08 来源:尧图企业网站定制
1. 从工具调用到协作伙伴Agent范式的核心转变过去两年我一直在做Agent相关的项目从最早的简单工具调用到后来的多Agent协作再到最近半年在工业界落地的几个系统踩过的坑比写过的代码还多。今天想聊的这个话题其实是我一直想系统梳理的——Agent从“工具”到“伙伴”的范式跃迁。这不是一个学术概念而是我在实际项目中真切感受到的变化。如果你正在做Agent开发或者准备把LLM能力接入到自己的业务系统里这篇文章应该能帮你少走一些弯路。先说说这个标题里的关键词。Agent、Harness、LLM、Skill、Tool这几个词在最近的技术圈里出现的频率极高但很多人对它们的理解还停留在表面。我见过不少团队把Agent简单地理解成“LLM加几个API调用”结果做出来的东西只能跑Demo一上生产就崩。问题出在哪里出在对Agent的本质理解不够深。Agent不是一个更聪明的函数它是一个有状态、有记忆、能规划、能反思的协作实体。这个区别决定了你的系统架构、Prompt设计、工具编排方式完全不同。这篇文章我会从四个维度展开第一拆解Agent范式跃迁的底层逻辑讲清楚为什么“工具”和“伙伴”是两种完全不同的设计哲学第二深入分析Harness、Skill、Tool这三个核心概念在工业界实战中的具体含义和实现方式第三给出一个完整的Agent系统落地实操方案包括架构设计、关键参数、代码示例第四分享我在实际项目中遇到的典型问题和排查技巧。整篇内容基于我过去一年多在多个工业级Agent项目中的实战经验不是纸上谈兵。2. Agent范式跃迁的底层逻辑拆解2.1 为什么“工具”思维会撞墙早期做Agent大家的思路很直接LLM是一个推理引擎Tool是它的手和脚Harness是它的工作台。你给它一个任务它分析一下然后调用相应的工具拿到结果再分析再调用直到任务完成。这个模式在简单场景下没问题比如“查一下明天北京的天气”或者“帮我订一张去上海的机票”。但一旦任务复杂度上来这种“工具”思维就会撞墙。我举个真实的例子。去年我们做一个客服工单自动处理系统最初的架构就是典型的工具思维LLM分析工单内容然后调用知识库查询工具、订单查询工具、退款工具。听起来很合理对吧但实际跑起来问题一大堆。首先LLM经常在不需要调用工具的时候调用工具比如用户只是问“你们的退货政策是什么”它非要去查一下订单状态。其次当多个工具需要协作时LLM的规划能力明显不足它不知道先查什么后查什么经常陷入死循环。最要命的是它没有“记忆”每次对话都是全新的开始用户之前说过什么、系统之前做过什么它完全不记得。这些问题的根源在于“工具”思维把Agent当成了一个无状态的函数调用器。但真实的业务场景是有状态的、有上下文的、需要长期记忆和持续学习的。这就是为什么我们需要范式跃迁。2.2 “伙伴”思维的核心特征“伙伴”思维和“工具”思维的本质区别在于工具是被动的伙伴是主动的工具是无状态的伙伴是有记忆的工具是执行指令的伙伴是理解意图的。具体来说一个真正的Agent伙伴应该具备以下几个核心特征。第一它有持久化的记忆系统能够记住历史交互、用户偏好、任务上下文。第二它有主动规划能力不是等用户一步一步指令而是能够根据目标自主拆解任务、制定计划。第三它有反思和纠错能力当执行结果不符合预期时能够分析原因并调整策略。第四它有清晰的自我认知知道自己能做什么、不能做什么知道什么时候该求助、什么时候该拒绝。这些特征听起来很抽象但落到工程实现上每一个都对应着具体的技术方案。比如记忆系统你需要设计短期记忆、长期记忆、工作记忆的分层结构比如规划能力你需要引入任务分解、优先级排序、依赖管理的机制比如反思能力你需要构建结果评估、错误归因、策略调整的闭环。2.3 Harness在范式跃迁中的角色Harness这个词在Agent语境下我把它理解为“驾驭层”或者“编排层”。它不是一个具体的工具而是一套机制负责协调LLM、Tool、Memory、Skill之间的关系。你可以把它想象成乐队的指挥不直接演奏乐器但决定了什么时候谁上场、节奏怎么走、音量怎么调。在“工具”思维下Harness很简单就是一个循环LLM输出动作执行动作把结果喂回LLM继续循环。但在“伙伴”思维下Harness要复杂得多。它需要管理Agent的状态机处理多轮对话的上下文协调多个Skill的调用顺序还要在适当的时候触发反思和记忆更新。我实测下来Harness的设计质量直接决定了Agent系统的上限。很多团队把精力都花在Prompt调优和工具开发上却忽略了Harness层的架构设计结果就是单个工具都能跑通但组合起来就各种问题。这就像你有一堆好乐手但没有一个好指挥演奏出来的就是噪音。3. Harness、Skill、Tool的工业级实现细节3.1 Tool的本质原子能力封装Tool是Agent系统中最基础的单元我把它定义为“原子能力封装”。一个Tool应该只做一件事并且做好。比如“查询订单状态”是一个Tool“发送邮件”是一个Tool“计算两个日期之间的天数”也是一个Tool。在工业级实现中Tool的设计有几个关键点。第一输入输出必须严格定义。我见过太多Tool的输入是一个模糊的自然语言字符串输出是一段自由文本这给LLM的解析带来了巨大负担。正确的做法是Tool的输入输出都用结构化的Schema定义比如JSON Schema这样LLM可以精确地知道该传什么参数、会得到什么结果。第二Tool的错误处理必须完善。LLM调用Tool时经常会传错参数或者在不合适的时机调用。Tool本身要做好参数校验和异常捕获返回清晰的错误信息而不是直接抛异常。错误信息本身也是给LLM的反馈帮助它调整策略。第三Tool的粒度要适中。太粗的Tool比如“处理客户问题”LLM不知道怎么用太细的Tool比如“获取字符串长度”又会导致LLM需要调用太多次才能完成一个简单任务。我的经验是一个Tool应该对应一个明确的业务动作输入参数不超过5个执行时间不超过3秒。3.2 Skill的定位场景化能力组合Skill是比Tool更高一层的概念我把它定义为“场景化能力组合”。一个Skill通常由多个Tool按照特定流程组合而成解决某一类具体场景的问题。比如“处理退货申请”是一个Skill它内部会调用“查询订单”、“验证退货资格”、“生成退货单”、“通知物流”等多个Tool。Skill和Tool的关系有点像函数和语句的关系。Tool是基础语句Skill是封装好的函数。在工业级Agent系统中Skill的设计直接决定了系统的可维护性和扩展性。我见过一些团队把所有逻辑都写在Harness层结果代码越来越臃肿改一个地方影响一大片。正确的做法是把场景化的逻辑下沉到Skill层Harness只负责调度和协调。Skill的实现方式有很多种可以是硬编码的流程编排也可以是基于LLM的动态规划。我的建议是对于流程固定的场景用硬编码的方式稳定可靠对于流程灵活的场景用LLM动态规划但要做好边界约束防止LLM跑偏。3.3 Harness的架构状态管理与调度中枢Harness是整个Agent系统的调度中枢它的核心职责包括管理Agent的状态、维护对话上下文、调度Skill和Tool的执行、处理异常和重试、触发记忆更新和反思。在工业级实现中Harness的架构设计要考虑几个关键问题。第一状态管理。Agent的状态包括当前任务、已完成步骤、待执行步骤、中间结果、用户输入历史等。这些状态需要持久化存储不能只放在内存里否则服务重启就丢了。我通常用Redis做短期状态存储用关系型数据库做长期状态存储。第二调度策略。Harness需要决定什么时候调用哪个Skill什么时候直接调用Tool什么时候让LLM自由发挥。我的经验是能用Skill解决的优先用SkillSkill覆盖不了的再让LLM规划LLM规划的结果要经过校验才能执行。第三异常处理。Agent执行过程中各种异常都可能发生Tool调用失败、LLM输出格式错误、超时、并发冲突等。Harness需要有一套完善的异常处理机制包括重试、降级、熔断、告警等。3.4 三者的协作关系与边界划分Tool、Skill、Harness三者的关系可以用一个简单的类比来说明。Tool是螺丝刀、扳手这样的单个工具Skill是“修水管”、“装家具”这样的操作流程Harness是那个拿着工具、按照流程干活的人。在实际项目中划分三者的边界非常重要。我的原则是Tool只负责单一原子操作不包含业务逻辑Skill负责场景化的流程编排包含业务规则Harness负责全局的状态管理和调度不包含具体业务逻辑。这个边界划分的好处是当业务规则变化时只需要修改Skill层当需要新增能力时只需要开发新的Tool当需要调整调度策略时只需要修改Harness层。各层之间通过清晰的接口通信互不影响。4. Agent系统落地实操全流程4.1 环境准备与技术选型在开始搭建Agent系统之前你需要做一些基础准备。首先是LLM的选择。目前市面上可选的模型很多我的建议是如果你的场景对响应速度要求高选择参数量适中的模型如果对推理质量要求高选择能力更强的模型。具体选哪个要根据你的预算、延迟要求、任务复杂度来权衡。其次是开发框架。目前主流的Agent开发框架有不少各有优劣。我的建议是不要盲目追求新框架而是根据团队的技术栈和项目需求来选择。如果团队Python基础好可以选择Python生态的框架如果需要高并发可以考虑Go或Java生态的方案。第三是存储层。Agent系统通常需要三种存储向量数据库用于语义检索关系型数据库用于结构化数据存储缓存用于短期状态管理。向量数据库可以选择Milvus、Qdrant、Weaviate等关系型数据库MySQL、PostgreSQL都可以缓存用Redis。第四是监控和日志。Agent系统的调试比传统系统复杂得多因为LLM的输出是不确定的。你需要完善的日志系统记录每一次LLM调用、每一次Tool执行、每一次状态变化。我通常会用OpenTelemetry做链路追踪用ELK做日志分析。4.2 核心模块的代码实现下面给出一个简化的Agent系统核心模块实现用Python编写基于常见的LLM API接口。这个示例展示了Tool、Skill、Harness三层的基本结构。首先是Tool的定义。每个Tool需要定义名称、描述、输入Schema、输出Schema和执行函数。from pydantic import BaseModel, Field from typing import Any, Dict class ToolInput(BaseModel): order_id: str Field(description订单编号) class ToolOutput(BaseModel): status: str Field(description订单状态) detail: str Field(description状态详情) class QueryOrderTool: name query_order description 根据订单编号查询订单状态 input_schema ToolInput output_schema ToolOutput def execute(self, input_data: ToolInput) - ToolOutput: # 实际业务逻辑这里用模拟数据 order self._fetch_order(input_data.order_id) if not order: return ToolOutput(statusnot_found, detail订单不存在) return ToolOutput(statusorder[status], detailorder[detail]) def _fetch_order(self, order_id: str) - Dict[str, Any]: # 模拟数据库查询 return {status: shipped, detail: 已发货预计明天送达}接下来是Skill的定义。Skill组合多个Tool完成一个场景化任务。class RefundSkill: name handle_refund description 处理退货申请包括查询订单、验证资格、生成退货单 def __init__(self, tools: Dict[str, Any]): self.tools tools def execute(self, context: Dict[str, Any]) - Dict[str, Any]: order_id context.get(order_id) if not order_id: return {success: False, error: 缺少订单编号} # 第一步查询订单 order_result self.tools[query_order].execute( ToolInput(order_idorder_id) ) if order_result.status not_found: return {success: False, error: 订单不存在} # 第二步验证退货资格 if not self._check_refund_eligibility(order_result): return {success: False, error: 该订单不符合退货条件} # 第三步生成退货单 refund_id self._create_refund_order(order_id) return {success: True, refund_id: refund_id} def _check_refund_eligibility(self, order_result) - bool: # 实际业务规则这里简化处理 return order_result.status shipped def _create_refund_order(self, order_id: str) - str: # 模拟生成退货单 return fREFUND-{order_id}最后是Harness的核心调度逻辑。Harness负责接收用户输入决定调用哪个Skill管理状态处理异常。class AgentHarness: def __init__(self, llm_client, skills: Dict[str, Any], memory): self.llm llm_client self.skills skills self.memory memory self.max_steps 10 def run(self, user_input: str, session_id: str) - str: # 加载历史上下文 context self.memory.load(session_id) context[user_input] user_input for step in range(self.max_steps): # 让LLM决定下一步动作 action self._plan_next_action(context) if action[type] respond: # 直接回复用户 response action[content] self.memory.save(session_id, context, response) return response elif action[type] skill: # 调用Skill skill_name action[skill_name] skill self.skills.get(skill_name) if not skill: context[last_error] fSkill {skill_name} 不存在 continue try: result skill.execute(context) context[last_result] result except Exception as e: context[last_error] str(e) elif action[type] tool: # 直接调用Tool tool_name action[tool_name] tool self.tools.get(tool_name) if not tool: context[last_error] fTool {tool_name} 不存在 continue try: result tool.execute(action[input]) context[last_result] result except Exception as e: context[last_error] str(e) return 抱歉我暂时无法处理这个请求请稍后再试。 def _plan_next_action(self, context: Dict[str, Any]) - Dict[str, Any]: # 构建Prompt让LLM输出下一步动作 prompt self._build_planning_prompt(context) response self.llm.generate(prompt) return self._parse_action(response) def _build_planning_prompt(self, context: Dict[str, Any]) - str: # 实际Prompt构建逻辑 skills_desc \n.join([ f- {name}: {skill.description} for name, skill in self.skills.items() ]) return f 你是一个智能助手需要根据用户输入和当前上下文决定下一步动作。 可用的Skill {skills_desc} 当前上下文 {context} 请输出JSON格式的动作指令格式为 {{type: skill|tool|respond, skill_name: ..., tool_name: ..., input: {{}}, content: ...}} def _parse_action(self, response: str) - Dict[str, Any]: # 解析LLM输出实际项目中需要做健壮性处理 import json try: return json.loads(response) except json.JSONDecodeError: return {type: respond, content: 系统繁忙请稍后再试}这段代码虽然简化了很多细节但展示了Agent系统的核心骨架。实际项目中你需要在此基础上增加更多的健壮性处理、并发控制、监控埋点等。4.3 关键参数的计算与选择Agent系统中有几个关键参数直接影响系统的性能和效果。第一个是最大步数max_steps。这个参数决定了Agent在一次任务中最多执行多少步。设得太小复杂任务完不成设得太大可能陷入死循环浪费资源。我的经验值是简单任务5步以内中等复杂度任务10步复杂任务不超过20步。同时要配合超时机制单次任务总时长不超过30秒。第二个是上下文窗口大小。LLM的上下文窗口是有限的你需要决定把多少历史信息放入Prompt。我的策略是短期记忆保留最近5轮对话长期记忆通过向量检索按需加载工作记忆只保留当前任务相关的信息。这样既能保证上下文的相关性又不会超出窗口限制。第三个是温度参数temperature。这个参数控制LLM输出的随机性。对于需要精确执行的任务比如工具调用温度设为0或接近0对于需要创造性的任务比如生成回复文案温度可以设为0.7左右。在实际系统中我通常会在不同环节使用不同的温度设置。第四个是重试次数。Tool调用失败时需要重试。但重试次数不能太多否则会拖慢整体响应。我的设置是最多重试2次每次重试间隔1秒如果还失败就降级处理。4.4 并发场景下的架构设计Agent系统在生产环境中往往需要处理并发请求。这就带来了新的挑战。首先是状态隔离。每个用户会话的状态必须独立存储不能互相干扰。我通常用session_id作为key把状态存在Redis里设置合理的过期时间。其次是资源竞争。多个Agent同时调用同一个Tool时可能会产生资源竞争。比如同时查询同一个订单或者同时写入同一个数据库。解决方案是在Tool层加锁或者用队列做削峰填谷。第三是LLM调用的限流。LLM API通常有QPS限制你需要做限流控制。我通常用令牌桶算法在Harness层做统一的限流。同时要做好降级方案当LLM不可用时能够切换到规则引擎或者直接返回兜底回复。第四是监控和告警。并发场景下问题更容易被放大。你需要实时监控Agent的成功率、平均响应时间、Tool调用失败率等指标设置合理的告警阈值。5. 常见问题与排查技巧实录5.1 LLM不按预期调用工具怎么办这是最常见的问题之一。LLM要么不调用工具要么调用错误的工具要么传错参数。排查思路是这样的首先检查Prompt是否清晰描述了每个工具的用途和参数格式。很多时候问题出在工具描述太模糊LLM不知道什么时候该用。其次检查工具的命名是否直观。我见过一些团队用缩写或者内部代号命名工具LLM根本理解不了。工具名称应该用自然语言描述比如“查询订单状态”比“qry_ord_st”好得多。第三检查是否有足够的示例。在Prompt中加入几个Few-shot示例展示什么情况下调用什么工具、传什么参数能显著提升LLM的准确率。第四如果以上都做了还是不行考虑换一个能力更强的模型或者在Harness层加一层规则校验对LLM的输出做后处理。5.2 Skill执行超时或死循环怎么处理Skill执行超时通常是因为内部某个Tool调用卡住了或者LLM陷入了循环规划。排查时首先看日志定位到具体是哪个步骤耗时过长。如果是Tool的问题检查Tool的内部实现看是否有网络请求没有设置超时或者数据库查询没有索引。如果是LLM规划的问题检查Prompt中是否给了足够的约束。比如明确告诉LLM“如果连续两次得到相同的结果请停止并返回错误”。同时在Harness层设置硬性的步数限制和超时限制防止无限循环。另外我建议在Skill层加入幂等性设计。同一个请求重复执行结果应该是一致的。这样即使因为重试导致重复执行也不会产生副作用。5.3 多轮对话中上下文丢失怎么排查多轮对话中上下文丢失通常是因为状态存储出了问题。排查步骤第一检查session_id是否在每次请求中正确传递。我见过不少案例前端没有正确传递session_id导致每次请求都被当成新会话。第二检查状态存储的过期时间。如果过期时间设得太短用户还在对话中状态就过期了。我的建议是过期时间至少设置为30分钟并且每次交互后刷新过期时间。第三检查上下文加载逻辑。有时候状态存了但加载时没有正确读取。检查代码中是否有条件判断导致某些字段被跳过。第四检查上下文窗口是否溢出。如果历史信息太多超出了LLM的窗口限制你需要做截断或者摘要。我的做法是优先保留最近的对话和与当前任务最相关的历史信息。5.4 常见问题速查表问题现象可能原因排查方法解决方案LLM不调用工具Prompt描述不清检查工具描述和示例优化Prompt增加Few-shot调用错误工具工具命名模糊检查工具名称和描述用自然语言重命名工具参数传递错误Schema定义不严检查输入Schema用JSON Schema严格约束Skill执行超时Tool阻塞或死循环查看日志定位耗时步骤加超时限制和步数限制上下文丢失session_id未传递检查请求参数确保session_id正确传递状态过期过期时间太短检查Redis TTL延长过期时间并刷新并发冲突资源共享检查并发日志加锁或队列削峰LLM限流QPS超限检查API调用频率令牌桶限流降级方案5.5 独家避坑经验分享第一个坑不要过度依赖LLM的规划能力。我早期做的一个项目完全让LLM自由规划结果LLM经常想出一些奇怪的执行路径。后来我改成“LLM规划规则校验”的模式LLM输出计划后先经过规则引擎校验不符合规则的直接拒绝让LLM重新规划。这样系统的稳定性大幅提升。第二个坑Tool的返回值要精简。我见过一些Tool返回一大段JSON里面包含很多LLM不需要的字段。这不仅浪费Token还会干扰LLM的判断。正确的做法是Tool只返回LLM需要的最小信息集其他信息通过日志记录供人工排查。第三个坑要做好版本管理。Agent系统的Prompt、Tool定义、Skill流程都是会变化的。如果没有版本管理出了问题很难回滚。我的做法是所有配置都存数据库每次修改都记录版本支持一键回滚。第四个坑不要忽略冷启动问题。新用户第一次使用时没有历史数据Agent的表现往往不如老用户。解决方案是设计一套默认的初始化流程引导用户提供必要信息同时用通用策略兜底。第五个坑监控要覆盖全链路。Agent系统的调用链路很长从用户输入到LLM推理到Tool执行到结果返回任何一个环节出问题都会影响最终效果。我通常会在每个环节都埋点记录耗时、成功率、错误码方便快速定位问题。6. 从工具到伙伴的工程化思考6.1 记忆系统的分层设计记忆系统是Agent从工具变成伙伴的关键。我通常把记忆分为三层工作记忆、短期记忆、长期记忆。工作记忆是当前任务相关的临时信息任务结束就清除短期记忆是最近几轮对话的上下文保留时间以小时计长期记忆是用户偏好、历史行为等持久化信息保留时间以月计。工作记忆用内存或者Redis存储读写速度快。短期记忆用Redis或者文档数据库支持按session_id检索。长期记忆用向量数据库支持语义检索。三层记忆之间要有同步机制比如任务结束时把工作记忆中的关键信息沉淀到短期记忆短期记忆中的高频信息定期归档到长期记忆。6.2 反思机制的实现方式反思机制让Agent能够从错误中学习。实现方式有两种在线反思和离线反思。在线反思是在任务执行过程中如果发现结果不符合预期立即触发反思分析原因并调整策略。离线反思是在任务结束后对整个过程做复盘提取经验教训更新到长期记忆中。在线反思的关键是定义好“不符合预期”的判断标准。比如Tool返回错误、LLM输出格式异常、用户明确表示不满意等。触发反思后Agent需要分析是哪个环节出了问题是Prompt不清楚、Tool有Bug、还是规划策略不对然后针对性地调整。离线反思通常用定时任务实现每天或者每周跑一次分析历史任务的成功率和失败原因自动生成优化建议。这些建议可以人工审核后应用到系统中也可以让Agent自动调整参数。6.3 多Agent协作的边界与通信当单个Agent无法完成复杂任务时就需要多Agent协作。多Agent系统的设计核心是划分边界和定义通信协议。每个Agent应该有明确的职责范围比如一个负责理解用户意图一个负责执行具体任务一个负责质量检查。通信协议方面我通常用消息队列做异步通信用共享内存或者数据库做状态同步。Agent之间通过结构化消息传递信息消息格式要严格定义包括发送者、接收者、消息类型、负载内容等。多Agent协作的难点在于协调和冲突解决。当多个Agent对同一问题有不同判断时需要有仲裁机制。我的做法是设置一个主Agent负责最终决策其他Agent提供建议。主Agent根据各方的置信度和历史表现综合做出判断。6.4 效果评估与持续优化Agent系统的效果评估不能只看单次任务的成功率还要看长期的表现。我通常从几个维度评估任务完成率、平均执行步数、用户满意度、响应时间、资源消耗。任务完成率是最核心的指标但要区分是Agent自己完成的还是人工干预后完成的。平均执行步数反映了Agent的效率步数越少说明规划能力越强。用户满意度可以通过显式反馈点赞/点踩和隐式反馈是否继续使用、是否重复提问来收集。持续优化的关键是建立数据闭环。每次任务执行的数据都要记录下来定期分析失败案例找出共性问题针对性地优化Prompt、Tool或者Skill。同时要关注线上指标的变化任何优化都要经过A/B测试验证效果后再全量上线。6.5 安全与合规的工程实践Agent系统在生产环境中安全与合规是不可忽视的。首先是输入输出的内容安全要过滤敏感信息防止Prompt注入攻击。我通常会在Harness层加一层内容审核对用户输入和Agent输出都做检查。其次是权限控制。Agent调用Tool时要检查当前用户是否有权限执行该操作。比如查询订单只能查自己的订单退款操作需要验证身份。权限控制要在Tool层实现不能依赖LLM的判断。第三是审计日志。所有Agent的操作都要记录审计日志包括谁在什么时候发起了什么请求Agent执行了哪些动作结果如何。审计日志要不可篡改保留足够长的时间以备合规检查。第四是降级方案。当LLM服务不可用、或者Agent出现异常时系统要能够自动降级切换到备用方案。备用方案可以是规则引擎、人工客服、或者简单的兜底回复。降级过程要平滑用户无感知。6.6 未来演进方向从工具到伙伴的范式跃迁目前还处于早期阶段。我看到的几个演进方向包括一是Agent的个性化每个用户有自己的专属Agent了解用户的习惯和偏好二是Agent的主动学习不需要人工标注通过与环境交互自动优化三是多Agent生态不同厂商的Agent能够互相协作形成更大的能力网络。这些方向听起来很美好但落地还有很长的路要走。我的建议是不要追求一步到位而是从具体场景出发先把一个场景做深做透再逐步扩展。Agent系统的建设是一个持续迭代的过程没有终点只有不断逼近理想状态。我在实际项目中最大的体会是技术方案固然重要但更重要的是对业务场景的理解。一个对业务理解深刻的简单Agent往往比一个技术先进但脱离业务的复杂Agent效果更好。所以如果你正在做Agent项目我建议你花更多时间在业务调研和场景分析上而不是一味追求技术的新颖性。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑