Files
DEMO-AGENT/README.md

191 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Universal Agent Demo Framework
用于复试展示的通用 AI Agent Demo 框架。
项目目标不是提前猜中某一个具体业务题,而是先准备一个可快速改题的基础平台。拿到复试题目后,可以通过修改场景配置、上传知识库、补充少量工具函数,快速完成一个可演示的企业业务 Agent。
## 核心理念
```text
业务 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` |
## 模块划分
```text
config
apps.scenarios
apps.documents
apps.chat
apps.audit
agent_core
```
职责边界:
- Django Apps 负责页面、数据、文件、日志等企业应用外壳。
- Agent Core 负责 RAG、工具调用、模型适配、结构化输出和 Agent 编排。
- RAG、工具调用和模型调用不直接写进 Django View。
## 推荐项目结构
```text
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 集成。
- 生产级高并发优化。
## 复试改题流程
拿到题目后:
1. 判断题目属于哪类模板。
2. 复制最接近的 YAML 场景配置。
3. 修改 Agent 角色、目标、指令和输出模板。
4. 上传题目材料。
5. 如需业务计算,新增一个工具函数。
6. 用 2 到 3 个问题测试效果。
7. 演示场景配置、知识库引用、工具调用、结构化输出和审计日志。
## 计划启动方式
本地启动:
```bash
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
Docker 启动:
```bash
docker compose up --build
```
当前文档目标已统一为完整 V1 闭环:真实 Chroma RAG、OpenAI 兼容 LLM、OpenAI 兼容 Embedding、工具注册和审计日志。开发阶段可以用测试桩验证页面和边界但不作为 V1 验收结果。
## 环境变量
项目当前通过 `os.environ` 读取配置,核心变量如下:
```env
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`
## 文档入口
- [V1 总需求文档](docs/需求分析/1.V1总需求文档.md)
- [模块需求文档索引](docs/需求分析/2.模块需求索引.md)
- [智能体总体设计](docs/设计文档/1.智能体总体设计.md)
- [设计文档索引](docs/设计文档/0.设计文档索引.md)
- [协作与编码约定](AGENTS.md)