登录
原创

Jenius技术分享-大语言模型是如何调用工具的?——实践和解析

发布于 2025-06-06 阅读 50
  • OpenAI
  • AI
  • Jenius
原创

大语言模型是如何调用工具的?

在构建 AI 智能体 Jenius 的过程中,我们越来越频繁地遇到一个核心问题:大模型到底是怎么“调用工具”的?

你可能也有过类似的疑问:

大模型不是一堆参数堆成的神经网络吗?它怎么知道怎么去画图、查天气、调 API?工具是怎么和模型结合在一起的?

本文将通过通俗解释 + 技术细节 + 实战例子,带你理清“大模型 × 工具调用”背后的机制,并结合我们的智能体产品 Jenius 展示其工程落地实践。


✨ 为什么要让大模型调用工具?

语言模型虽然强大,但它有几个硬伤:

  • 无法联网、无持久记忆;
  • 无法真实执行代码;
  • 无法直接操作数据库、API、硬件。

为了让大模型能像人类助手一样完成任务,我们必须教会它:“当你无法完成任务时,可以请求外部工具来帮忙”。

这就是 Jenius 智能体中的关键设计之一:模型负责决策,工具负责执行,智能体负责 orchestrate(编排)


🧠 大模型真的能执行工具吗?

答案是:不能直接执行,但能“表达意图”,由程序帮它实现。

举个例子

我们让模型回答这个问题:

帮我画一棵树。

模型可能返回这样的内容(结构化响应):

{
  "tool_call": {
    "name": "draw_image",
    "args": {
      "prompt": "a tree with green leaves and a brown trunk"
    }
  }
}

注意!这只是“文本”,模型没有自己画图,它只是告诉我们:我建议调用 draw_image 工具,参数如下。


🔁 工具调用的完整流程图

我们总结了以下流程图来帮助理解整个机制:

大语言模型工具调用流程图

从中你可以看到:

  1. 用户发起请求;
  2. 大模型生成“调用工具”的计划;
  3. 我们的程序从模型的响应中解析出调用意图;
  4. 调用实际 Python 函数、API、数据库等;
  5. 把结果返回给模型,生成最终回答。

🧰 工具到底是什么?

在 Jenius 中,“工具”是我们定义的一系列 函数、API、数据库查询、甚至链式 Agent 动作。它们遵循统一接口,可以被模型“请求使用”。

比如一个查天气的工具:

def get_weather(location: str, date: str) -> str:
    # 实际执行天气 API
    return f"{location} 在 {date} 是晴天"

我们可以通过 LangChain等框架把它注册为工具,供模型调用。


🧪 实战例子:LangChain 中注册工具

from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI

def search_google(query: str) -> str:
    return f"搜索结果:'{query}'"

tool = Tool(name="GoogleSearch", func=search_google, description="用于信息搜索")

agent = initialize_agent([tool], OpenAI(), agent="zero-shot-react-description")

agent.run("2025年谁是美国总统?")

这段代码展示了最小可用的 Agent + 工具调用机制。Jenius 中采用了更高阶的更复杂的智能机制,进行整体的流程的控制,但核心机制是一致的。


✅ 总结

大语言模型的本质能力是“理解和生成语言”,而不是“操作世界”。

为了实现操作世界的能力,我们必须给它配备工具,并搭建中间桥梁。

在 Jenius 智能体中,我们通过“意图生成 → 工具绑定 → 执行反馈”的架构,使模型真正具备了像人类助手一样解决问题的能力


如果你也在打造 AI 智能体,或者对工具调度/智能体架构感兴趣,欢迎联系 Jenius 团队,我们乐于分享更多一线经验 🙌!

评论区

~

0

0

4

举报