ba3f5fc58475570eba09a08429e79935aca929e9
Universal Agent Demo Framework
用于复试展示的通用 AI Agent Demo 框架。
项目目标不是提前猜中某一个具体业务题,而是先准备一个可快速改题的基础平台。拿到复试题目后,可以通过修改场景配置、上传知识库、补充少量工具函数,快速完成一个可演示的企业业务 Agent。
核心理念
业务 Agent = 场景配置 + 知识库 + 工具集 + 输出模板 + 审计日志 + 模型适配器
技术路线
V1 采用:
- Django 单体应用
- 独立 Agent Core 模块
- SQLite
- Chroma
- Django Templates
- Docker Compose
- OpenAI API 兼容的 LLM 与 Embedding 接口
默认不强依赖 Dify。系统预留 Adapter 设计,后续可以接入 Dify、OpenAI Agents SDK 或其他 Agent 编排平台。
适用复试题型
| 题型 | 推荐场景模板 |
|---|---|
| SOP 问答 | knowledge_qa |
| 制度问答 | knowledge_qa |
| 文档审核 | document_review |
| 客服工单 | ticket_assistant |
| 质量异常分析 | quality_analysis |
| 财务审核 | risk_audit |
| 采购审核 | risk_audit |
| 合同风险分析 | document_review 或 risk_audit |
模块划分
config
apps.scenarios
apps.documents
apps.chat
apps.audit
agent_core
职责边界:
- Django Apps 负责页面、数据、文件、日志等企业应用外壳。
- Agent Core 负责 RAG、工具调用、模型适配、结构化输出和 Agent 编排。
- RAG、工具调用和模型调用不直接写进 Django View。
推荐项目结构
universal-agent-demo/
manage.py
requirements.txt
Dockerfile
docker-compose.yml
.env.example
README.md
AGENTS.md
config/
apps/
scenarios/
documents/
chat/
audit/
agent_core/
rag/
tools/
schemas/
configs/
knowledge_qa.yaml
document_review.yaml
ticket_assistant.yaml
quality_analysis.yaml
risk_audit.yaml
data/
uploads/
chroma/
docs/
V1 功能范围
V1 需要完成:
- 场景列表。
- Agent 对话页。
- 文件上传。
- 文档入库。
- RAG 检索。
- 内置工具调用。
- 结构化输出展示。
- 审计日志。
- 模型 API 可配置。
- Docker 一键启动。
V1 暂不重点做:
- 多租户。
- 复杂权限。
- 完整工作流引擎。
- 前后端分离。
- 深度 Dify 集成。
- 生产级高并发优化。
复试改题流程
拿到题目后:
- 判断题目属于哪类模板。
- 复制最接近的 YAML 场景配置。
- 修改 Agent 角色、目标、指令和输出模板。
- 上传题目材料。
- 如需业务计算,新增一个工具函数。
- 用 2 到 3 个问题测试效果。
- 演示场景配置、知识库引用、工具调用、结构化输出和审计日志。
计划启动方式
本地启动:
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
Docker 启动:
docker compose up --build
当前文档目标已统一为完整 V1 闭环:真实 Chroma RAG、OpenAI 兼容 LLM、OpenAI 兼容 Embedding、工具注册和审计日志。开发阶段可以用测试桩验证页面和边界,但不作为 V1 验收结果。
环境变量
项目当前通过 os.environ 读取配置,核心变量如下:
DJANGO_SECRET_KEY=replace-with-a-local-secret-key
DJANGO_DEBUG=true
DJANGO_ALLOWED_HOSTS=*
LLM_API_KEY=your_llm_api_key
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4.1-mini
EMBEDDING_API_KEY=
EMBEDDING_BASE_URL=
EMBEDDING_MODEL=text-embedding-3-small
SCENARIO_CONFIG_DIR=configs
UPLOAD_ROOT=data/uploads
CHROMA_PATH=data/chroma
说明:
EMBEDDING_API_KEY为空时,代码会自动复用LLM_API_KEY。EMBEDDING_BASE_URL为空时,代码会自动复用LLM_BASE_URL。.env.example只作为模板,不应填写真实密钥并提交到仓库。- 当前代码会在 Django settings 初始化时自动加载根目录
.env,本地python manage.py runserver、pytest和 Docker Compose 可以复用同一套配置。 - Docker Compose 当前在
docker-compose.yml中通过env_file读取.env。
常见做法:
- 本地开发:复制
.env.example为.env,填入真实参数后运行。 - Docker 演示:确认
.env已配置后,再执行docker compose up --build。
文档入口
Description
Languages
Python
86.5%
JavaScript
5.6%
HTML
4%
CSS
3.9%