用途
Agentic Research Agent (DeepLearning.AI) 是一个基于 FastAPI 的服务,用于编排多步骤的 AI 研究流程。它把研究任务拆解为规划、研究、写作、编辑等阶段,由多个智能体协作完成,并通过 Postgres 数据库跟踪任务状态与进度。
主要能力
- 规划智能体:将研究任务拆解为可执行的步骤计划。
- 工具使用智能体:研究、写作、编辑智能体可访问 Tavily 搜索、arXiv 论文和 Wikipedia。
- 状态管理:Postgres 数据库记录任务状态、进度和结果。
- 单一容器:一体化 Docker 镜像,内含 Postgres 与 FastAPI。
- 实时进度:为长时间运行的研究任务提供实时状态更新。
- Web UI 与 REST API:可启动研究流程、监控进度并获取最终报告。
使用方式
前置条件
确保已安装 Docker:
docker --version
创建包含 API 密钥的 .env 文件:
cat > .env << EOF
OPENAI_API_KEY=your-openai-key
TAVILY_API_KEY=your-tavily-key
EOF
克隆与构建
git clone https://github.com/deeplearning-ai/agentic-ai-public.git
cd agentic-ai-public
docker build -t fastapi-postgres-service .
运行服务
docker run --rm -it \
-p 8000:8000 \
-p 5432:5432 \
--name fpsvc \
--env-file .env \
fastapi-postgres-service
访问地址:
- Web UI:http://localhost:8000
- API 文档:http://localhost:8000/docs
- Postgres:postgresql://app:local@localhost:5432/appdb
主要 API 端点
启动研究任务:
curl -X POST http://localhost:8000/generate_report \
-H "Content-Type: application/json" \
-d '{
"prompt": "Large Language Models for scientific discovery",
"model": "openai:gpt-4o"
}'
轮询进度:
curl http://localhost:8000/task_progress/550e8400-e29b-41d4-a716-446655440000
获取最终报告:
curl http://localhost:8000/task_status/550e8400-e29b-41d4-a716-446655440000
项目结构
.
├── main.py # FastAPI 应用入口
├── src/
│ ├── planning_agent.py # 规划器与执行器逻辑
│ ├── agents.py # 研究、写作、编辑智能体
│ └── research_tools.py # 工具实现(Tavily、arXiv、Wikipedia)
├── templates/
│ └── index.html # Web UI 模板
├── static/ # CSS/JS 资源
├── docker/
│ └── entrypoint.sh # 容器启动脚本
├── requirements.txt
└── Dockerfile
配置
环境变量:
- 必需:OPENAI_API_KEY、TAVILY_API_KEY
- 可选数据库:DATABASE_URL、POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB
- 可选行为:RESET_DB_ON_STARTUP(设为 1 时启动时删除表)
依赖项:
fastapi>=0.104.0
uvicorn[standard]>=0.24.0
sqlalchemy>=2.0.0
psycopg2-binary>=2.9.0
python-dotenv>=1.0.0
jinja2>=3.1.0
requests>=2.31.0
wikipedia>=1.4.0
arxiv>=2.0.0
aisuite>=0.1.0
适用场景
适合需要自动化多步骤研究流程的场景,例如围绕某个主题收集资料、检索学术论文与百科信息,并生成结构化研究报告。也适合作为构建自定义研究智能体服务的参考实现。
限制
- 需要 OpenAI API 密钥和 Tavily API 密钥。
- 依赖 Docker 环境运行。
- 外部工具(Tavily、arXiv、Wikipedia)可能失败或触发速率限制,需要错误处理与重试。
- 长时间运行任务需要超时与日志记录。
- 生产环境建议使用后台任务或消息队列。
- 资料未提供收费、价格、平台支持范围等具体信息。