agency-swarm

GitHub
4.2k 1k 简单 1 次阅读 今天MIT开发框架Agent
AI 解读 由 AI 自动生成,仅供参考

Agency Swarm 是一个专为构建多智能体协作应用而设计的可靠编排框架。它基于 OpenAI Agents SDK 进行了深度扩展,旨在将现实世界中的组织架构理念引入 AI 自动化领域,让开发者能够像组建真实公司一样,定义 CEO、助理或开发者等具有特定职责的智能体角色,并让它们高效协同工作。

该工具主要解决了多智能体系统中沟通混乱、状态难以管理以及行为不可控的痛点。通过明确的定向通信流机制,Agency Swarm 确保了智能体之间的交互井然有序;同时,它支持灵活的状态持久化方案,方便用户在不同会话间保存和加载对话历史,非常适合需要长期记忆的生产级应用。

Agency Swarm 特别适合希望打造复杂自动化流程的 AI 开发者和技术研究人员。其独特的技术亮点包括:利用 Pydantic 模型实现类型安全的工具开发,自动验证参数以减少错误;提供对提示词(Prompts)的完全控制权,确保智能体行为精准符合预期;以及兼容多种主流大模型后端(如 Claude、Gemini 等),不仅限于 OpenAI 系列。无论是快速原型验证还是部署企业级服务,Agency Swarm 都能提供直观且强大的基础设施支持。

使用场景

一家中型电商公司的技术团队需要构建一个自动化系统,用于每日监控社交媒体舆情、分析用户反馈并自动生成危机公关报告。

没有 agency-swarm 时

  • 角色混乱:开发者需手动编写复杂的条件判断代码来区分“情感分析员”和“报告撰写员”,导致逻辑耦合严重,难以维护。
  • 沟通失控:多个 AI 实例之间缺乏标准化的消息传递机制,经常出现信息丢失或重复处理同一任务的情况。
  • 状态难持久:一旦程序中断,之前的对话历史和中间分析结果全部丢失,无法跨会话继续执行长流程任务。
  • 工具开发繁琐:为每个智能体定制专用工具时,缺乏统一的参数验证机制,经常因输入格式错误导致运行崩溃。

使用 agency-swarm 后

  • 架构清晰:利用自定义角色功能,轻松定义 CEO、分析师和写手等独立智能体,各自拥有专属指令和工具集,结构一目了然。
  • 流转可控:通过预定义的 communication_flows 规范智能体间的单向通信,确保舆情数据按“采集→分析→报告”的顺序精准流转。
  • 断点续传:内置的状态持久化回调机制自动将对话线程保存至数据库,即使服务重启也能无缝恢复之前的工作进度。
  • 类型安全:基于 Pydantic 模型开发工具,自动校验输入参数,大幅减少了运行时错误,提升了系统的稳定性。

agency-swarm 将原本杂乱无章的脚本堆砌转化为秩序井然的虚拟组织,让多智能体协作像管理真实团队一样高效可靠。

运行环境要求

操作系统
  • macOS
  • Linux
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是基于 OpenAI Agents SDK 的框架,主要依赖 API 调用而非本地模型推理,因此通常不需要高性能 GPU。支持通过 LiteLLM 连接多种模型后端(如 Anthropic, Google, Azure OpenAI 等)。首次运行需配置 OPENAI_API_KEY 环境变量。
python3.12+
openai-agents
pydantic
litellm
agency-swarm hero image

快速开始

🐝 代理集群

框架

概述

代理集群是一个用于构建多智能体应用的框架。它基于并扩展了 OpenAI Agents SDK,提供了专门的功能来创建、编排和管理协作性的智能体群。

该框架延续了 Arsenii Shatokhin(又名 VRSEN)的原始愿景,即通过将自动化视为现实世界的组织结构,从而简化 AI 机构的创建过程,使智能体和用户都能直观地理解和使用。

