这段代码是如何工作的?(工作流程)
您的代码使用 模型上下文协议(MCP) 给双子座一只它可以使用的“手”(Tavily搜索工具) *如果它愿意*.
以下是您的应用程序的分步流程:
1.服务器启动(stdio_client)
当函数运行时,Python脚本会在后台秘密启动第二个较小的程序(mcp_server_tavily).这个小程序知道如何与Tavilly Search API对话。
2.工具绑定(bind_tools)
你告诉双子座: *以下是您可以使用的工具列表。具体来说,是由后台运行的小程序提供的搜索工具*
3.决定(关键时刻)
当你发送信息时,双子座会做出选择:
- 场景A(新闻): 你问, *“昨晚谁赢了比赛?”*
- 双子座认为: “我不知道未来。我需要工具。” - 它暂停并发送 tool_call 请求返回您的代码。
- 场景B(皮肤/一般): 你问, *“什么是皮疹?”*
- 双子座认为: “我知道。不需要工具。” - 它会立即生成文本。
4.循环(if ai_msg.tool_calls)
如果Gemini请求了一个工具,你的代码会捕获该请求:
- 它通过MCP客户端执行搜索。
- 它接收搜索结果并将其反馈给Gemini。
- Gemini读取结果并生成最终答案。
