行业资讯

大模型Function Calling实战:让Agent拥有工具调用能力

发布时间:2026/7/2 16:26:23
大模型Function Calling实战:让Agent拥有工具调用能力 大模型Function Calling实战:让Agentæ‹¥æœ‰å·¥å ·è°ƒç”¨èƒ½åŠ›å¼•è¨€AI Agent çš„æ ¸å¿ƒä»·å€¼åœ¨äºŽèƒ½å¤Ÿè‡ªä¸»å®Œæˆå¤æ‚ä»»åŠ¡ã€‚ç„¶è€Œï¼Œå¤§è¯­è¨€æ¨¡åž‹ï¼ˆLLMï¼‰æœ¬è´¨ä¸Šåªèƒ½ç”Ÿæˆæ–‡æœ¬ï¼Œæ— æ³•ç›´æŽ¥èŽ·å–å®žæ—¶æ•°æ®ã€æ‰§è¡Œä»£ç æˆ–æ“ä½œå¤–éƒ¨ç³»ç»Ÿã€‚Function Callingï¼ˆå‡½æ•°è°ƒç”¨ï¼‰æœºåˆ¶çš„å‡ºçŽ°ï¼Œæ°å¥½å¼¥è¡¥äº†è¿™ä¸€çŸ­æ¿â€”â€”å®ƒè®©æ¨¡åž‹èƒ½å¤Ÿç†è§£ä½•æ—¶éœ€è¦è°ƒç”¨å¤–éƒ¨å·¥å ·ã€è°ƒç”¨å“ªä¸ªå·¥å ·ã€ä¼ å ¥ä»€ä¹ˆå‚æ•°ï¼Œå¹¶å°†æ‰§è¡Œç»“æžœå›žä¼ ç»™æ¨¡åž‹ç»§ç»­æŽ¨ç†ã€‚æœ¬æ–‡å°†æ·±å ¥è®²è§£ OpenAI Function Calling çš„å®Œæ•´å®žæˆ˜æµç¨‹ï¼Œå¸®åŠ©ä½ æž„å»ºå ·å¤‡å·¥å ·è°ƒç”¨èƒ½åŠ›çš„æ™ºèƒ½ Agent。一、什么是 Function CallingFunction Calling 是 OpenAI 在 GPT-3.5-turbo 和 GPT-4 ä¸­å¼•å ¥çš„ä¸€é¡¹èƒ½åŠ›ã€‚å®ƒå è®¸å¼€å‘è€ åœ¨ API è¯·æ±‚ä¸­é¢„å ˆå®šä¹‰ä¸€ç»„å¯è°ƒç”¨å‡½æ•°ï¼Œæ¨¡åž‹æ ¹æ®ç”¨æˆ·è¾“å ¥è‡ªä¸»åˆ¤æ–­æ˜¯å¦éœ€è¦è°ƒç”¨å ¶ä¸­æŸä¸ªå‡½æ•°ï¼Œå¹¶ç”Ÿæˆç¬¦åˆå‡½æ•°ç­¾åçš„ JSON å‚æ•°ã€‚ä¸Žä¼ ç»Ÿçš„æç¤ºè¯å·¥ç¨‹ï¼ˆPrompt Engineering)相比,Function Calling å ·æœ‰ä¸‰ä¸ªæ˜¾è‘—ä¼˜åŠ¿ï¼šç»“æž„åŒ–è¾“å‡ºï¼šæ¨¡åž‹ç”Ÿæˆä¸¥æ ¼çš„ JSON æ ¼å¼å‚æ•°ï¼Œæ— éœ€ä»Žè‡ªç”±æ–‡æœ¬ä¸­è§£æžç±»åž‹å®‰å ¨ï¼šé€šè¿‡ JSON Schema å®šä¹‰å‚æ•°ç±»åž‹ï¼Œé™ä½Žè§£æžé”™è¯¯çŽ‡å†³ç­–é€æ˜Žï¼šæ¨¡åž‹æ˜¾å¼åœ°é€‰æ‹©ç›´æŽ¥å›žç­”æˆ–è°ƒç”¨å·¥å ·ï¼Œå†³ç­–è¿‡ç¨‹å¯è¿½æº¯äºŒã€Function Calling 的工作流程一个完整的 Function Calling äº¤äº’æµç¨‹åŒ å«ä»¥ä¸‹å››ä¸ªæ­¥éª¤ï¼šç”¨æˆ·æé—® → 模型分析 → 输出函数调用请求 → å¼€å‘è€ æ‰§è¡Œå‡½æ•° → ç»“æžœå›žä¼ â†’ æ¨¡åž‹ç”Ÿæˆæœ€ç»ˆå›žç­”å ·ä½“æµç¨‹å¦‚ä¸‹ï¼šæ³¨å†Œå·¥å ·ï¼šå°†å¯ç”¨å·¥å ·ä»¥ JSON Schema 形式注册到 API è¯·æ±‚ä¸­æ¨¡åž‹å†³ç­–ï¼šæ¨¡åž‹åˆ†æžç”¨æˆ·è¾“å ¥ï¼Œå†³å®šæ˜¯å¦è°ƒç”¨å·¥å ·ã€è°ƒç”¨å“ªä¸ªå·¥å ·å‚æ•°è§£æžï¼šæ¨¡åž‹è¾“å‡ºç»“æž„åŒ–çš„å‡½æ•°åç§°å’Œå‚æ•°ï¼ˆJSON æ ¼å¼ï¼‰æœ¬åœ°æ‰§è¡Œï¼šå¼€å‘è€ åœ¨æœ¬åœ°æ‰§è¡Œå¯¹åº”çš„å‡½æ•°é€»è¾‘ç»“æžœå›žä¼ï¼šå°†å‡½æ•°æ‰§è¡Œç»“果以functionè§’è‰²çš„æ¶ˆæ¯å›žä¼ ç»™æ¨¡åž‹æœ€ç»ˆè¾“å‡ºï¼šæ¨¡åž‹åŸºäºŽå·¥å ·è¿”å›žç»“æžœç”Ÿæˆå®Œæ•´å›žç­”ä¸‰ã€å®žæˆ˜ï¼šå®šä¹‰å·¥å ·å‡½æ•°å‡è®¾æˆ‘ä»¬è¦æž„å»ºä¸€ä¸ªèƒ½å¤ŸæŸ¥è¯¢å¤©æ°”å’ŒèŽ·å–å½“å‰æ—¶é—´çš„ Agentã€‚é¦–å ˆï¼Œéœ€è¦å®šä¹‰å·¥å ·å‡½æ•°çš„ JSON Schema:tools [ { type: function, function: { name: get_weather, description: 获取指定城市的当前天气信息, parameters: { type: object, properties: { city: { type: string, description: 城市名称,例如:北京、上海 }, unit: { type: string, enum: [celsius, fahrenheit], description: 温度单位 } }, required: [city] } } }, { type: function, function: { name: get_current_time, description: 获取当前时间, parameters: { type: object, properties: { timezone: { type: string, description: 时区,例如:Asia/Shanghai } }, required: [] } } } ]