swarm天气智能体调用流程
Swarm 框架的调用流程:
- 入口点 (
examples/weather_agent/run.py
):
run_demo_loop(weather_agent, stream=True)
- 初始化流程:
# swarm/repl/repl.py -> run_demo_loop()
client = Swarm() # 创建 Swarm 实例
- 消息处理流程:
# swarm/core.py
class Swarm:
def run(self, agent, messages, ...):
# 1. 获取 AI 完成
completion = self.get_chat_completion(
agent=active_agent,
history=history,
...
)
# 2. 处理响应
message = completion.choices[0].message
# 3. 如果有工具调用,执行它们
if message.tool_calls:
partial_response = self.handle_tool_calls(...)
- 工具调用流程 (例如获取天气):
# examples/weather_agent/agents.py
def get_weather(city: str) -> str:
# 实际的天气获取逻辑
return f"Temperature in {city}: 65°F"
主要问题:
- 天气数据是硬编码的 (65°F)
- 没有实际调用天气 API
- 缺少日期信息
要修复这个问题,我们需要:
- 添加真实的天气 API 调用
- 包含日期信息
- 确保数据是实时的