大型语言模型 (LLM) 不会像人类那样主动“决定”使用哪个工具或资源。相反,它们的行为是由它们的训练数据以及开发人员将外部工具集成到他们工作流程中的方式所决定的。当 LLM 是与工具(如 API、数据库或代码执行环境)交互的系统的一部分时,决策过程通常由单独的逻辑层处理,该逻辑层解释模型的输出并触发适当的操作。例如,如果用户问“东京的天气怎么样?”,LLM 可能会生成一个用于天气 API 的结构化请求。然后,系统使用模式匹配或预定义的规则将模型的响应映射到特定工具。
该过程通常依赖于提示技术和系统级设计的组合。开发人员可能会指示 LLM 以一种表明使用哪个工具的方式格式化其输出。例如,可以训练或微调模型以识别何时问题需要实时数据(如股票价格),并使用占位符进行响应,例如 [FETCH_STOCK] AAPL
。单独的脚本或中间件会检测到此标签并调用相关的 API。或者,像 OpenAI 的函数调用这样的系统允许开发人员预先定义工具模式。然后,模型根据用户的查询预测要调用哪个函数,并以结构化格式(例如 JSON)返回参数。这种方法依赖于 LLM 理解意图并将其映射到预定义的工具能力的能力。
工具的选择还取决于开发人员设置的上下文和约束。例如,在像 GitHub Copilot 这样的编码助手中,LLM 被优化为根据用户当前的文件和语言优先完成代码。如果用户问“如何在 Python 中对列表进行排序?”,该模型可能会使用 sorted()
函数生成代码片段,并从其在公共代码存储库上的训练中提取。相比之下,以研究为中心的工具可能会优先通过连接的数据库访问学术论文。开发人员可以通过调整温度(以控制随机性)或使用嵌入将查询与最相关的资源匹配来进一步改进工具选择。最终,系统的有效性取决于集成层如何将 LLM 的输出转化为可操作的工具使用。