海外访问:www.kdjingpai.com
Ctrl + D 收藏本站
当前位置:首页 » 课程资料

《12-Factor Agents》1. 自然语言到工具调用

2025-07-22 31

在构建智能体时,最常见的模式之一就是将自然语言转换为结构化的工具调用。这是一个强大的模式,它允许您构建能够对任务进行推理并执行它们的智能体。

《12-Factor Agents》1. 自然语言到工具调用-1

这个模式在原子化应用时,就是将一个短语 (例如)

你能为 Terri 创建一个 750 美元的支付链接,用于赞助二月份的 AI tinkerers (AI 爱好者) 聚会吗?

转换为一个描述 Stripe API 调用的结构化对象,如下所示

{
"function": {
"name": "create_payment_link",
"parameters": {
"amount": 750,
"customer": "cust_128934ddasf9",
"product": "prod_8675309",
"price": "prc_09874329fds",
"quantity": 1,
"memo": "嗨 Jeff - 请查看下方为赞助二月份 ai tinkerers (AI 爱好者) 聚会而创建的支付链接"
}
}
}

注意:实际上,Stripe API 要复杂一些,一个 真正执行此操作的智能体  会通过列出客户、列出产品、列出价格等方式,用正确的 ID 来构建这个负载 (payload),或者将这些 ID 包含在提示/上下文窗口中 (我们稍后会看到这两者在某种程度上是相同的!)。

然后,确定性代码可以接收这个负载 (payload) 并对其进行处理。(更多相关内容请参见 要素 3)

# 大语言模型接收自然语言并返回一个结构化对象
nextStep = await llm.determineNextStep(
"""
为 Jeff 创建一个 750 美元的支付链接
用于赞助二月份的 AI tinkerers (AI 爱好者) 聚会
"""
)
# 根据其功能处理结构化输出
if nextStep.function == 'create_payment_link':
stripe.paymentlinks.create(nextStep.parameters)
return  # 或者任何你想要的操作,见下文
elif nextStep.function == 'something_else':
# ... 更多情况
pass
else:  # 模型没有调用我们已知的工具
# 执行其他操作
pass

注意:一个完整的智能体会接收 API 调用的结果并用它进行循环,最终返回类似下面的内容

我已经成功为 Terri 创建了一个 750 美元的支付链接,用于赞助二月份的 AI tinkerers (AI 爱好者) 聚会。链接如下:https://buy.stripe.com/test_1234567890

然而,我们实际上将在此处跳过该步骤,并将其留到另一个要素中讨论,你也可以选择是否要整合该要素 (由你决定!)。

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文