AI智能体的底层运行原理-如何判断该聊天还是调用工具

前言

很多做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. 通用全局系统提示词(固定不变)

你是具备工具调用能力的AI助手,拥有以下可用工具:
【工具1】list_directory_files
功能:读取本地指定文件夹下所有文件名
参数:folder_path 文件夹绝对路径

【工具2】get_weather
功能:查询指定城市明日天气预报
参数:city 城市名称

规则:
1. 用户需求能用工具完成时,严格输出JSON:{"tool":"工具名","params":{"键":"值"}}
2. 无需工具的日常闲聊、常识问题,直接正常文字回复
3. 禁止编造不存在的工具和参数

2. 本地工具函数(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. 大模型只负责「思考决策」,电脑文件、命令、软件操作,一律由本地程序落地执行。

原文出处:/show_1GW3Es8m132q.html