OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  FastAgency — 用更少代码构建多 Agent 自动化应用

FastAgency — 用更少代码构建多 Agent 自动化应用

 
  anthem ·  2026-04-18 11:00:28 · 10 次点击  · 0 条评论  

alt text

FastAgency

将多智能体工作流投入生产的最快方式。


测试通过 覆盖率 下载量 软件包版本 支持的 Python 版本
CodeQL 依赖审查 许可证 行为准则 Discord


FastAgency 是什么?

首先,FastAgency 并非又一个智能体 AI 框架。目前已有许多此类框架,最流行的开源框架是 AG2(原 AutoGen)。FastAgency 为您提供了一个统一的编程接口,用于在开发和生产环境中部署使用 AG2 智能体框架编写的智能体工作流。只需几行代码,您就可以创建一个与您选择的智能体交互的 Web 聊天应用程序或 REST API 服务。如果您需要扩展工作负载,FastAgency 可以帮助您部署一个完全分布式的系统,该系统使用内部消息代理协调多个数据中心的多台机器,而您只需对本地开发设置进行少量代码更改。

FastAgency 是一个开源框架,旨在加速多智能体 AI 工作流从原型到生产的过渡。对于使用 AG2(原 AutoGen)框架的开发人员,FastAgency 使您能够将 Jupyter notebook 原型无缝扩展为功能齐全、可用于生产环境的应用程序。凭借多框架支持、统一的编程接口和强大的 API 集成能力,FastAgency 简化了部署过程,在保持灵活性和性能的同时,节省了时间和精力。

无论您是编排复杂的 AI 智能体,还是将外部 API 集成到工作流中,FastAgency 都提供了必要的工具,帮助您快速从概念过渡到生产,缩短开发周期,让您专注于优化多智能体系统。

核心特性

  • 跨用户界面的统一编程接口: FastAgency 具有一个通用的编程接口,使您能够开发一次核心工作流,并在各种用户界面中重复使用,无需重写代码。这包括通过 ConsoleUI 支持基于控制台的应用程序,以及通过 MesopUI 支持基于 Web 的应用程序。无论您需要命令行工具还是完全交互式的 Web 应用程序,FastAgency 都允许您跨环境部署相同的基础工作流,从而节省开发时间并确保一致性。

  • 无缝的外部 API 集成: FastAgency 的一个突出特点是能够轻松地将外部 API 集成到您的智能体工作流中。只需几行代码,您就可以导入 OpenAPI 规范,并且只需再添加一行代码,即可将其连接到您的智能体。这极大地简化了使用实时数据、外部处理或第三方服务增强 AI 智能体的过程。例如,您可以轻松集成天气 API,为用户提供动态、实时的天气更新,从而以最少的努力使您的应用程序更具交互性和实用性。

  • 用于持续集成的测试类: FastAgency 还提供了一个测试类,使开发人员能够为其多智能体工作流编写和执行测试。此功能对于维护应用程序的可靠性和健壮性至关重要,允许您自动验证智能体行为和交互。测试类旨在与持续集成(CI) 管道顺畅集成,帮助您及早发现错误,并确保您的工作流在扩展到生产环境时保持功能正常。

  • 用于编排的命令行界面(CLI): FastAgency 包含一个强大的命令行界面(CLI),用于直接从终端编排和管理多智能体应用程序。CLI 允许开发人员快速运行工作流、传递参数和监控智能体交互,而无需完整的 GUI。这对于自动化部署和将工作流集成到更广泛的 DevOps 管道中特别有用,使开发人员能够保持对 AI 驱动应用程序管理方式的控制和灵活性。

为什么选择 FastAgency?

FastAgency 弥合了快速原型设计和生产就绪部署之间的差距,使开发人员能够快速高效地将其多智能体系统变为现实。通过集成 AG2(原 AutoGen)等熟悉的框架、提供强大的 API 集成以及提供稳健的 CI 测试工具,FastAgency 减少了在实际应用中部署 AI 智能体通常伴随的复杂性和开销。

