Live2D 助手 是一个多终端(Web/Electron 桌面)的助手平台,集成了 Live2D 虚拟形象、AI 智能对话以及插件工具调用能力。该项目支持自定义 Live2D 模型、接入 AI 大语言模型(LLM)、TTS 语音合成,并通过 MCP 多工具服务器扩展,适用于动漫互动、AI 助手、智能桌面等多种场景。
├── live2d-assistant-fe/ # 前端项目(Vue3 + Vite)
│ ├── src/ # 前端源码
│ │ ├── components/ # Vue 组件
│ │ ├── pages/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── types/ # TypeScript 类型定义
│ │ └── utils/ # 工具函数
│ ├── public/ # 静态资源
│ ├── package.json # 前端依赖配置
│ └── vite.config.ts # Vite 构建配置
├── live2/assistant-server/ # 后端项目(Python FastAPI)
│ ├── live2d_server/ # 主要服务代码
│ │ ├── server.py # FastAPI 服务入口
│ │ ├── client.py # MCP 客户端
│ │ ├── router.py # API 路由
│ │ ├── rag.py # RAG 检索功能
│ │ ├── agent/ # AI 代理模块
│ │ ├── search/ # 搜索功能
│ │ └── tools/ # 工具集合
│ ├── main.py # 后端启动入口
│ ├── pyproject.toml # Python 项目配置
│ └── utils/ # 工具模块
├── electron-live2d/ # Electron 桌面端
│ ├── src/ # Electron 主进程代码
│ └── ...
├── mcp_servers/ # MCP 服务器插件
│ └── ...
├── Makefile # 构建脚本
└── README.md # 项目说明
cd live2d-assistant-fe
# 安装依赖
npm install
# 启动开发环境
npm run dev
# 构建生产包
npm run build
cd electron-live2d
npm install
# 启动 Electron 桌面端
npm run start
# 打包桌面应用
npm run package
cd live2d-assistant-server
# 推荐使用 uv
uv venv
uv sync
fastapi run main.py --host 0.0.0.0 --port 8000 --static_path ../live2d-assistant-fe/dist
MCP 示例配置如下:
[
{
"name": "music_player",
"transport": "sse",
"url": "http://127.0.0.1:8000/erp-mcp/sse"
}
]
项目基于 LangGraph 的多代理架构,支持动态创建和管理多个专业 AI 助手,使它们能够协作完成复杂任务。
每个代理通过 AgentConfig 进行配置:
{
"name": "research_assistant", # 代理名称
"description": "专业的研究助手,擅长信息收集和分析",
"tools": [ # 工具配置
{
"source": "mcp", # 工具来源:mcp/local_file/python/prebuild
"mcp_server": "web_search" # 对应的 MCP 服务器
},
{
"source": "prebuild", # 预构建工具
"prebuild_name": "file_manager" # 工具名称
}
],
"prompt": "你是一个专业的研究助手...", # 代理专属提示词
"hands_off": ["data_analyst", "writer"] # 可转交的其他代理
}
支持多种工具来源:
| 工具类型 | 描述 | 配置示例 |
|---|---|---|
| MCP | 通过 MCP 协议获取工具 | {"source": "mcp", "mcp_server": "web_search"} |
| 本地文件 | 从 Python 文件加载函数 | {"source": "local_file", "local_file_path": "./tools/custom.py"} |
| Python 代码 | 直接执行 Python 代码 | {"source": "python", "python_code": "def my_tool(): ..." |
| 预构建 | 使用内置工具 | {"source": "prebuild", "prebuild_name": "calculator"} |
graph TD
A[用户输入] --> B[决策者]
B --> C{任务规划}
C -->|简单对话| D[直接回答]
C -->|复杂任务| E[分配给专业代理]
E --> F[代理执行]
F -->|需要协作| G[转交给其他代理]
F -->|需要信息| H[请求用户输入]
F -->|任务完成| I[返回决策者]
G --> F
H --> F
I --> B
B --> J[任务完成]
research_config = AgentConfig(
name="researcher",
description="负责信息收集和研究",
tools=[
ToolResouce(source="mcp", mcp_server="web_search"),
ToolResouce(source="prebuild", prebuild_name="file_reader")
],
prompt="你是一个专业的研究助手,擅长收集和分析信息。",
hands_off=["analyst", "writer"]
)
agent_system = Agent(
model_name="qwen2.5",
llm=ChatOpenAI(...),
agents=[research_config, analyst_config, writer_config],
mcp_client=mcp_client
)
graph = await agent_system.build()
# 用户输入任务
result = await graph.ainvoke({
"messages": [HumanMessage(content="帮我研究一下 AI 的最新发展")],
"thread_id": "session_001"
})
支持任务中断与恢复机制:
request_user_input 工具请求更多信息。hands_off 合理配置代理协作关系。通过这个多代理系统,可以构建一个强大且专业的 AI 助手团队,显著提高复杂任务的处理能力和质量。
全部
MIT