AI智能体的底层运行原理-如何判断该聊天还是调用工具 作者:马育民 • 2026-05-02 19:35 • 阅读:10000 # 前言 很多做AI智能体开发、玩过Hermes、本地Agent的朋友,都会卡在同一个核心疑问: 用户输入一句普通的话,比如: - 帮我列出桌面所有文件 - 查一下明天北京的天气预报 - 随便闲聊唠嗑 大模型到底是**怎么自动判断**:该直接聊天,还是调用本地功能读文件、查接口? 难道要给**每一个场景,单独写一套专属角色提示词**吗? 今天把行业底层逻辑彻底讲透,看完你就明白:**市面上所有AI智能体,逃不出3种底层架构,90%都是同一套通用逻辑。** # 先纠正一个最大误区 很多新手做智能体,习惯一个场景写一套提示词: 查天气写一套、读文件写一套、算数再写一套。 **这是完全错误且不具备扩展性的做法。** 正规工业级、包括 Hermes、GPT 插件、扣子智能体、本地桌面Agent,全部遵循一个原则: **只写一份全局通用系统提示词,永久复用。** 这份全局提示词,只固定包含三件事: 1. 告知大模型:你有哪些可用**工具** 2. 写明每个工具的**功能、入参** 3. 约定好工具调用的**固定输出格式** 后续不管用户问任何问题,不需要改提示词、不需要额外配置,大模型会**自主语义理解、匹配用户意图**。 - 日常闲聊:直接自然语言回复,不调用任何工具 - 需要本地能力:按约定格式输出调用指令,交给本地代码执行 # 全网AI智能体只分3种底层架构 没有第四种,所有智能体都能归到这三类里。 ### 1. 提示词驱动·工具调用型(占90%) 代表:Hermes 智能体、GPT插件、Coze扣子、绝大多数本地AI助手 这是最主流、最通用的架构,也是能读取本机目录、执行命令、调用接口的核心方案。 完整标准流程: 1. 程序初始化,给大模型下发**全局工具清单 + 调用规则** 2. 接收用户自然语言输入 3. 大模型自主思考:匹配是否需要调用工具 4. 需要工具时,**严格按约定输出JSON格式调用指令** 5. 本地程序解析JSON,执行对应的函数、文件操作、接口请求 6. 把执行结果回传给大模型,润色后回复给用户 核心关键点: **大模型永远不会直接操作电脑、跑代码、读文件。** 它只负责:理解意图、匹配工具、输出调用指令; 真正落地执行,全靠本地程序完成。 ### 2. 任务拆解·规划增强型 代表:AutoGPT、BabyAGI、LangGraph 复杂智能体 **底层工具调用逻辑和第一种完全一样,只是做了上层封装升级。** 额外多了这些能力: - 把复杂需求自动拆成多个子任务 - 多步循环思考、自我反思纠错 - 加入长期记忆、任务状态管理 本质不是新架构,只是**基础工具智能体的升级版**。 ### 3. 视觉GUI操控型 代表:能截屏、模拟鼠标键盘、直接操作桌面软件的智能体 和前两种**完全不是一条技术路线**,不走工具调用、不走命令行、不走代码API。 它的工作闭环是: 截取屏幕画面 → 多模态AI识别界面文字/按钮 → 模拟键鼠点击、输入、拖拽 优点:能操作任何老旧软件、桌面GUI、无接口的系统; 缺点:依赖截图识别、速度慢、容易识别出错。 # 三个灵魂疑问,一次性解答 ### 1. 所有智能体都必须用提示词告诉它有什么工具吗? 必须。 大模型天生是孤立的,感知不到你的本地电脑文件、本地函数、第三方接口。 只能靠你提前在系统提示词里,把工具清单、功能、参数告诉它,它才知道自己能干什么。 ### 2. 到底能不能为每个场景单独写提示词? 新手玩玩可以,工业级开发绝对禁止。 场景一多维护爆炸、无法复用、新增功能要改整套提示词。 标准做法:**一份全局工具清单,无限新增工具、无限适配场景。** ### 3. 大模型真能自动区分闲聊和工具调用? 只要你工具描述清晰、调用规则定义明确,大模型的语义理解能力,完全可以精准匹配用户需求和对应工具,不用额外做复杂规则匹配。 # 极简实践案例 ### 1. 通用全局系统提示词(固定不变) ```text 你是具备工具调用能力的AI助手,拥有以下可用工具: 【工具1】list_directory_files 功能:读取本地指定文件夹下所有文件名 参数:folder_path 文件夹绝对路径 【工具2】get_weather 功能:查询指定城市明日天气预报 参数:city 城市名称 规则: 1. 用户需求能用工具完成时,严格输出JSON:{"tool":"工具名","params":{"键":"值"}} 2. 无需工具的日常闲聊、常识问题,直接正常文字回复 3. 禁止编造不存在的工具和参数 ``` ### 2. 本地工具函数(Python 极简版) ```python import os from pathlib import Path # 工具1:读取目录文件列表 def list_directory_files(folder_path: str): path = Path(folder_path) if not path.exists(): return "路径不存在" return [item.name for item in path.iterdir() if item.is_file()] # 工具2:模拟查天气 def get_weather(city: str): return f"{city}明天天气:晴,25℃" # 工具路由分发 def tool_router(tool_name, params): if tool_name == "list_directory_files": return list_directory_files(params["folder_path"]) elif tool_name == "get_weather": return get_weather(params["city"]) else: return "未知工具" ``` ### 3. 完整运行逻辑 1. 把上面**全局提示词 + 用户问题**一起发给大模型; 2. 用户输入`帮我列出桌面所有文件`,大模型自动输出 **工具调用JSON**; 3. **本地代码解析JSON**,通过`tool_router`执行对应函数; 4. 把 **函数返回结果再发给大模型**,润色后回复用户。 # 总结 1. 90% 的主流智能体(Hermes等),核心都是:**全局工具提示词 + LLM自主匹配 + 本地代码执行**; 2. 不用为不同场景定制专属提示词,新增功能只需在全局工具列表追加一行描述即可; 3. AI智能体底层只有三类:工具调用型、任务规划型、视觉GUI操控型; 4. 大模型只负责「思考决策」,**电脑文件、命令、软件操作,一律由本地程序落地执行**。 原文出处:http://malaoshi.top/show_1GW3Es8m132q.html