AIHero
    04 / 05LLM 基础

    什么是工具?

    了解 LLM 工具如何通过系统提示词定义、选择并执行任务,从而扩展 AI 的能力。

    Matt Pocock
    Matt Pocock
    下一课
    本页目录

    为 LLM 提供工具,需要通过 系统提示词可以为 LLM 提供工具。系统提示词只是消息历史中的另一条消息,用来告诉 LLM 应该做什么;在这里,它还会说明模型可以调用哪些工具。

    Giving The LLM Tools

    每个工具都需要提供三项信息:

    1. 工具名称,例如 writeFile)
    2. 工具描述,例如“把文件写入文件系统”
    3. 工具接收的参数及其类型,例如 path and content)

    这些参数使用 JSON Schema 定义,因此可以传入 JSON Schema 支持的任何内容,例如对象、数组和其他复杂类型。

    工具定义会被注入系统提示词,其他系统提示信息则放在它们下面。这里没有什么神秘机制,只是把工具定义写进系统提示词。

    LLM 选择工具

    当我们要求 LLM 选择工具时,神奇的部分开始了。系统提示词告诉它“你可以使用以下工具”,随后用户消息要求“新建一个名为 .gitignore 的文件”。

    Choosing A Tool

    随后会收到一条助手消息,其中包含一次 工具调用 。这只是 LLM 发出的指令,用来说明应该调用哪个工具。它带有一个 id ,并包含所需参数。

    在这个例子中,指令要求向“.gitignore”路径写入一个空文件。

    工具调用与工具执行

    工具调用只是说明应该调用哪个工具的指令。此时什么都还没有发生,助手只是生成了一条消息,仅此而已。

    接下来需要在我们的机器上执行工具。LLM 已经生成消息,但真正创建文件的操作仍要由本机应用执行。

    Executing A Tool

    实现要求

    这意味着系统提示词中的每个工具,都需要在代码库中有一个与之对应的函数。

    如果工具执行成功,我们会向 LLM 返回一条用户消息,其中带有与前一次工具调用相同的 id ,并说明工具执行后发生了什么。

    处理错误

    错误处理非常重要。如果执行工具时发生错误,需要把错误消息展示给 LLM,让它调整后续操作。

    因此,一条 工具结果 既可能表示成功,也可能表示失败。

    完整流程

    The Whole Flow

    再完整梳理一遍整个流程:

    1. 在系统提示词中定义工具:“你可以使用以下工具……”并传入一组 JSON Schema
    2. 发送用户消息:“新建一个名为 .gitignore 的文件”(不必明确说“调用这个工具”,LLM 会自行决定调用哪个工具)
    3. LLM 生成包含正确参数的工具调用消息
    4. 应用识别工具调用消息,并在本机执行
    5. 应用通过消息返回执行结果
    6. LLM 看到完整历史,并返回总结

    在这个例子中,它回答:“完成了。里面应该写什么?”

    工具总结

    这就是工具:让 LLM 生成特定类型的消息,应用拦截消息、在本机执行操作,再把结果返回给 LLM。

    只靠这个简单循环,就能构建非常强大的应用。

    登录以保存进度。