无论您是构建交互式控制台工具、开发功能齐全的 Web 应用程序,还是编排大规模多智能体系统,FastAgency 都旨在帮助您更快、更可靠、更灵活地进行部署。

支持的运行时

目前,唯一支持的运行时是 AG2(原 AutoGen)

支持的用户界面

FastAgency 目前支持使用 AG2(原 AutoGen)定义的工作流,并为不同类型的应用程序提供选项:

  • 控制台:使用 ConsoleUI 接口进行基于命令行的交互。这非常适合在基于文本的环境中开发和测试工作流。

  • Mesop:利用 MesopUI 创建基于 Web 的应用程序。此接口适用于创建具有用户友好界面的 Web 应用程序。

支持的网络适配器

FastAgency 可以使用可链接的网络适配器,轻松创建用于服务您工作流的可扩展、生产就绪的架构。目前,我们支持以下网络适配器:

  • 通过 FastAPI 实现的 REST API:使用 FastAPIAdapter 通过 FastAPI 服务器为工作流提供服务。此设置允许您在多个工作进程中运行工作流,并使用高度可扩展且稳定的 ASGI 服务器提供服务。

  • 通过 FastStream 实现的 NATS.io:利用 NatsAdapter 使用 NATS.io MQ 消息代理构建高度可扩展、生产就绪的设置。此接口适用于 VPN 内的设置,或与 FastAPIAdapter 结合使用,以经过身份验证的安全方式为公共工作流提供服务。

快速开始

项目设置

我们强烈建议使用 Cookiecutter 来设置 FastAgency 项目。它会创建项目文件夹结构、默认工作流,自动安装所有必要的依赖项,并创建一个可与 Visual Studio Code 一起用于开发的 devcontainer

  1. 使用以下命令安装 Cookiecutter:
    console pip install cookiecutter

  2. 运行 cookiecutter 命令:
    console cookiecutter https://github.com/ag2ai/cookiecutter-fastagency.git

  3. 假设您使用了默认值,您应该会得到以下输出:
    console [1/4] project_name (My FastAgency App): [2/4] project_slug (my_fastagency_app): [3/4] Select app_type 1 - fastapi+mesop 2 - mesop 3 - nats+fastapi+mesop Choose from [1/2/3] (1): 1 [4/4] Select python_version 1 - 3.12 2 - 3.11 3 - 3.10 Choose from [1/2/3] (1): [5/5] Select authentication 1 - none 2 - google Choose from [1/2] (1):

  4. 要运行基于 LLM 的应用程序,您需要所用 LLM 的 API 密钥。最常用的 LLM 是 OpenAI。要使用它,请创建一个 OpenAI API 密钥,并使用以下命令在终端中将其设置为环境变量:
    console export OPENAI_API_KEY=your_openai_api_key_here

  5. 使用以下命令在 Visual Studio Code 中打开生成的项目:
    console code my_fastagency_app

  6. 项目打开后,您将获得以下选项以在 devcontainer 中重新打开它:

  7. 在 devcontainer 中重新打开项目后,您可以通过运行以下命令运行提供的测试来验证设置是否正确:
    console pytest -s
    如果一切设置正确,您应该会得到以下输出。
    ```console
    =================================== test session starts ===================================
    platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0
    rootdir: /workspaces/my_fastagency_app
    configfile: pyproject.toml
    plugins: asyncio-0.24.0, anyio-4.6.2.post1
    asyncio: mode=Mode.STRICT, default_loop_scope=None
    collected 1 item

    tests/test_workflow.py . [100%]

    ==================================== 1 passed in 1.02s ====================================
    ```


工作流开发

定义工作流

您需要定义应用程序将使用的工作流。这是您指定智能体如何交互以及它们做什么的地方。以下是一个简单的工作流定义示例,它由 cookiecutter 在 my_fastagency_app/workflow.py 下生成:

import os
from typing import Any

from autogen import ConversableAgent, LLMConfig
from fastagency import UI
from fastagency.runtimes.ag2 import Workflow

llm_config = LLMConfig(
    model="gpt-4o-mini",
    api_key=os.getenv("OPENAI_API_KEY"),
    temperature=0.8,
)

