解決 ADK 中 Gemini Agent 的 Function Calling 不支援問題
解決 ADK 中 Gemini Agent 的 Function Calling 不支援問題
問題描述
當 Agent 掛有 google_search tool 時:
- 不能直接將此 Agent 掛到
sub_agents - 會出現錯誤:
1 | AGENT_ERROR: Tool use with function calling is unsupported by the model |
參考: GitHub Issue #53
解決方案:將 Agent 包裝成 Agent Tool
關鍵概念
當 Agent 包含 google_search tool 時,必須用 agenttool.New() 將其轉為 Tool,才能被其他 Agent 調用。
Go 實作
1 | import "google.golang.org/adk/tool/agenttool" |
Python 版本
1 | from google.adk.tools.agent_tool import AgentTool |
關鍵重點
- Agent 有
google_search→ 必須用agenttool.New(agent, nil)轉為 Tool - 然後掛到
Tools(而非SubAgents) - 副作用:包裝後的 Agent Tool 無上下文記憶(詳見:Agent Tool 無上下文記憶,需改用 Sub-agent)
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 Kenny's Blog!