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:
77
note_agent/agent.py
Normal file
77
note_agent/agent.py
Normal 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],
|
||||
)
|
||||
Reference in New Issue
Block a user