重构七天训练营老师
This commit is contained in:
113
README.md
113
README.md
@@ -12,13 +12,46 @@
|
||||
│ ├── __init__.py
|
||||
│ ├── agent.py # 定义 root_agent(ADK 要求导出名)
|
||||
│ └── note_formatter.py # Markdown 笔记格式化器
|
||||
├── critical_awareness_agent/ # 临界觉察助手
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py # 三界觉察引导
|
||||
├── lumina_agent/ # 卢慧老师智能体
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py # 会式心理学讲师
|
||||
├── l1_live_course_agent/ # L1 入门课助教
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py
|
||||
├── l2_training_camp_agent/ # L2 训练营助教
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py
|
||||
├── l3_wisdom_camp_agent/ # L3 大本营助教
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py
|
||||
├── l4_mystery_gate_agent/ # L4 众妙之门助教
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py
|
||||
├── l5_refinement_agent/ # L5 精修班助教
|
||||
│ ├── __init__.py
|
||||
│ └── agent.py
|
||||
├── image_agent/ # 图片查询助手
|
||||
│ ├── __init__.py
|
||||
│ ├── agent.py # 定义 root_agent
|
||||
│ └── image_tools.py # 图片搜索工具
|
||||
├── agent_base/ # Agent 基类
|
||||
│ ├── __init__.py
|
||||
│ └── agent_base.py # HuiYuBaseAgent(防注入 + 日志)
|
||||
├── common/ # 公共工具
|
||||
│ ├── __init__.py # 环境初始化(.env 加载、日志配置)
|
||||
│ ├── logger.py # 模型调用耗时日志
|
||||
│ ├── models.py # 模型工厂(MiniMax/DeepSeek)
|
||||
│ ├── profile_loader.py # Profile 文件加载器
|
||||
│ └── prompt_guard.py # 防提示词注入检测
|
||||
├── profiles/ # 助教老师 Profile 文件
|
||||
│ ├── l1_live_course.md
|
||||
│ ├── l2_training_camp.md
|
||||
│ ├── l3_wisdom_camp.md
|
||||
│ ├── l4_mystery_gate.md
|
||||
│ └── l5_refinement.md
|
||||
├── .env # 环境变量配置(不提交到 Git)
|
||||
├── .env.example # 配置示例
|
||||
├── API_DOC.md # REST API 接口文档
|
||||
@@ -42,7 +75,8 @@ pip install -r requirements.txt
|
||||
主要依赖:
|
||||
- `google-adk` — Google Agent Development Kit
|
||||
- `python-dotenv` — 环境变量管理
|
||||
- `litellm` — 多模型适配层(对接 MiniMax 等大模型)
|
||||
- `litellm` — 多模型适配层(对接 MiniMax/DeepSeek 等大模型)
|
||||
- `httpx` — HTTP 客户端(图片查询工具使用)
|
||||
|
||||
### 2. 配置环境变量
|
||||
|
||||
@@ -53,9 +87,18 @@ cp .env.example .env
|
||||
编辑 `.env`:
|
||||
|
||||
```env
|
||||
# MiniMax 配置
|
||||
MINIMAX_API_KEY=your_api_key_here
|
||||
MINIMAX_API_BASE=https://api.minimaxi.com/v1
|
||||
MINIMAX_MODEL=openai/MiniMax-M2.7
|
||||
|
||||
# DeepSeek 配置(可选)
|
||||
DEEPSEEK_API_KEY=your_api_key_here
|
||||
DEEPSEEK_API_BASE=https://api.deepseek.com/v1
|
||||
DEEPSEEK_MODEL=openai/deepseek-chat
|
||||
|
||||
# 图片服务配置(可选,用于 image_agent)
|
||||
IMAGE_API_BASE=http://localhost:8765
|
||||
```
|
||||
|
||||
### 3. 启动服务
|
||||
@@ -76,12 +119,23 @@ adk api_server . --auto_create_session
|
||||
root_agent(小慧)
|
||||
├── 通用对话:回答用户问题
|
||||
└── 子智能体委派:
|
||||
└── note_agent(笔记助手)
|
||||
├── generate_text_note — 生成文本笔记
|
||||
└── generate_image_note — 生成图片笔记
|
||||
├── note_agent(笔记助手)
|
||||
│ ├── generate_text_note — 生成文本笔记
|
||||
│ └── generate_image_note — 生成图片笔记
|
||||
└── critical_awareness_agent(临界觉察助手)
|
||||
|
||||
独立 Agent(手动选择):
|
||||
├── lumina_agent — 会式心理学讲师(卢慧老师)
|
||||
├── l1_live_course_agent — 入门课助教
|
||||
├── l2_training_camp_agent — 训练营助教
|
||||
├── l3_wisdom_camp_agent — 大本营助教
|
||||
├── l4_mystery_gate_agent — 众妙之门助教
|
||||
├── l5_refinement_agent — 精修班助教
|
||||
└── image_agent — 图片查询助手
|
||||
```
|
||||
|
||||
当用户请求涉及笔记生成、内容整理时,root_agent 会自动委派给 note_agent 处理。
|
||||
当用户出现心智散乱、情绪化或认知混淆时,root_agent 会委派给 critical_awareness_agent 处理。
|
||||
|
||||
## API 集成
|
||||
|
||||
@@ -120,6 +174,21 @@ curl -X POST http://localhost:8000/run \
|
||||
2026-04-06 07:54:59 [adk.agent] INFO - 模型调用完成 | agent=huiyu_agent model=MiniMax-M2.7 latency=11.701s prompt_tokens=78 completion_tokens=31 total_tokens=109
|
||||
```
|
||||
|
||||
### 模型工厂
|
||||
|
||||
通过 `common/models.py` 集中管理模型实例:
|
||||
|
||||
```python
|
||||
from common.models import minimax_model, deepseek_model
|
||||
|
||||
# 直接使用,无需重复创建
|
||||
root_agent = HuiYuBaseAgent(
|
||||
name="my_agent",
|
||||
model=minimax_model, # 或 deepseek_model
|
||||
...
|
||||
)
|
||||
```
|
||||
|
||||
## 新增 Agent
|
||||
|
||||
在项目根目录下创建新的子目录即可:
|
||||
@@ -134,18 +203,11 @@ my_new_agent/
|
||||
|
||||
```python
|
||||
from agent_base.agent_base import HuiYuBaseAgent
|
||||
from google.adk.models.lite_llm import LiteLlm
|
||||
import os
|
||||
|
||||
model = LiteLlm(
|
||||
model=os.getenv("MINIMAX_MODEL"),
|
||||
api_base=os.getenv("MINIMAX_API_BASE"),
|
||||
api_key=os.getenv("MINIMAX_API_KEY"),
|
||||
)
|
||||
from common.models import minimax_model
|
||||
|
||||
root_agent = HuiYuBaseAgent(
|
||||
name="my_agent",
|
||||
model=model,
|
||||
model=minimax_model,
|
||||
description="我的智能体",
|
||||
instruction="你是一个专业的助手。",
|
||||
)
|
||||
@@ -166,3 +228,28 @@ root_agent = HuiYuBaseAgent(
|
||||
```
|
||||
|
||||
重启服务后新 Agent 自动生效。
|
||||
|
||||
## 图片查询 Agent
|
||||
|
||||
`image_agent` 提供图片库查询能力,支持:
|
||||
|
||||
- **AI 语义搜索**:根据自然语言描述搜索图片
|
||||
- **查看详情**:获取图片完整 OCR 内容和元数据
|
||||
- **浏览列表**:分页查看图片库
|
||||
|
||||
需要配置 `IMAGE_API_BASE` 指向图片服务地址。
|
||||
|
||||
## 助教 Agent 体系
|
||||
|
||||
L1-L5 五个层级的助教 Agent 通过 `profiles/` 目录下的 Markdown 文件加载配置:
|
||||
|
||||
- 每个助教独立运行,用户可在 Web UI 下拉菜单手动选择
|
||||
- Profile 文件更新后重启服务即可生效
|
||||
- 助教对外自称"XX助教老师",不使用 L1-L5 编号
|
||||
|
||||
## 开发规范
|
||||
|
||||
1. **模型使用**:统一从 `common.models` 导入,不要重复创建
|
||||
2. **Profile 加载**:使用 `common.profile_loader.load_profile()` 从文件加载
|
||||
3. **工具封装**:复杂逻辑封装为 Tool,通过 `tools` 参数传入 Agent
|
||||
4. **环境变量**:敏感配置放入 `.env`,代码中通过 `os.getenv()` 读取
|
||||
|
||||
Reference in New Issue
Block a user