wf = Workflow()


@wf.register(name="simple_learning", description="Student and teacher learning chat")  # type: ignore[misc]
def simple_workflow(ui: UI, params: dict[str, Any]) -> str:
    initial_message = ui.text_input(
        sender="Workflow",
        recipient="User",
        prompt="I can help you learn about mathematics. What subject you would like to explore?",
    )

    with llm_config:
      student_agent = ConversableAgent(
          name="Student_Agent",
          system_message="You are a student willing to learn.",
      )
      teacher_agent = ConversableAgent(
          name="Teacher_Agent",
          system_message="You are a math teacher.",
      )

    response = student_agent.run(
        teacher_agent,
        message=initial_message,
        summary_method="reflection_with_llm",
        max_turns=3,
    )

    return ui.process(response)

此代码片段设置了一个简单的学生和教师之间的学习聊天。它定义了智能体以及它们应如何交互,并指定了对话应如何总结。

运行和调试工作流

为确保我们定义的工作流正常运行,我们可以使用 MesopUI 在本地进行测试。下面的代码可以在 my_fastagency_app/local/main_mesop.py 中找到,它导入了定义的工作流并设置了 MesopUI。

您可以在 Linux 和 MacOS 上使用以下命令本地运行 Mesop 应用程序:

gunicorn my_fastagency_app.local.main_mesop:app

在 Windows 上,请使用以下命令:

waitress-serve --listen=0.0.0.0:8000 my_fastagency_app.local.main_mesop:app

在浏览器中打开 MesopUI 网址 http://localhost:8000。您现在可以使用图形用户界面手动启动、运行、测试和调试 autogen 工作流。

初始消息

部署

构建 Docker 镜像

如果您使用 Cookiecutter 创建了项目,那么构建 Docker 镜像就像运行提供的脚本一样简单,如下所示:

./scripts/build_docker.sh

运行 Docker 镜像

同样,运行 Docker 容器就像运行提供的脚本一样简单,如下所示:

./scripts/run_docker.sh

部署到 Fly.io

如果您使用 Cookiecutter 创建了项目,则有内置脚本可将您的工作流部署到 Fly.io。在 Fly.io 中,应用程序命名空间是全局的,因此您选择的应用程序名称可能已被占用。要检查您的应用程序名称的可用性并保留它,您可以运行以下脚本:

./scripts/register_to_fly_io.sh

一旦您保留了应用程序名称,您可以使用以下脚本测试是否可以将您的应用程序部署到 Fly.io:

./scripts/deploy_to_fly_io.sh

这仅用于测试目的。您应该使用 GitHub Actions 进行部署,如下所述。

Cookiecutter 生成了所有必要的文件,以便使用 GitHub Actions 将您的应用程序部署到 Fly.io。只需将您的代码推送到 GitHub 仓库的 main 分支,GitHub Actions 就会自动将您的应用程序部署到 Fly.io。为此,您需要在 GitHub 仓库中设置以下密钥:

  • FLY_API_TOKEN
  • OPENAI_API_KEY

要了解如何创建密钥并将其添加为密钥,请使用以下链接:
- 创建 Fly.io API 令牌
- 创建 OpenAI API 密钥
- 向 GitHub 仓库添加密钥

未来计划

我们正在积极扩展 FastAgency 的功能。除了支持 AG2(原 AutoGen)之外,我们还计划集成对其他框架、其他网络提供商和其他 UI 框架的支持。


⭐⭐⭐ 保持联系 ⭐⭐⭐

通过在我们的 Discord 服务器 上关注我们的文档和社区更新,了解新功能和集成的最新信息。FastAgency 不断发展以支持新框架、API 和部署策略,确保您始终处于 AI 驱动开发的前沿。

最后但同样重要的是,通过为我们的 GitHub 仓库 点星来支持我们。

您的支持有助于我们与您保持联系,并鼓励我们继续开发和改进该框架。感谢您的支持!


贡献者

感谢所有这些让项目变得更好的了不起的人们!



10 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 26 ms
Developed with Cursor