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修改
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