Skip to main content
Version: Next

架构1:自然语言到工具调用

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

110-natural-language-tool-calls

这个模式,在原子化应用时,是将像这样的短语简单翻译:

你能为 埃森德 创建 750 美元的支付链接,用于赞助十月份 AI 创客聚会吗?

{
"function": {
"name": "create_payment_link",
"parameters": {
"amount": 750,
"customer": "cust_128934ddasf9",
"product": "prod_8675309",
"price": "prc_09874329fds",
"quantity": 1,
"memo": "Hey Jeff - see below for the payment link for the october ai tinkerers meetup"
}
}
}

注意 :实际上 ioneagent API 更复杂一些,一个真正这样做的智能体会列出客户、列出产品、列出价格等,以使用正确的 ID 构建此有效负载,或者将这些 ID 包含在提示/上下文窗口中(但我们将在下面看到这些在某种程度上是相同的事情!)

从那里,确定性代码可以接收有效负载并对其进行处理。(更多内容见:架构3)

# The LLM takes natural language and returns a structured object
nextStep = await llm.determineNextStep(
"""
create a payment link for $750 to Jeff
for sponsoring the october AI tinkerers meetup
"""
)

# Handle the structured output based on its function
if nextStep.function == 'create_payment_link':
ioneagent.paymentlinks.create(nextStep.parameters)
return # or whatever you want, see below
elif nextStep.function == 'something_else':
# ... more cases
pass
else: # the model didn't call a tool we know about
# do something else
pass

注意 :虽然一个完整的智能体会接收 API 调用结果并与之循环,最终返回类似这样的内容:

我已成功为 埃森德 创建了 750 美元的支付链接,用于赞助十月份 AI 创客聚会。这是链接:https://buy.ioneagent.com/test_1234567890

但是 ,我们实际上将在这里跳过这一步,并将其保存到另一个架构中,您可能希望也可能不希望合并该架构(由您决定!)

[拥有你自己的提示词 →]拥有你自己的提示词