深入了解 Project N.E.K.O. 项目的整体架构、模块组织和代码结构,为后续开发打下坚实基础。
Project N.E.K.O. 是一个 AI 伙伴项目,采用前后端分离架构:
💡 提示:关于环境搭建、项目克隆和依赖安装,请参考 环境搭建指南。关于 Git 和 GitHub 操作,请参考 Git 与 GitHub 完整指南。
N.E.K.O/
├── launcher.py # 🚀 启动器(统一启动入口)
├── main_server.py # 🌐 主服务器(FastAPI)
├── memory_server.py # 🧠 记忆服务器
├── monitor.py # 📊 监控服务
├── pyproject.toml # Python 项目配置
├── requirements.txt # Python 依赖
├── requirements_monitor.txt # 监控服务依赖
├── uv.lock # UV 锁文件
└── README.MD # 项目说明
brain/)brain/
├── analyzer.py # 对话分析器
├── planner.py # 任务规划器
├── processor.py # 任务处理器
├── computer_use.py # 计算机操作(键鼠控制)
├── mcp_client.py # MCP 协议客户端
├── deduper.py # 去重处理
├── task_executor.py # 任务执行器
├── s2_5/ # S2.5 版本智能体
│ ├── agents/ # 智能体实现
│ ├── core/ # 核心引擎
│ ├── memory/ # 程序记忆
│ └── utils/ # 工具函数
└── s3/ # S3 版本智能体
├── agents/ # 智能体实现
├── bbon/ # 行为叙述器
├── core/ # 核心引擎
├── memory/ # 程序记忆
└── utils/ # 工具函数
main_helper/)main_helper/
├── core.py # 核心对话逻辑
├── cross_server.py # 跨服务器通信
├── omni_realtime_client.py # 实时 API 客户端
├── omni_offline_client.py # 文本 API 客户端
└── tts_helper.py # 🔊 TTS 引擎适配器
memory/)memory/
├── store/ # 记忆数据存储
├── recent.py # 近期记忆
├── router.py # 记忆路由
├── semantic.py # 语义搜索
├── settings.py # 记忆设置
└── timeindex.py # 时间索引
utils/)utils/
├── api_config_loader.py # API 配置加载器
├── audio.py # 音频处理
├── config_manager.py # 配置管理器
├── frontend_utils.py # 前端工具
├── logger_config.py # 日志配置
├── preferences.py # 偏好设置
├── web_scraper.py # 网页爬虫
└── workshop_utils.py # 工坊工具
frontend/)frontend/
├── packages/ # 前端包
│ ├── common/ # 公共模块
│ ├── components/ # React 组件库
│ ├── request/ # 请求客户端(含测试)
│ │ ├── __tests__/ # 单元测试
│ │ └── coverage/ # 测试覆盖率报告
│ └── web-bridge/ # 桥接层(暴露组件到 window)
├── src/ # 源码
│ └── web/ # Web 应用入口
├── scripts/ # 构建脚本
├── vendor/ # 第三方库
├── index.html # HTML 入口
├── package.json # 前端依赖
├── tsconfig.json # TypeScript 配置
└── vite.web.config.ts # Vite 配置
static/)static/
├── icons/ # 图标资源
├── libs/ # 第三方库
│ ├── live2d.min.js # Live2D 库
│ ├── pixi.min.js # PixiJS 库
│ └── i18next.min.js # 国际化库
├── locales/ # 国际化资源
├── mao_pro/ # Live2D 模型
├── *.js # JavaScript 文件
└── *.png # 图片资源
templates/)templates/
├── index.html # 主页面
├── api_key_settings.html # API 密钥设置
├── chara_manager.html # 角色管理
├── l2d_manager.html # Live2D 管理
├── live2d_emotion_manager.html # 表情管理
├── live2d_parameter_editor.html # 参数编辑器
├── memory_browser.html # 记忆浏览器
├── steam_workshop_manager.html # Steam 工坊管理
├── subtitle.html # 字幕页面
├── viewer.html # 查看器
└── voice_clone.html # 语音克隆
config/)config/
├── api_providers.json # API 服务商配置
├── prompts_chara.py # 角色提示词
└── prompts_sys.py # 系统提示词
assets/)assets/
├── demo.mp4 # 演示视频
├── framework.drawio.svg # 架构图
├── icon.ico # 图标
└── neko_logo.jpg # 项目 Logo
docs/)docs/
├── README_en.md # 英文文档
└── README_ja.md # 日文文档
steamworks/)steamworks/
├── interfaces/ # Steam API 接口
│ ├── apps.py # 应用接口
│ ├── friends.py # 好友接口
│ ├── workshop.py # 创意工坊接口
│ └── ... # 其他接口
├── enums.py # 枚举定义
├── exceptions.py # 异常定义
├── methods.py # 方法定义
└── structs.py # 结构体定义
docker/)docker/
├── Dockerfile # Docker 镜像构建
├── docker-compose.yml # Docker Compose 配置
├── entrypoint.sh # 启动脚本
├── env.template # 环境变量模板
├── config/ # Docker 配置
│ └── core_config.json.example
└── README_Docker.md # Docker 文档
specs/)specs/
├── launcher.spec # 启动器打包配置
└── monitor_build.spec # 监控器打包配置
main_server.py - 主服务器memory_server.py - 记忆服务器launcher.py - 启动器💡 提示:关于如何启动服务器,请参考 环境搭建指南 - 启动服务器。
monitor.py - 监控服务位于 brain/ 目录,负责 AI 的”思考”过程:
位于 main_helper/ 目录,处理对话核心逻辑:
位于 memory/ 目录,管理 AI 的记忆:
位于 config/ 目录:
注意:核心配置(API Key 等)通过环境变量或 Docker 配置管理,不再使用
core_config.json文件。
位于 frontend/ 目录,基于 TypeScript + React 的前端架构:
位于 utils/ 目录,提供各种工具函数:
位于 steamworks/ 目录,提供 Steam API 集成:
位于 docker/ 目录,提供容器化部署支持:
用户输入
↓
前端 (React/TypeScript 或 HTML/JS)
↓
main_server.py (FastAPI)
↓
main_helper/core.py
↓
API 客户端 (omni_realtime_client.py / omni_offline_client.py)
↓
LLM API (外部服务)
↓
返回响应
↓
memory_server.py (存储记忆)
↓
前端显示
用户请求复杂任务
↓
main_server.py (FastAPI)
↓
brain/task_executor.py
↓
brain/analyzer.py (分析意图)
↓
brain/planner.py (规划步骤)
↓
brain/processor.py (执行任务)
↓
brain/computer_use.py (如需要,控制计算机)
↓
brain/s2_5/ 或 brain/s3/ (智能体实现)
↓
返回结果
main_server.py
main_helper/core.py
brain/ 目录
frontend/
frontend/packages/components/src/frontend/packages/common/frontend/packages/request/frontend/packages/web-bridge/frontend/src/web/cd frontend/packages/request && npm teststatic/ 和 templates/
templates/static/*.jsstatic/live2d-*.jsconfig/api_providers.json定义可用的 API 服务商:
{
"core": {
"stepfun": { ... },
"qwen": { ... }
}
}
config/prompts_chara.py角色人设提示词,定义 AI 的性格和行为。
config/prompts_sys.py系统提示词,定义 AI 的系统行为。
pyproject.tomlPython 项目配置文件,定义项目元数据和依赖:
💡 提示:关于如何使用
uv管理依赖和pyproject.toml,请参考 环境搭建指南 - 配置 Python 项目环境。
Docker 相关配置位于 docker/ 目录:
位于 specs/ 目录:
在深入了解项目结构之前,建议先阅读:
了解项目结构后,可以开始开发:
遇到问题? 在 GitHub Issues 提交你的问题,我们会及时解答!