欢迎使用 Simple Agent API:一个用于将 Agent 作为 API 提供的强大、生产就绪的应用程序。它包括:

  • 用于处理 API 请求的 FastAPI 服务器。
  • 用于存储 Agent 会话、知识和记忆的 PostgreSQL 数据库。
  • 一组预构建的 Agent,可作为起点。

快速入门

请按照以下步骤操作,以启动并运行您的 Agent API:

先决条件:应已安装并运行 Docker Desktop。

1

克隆仓库

git clone https://github.com/agno-agi/agent-api.git
cd agent-api
2

导出您的 OpenAI 密钥

export OPENAI_API_KEY=sk-***
3

启动应用程序

docker compose up -d
4

测试应用程序

此命令将启动:

  • FastAPI 服务器,运行在 localhost:8000
  • PostgreSQL 数据库,可通过 localhost:5432 访问。

启动后,您可以:

  • localhost:8000/docs 测试 API。
  • 连接到 Agno Playground 或 Agent UI:
    • 打开 Agno Playground app.agno.com/playground/agents
    • 添加 http://localhost:8000 作为新的端点。您可以将其命名为 Agent API(或任何您喜欢的名称)。
    • 选择您新添加的端点,然后开始与您的 Agent 聊天。
5

停止应用程序

docker compose down

文件夹结构

agent-api 文件夹包含以下结构:

agent-api                     # 根目录
├── agents                  # 在此添加你的 Agents
├── api                     # 在此添加 fastApi 路由
├── db                      # 在此添加数据库表
├── Dockerfile              # 应用程序的 Dockerfile
├── pyproject.toml          # python 项目定义
├── requirements.txt        # 由 pyproject.toml 生成的 python 依赖项
├── scripts                 # 辅助脚本

预构建 Agent

/agents 文件夹包含预构建的 Agents,你可以将它们作为起点。

  • Web Search Agent: 一个可以搜索网络的简单 Agent。
  • Agno Assist: 一个可以帮助回答关于 Agno 的问题的 Agent。
    • 重要提示: 在使用此 Agent 之前,请确保加载 agno_assist 知识库。
  • Finance Agent: 一个使用 Yahoo Finance API 来获取股票价格和财务数据的 Agent。

管理 Python 依赖

1

修改 pyproject.toml

pyproject.toml 文件的 [tool.poetry.dependencies] 部分添加或更新您想要的 Python 包依赖。

2

生成 requirements.txt

requirements.txt 文件用于构建应用程序镜像。修改 pyproject.toml 后,使用以下命令重新生成 requirements.txt

./scripts/generate_requirements.sh

要将所有现有依赖升级到最新兼容版本,请运行:

./scripts/generate_requirements.sh upgrade
3

重建 Docker 镜像

重建您的 Docker 镜像以包含更新的依赖项:

docker compose up -d --build

在生产环境中运行

本仓库包含一个 Dockerfile,用于构建适用于生产环境的容器镜像版本的应用程序。

在生产环境中运行的一般流程是:

  1. 更新 scripts/build_image.sh 文件并设置您的 IMAGE_NAMEIMAGE_TAG 变量。
  2. 构建镜像并将其推送到您的容器镜像仓库:
    ./scripts/build_image.sh
    
  3. 在您选择的云服务提供商上运行。

详细步骤

1. 为生产环境进行配置

  • 确保您的生产环境环境变量(例如 OPENAI_API_KEY、数据库连接字符串)得到安全管理。大多数云服务提供商都提供一种方法,将这些作为环境变量设置给您部署的服务。
  • 检查 /agents 目录中的代理配置,并确保它们已根据您的生产需求进行设置(例如,正确的模型版本,任何特定于生产的设置)。

2. 构建您的生产 Docker 镜像

更新 scripts/build_image.sh 脚本,设置您想要的 IMAGE_NAMEIMAGE_TAG(例如 your-repo/agent-api:v1.0.0)。

运行脚本来构建和推送镜像:

./scripts/build_image.sh

3. 部署到云服务

将镜像推送到镜像仓库后,您可以将其部署到支持容器化应用程序的各种云服务。一些常见的选项包括:

无服务器容器平台:

  • Google Cloud Run:一个全托管平台,可自动扩展您的无状态容器。
  • AWS App Runner:轻松大规模部署容器化的 Web 应用程序和 API。
  • Azure Container Apps:使用无服务器容器构建和部署现代应用程序和微服务。

容器编排服务:

支持 Docker 的平台即服务 (PaaS):

  • Railway.app:从 Dockerfile 轻松部署。
  • Render:简化 Docker 容器、数据库和静态站点的部署。
  • Heroku:支持部署 Docker 容器。

专业平台:

  • Modal:用于在云端运行 Python 代码的平台,可以提供 Web 端点。

具体的部署步骤将因所选提供商而异。通常,您需要将服务指向镜像仓库中的容器镜像,并配置端口映射(应用程序默认在端口 8000 上运行)、环境变量、扩展和数据库连接。

4. 数据库配置

默认的 docker-compose.yml 文件为本地开发设置了一个 PostgreSQL 数据库。在生产环境中,请使用托管数据库服务(例如 AWS RDS、Google Cloud SQL、Azure Database for PostgreSQL)。 确保您的已部署应用程序配置了生产数据库的正确数据库连接 URL,通常通过环境变量进行配置。

附加信息

恭喜您成功运行了 Agent API。