RuntimeError: No available speakers found.

用户在配置 AutoGen 的 GraphFlow 工作流(通过 DiGraphBuilder 构建图)时,为多个 agent 分配了不同的工具(如 query_muse_search 、 get_dataset_info 、 search_relevant_fields 、 test_iql )并

RuntimeError: No available speakers found.

RuntimeError: No available speakers found.

快速结论:这个报错通常在使用 AutoGen GraphFlow(基于有向图的工作流)时触发,当某个 agent 拥有工具但图中存在边缘(edge)时,GraphFlow 在寻找下一个 speaker 时失败。优先排查图中节点与边缘的配置是否正确,以及工具结果是否被直接用作消息。

问题场景

用户在配置 AutoGen 的 GraphFlow 工作流(通过 DiGraphBuilder 构建图)时,为多个 agent 分配了不同的工具(如 query_muse_searchget_dataset_infosearch_relevant_fieldstest_iql)并定义了图边缘。在运行过程中,尽管图结构中明确存在边缘,GraphFlow 仍抛出 RuntimeError: No available speakers found

报错原文

RuntimeError: No available speakers found.

原因分析

可能原因:GraphFlow 在选择下一个 speaker 时,工具结果(tool results)被直接当作消息处理,导致内部状态异常,进而无法正确识别图边缘中定义的下一个 agent。该行为可能是一个与工具结果处理相关的 bug。

环境排查

  • AutoGen 版本(使用特定版本,如未注明则需确认)
  • Python 版本(通常 3.9+)
  • 依赖:microsoft.autogenopenaiasyncio
  • 图配置:检查 graph_config 中的 edges 是否正确定义了 sourcetarget 和可选的 condition
  • Agent 工具列表:确认 tools_allow_list 中的工具是否都存在且被正确过滤

解决步骤

  1. 确认图边缘配置正确:检查所有 sourcetarget agent 的名称是否与 agents 列表中的 name 完全匹配(区分大小写)。建议在添加边缘后打印日志,验证每个边缘是否成功添加。
  2. 检查工具过滤函数:确保 filter_tools(tools, allow_list) 返回的工具列表不为空且正确。如果某个 agent 的工具列表为空,即使 tools_allow_list 非空,也可能引发异常。
  3. 测试最小可复现用例:尝试移除部分工具或简化图结构(例如只保留 2-3 个 agent 和一条边缘),确认问题是否仍然存在。可优先尝试以下代码片段来隔离问题:
for agent in self.agents_parsed:
    for agent_name, agent_config in agent.items():
        allow_list = agent_config["tools_allow_list"]
        filtered_tools = filter_tools(tools, allow_list)
        # ... 其他配置
        agent = create_assistant_agent(
            name=agent_name,
            system_message=agent_config["system_message"],
            tools=filtered_tools,
            model_client=model_client,
            buffered_chat_completions=buffered_chat_completions,
            handoffs=handoffs,
        )
        self.agents.append(agent)
  • 升级或降级 AutoGen 版本:如果使用了较新版本,尝试回退到已知稳定的版本(如 0.2.*),或者查看官方 GitHub 仓库中是否有相关修复。
  • 避免使用工具与图的组合:作为一种临时方案,可以考虑将工具逻辑改为纯 LLM 调用(例如通过 system message 模拟),或者改用 Swarm 类型的团队配置。
  • 验证方法

    执行简化后的图工作流,观察是否仍然抛出 RuntimeError: No available speakers found。如果不再报错,则原因为边缘配置或工具处理逻辑的问题;如果仍报错,可能是 AutoGen 的 bug,需要进一步排查版本或提交 Issue。

    参考来源

    microsoft/autogen #6523

    GamsGo AI

    AI 工具推荐

    想把多个 AI 模型放在一个入口?

    GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

    了解 GamsGo AI

    推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

    celebrityanime
    celebrityanime
    文章: 11045

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注