从 v0.x 迁移吗? 请参阅我们的 迁移指南,了解如何将您的项目适配到这个基于 SDK 的新版本。

文档 覆盖率 订阅 YouTube 频道 关注 Twitter 加入我们的 Discord! 代理即服务

核心特性

  • 可自定义的智能体角色:在代理集群框架中,利用底层的 OpenAI Agents SDK,定义不同的智能体角色(如 CEO、虚拟助理、开发者),并为其配备定制化的指令、工具和能力。
  • 完全掌控提示/指令:您可以完全控制每个智能体的引导提示(指令),以实现精确的行为定制。
  • 类型安全的工具:使用 Pydantic 模型开发工具,实现自动参数验证,兼容 OpenAI Agents SDK 的 FunctionTool 格式。
  • 协调的智能体通信:智能体通过专用的 send_message 工具进行通信,交互由 Agency 上明确、定向的 communication_flows 规则管理。
  • 灵活的状态持久化:通过为 Agency 提供 load_threads_callbacksave_threads_callback,管理对话历史,实现跨会话的持久化存储(如数据库或文件存储)。
  • 多智能体编排:在 OpenAI Agents SDK 的基础上构建智能体工作流,并通过代理集群的结构化编排层进一步增强。
  • 面向生产环境:专为可靠性设计,易于部署于实际环境中。

安装

pip install -U agency-swarm

v1.x 注意事项: 该框架针对的是 OpenAI Agents SDK + Responses API。 从 v0.x 迁移吗?请参阅 迁移指南

兼容性

  • Python:3.12 及以上版本
  • 模型后端:
    • OpenAI(原生): GPT-5 系列、GPT-4o 等
    • 通过 LiteLLM(路由器): Anthropic(Claude)、Google(Gemini)、Grok(xAI)、Azure OpenAI、OpenRouter(网关)
  • 操作系统:macOS、Linux、Windows

如果您遇到环境问题,请参阅 安装指南

开始使用

推荐:在自定义任何内容之前,请先从 Agency Starter Template 开始。

  1. 设置 OpenAI API 密钥

    • 创建一个包含 OPENAI_API_KEY=your_key.env 文件(自动加载),或者在你的 shell 中导出它:
    export OPENAI_API_KEY="YOUR_API_KEY"
    
  2. 创建工具: 使用现代的 @function_tool 装饰器定义工具(推荐),或扩展 BaseTool(兼容):

    from agency_swarm import function_tool
    
    @function_tool
    def my_custom_tool(example_field: str) -> str:
        """自定义工具的简要描述。"""
        return f"结果:{example_field}"
    

    或者使用 BaseTool

    from agency_swarm.tools import BaseTool
    from pydantic import Field
    
    class MyCustomTool(BaseTool):
        """
        自定义工具的简要描述。
        文档字符串应清晰说明工具的目的和功能。
        代理将根据此文档决定何时使用该工具。
        """
    
        # 使用 Pydantic Field 定义带有描述的字段
        example_field: str = Field(
            ..., description="示例字段的描述,解释其用途及对代理的意义。"
        )
    
        def run(self):
            """
            run 方法的实现,执行工具的主要功能。
            """
            # 在这里编写自定义工具的逻辑
            # do_something(self.example_field)
    
            # 返回工具操作的结果
            return "MyCustomTool 操作的结果"
    

    或者从 OpenAPI 模式转换:

    from agency_swarm.tools import ToolFactory
    # 使用本地文件
    with open("schemas/your_schema.json") as f:
        tools = ToolFactory.from_openapi_schema(
            f.read(),
        )
    
    # 使用 requests
    import requests
    tools = ToolFactory.from_openapi_schema(
        requests.get("https://api.example.com/openapi.json").json(),
    )
    
  3. 定义代理角色:首先定义你的代理角色。例如,一个 CEO 代理用于管理任务,一个开发者代理用于执行任务。

    from agency_swarm import Agent, ModelSettings
    
    ceo = Agent(
        name="CEO",
        description="负责客户沟通、任务规划与管理。",
        instructions="您必须与其他代理对话,以确保任务的完整执行。",# 可以是像 ./instructions.md 这样的文件
        files_folder="./files", # 将上传到 OpenAI 的文件
        schemas_folder="./schemas", # 将转换为工具的 OpenAPI 模式
        tools=[my_custom_tool],  # 由 @function_tool 返回的 FunctionTool(或通过 ToolFactory 转换 BaseTool)
        model="gpt-5.4-mini",
        model_settings=ModelSettings(
            max_tokens=25000,
        ),
    )
    

    从示例入手:

  4. 定义机构通信流程: 确定你的代理之间如何相互沟通。

    from agency_swarm import Agency
    # 如果从本地文件导入
    from Developer import Developer
    from VirtualAssistant import VirtualAssistant
    
    dev = Developer()
    va = VirtualAssistant()
    
    agency = Agency(
        ceo,  # CEO 将作为与用户沟通的入口点
        communication_flows=[
            ceo > dev,  # CEO 可以发起与开发者之间的沟通
            ceo > va,   # CEO 可以发起与虚拟助理之间的沟通
            dev > va    # 开发者可以发起与虚拟助理之间的沟通
        ],
        shared_instructions='agency_manifesto.md', # 所有代理共享的指令
    )
    

    在 Agency Swarm 中,通信流程是单向的。> 运算符定义了允许的发起方(左侧可以发起与右侧的对话)。

  5. 运行演示

