Files
BaiLongma/README.md

409 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
!\[图片](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 UIsrc/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`|清空沙盒文件|
\---
## 持久化
* **记忆**SQLiteFTS5 全文索引 + 可选向量嵌入
* **对话**:含渠道标记和 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 兼容 API6+ Provider
* **语音**WhisperPython 进程)+ 云端 TTS
* **UI**:原生 Web Components + Brain UI SPA
* **构建**electron-builder + NSIS
\---
## License
[MIT License](./LICENSE)