回复
OpenAI重磅:AI Agent智能体Function Calling 2.0! 原创
近日,OpenAI 推出了全新的 AI Agent 智能体 Function Calling 2.0 使用指南,此次更新使得文档篇幅缩减了一半,并且引入了一系列关键的最佳实践。作为打造高效 AI Agent 智能体的核心技能之一,正确运用Function Calling 对于开发强大的 AI Agent 智能体应用具有至关重要的作用。因此,今天我就来为大家揭秘这次更新的精华内容!
1、Function Calling 的两大核心应用
文章中清晰地阐述了 Function Calling 的两个核心应用场景:
第一、数据获取(Fetching Data)
- 实时检索信息并将其融入大模型的响应之中;
- 适用于查询知识库和获取特定 API 数据(例如天气预报);
- 本质上是实现了一种 RAG(Retrieval Augmented Generation,检索增强生成)的方法。
第二、执行动作(Taking Action)
- 完成表单提交、API 调用等操作;
- 改变应用程序的状态(涉及前端或后端);
- 执行 AI Agent 智能体的工作流程步骤(例如对话中的任务转接)。
2、全新的最佳实践
此次更新最为关键的是推出了一系列实用的最佳实践,下面我们来聚焦于其中的几项:
第一、编写明确的函数定义
# 好的示例
def get_weather(location: str):
"""获取指定位置的当前温度
Args:
location: 城市和国家,例如:'北京, 中国'
"""
pass
# 糟糕的示例
def toggle_light_switch(on: bool, off: bool):
"""这个设计允许无效状态的存在"""
pass
第二、遵循软件工程的最佳实践指南
- 确保函数直观易懂,并遵循最小惊讶原则,在维基百科中称为:Principle of least astonishment,详见链接:https://en.wikipedia.org/wiki/Principle_of_least_astonishment。
- 采用枚举和对象结构,以防止出现无效状态。
- 通过“实习生测试”:如果一名实习生仅凭函数定义就能正确地使用它,那么说明你的设计相当出色。
第三、尽可能减少大模型的负担
# 不推荐
def get_orders(user_id: str):
pass
# 推荐
def get_orders():
# 在代码中传递user_id
pass
第四、精简函数数量,维持高效性;
- 推荐在任何时候使用的函数不超过20个;
- 若观察到有两个函数经常被同时调用,应考虑将它们合并为一个函数。
3、重要的配置选项
第一、工具选择模式(tool_choice)
# 自动模式(默认)
tool_choice="auto" # 可以调用零个、一个或多个函数
# 强制模式
tool_choice="required" # 必须调用至少一个函数
# 指定函数
tool_choice={
"type": "function",
"function": {"name": "get_weather"}
} # 强制调用特定函数
第二、严格模式(Strict Mode)
{
"type": "function",
"function": {
"name": "get_weather",
"strict": True, # 启用严格模式
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string"
},
"units": {
"type": ["string", "null"], # 可选参数
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location", "units"],
"additionalProperties": false
}
}
}
4、流式处理的支持
OpenAI 进一步提升了流式处理的能力,使得能够即时展现函数调用的实时过程。
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "北京今天天气如何?"}],
tools=tools,
stream=True
)
for chunk in stream:
delta = chunk.choices[0].delta
print(delta.tool_calls) # 实时显示函数调用进度
此次更新主要目的是分享了一系列最佳实践。随着 o1-mini 即将实现对Function Calling 的支持(已获官方确认),昨日还推出了 tasks 功能。因此,可以展望在2025年见证真正的 AI Agent 智能体的诞生。
本文转载自公众号玄姐聊AGI 作者:玄姐
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-1-22 19:12:02修改
赞
收藏
回复
相关推荐