- electron/main.cjs: 修复托盘菜单损坏的合并代码(SyntaxError),托盘 3D 意识空间与 ipc 路由改用正确的 backendPort 变量 - 新增 activation.html 激活页(对接 /activate 接口,支持自动识别/8 个服务商) - scripts/package-win.ps1: 打包前切换 better-sqlite3 到 Electron ABI、打包后还原 Node ABI,避免 dev 后端崩溃;内置 npmmirror 工具链镜像 - scripts/gen-icons.ps1 + build/icon.ico: 生成安装包图标(electron-builder 必需) - package.json: build 脚本改用 package-win.ps1(不再依赖 VS 工具链) Co-Authored-By: Claude <noreply@anthropic.com>

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 下载 Bailongma Setup x.x.x.exe 安装,双击启动后自动进入激活页。
从源码运行
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 文件:
LLM\_PROVIDER=minimax
MINIMAX\_API\_KEY=your\_key
打包
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
---