缺人 缺人 缺人,我一个人实在忙不过来,莫名的感觉自己的时间太少了。有愿意加入的小伙伴可以联系:
邮箱:q19946502@gmail.com
微信:zr19946502
如果有什么想法或者bug也可以通过issue提交,我会尽快回复。
同时认可并感谢 LINUX DO 社区对开源交流与分享氛围的推动。
麻烦大家多多点赞,谢谢。
MyAiChat 致力于实现更为拟真的世界交互API生成平台,为用户提供更沉浸的对话体验。将会持续的向三个方向的发展:
- 通过各类agent实现更为可控的小说/世界生成。
- 将场景中出现的人物节点都生成为独立智能体,实现自主交互,及世界演化。
- 实现多用户,多智能体的群组服务,支持用户之间的合作与互动。 例如跑团、合作完成任务等。智能体可以是dm也可以是扮演用户角色。
实现新的阅读方式,不再是冷冰冰的阅读,不再是单人阅读,而是用户参与到其中,每个角色都有自己的故事线。从传统线性模式改为变成树状结构阅读(你还记得古一老师给浩克讲时间线的故事嘛?)。
MyAiChat 不是单体聊天页,而是一套围绕拟真对话搭建的完整工作台:
chat可以配置智能体,模型等信息。通过接口对接到个人/公司的软件中,或者进行在线对话。main负责模型配置、会话管理、流式聊天编排、后台接口和数据持久化agent负责多智能体推理、结构化记忆、故事梗概与世界图谱写回upload负责图片上传与 MinIO 对象存储admin提供后台管理前端,复用main暴露的/admin-apitools/console-manager提供中文控制台,便于本地一键起停与配置检查
以下能力已在最近几轮提交中进入主路径:
- Clerk 登录鉴权与用户级数据隔离
- OpenAI-compatible / Ollama 模型接入
- SSE 流式输出与事件归一化
- Agent 执行链:前台
numeric -> story_outline -> answerer,后台memory -> world_graph_writeback - 提示词配置外置化,降低 agent 运行期冗余
- 动态结构化记忆与可配置 Schema
- 会话级
story outline生成与持久化 - 智能体世界图谱编辑器,支持时间线、关系类型、节点/边维护与自动布局
- 会话镜像世界图谱查看,聊天过程中可观察状态演进
- 智能体模板导入 / 导出
- 服务端统一处理聊天落库、故事梗概与世界图谱写回
- 文档导入、智能体生成任务、知识向量检索链路(
Qdrant)与图谱存储(Neo4j) file/mysql双存储驱动- 独立上传服务(MinIO)
- 管理后台与中文控制台管理平台
- 优化各类agent的性能,提高对话效率。
- 优化token用量,降低成本。
- 新增按故事线生成内容功能。(现在是按故事线续写)
- 优化整体界面,世界图谱展示方式,手机端适配等。
- 优化token统计。
- 对agent做加减法实现更多可配置的agent。
flowchart LR
A[chat 前端] --> B[main 网关]
H[admin 前端] --> B
B --> C[agent 服务]
B <--> D[(MySQL / File)]
B <--> E[(Neo4j 世界图谱)]
B <--> F[(Qdrant 知识向量)]
G[upload 服务] --> I[(MinIO)]
chat负责对话界面与消息流展示。main负责统一 API、会话落库、流式转发和后台任务调度。agent负责回复生成、记忆整理、故事梗概与图谱写回。upload负责文件上传,底层使用MinIO。
flowchart LR
A[chat 前端] -->|发送消息| B[main:/api/chat/stream]
B -->|调用| C[agent:/runs/stream]
subgraph S[会话 Agent 主链]
C --> D[numeric_agent]
D --> E[story_outline]
E --> F[answerer]
end
subgraph T[会话线程状态]
T1[messages]
T2[structured_memory]
T3[numeric_state]
T4[story_outline]
end
C <--> T
F -->|message_delta / run_completed| B
B -->|SSE| A
B -. 回复结束后 .-> G[agent:/runs/memory]
G -->|更新 structured_memory| T
B -. 回复结束后 .-> H[agent:/runs/world-graph-writeback]
H -->|写回操作| I[(Neo4j / 会话图谱快照)]
- 前台主链:
chat -> main:/api/chat/stream -> agent:/runs/stream -> numeric_agent -> story_outline -> answerer -> main -> chat numeric_agent先更新会话数值状态,供后续节点继续使用。story_outline生成本轮内部故事梗概,不直接展示给用户,但会进入回答上下文。answerer负责流式生成最终回复,main接收后再转成 SSE 返回前端。- 主回复结束后,
main会异步触发memory和world_graph_writeback两条后台链路。 - 会话线程状态会持续保存
messages / structured_memory / numeric_state / story_outline,下一轮对话优先复用。
.
├─ chat/ # Vue 3 + Vite + TS 聊天前端
├─ main/ # Node.js + Express 网关 / API / 后台接口
├─ agent/ # Node.js + Express + LangGraph 智能体服务
├─ upload/ # Node.js 上传服务(MinIO)
├─ admin/ # Vue 3 管理后台前端
├─ docs/ # 补充设计与说明文档
├─ tools/console-manager/ # 中文控制台管理平台
├─ docker-compose.yml
└─ .env.example
- Node.js:
^20.19.0或>=22.12.0 - pnpm:
>=9(推荐用于chat/admin) chat/admin包管理:pnpmmain/agent/upload包管理:npm- Docker / Docker Compose(推荐用于联调)
- 可用的 Clerk 应用
- 若启用知识检索与世界图谱,需准备
Qdrant与Neo4j
- 准备环境变量
cp .env.example .env
cp main/.env.example main/.env
cp chat/.env.example chat/.env
cp agent/.env.example agent/.env
cp upload/.env.example upload/.env
cp admin/.env.example admin/.env- 安装依赖
cd main && npm install
cd ../chat && pnpm install
cd ../agent && npm install
cd ../upload && npm install
cd ../admin && pnpm install- 初始化配置并启动控制台
npm run console:init-config
npm run console控制台支持:
- 一键启动
chat/main/agent/upload/admin - 向导式填写关键
.env - 分组编辑配置并回写到实际文件
- 批量启动、停止、重启服务
- 配置校验与日志摘要查看
cd main && npm install && npm run dev
cd chat && pnpm install && pnpm dev
cd upload && npm install && npm run dev
cd admin && pnpm install && pnpm dev
cd agent && npm install && npm run dev若启用 MySQL 存储,先执行:
cd main && npm run migrate- chat:
http://localhost:5173 - main:
http://127.0.0.1:3000 - agent:
http://127.0.0.1:8000 - upload:
http://127.0.0.1:3001 - admin:
http://127.0.0.1:8081 - admin-api:
http://127.0.0.1:3000/admin-api
docker compose up --build默认会拉起以下服务:
chat:8080main:3000admin:8081upload:3001agent:容器内服务,默认8000,不对宿主机直接暴露mysql:3306minio:9000/9001neo4j:7474/7687qdrant:6333/6334
cd chat
pnpm dev
pnpm type-check
pnpm test:unit --run
pnpm test:e2e
pnpm build
pnpm lint
pnpm spell:checkcd main
npm run dev
npm run migrate
npm run spell:checkcd agent
npm install
npm run devcd upload
npm run devcd admin
pnpm dev
pnpm build
pnpm typecheck
pnpm lintnpm run console
npm run console:start
npm run console:status
npm run console:stop
npm run console:restart
npm run console:install-env
npm run console:wizard-config
npm run console:config-check
npm run console:init-configPORT:main服务端口CHAT_PORT/ADMIN_PORT/UPLOAD_PORT:Docker 暴露端口CLERK_SECRET_KEY/CLERK_PUBLISHABLE_KEY/VITE_CLERK_PUBLISHABLE_KEY:鉴权配置VITE_ADMIN_API_BASE_URL/ADMIN_API_BASE_URL:后台前端与后台接口地址JWT_SECRET/JWT_ALGO:后台接口鉴权
STORAGE_DRIVER:file/mysqlAGENT_SERVICE_URL:main -> agentDB_*:MySQL 连接参数NEO4J_*:世界图谱存储QDRANT_*:知识检索向量库KNOWLEDGE_EMBEDDING_*:知识文档 embedding 模型配置ROBOT_IMPORT_MAX_FILE_SIZE_MB:导入文档大小限制ROBOT_GENERATION_CONCURRENCY:智能体生成任务并发数
AGENT_STORAGE_DRIVER:file/mysqlDB_*:启用 MySQL 时的连接参数AGENT_FILE_STORE_DIR:文件存储模式下的线程状态目录AGENT_DEBUG_LOGS:是否输出 agent 调试日志
MINIO_*:对象存储配置UPLOAD_MAX_FILE_SIZE_MB:上传大小限制
- 模型配置:
/api/model-configs、/api/model-config - 能力与模型探测:
/api/models、/api/capabilities - 会话管理:
/api/sessions - 智能体管理:
/api/robots - 智能体生成任务:
/api/robots/generation-tasks - 世界图谱:
/api/robots/:id/world-graph/* - 流式聊天:
POST /api/chat/stream - 后台接口:
/admin-api/*
- 健康检查:
GET /health - 流式运行:
POST /runs/stream - 结构化记忆:
POST /runs/memory - 世界图谱回写:
POST /runs/world-graph-writeback - 文档总结 / 生成辅助:
POST /runs/document-summary
- 健康检查:
GET /health - 图片上传:
POST /api/upload/image
- 链路排查顺序:
agent /health->main API->chat SSE - 先用
file模式排除数据库与外部依赖问题 - 世界图谱异常优先检查
Neo4j连接和main日志 - 知识检索异常优先检查
Qdrant、KNOWLEDGE_EMBEDDING_*与模型可用性 - 如果后台无法登录,优先确认
main已完成后台种子初始化

