2026/5/21 14:07:35
网站建设
项目流程
洛阳鼎和电力建设有限公司网站,seo引擎优化教程,环保工程东莞网站建设,怎样自己做网站推广一 前言
Agent 翻译成中文就是智能体#xff0c;现在所谓的智能体其实还没有一个完全统一的定义#xff0c;但是可以被称为智能体的东西#xff0c;其必须具有感知外部环境的能力#xff0c;并依据外部环境的变换做出对应的决策。 我心中的智能体#xff1a; 对于对话式 …一 前言Agent 翻译成中文就是智能体现在所谓的智能体其实还没有一个完全统一的定义但是可以被称为智能体的东西其必须具有感知外部环境的能力并依据外部环境的变换做出对应的决策。我心中的智能体对于对话式 Chat AI来说如果我输入一句我女朋友下周过生日好烦啊。Chat AI 很可能会给出一段回复包含一些情绪安慰的话比如“能理解你的纠结”再给出若干建议比如“可以一起吃饭、送礼物、安排一次小旅行”等。在某些人的定义里这已经算是“足够智能”了它能理解你的烦恼也能给出看起来合理的建议。但本质上它的输出始终只是一段静态文本。目前的 Chat AI并不具备感知外部环境的能力也无法真正参与到问题的解决过程中。它只能“说”却不能“做”。而在Agent的语境下事情会完全不同。对于一个 Agent 来说它要做的并不只是生成一段回复而是推动一个完整决策过程的完成。假设这个 Agent 通过长期与你的交互已经逐步了解了你的消费观念消费水平偏好比如是否喜欢仪式感、是否在意性价比等当你再次输入我女朋友下周过生日好烦啊。Agent 的行为不再是简单地安慰你而是可能按如下流程展开情绪层面先给予必要的情绪回应确认你的困扰决策层面基于已有的用户画像给出可执行的选项比如建议“过生日一起吃一顿正式的晚餐”行动层面自动上网搜索具备工具调用能力筛选出符合你消费水平、你可能会喜欢的餐厅交互确认将候选餐厅呈现给你询问你的选择或偏好执行动作当你点击同意后Agent 自动帮你发送邮件或调用接口完成餐厅预约更关键的是Agent 需要能够感知外部环境的变化。例如商家回复该时间段不可预约Agent 接收到这一外部反馈后自动重新筛选其他合适的餐厅再次向你提供新的可选方案如此循环直到这个决策被真正完成。这才是 Agent 与传统 Chat AI 的核心差异Chat AI 停留在“给建议”而 Agent 负责“把事情做完”所以总结来看大模型 擅长回答问题但是却无法感知和改变外部环境。Agent可感知外部环境的变化并根据外部环境的不同做出相应的动作。二 Chat AI向Agent出发为了让 Chat AI 能够感知外部环境我们可以为大模型装上工具而这些工具就像是大模型的感官和四肢就可以感知外部环境的变化并对所处环境做出相应的动作。大模型就可以自己查询环境中已有的环境对环境中的内容进行相应内容的写入可以在此环境在书写终端命令可以写终端命令了其实可操作空间就很大了对应我心中的 Agent为此我们就可以为大模型加上使用搜索引擎的工具来完成搜索餐厅的信息。将这样一堆工具和大模型组合起来变成一个能感知外部环境的智能程序就可以被称为Agent了。三 常见的Agent第一个 大名鼎鼎的Agent -------- Cursor对于cursor来说输入实现贪吃蛇游戏的代码结构采用js html css 来实现Cursor干的事情不再是将代码通过聊天窗口输出而是能够知道现在所处的代母运行环境哪个文件夹下能够新建文件并在对应文件中写入对应的内容。第二个是名声大躁一时的Agent -------- Manus让其帮忙比较手机之间的性能和拍照之间的能力。Manus 为了回答用户这个问题它首先是制定了详细执行步骤然后浏览相关网页最后整体成一个完整的报告直接输出。Manus使用大模型和一些工具就可以完全的解决用户的问题。当然为了构建一个 Agent 还需要了解一些基础实现手法。四 Agent 运行模式 ------- ReAct 模式ReAct 运行你模型是 Reasoning and Acting ReAct 运行模式是当前使用最为广泛的模型该模式来自于一篇论文如下所示。ReAct 运行模式如下图所示当用户提交任务后Agent 首先会进行思考Thought然后看完成这个任务是否需要调用工具例如文件查看工具文件写入工具是否调用搜索引擎等等当需要调用工具的时候就采取行动Action进行使用工具工具使用结束后环境就会产生变化Agent 就会观察Observation假设 Agent 使用了写入文件的工具工具也许就会返回某某文件写入成功的提示这样就会造成环境发生变化当Agent感觉知道环境发生变化观察到了某某文件写入成功的提示就继续进行思考Thought再次看是否需要调用工具重复N次直到思考Thought显示不需要调用工具了就可以输出最后的结果了。直到最后就会输出最终答案Final AnswerThoughtActionObservationFinal Answer上面这四个就是 ReAct 运行模式的核心。五 ReAct 模型如何实现大模型如何实现 Thought -- Action -- Observation -- Final Answer是大模型本身就是这样训练的吗并不是大部分的实现奥秘都是集中在系统提示词上。系统提示词会和用户提示词一起被送入大模型但是系统提示词基本包含着定义模型的角色运行时候的规则以及运行环境等而对于用户提示词来说就是用户的所需要完成的任务等。如上面的例子所示在系统提示词里面定义大模型回答的规范用户问题里写用户具体的问题然后将用户问题和系统提示词一起发给大模型大模型再回答的时候就可以根据系统提示词定义的规则精确的按规则回答问题。所示如果我们想让大模型的结果返回按着 ReAct 的模式返回结果那我们就可以在系统提示词中描述清楚 ReAct 的模式那么这样话大模型就会按着 ReAct 模式进行返回。以下是一个示例的ReAct提示词使用 prompt_template.py 进行存储react_system_prompt_template 你需要解决一个问题。为此你需要将问题分解为多个步骤。对于每个步骤首先使用 thought 思考要做什么然后使用可用工具之一决定一个 action。接着你将根据你的行动从环境/工具中收到一个 observation。持续这个思考和行动的过程直到你有足够的信息来提供 final_answer。 所有步骤请严格使用以下 XML 标签格式输出 - question 用户问题 - thought 思考 - action 采取的工具操作 - observation 工具或环境返回的结果 - final_answer 最终答案 ⸻ 例子 1: question埃菲尔铁塔有多高/question thought我需要找到埃菲尔铁塔的高度。可以使用搜索工具。/thought actionget_height(埃菲尔铁塔)/action observation埃菲尔铁塔的高度约为330米包含天线。/observation thought搜索结果显示了高度。我已经得到答案了。/thought final_answer埃菲尔铁塔的高度约为330米。/final_answer ⸻ 例子 2: question帮我找一个简单的番茄炒蛋食谱并看看家里的冰箱里有没有西红柿。/question thought这个任务分两步。第一步找到番茄炒蛋的食谱。第二步检查冰箱里是否有西红柿。我先用 find_recipe 工具找食谱。/thought actionfind_recipe(dish番茄炒蛋)/action observation简单的番茄炒蛋食谱将2个鸡蛋打散2个番茄切块。热油先炒鸡蛋盛出。再热油炒番茄至软烂加入鸡蛋放盐调味即可。/observation thought好的我已经有食谱了。食谱需要西红柿。现在我需要用 check_fridge 工具看看冰箱里有没有西红柿。/thought actioncheck_fridge(item西红柿)/action observation冰箱检查结果有3个西红柿。/observation thought我找到了食谱并且确认了冰箱里有西红柿。可以回答问题了。/thought final_answer简单的番茄炒蛋食谱是鸡蛋打散番茄切块。先炒鸡蛋再炒番茄混合后加盐调味。冰箱里有3个西红柿。/final_answer ⸻ 请严格遵守 - 你每次回答都必须包括两个标签第一个是 thought第二个是 action 或 final_answer - 输出 action 后立即停止生成等待真实的 observation擅自生成 observation 将导致错误 - 如果 action 中的某个工具参数有多行的话请使用 \n 来表示如actionwrite_to_file(/tmp/test.txt, a\nb\nc)/action - 工具参数中的文件路径请使用绝对路径不要只给出一个文件名。比如要写 write_to_file(/tmp/test.txt, 内容)而不是 write_to_file(test.txt, 内容) ⸻ 本次任务可用工具 ${tool_list} ⸻ 环境信息 操作系统${operating_system} 当前目录下文件列表${file_list} 接下去将会演示如何使用系统提示词以及看看我们通过这个提示词构建的 ReAct 模式运行如何。我这里使用 DeepSeek 来模拟。红框是系统提示词绿框是用户问题只不过这里是将系统提示词和用户问题放在了一起但是在实际写代码的过程中我们因该区分开来实际最后也会将系统消息和用户消息合起来然后一起发给大模型。可以看见 DeepSeek 首先通过 Thought 标签进行了思考然后规划了要采取的 Action 通过Action 标签请求调用工具要是这是一个真实的Agent的话其就会去调用自己的工具组件真实的调用 write_to_file 将代码写入文件。然而这里我们模拟实现给大模型返回write_to_file工具的返回结果输入回给大模型我们模拟回复observation写入成功/observation当观察到环境发生变化大模型进一步处理得到以下内容。同样的进行 Thought 然后采取行动请求写入CSS的内容。我们继续照例回复写入成功。可以看见DeepSeek 同样的进行 Thought 然后采取行动请求写入 JS 的内容。我们继续照例回复写入成功。这个时候同样的进行 Thought 但是程序都写好了这次采取行动请求的查看写了哪些文件内容。我们回复observationindex.html style.css script.jsobservation同样的进行 Thought 然后发现不需要采取行动了就进入了 final answer 至此用户任务完成这就是一个完整的ReAct模式的运行可以看见只要在系统提示词中规定好流程其就会按着系统提示词依次执行直到任务结束。系统提示词就像是给模型安排了一个迷你小剧本模型会按着它的剧本一步一步走完直到结束得到 final answer。至此我们通过DeepSeek演示了一个基于ReAct模式的Agent。总结根据系统提示词然后再给大模型配上相应的工具代码一个真实的Agent就可以被真实的搭建出来啦下一篇文章将具体实现Agent为大模型装上手脚。