综合介绍
Fast-Agent 是一个由 evalstate 团队在 GitHub 上维护的开源工具,旨在帮助开发者快速定义、测试和构建多智能体工作流。它基于简单的声明式语法,支持与 MCP(Model-Compute-Platform)服务器集成,让用户专注于设计提示词和智能体逻辑,而非繁琐的配置。Fast-Agent 提供多种工作流模式(如链式、并行、评估优化等),内置命令行工具(CLI)和交互式聊天功能,适用于从原型验证到生产部署的开发场景。项目采用 Apache 2.0 许可证,支持社区贡献,强调易用性和灵活性。
功能列表
- 智能体定义:通过简单装饰器快速定义智能体,支持自定义指令和 MCP 服务器调用。
- 工作流构建:支持链式(Chain)、并行(Parallel)、评估优化(Evaluator-Optimizer)、路由(Router)和编排(Orchestrator)等多种工作流模式。
- 模型选择:轻松切换不同模型(如 o3-mini、sonnet),测试模型与 MCP 服务器的交互效果。
- 交互式聊天:支持与单个智能体或工作流组件实时对话,便于调试和优化。
- 测试支持:内置测试功能,验证智能体和工作流的表现,适合集成到持续集成(CI)流程。
- CLI 操作:提供命令行工具,简化安装、运行和调试流程。
- 人类输入:智能体可请求人类输入,提供额外上下文以完成任务。
- 快速原型:从简单文件配置到运行,仅需几分钟即可启动智能体应用。
使用帮助
Fast-Agent 的核心目标是降低多智能体开发的门槛,以下是详细的安装和使用指南,帮助用户快速上手并掌握其功能。
安装流程
Fast-Agent 依赖 Python 环境,推荐使用 uv
包管理器。以下是安装步骤:
- 安装 Python 和 uv
确保系统已安装 Python 3.9 或更高版本,然后安装uv
:
pip install uv
验证安装:
uv --version
- 安装 Fast-Agent
通过uv
从 PyPI 安装:
uv pip install fast-agent-mcp
若需完整功能支持(如文件系统或 Docker MCP 服务器),运行:
uv pip install fast-agent-mcp[full]
- 初始化配置
安装完成后,生成示例配置文件和智能体:
fast-agent setup
这会在当前目录生成 agent.py
和 fastagent.config.yaml
等文件。
- 验证安装
检查版本:
fast-agent --version
若返回版本号,安装成功。
使用方法
Fast-Agent 支持通过命令行或代码运行智能体和工作流,以下是具体操作步骤。
创建并运行基本智能体
- 定义智能体
编辑agent.py
,添加简单智能体:
import asyncio
from mcp_agent.core.fastagent import FastAgent
fast = FastAgent("Simple Agent")
@fast.agent(instruction="Given an object, respond with its estimated size.")
async def main():
async with fast.run() as agent:
await agent()
if __name__ == "__main__":
asyncio.run(main())
- 运行智能体
在命令行中运行:uv run agent.py
这将启动交互式聊天模式,输入对象名称(如 "the moon"),智能体会返回估计大小。
- 指定模型
使用--model
参数选择模型:uv run agent.py --model=o3-mini.low
创建工作流
- 生成工作流模板
使用bootstrap
命令生成示例:fast-agent bootstrap workflow
这会创建一个包含链式工作流的目录,展示如何构建有效智能体。
- 运行工作流
进入生成的工作流目录,运行:uv run chaining.py
系统将从指定 URL 获取内容并生成社交媒体帖子。
特色功能操作
- 链式工作流(Chain)
编辑chaining.py
,定义链式工作流:@fast.agent("url_fetcher", "Given a URL, provide a summary", servers=["fetch"]) @fast.agent("social_media", "Write a 280 character post for the text.") async def main(): async with fast.run() as agent: result = await agent.social_media(await agent.url_fetcher("http://example.com")) print(result)
配置
fastagent.config.yaml
中的 MCP 服务器后,运行:uv run chaining.py
- 并行工作流(Parallel)
定义多语言翻译工作流:@fast.agent("translate_fr", "Translate to French") @fast.agent("translate_de", "Translate to German") @fast.parallel(name="translate", fan_out=["translate_fr", "translate_de"]) async def main(): async with fast.run() as agent: await agent.translate.send("Hello, world!")
运行后,文本将同时翻译为法语和德语。
- 人类输入
定义需要人类输入的智能体:@fast.agent(instruction="Assist with tasks, request human input if needed.", human_input=True) async def main(): async with fast.run() as agent: await agent.send("print the next number in the sequence")
运行时,若智能体需要更多信息,会提示用户输入。
- 评估优化(Evaluator-Optimizer)
生成研究工作流:fast-agent bootstrap researcher
编辑配置文件并运行,智能体会生成内容并优化至满意为止。
配置 MCP 服务器
编辑 fastagent.config.yaml
,添加服务器:
servers:
fetch:
type: "fetch"
endpoint: "https://api.example.com"
运行时,智能体将调用此服务器获取数据。
操作流程示例
假设需要从 URL 生成社交媒体帖子:
- 运行
fast-agent bootstrap workflow
生成模板。 - 编辑
chaining.py
,设置 URL 和 MCP 服务器。 - 执行
uv run chaining.py
,查看生成的 280 字符帖子。 - 使用
--quiet
参数仅返回结果:uv run chaining.py --quiet
注意事项
- Windows 用户:需调整文件系统和 Docker MCP 服务器配置,详情见生成配置文件注释。
- 调试:若运行失败,添加
--verbose
查看详细日志:uv run agent.py --verbose
通过以上步骤,用户可快速安装并使用 Fast-Agent,构建并测试多智能体工作流,适用于研究、开发和生产场景。