Web UI:

agency.copilot_demo()

终端:

agency.tui()

首次运行时,Agency Swarm 会自动设置终端应用,显示简短的设置信息,并在后续运行中重复使用。

查看终端工作流指南:https://agency-swarm.ai/core-framework/agencies/agent-swarm-cli

程序化(异步):

import asyncio

async def main():
    resp = await agency.get_response("创建一个项目框架。")
    print(resp.final_output)

asyncio.run(main())

需要同步吗?agency.get_response_sync(...) 也存在,但建议使用异步方式。

文件夹结构

推荐的代理文件夹结构如下:

/your-specified-path/
│
├── agency_manifesto.md 或 .txt # 机构的指导原则(如不存在则会创建)
└── AgentName/                  # 特定代理的目录
    ├── files/                  # 将上传到 OpenAI 的文件目录
    ├── schemas/                # 将转换为工具的 OpenAPI 模式的目录
    ├── tools/                  # 默认导入工具的目录
    ├── AgentName.py            # 主代理类文件
    ├── __init__.py             # 初始化代理文件夹为 Python 包
    ├── instructions.md 或 .txt # 代理的指令文档
    └── tools.py                # 专属于该代理角色的自定义工具。

这种结构确保每个代理都有独立的空间,包含开始执行特定任务所需的所有文件。tools.py 可以根据代理的角色定制工具和功能。

了解更多

贡献

有关如何为 Agency Swarm 做贡献的详细信息,请参阅 贡献指南

许可证

Agency Swarm 是开源项目,采用 MIT 许可证

需要帮助吗?

如果您需要帮助为您的企业创建自定义智能体集群,请查看我们的智能体即服务订阅计划,或通过 https://calendly.com/vrsen/ai-readiness-call 预约与我进行咨询。

版本历史

v1.1.02025/10/08
v1.0.22025/09/23
v1.0.12025/09/13
v1.0.02025/09/03
v1.0.0-beta.62025/08/26
v0.7.22025/07/29
v1.0.0-beta.52025/07/17
v1.0.0-beta.42025/07/05
v1.0.0-beta.32025/07/01
v1.8.12026/04/14
v1.8.02026/02/25
v1.7.02026/01/20
v1.6.02025/12/24
v1.5.02025/12/01
v1.4.12025/11/15
v1.4.02025/11/12
v1.3.12025/10/31
v1.3.02025/10/28
v1.2.12025/10/15
v1.2.02025/10/14

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架