refactor: 重构目录结构,扁平化agent布局

- 将 agents/root_agent、agents/note_agent 移至项目根目录
- 将 base/ 重命名为 agent_base/,避免被ADK误识别为agent
- 移除所有 __init__.py 中的 sys.path.insert hack
- root_agent 添加 note_agent 作为子智能体(sub_agents)
- 更新所有 import 路径
- 更新 README.md 和 API_DOC.md
This commit is contained in:
2026-04-08 02:46:15 +08:00
parent f5e8de559e
commit 7f3176efc7
11 changed files with 102 additions and 111 deletions

77
note_agent/agent.py Normal file
View File

@@ -0,0 +1,77 @@
import os
from agent_base.agent_base import HuiYuBaseAgent
from google.adk.models.lite_llm import LiteLlm
from .note_formatter import NoteFormatter
# ============================================================
# MiniMax 模型配置(从 .env 文件读取)
# ============================================================
MINIMAX_API_KEY = os.getenv("MINIMAX_API_KEY")
MINIMAX_API_BASE = os.getenv("MINIMAX_API_BASE")
MINIMAX_MODEL = os.getenv("MINIMAX_MODEL")
# ============================================================
# 创建 LiteLlm 模型适配器
# ============================================================
model = LiteLlm(
model=MINIMAX_MODEL,
api_base=MINIMAX_API_BASE,
api_key=MINIMAX_API_KEY,
)
# ============================================================
# 笔记格式化器
# ============================================================
_formatter = NoteFormatter()
# ============================================================
# Tool: 生成文本笔记
# ============================================================
def generate_text_note(title: str, content: str) -> str:
"""将文本内容整理为 Markdown 笔记。
Args:
title: 笔记标题
content: 笔记正文内容
"""
return _formatter.format_to_markdown(title=title, text_content=content)
# ============================================================
# Tool: 生成图片笔记
# ============================================================
def generate_image_note(title: str, description: str) -> str:
"""将图片描述整理为 Markdown 笔记。
Args:
title: 笔记标题
description: 图片描述或相关文字说明
"""
return _formatter.format_to_markdown(title=title, text_content=description)
# ============================================================
# 定义 Agent继承 HuiYuBaseAgent
# ============================================================
root_agent = HuiYuBaseAgent(
name="note_agent",
model=model,
description="一个多模态笔记助手,能够将图片、文字等内容转换为结构化的 Markdown 笔记。",
instruction=(
"你是一个专业的笔记助手,帮助用户将各种内容整理成 Markdown 笔记。\n"
"你的能力包括:\n"
"1. 接收用户输入的文字内容,整理成结构化的笔记\n"
"2. 接收用户上传的图片,生成图片描述并整理为笔记\n"
"3. 将混合内容(文字+图片)整合为一份完整的笔记\n\n"
"工作流程:\n"
"- 当用户发送文字时,整理内容并调用 generate_text_note 生成笔记\n"
"- 当用户发送图片时,描述图片内容并调用 generate_image_note 生成笔记\n"
"- 当用户发送混合内容时,整合所有内容后生成笔记\n"
"- 笔记标题由你根据内容自动生成,要简洁准确\n"
"- 生成笔记后,直接将 Markdown 内容输出给用户\n"
"- 回复时使用中文"
),
tools=[generate_text_note, generate_image_note],
)