

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 用于调用函数的基于工具的代理
<a name="tool-based-agents-for-calling-functions"></a>

基于工具的代理通过调用外部函数或完成超出纯语言推理范围的任务 APIs 来扩展推理代理的功能。此模式使用 LLM 来决定使用哪个工具，然后生成调用参数并将工具的输出合并到其推理循环中。

这种模式使代理能够采取行动，而不仅仅是提供响应。工具接口代表任何可调用的功能，从算术计算和数据库查找到外部 APIs 和云服务。

## 架构
<a name="architecture-calling-functions"></a>

下图显示了用于调用函数的基于工具的代理：

![\[基于工具的代理，用于调用函数。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/agentic-ai-patterns/images/tool-based-agents-for-calling-functions.png)


## 说明
<a name="description-calling-functions"></a>

1. 接收查询
   + 代理接收来自用户或呼叫系统的自然语言查询或任务。

1. 搜索工具
   + 代理使用内部元数据或工具注册表来搜索可用的工具、架构和相关功能。

1. 选择和调用工具
   + LLM 在其提示中接收查询和工具元数据（例如，函数名称、输入类型和描述）。
   + 它选择最相关的工具，构造输入参数，然后返回结构化函数调用。

1. 运行所选工具
   + 代理 shell 或工具运行器执行选定的函数并返回结果（例如，API 输出、数据库值或计算）。

1. 返回响应
   + LLM 直接或作为更新提示的一部分将结果传递给代理。然后，它会返回自然语言结果。

## 功能
<a name="capabilities-calling-functions"></a>
+ 基于任务上下文的动态工具选择
+ 基于架构的提示（OpenAPI、JSON 架构、函数接口） AWS 
+ 结果解释并将输出链接到推理中
+ 无状态或会话感知操作

## 常见使用案例
<a name="common-use-cases-calling-functions"></a>
+ 具有外部数据访问权限的虚拟助手
+ 财务计算器和估算器
+ 基于 API 的知识工作者
+ LLMs 调用 AWS Lambda Amazon SageMaker 终端节点和 SaaS 服务的方法

## 实施指导
<a name="implementation-guidance-calling-functions"></a>

使用以下命令创建用于调用函数的基于工具的代理：
+ 支持函数调用的 Amazon Bedrock（Anthropic Claude）
+ AWS Lambda 作为工具执行后端
+ Amazon API Gateway 或 AWS Step Functions 用于工具编排
+ 用于情境感知工具元数据的亚马逊 DynamoDB 或亚马逊关系数据库服务 (Amazon RDS)
+ Amazon EventBridge 管道或 AWS Step Functions 将状态映射到路由输出的管道

## Summary
<a name="summary-calling-functions"></a>

基于工具的函数调用代理代表了从理解语言到执行操作的转变。这些代理调用动态的情境感知工具，同时保持法学硕士推理，将被动助手转变为完成任务、访问服务和整合业务运营的系统。这种模式是企业环境中代理人工智能的重要组成部分，尤其是在与声明式架构、授权框架和多代理系统结合使用时。