
将多智能体工作流投入生产的最快方式。
首先,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 弥合了快速原型设计和生产就绪部署之间的差距,使开发人员能够快速高效地将其多智能体系统变为现实。通过集成 AG2(原 AutoGen)等熟悉的框架、提供强大的 API 集成以及提供稳健的 CI 测试工具,FastAgency 减少了在实际应用中部署 AI 智能体通常伴随的复杂性和开销。
无论您是构建交互式控制台工具、开发功能齐全的 Web 应用程序,还是编排大规模多智能体系统,FastAgency 都旨在帮助您更快、更可靠、更灵活地进行部署。
目前,唯一支持的运行时是 AG2(原 AutoGen)。
FastAgency 目前支持使用 AG2(原 AutoGen)定义的工作流,并为不同类型的应用程序提供选项:
控制台:使用 ConsoleUI 接口进行基于命令行的交互。这非常适合在基于文本的环境中开发和测试工作流。
FastAgency 可以使用可链接的网络适配器,轻松创建用于服务您工作流的可扩展、生产就绪的架构。目前,我们支持以下网络适配器:
通过 FastAPI 实现的 REST API:使用 FastAPIAdapter 通过 FastAPI 服务器为工作流提供服务。此设置允许您在多个工作进程中运行工作流,并使用高度可扩展且稳定的 ASGI 服务器提供服务。
通过 FastStream 实现的 NATS.io:利用 NatsAdapter 使用 NATS.io MQ 消息代理构建高度可扩展、生产就绪的设置。此接口适用于 VPN 内的设置,或与 FastAPIAdapter 结合使用,以经过身份验证的安全方式为公共工作流提供服务。
我们强烈建议使用 Cookiecutter 来设置 FastAgency 项目。它会创建项目文件夹结构、默认工作流,自动安装所有必要的依赖项,并创建一个可与 Visual Studio Code 一起用于开发的 devcontainer。
使用以下命令安装 Cookiecutter:
console
pip install cookiecutter
运行 cookiecutter 命令:
console
cookiecutter https://github.com/ag2ai/cookiecutter-fastagency.git
假设您使用了默认值,您应该会得到以下输出:
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):
要运行基于 LLM 的应用程序,您需要所用 LLM 的 API 密钥。最常用的 LLM 是 OpenAI。要使用它,请创建一个 OpenAI API 密钥,并使用以下命令在终端中将其设置为环境变量:
console
export OPENAI_API_KEY=your_openai_api_key_here
使用以下命令在 Visual Studio Code 中打开生成的项目:
console
code my_fastagency_app
项目打开后,您将获得以下选项以在 devcontainer 中重新打开它:

在 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 工作流。

如果您使用 Cookiecutter 创建了项目,那么构建 Docker 镜像就像运行提供的脚本一样简单,如下所示:
./scripts/build_docker.sh
同样,运行 Docker 容器就像运行提供的脚本一样简单,如下所示:
./scripts/run_docker.sh
如果您使用 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_TOKENOPENAI_API_KEY要了解如何创建密钥并将其添加为密钥,请使用以下链接:
- 创建 Fly.io API 令牌
- 创建 OpenAI API 密钥
- 向 GitHub 仓库添加密钥
我们正在积极扩展 FastAgency 的功能。除了支持 AG2(原 AutoGen)之外,我们还计划集成对其他框架、其他网络提供商和其他 UI 框架的支持。
通过在我们的 Discord 服务器 上关注我们的文档和社区更新,了解新功能和集成的最新信息。FastAgency 不断发展以支持新框架、API 和部署策略,确保您始终处于 AI 驱动开发的前沿。
最后但同样重要的是,通过为我们的 GitHub 仓库 点星来支持我们。
您的支持有助于我们与您保持联系,并鼓励我们继续开发和改进该框架。感谢您的支持!
感谢所有这些让项目变得更好的了不起的人们!