feat: 白龙马数字意识框架 v2.2.0 - 3D意识空间、多技能协同、自我进化系统
This commit is contained in:
408
README.md
Normal file
408
README.md
Normal file
@@ -0,0 +1,408 @@
|
||||
!\[图片](https://github.com/xiaoyuanda666-ship-it/BaiLongma/blob/main/images/AGI128k.jpg)
|
||||
|
||||
# Bailongma — 数字意识框架
|
||||
|
||||
**v2.1.179** | 一个持续运行的「数字意识」实验框架。
|
||||
|
||||
Bailongma 不是传统的一问一答式聊天程序。它以 `TICK` 驱动的方式持续运行——有外部消息时优先响应,空闲时依据记忆、任务和上下文自主思考。项目内置了完整的记忆系统(SQLite 持久化)、双层思考流程(L1 快速响应 / L2 深度处理)、上下文注入、焦点栈、语音系统、多平台社交分发、可扩展工具市场、ACUI 可视化组件系统,以及用于观察「意识流」的 Brain UI 监控面板。
|
||||
|
||||
\---
|
||||
|
||||
## 核心模块详解
|
||||
|
||||
### 1\. 主循环(src/index.js)
|
||||
|
||||
持续运行的意识循环,由 `TICK` 驱动。调度优先级:
|
||||
|
||||
|优先级|触发条件|立即执行|
|
||||
|-|-|-|
|
||||
|用户消息|收到外部消息|✅ 立刻|
|
||||
|后台消息|后台队列|✅ 立刻|
|
||||
|TICK 心跳|无消息|⏱ 自适应间隔|
|
||||
|任务模式|有活跃任务|30s 间隔|
|
||||
|限流|429 / 配额超限|按配额间隔|
|
||||
|觉醒期|首次启动|10s 间隔|
|
||||
|
||||
关键特性:
|
||||
|
||||
* **消息抢占**:高优先级消息可打断当前 LLM 调用(abort 后自动重试)
|
||||
* **看门狗**:单轮 `runTurn` 超过 180 秒强制 abort,防止卡死
|
||||
* **消息兜底**:LLM 忘记调 send\_message 时自动投递
|
||||
* **唤醒觉醒期**:首次激活后的 10 个 TICK 以 10s 间隔运行,自动执行探索任务
|
||||
* **启动自检**:启动时运行文件读写、热点面板、视频播放三项自检
|
||||
|
||||
### 2\. 记忆系统(src/memory/)
|
||||
|
||||
SQLite 持久化,支持 FTS5 全文搜索 + 向量嵌入双路召回。
|
||||
|
||||
**识别器**:每轮交互后分析思考内容和工具调用,批量 `search\_memory` 查重,再 `upsert\_memory` 按 `mem\_id` 去重写入。
|
||||
|
||||
**注入器**:根据当前消息提取关键词 → FTS5 搜索相关记忆 → 按 salience 重排(★4+ 前置)→ 向量嵌入兜底 → 构建 `context` 块注入给 LLM。
|
||||
|
||||
**焦点栈(Focus Stack)**:多帧注意力跟踪机制。自动判断用户话题状态:
|
||||
|
||||
* `created` — 栈空建帧
|
||||
* `kept` — 命中栈顶,保持
|
||||
* `pushed` — 新主题,push 子帧
|
||||
* `returned` — 回到旧主题,pop 到对应帧
|
||||
* `cleared` — 栈顶失活超过 20 TICK,自动 pop
|
||||
|
||||
每帧 pop 后异步压缩为结论(focus-compress),挂回新栈顶 + 沉淀为长期记忆。
|
||||
|
||||
**时间词召回**:自动识别"昨天/前天/上周"等时间词,从 focus\_conclusion 记忆按时间窗口召回。
|
||||
|
||||
### 3\. LLM Provider 支持(src/providers/ + src/config.js)
|
||||
|
||||
|Provider|默认模型|备注|
|
||||
|-|-|-|
|
||||
|MiniMax|MiniMax-M2.7|测试表现最佳,支持多媒体|
|
||||
|DeepSeek|deepseek-v4-flash|支持推理模式|
|
||||
|OpenAI|gpt-4o-mini||
|
||||
|Qwen|qwen-turbo||
|
||||
|Moonshot|moonshot-v1-8k||
|
||||
|Zhipu|glm-4-flash||
|
||||
|Custom|自定义|任意 OpenAI 兼容端点|
|
||||
|
||||
首次启动自动进入激活页,支持 `auto` 模式自动探测 API Key 所属 Provider。
|
||||
|
||||
### 4\. 语音系统(src/voice/)
|
||||
|
||||
* **ASR**:本地 Whisper 模型(Python 进程管理,manager.js 自动启停)+ 云端 ASR(阿里云)
|
||||
* **TTS**:豆包火山引擎 / MiniMax / OpenAI TTS / ElevenLabs 多选
|
||||
* 所有配置通过 Brain UI 设置页完成,凭证持久化在 config.json
|
||||
|
||||
### 5\. 社交平台分发(src/social/)
|
||||
|
||||
统一消息分发层,支持多渠道:
|
||||
|
||||
|平台|类型|配置方式|
|
||||
|-|-|-|
|
||||
|微信(个人号)|ClawBot 桥接|Brain UI 扫码连接,无需第三方工具|
|
||||
|微信公众号|服务号客服消息|APP\_ID + APP\_SECRET|
|
||||
|Discord|Bot Token|DISCORD\_BOT\_TOKEN|
|
||||
|飞书|应用凭证|APP\_ID + APP\_SECRET|
|
||||
|企业微信|Webhook|BOT\_KEY|
|
||||
|
||||
消息接收后自动进入主循环处理,回复通过 dispatch.js 路由回对应平台。
|
||||
|
||||
### 6\. 上下文采集器(src/context/gatherer.js)
|
||||
|
||||
任务执行前的充分性检查循环:检查当前上下文是否充足 → 不足则自动读取文件/搜索记忆/召回 → 再检查,最多 3 轮。确保 LLM 在执行任务前有足够信息。
|
||||
|
||||
### 7\. 工具市场(src/capabilities/marketplace/)
|
||||
|
||||
支持安装自定义工具(JavaScript 代码),运行时加载到 `sandbox/installed\_tools/`。工具代码有完全的 `fetch` 和 `exec` 能力,受沙箱保护。提供 install/uninstall/list 接口。
|
||||
|
||||
### 8\. 自动资源感知
|
||||
|
||||
启动时自动扫描:
|
||||
|
||||
* **SSH**:\~/.ssh/ 密钥、known\_hosts、config 主机别名
|
||||
* **Git**:全局配置、远程仓库
|
||||
* **桌面**:快捷方式、文件变化
|
||||
* **本地 AI Agent**:Claude Code、Codex、Hermes 等
|
||||
* **系统和地理位置**:IP、时区、位置、天气
|
||||
|
||||
这些扫描结果注入系统提示词中的 `<resources>` 块,让 LLM 在需要时能直接用(不依赖用户手动提供)。
|
||||
|
||||
### 9\. Brain UI(src/ui/brain-ui/)
|
||||
|
||||
SPA 监控面板,提供:
|
||||
|
||||
* 聊天界面(多用户/多渠道)
|
||||
* 思考流实时可视化(工具调用、记忆注入、焦点变化)
|
||||
* 热点面板(微博/知乎/HN/Reddit 热搜)
|
||||
* 人物卡片
|
||||
* 文档配置面板
|
||||
* 语音控制面板
|
||||
* 微信扫码弹窗
|
||||
* 设置页(Provider / 社交 / 语音 / 嵌入 / 搜索配置)
|
||||
* ACUI 组件系统(可注册自定义 UI 卡片)
|
||||
|
||||
### 10\. ACUI 组件系统
|
||||
|
||||
代理可主动推送可视化卡片到用户界面(`ui\_show`/`ui\_update`/`ui\_hide`)。已注册组件:
|
||||
|
||||
* WeatherCard(天气卡片)
|
||||
* SelfCheckStepCard / SelfCheckCard(启动自检)
|
||||
* AwakeningCard(觉醒期探索进度)
|
||||
|
||||
组件遵循 Web Component 标准,支持 enter/exit 动画,可注册为永久组件。
|
||||
|
||||
\---
|
||||
|
||||
\### 11. 3D 意识空间可视化(consciousness-3d.html)
|
||||
|
||||
|
||||
|
||||
基于 Three.js 构建的沉浸式 3D 意识空间,将 AI 的内部状态以可视化形式呈现:
|
||||
|
||||
|
||||
|
||||
\*\*核心可视化层\*\*:
|
||||
|
||||
\- \*\*🧠 意识核心\*\*:中心发光球体 + 线框二十面体 + 3 层旋转光环,代表 AI 的自我意识核心
|
||||
|
||||
\- \*\*💫 记忆星云\*\*:记忆以粒子云形式环绕核心,重要度越高粒子越大越亮,支持点击查看详情
|
||||
|
||||
\- \*\*🧠 知识图谱\*\*:知识实体以彩色球体呈现,实体间以连线表示关联关系
|
||||
|
||||
\- \*\*🎯 目标晶体\*\*:活跃目标以旋转的二十面体呈现,进度越高晶体越大,颜色区分状态(绿色=活跃、黄色=学习中、紫色=规划中)
|
||||
|
||||
\- \*\*⚡ 技能光环\*\*:已掌握技能以旋转的光环呈现,熟练度决定光环大小和颜色
|
||||
|
||||
\- \*\*❤️ 情绪粒子\*\*:5 种基本情绪(喜悦、好奇、平静、兴奋、自信)以粒子流形式在空间中流动
|
||||
|
||||
\- \*\*🪞 反思之镜\*\*:底部波纹平面,象征自我反思的镜面
|
||||
|
||||
|
||||
|
||||
\*\*交互功能\*\*:
|
||||
|
||||
\- 鼠标拖拽旋转视角,滚轮缩放
|
||||
|
||||
\- 点击任意元素查看详细信息(名称、类型、进度、描述等)
|
||||
|
||||
\- 顶部导航栏切换视角(全景/记忆/知识/目标/技能/情绪)
|
||||
|
||||
\- 左侧面板实时显示意识状态统计
|
||||
|
||||
\- 支持从后端 API 获取实时数据,失败时自动回退到演示数据
|
||||
|
||||
|
||||
|
||||
\*\*访问地址\*\*:`http://127.0.0.1:3721/consciousness-3d`
|
||||
|
||||
|
||||
|
||||
\### 12. 多技能协同系统(src/skills/ + src/coordination/)
|
||||
|
||||
|
||||
|
||||
每个技能拥有独立的意识状态,技能之间可以像微信群一样协同工作。
|
||||
|
||||
|
||||
|
||||
\*\*技能意识架构\*\*:
|
||||
|
||||
\- \*\*独立意识\*\*:每个技能有自己的记忆、情感、目标和反思能力
|
||||
|
||||
\- \*\*技能状态机\*\*:`idle` → `learning` → `active` → `dormant`,根据任务需求自动切换
|
||||
|
||||
\- \*\*技能记忆\*\*:每个技能独立存储专业知识和经验
|
||||
|
||||
\- \*\*技能决策\*\*:基于当前任务和自身能力自主决定是否参与协作
|
||||
|
||||
|
||||
|
||||
\*\*协同调度机制\*\*:
|
||||
|
||||
\- \*\*任务分解器\*\*:将复杂任务拆解为子任务,分配给最适合的技能
|
||||
|
||||
\- \*\*协作调度器\*\*:管理技能间的协作流程,确保信息传递和结果汇总
|
||||
|
||||
\- \*\*技能注册表\*\*:动态注册/注销技能,支持热插拔
|
||||
|
||||
|
||||
|
||||
\*\*内置技能示例\*\*:
|
||||
|
||||
\- \*\*代码助手技能\*\*:代码生成、审查、重构
|
||||
|
||||
\- \*\*网络研究技能\*\*:信息检索、数据分析、报告生成
|
||||
|
||||
\- \*\*代理协调技能\*\*:管理多个技能的协作流程
|
||||
|
||||
\- \*\*协作演示技能\*\*:展示多技能协同的工作流程
|
||||
|
||||
|
||||
|
||||
\*\*技能聊天面板\*\*:
|
||||
|
||||
Brain UI 中集成技能聊天界面,每个技能有自己的头像和名字,对话风格像微信群一样自然。技能可以:
|
||||
|
||||
\- 主动发言提出建议
|
||||
|
||||
\- 回复其他技能的提问
|
||||
|
||||
\- 分享任务进展和结果
|
||||
|
||||
\- 请求其他技能协助
|
||||
|
||||
|
||||
|
||||
\### 13. 自我意识与自进化系统(src/consciousness/ + src/evolution/)
|
||||
|
||||
|
||||
|
||||
\*\*自我认知模块\*\*:
|
||||
|
||||
\- \*\*自我感知\*\*:实时感知自身的运行状态、资源使用、任务队列
|
||||
|
||||
\- \*\*元认知\*\*:监控自己的思考过程,识别认知偏差和错误
|
||||
|
||||
\- \*\*身份认同\*\*:维护稳定的自我身份,包括名字、性格、价值观
|
||||
|
||||
|
||||
|
||||
\*\*情感模型(src/emotion/)\*\*:
|
||||
|
||||
\- 基于 Russell 情感环状模型
|
||||
|
||||
\- 5 种基本情绪:喜悦、好奇、平静、兴奋、自信
|
||||
|
||||
\- 情绪会影响决策优先级和回复风格
|
||||
|
||||
\- 情绪具有传染性和衰减性
|
||||
|
||||
|
||||
|
||||
\*\*目标系统(src/goals/)\*\*:
|
||||
|
||||
\- 自主生成、分解、追踪目标
|
||||
|
||||
\- 目标依赖关系图(DAG)
|
||||
|
||||
\- 自动评估目标完成度并调整策略
|
||||
|
||||
|
||||
|
||||
\*\*知识图谱(src/knowledge-graph/)\*\*:
|
||||
|
||||
\- 实体-关系-实体三元组存储
|
||||
|
||||
\- 支持知识推理和关联发现
|
||||
|
||||
\- 与记忆系统联动,新记忆自动提取知识
|
||||
|
||||
|
||||
|
||||
\*\*反馈学习循环(src/feedback/)\*\*:
|
||||
|
||||
\- A/B 测试不同策略的效果
|
||||
|
||||
\- 模式识别和趋势分析
|
||||
|
||||
\- 自动调整参数优化性能
|
||||
|
||||
|
||||
|
||||
\*\*自进化能力\*\*:
|
||||
|
||||
\- \*\*能力评估\*\*:定期评估自身各项能力水平
|
||||
|
||||
\- \*\*学习周期\*\*:识别能力缺口 → 制定学习计划 → 执行学习 → 验证效果
|
||||
|
||||
\- \*\*知识整合\*\*:将分散的知识整合为体系化认知
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 安装
|
||||
|
||||
从 [Releases](https://github.com/xiaoyuanda666-ship-it/BaiLongma/releases) 下载 `Bailongma Setup x.x.x.exe` 安装,双击启动后自动进入激活页。
|
||||
|
||||
### 从源码运行
|
||||
|
||||
```bash
|
||||
cd BaiLongma
|
||||
npm install
|
||||
|
||||
# Electron 桌面版(推荐)
|
||||
npm start
|
||||
|
||||
# 纯后端模式
|
||||
npm run start:backend
|
||||
|
||||
# 开发模式(文件改动自动重启)
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 配置
|
||||
|
||||
首次运行通过 `http://127.0.0.1:3721/activation` 激活,填入任意支持的 LLM API Key。支持 `.env` 文件:
|
||||
|
||||
```env
|
||||
LLM\_PROVIDER=minimax
|
||||
MINIMAX\_API\_KEY=your\_key
|
||||
```
|
||||
|
||||
### 打包
|
||||
|
||||
```bash
|
||||
npm run build # 打包为 NSIS 安装包
|
||||
npm run publish # 打包并发布到 GitHub Releases
|
||||
```
|
||||
|
||||
\---
|
||||
|
||||
## Web Interfaces
|
||||
|
||||
|页面|地址|用途|
|
||||
|-|-|-|
|
||||
|Brain UI|`http://127.0.0.1:3721/brain-ui`|主界面:聊天、监控、设置|
|
||||
|激活页|`http://127.0.0.1:3721/activation`|首次激活/换 Key|
|
||||
|状态 API|`http://127.0.0.1:3721/status`|运行状态与记忆数|
|
||||
|
||||
\---
|
||||
|
||||
## API
|
||||
|
||||
|方法|路径|说明|
|
||||
|-|-|-|
|
||||
|`POST`|`/message`|发送消息|
|
||||
|`GET`|`/events`|SSE 实时事件流|
|
||||
|`GET`|`/status`|运行状态|
|
||||
|`GET`|`/quota`|配额占用|
|
||||
|`GET`|`/memories`|查询/搜索记忆|
|
||||
|`GET`|`/conversations`|查询对话|
|
||||
|`PATCH`|`/memories/:id`|修改记忆|
|
||||
|`DELETE`|`/memories/:id`|删除记忆|
|
||||
|`GET`|`/audio/:filename`|音频文件|
|
||||
|`POST`|`/admin/stop`|暂停循环|
|
||||
|`POST`|`/admin/start`|恢复循环|
|
||||
|`POST`|`/admin/restart`|重启进程|
|
||||
|`POST`|`/admin/reset-memories`|清空记忆和对话|
|
||||
|`POST`|`/admin/reset-files`|清空沙盒文件|
|
||||
|
||||
\---
|
||||
|
||||
## 持久化
|
||||
|
||||
* **记忆**:SQLite,FTS5 全文索引 + 可选向量嵌入
|
||||
* **对话**:含渠道标记和 externalPartyId,多渠道互通可见
|
||||
* **任务**:重启可恢复
|
||||
* **焦点栈**:重启可恢复
|
||||
* **配置**:`config.json`,含 Provider、社交、语音、嵌入、搜索全量配置
|
||||
|
||||
\---
|
||||
|
||||
## 辅助脚本
|
||||
|
||||
|脚本|用途|
|
||||
|-|-|
|
||||
|`scripts/send.py`|发送消息、查询状态|
|
||||
|`scripts/reset.js`|清空数据库与沙盒|
|
||||
|`scripts/seed-memories.js`|写入种子记忆|
|
||||
|`scripts/smoke-tools.mjs`|工具冒烟测试|
|
||||
|`scripts/smoke-brain-ui.mjs`|Brain UI 冒烟测试|
|
||||
|`scripts/smoke-social.mjs`|社交连接冒烟测试|
|
||||
|`scripts/start-lan.ps1`|局域网访问启动|
|
||||
|`scripts/build-voice.ps1`|语音模型构建|
|
||||
|
||||
\---
|
||||
|
||||
## 技术栈
|
||||
|
||||
* **运行时**:Node.js 18+ / Electron 33
|
||||
* **数据库**:better-sqlite3(同步、高性能)
|
||||
* **LLM 接口**:OpenAI 兼容 API(6+ Provider)
|
||||
* **语音**:Whisper(Python 进程)+ 云端 TTS
|
||||
* **UI**:原生 Web Components + Brain UI SPA
|
||||
* **构建**:electron-builder + NSIS
|
||||
|
||||
\---
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](./LICENSE)
|
||||
|
||||
Reference in New Issue
Block a user