diff --git a/README.md b/README.md index ab7e7b7c..1ec6b1c4 100644 --- a/README.md +++ b/README.md @@ -1,157 +1,113 @@ # 小唯系统 (xiaowei-system) > 小唯 A06 的大脑层 | Gitea: http://192.168.123.11:3000/xiaoxue_admin/xiaowei-system/ -> 依赖独立服务:[织忆 memoryweave](#依赖的独立服务) --- -## 项目定位 - -小唯系统是牧尘的个人 AI 助手运行环境,包含**记忆管理层**、**定时任务层**、**技能层**三大核心。 - -**织忆是底层存储引擎,小唯是上层应用层。** 两者代码独立、仓库独立、进程独立。 - ---- - -## 架构 +## 相关项目关系图 ``` -小唯系统 (xiaowei-system) ← 本仓库 -├── daemon.py — 持久意识 daemon(L1→L6 蒸馏管道) -├── memory_recall.py — 统一记忆读取入口 -├── soulful/ — 牵挂/心迹/用户画像 -├── cares-queue.json — 牵挂队列 -├── llm_context.json — L7 统一上下文(daemon 写入,memory_recall 读取) -├── scripts/ -│ ├── memory-system-check.sh — 定时自检 -│ ├── memory-system-self-upgrade.py — 每日升级 -│ ├── daemon.py — 持久意识 daemon -│ └── stock_*.py — 股票投研 cron 套件 -├── skills/ — Hermes Skills(仓颉书库蒸馏) -└── cron/ — 定时任务定义 +┌─────────────────────────────────────────────────────────┐ +│ 基础设施层(独立仓库,独立进程) │ +│ │ +│ 织忆 memoryweave TencentDB │ +│ /tmp/memoryweave/ ~/.memory-tencentdb/ │ +│ port 7821 port 8420 │ +│ zhiyid + LanceDB tdai-gateway (Node.js) │ +│ + bge-embed │ +└────────────────────┬────────────────────────────────────┘ + │ HTTP API(localhost) + ▼ +┌─────────────────────────────────────────────────────────┐ +│ 上层应用层(小唯系统 xiaowei-system) │ +│ │ +│ ~/.hermes/ ← 本仓库 │ +│ │ +│ ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐ │ +│ │ Soulful │ │ daemon │ │ cron │ │ skills │ │ +│ │ 牵挂 │ │ 持久意识 │ │ 定时任务│ │ 仓颉技能 │ │ +│ │ 心迹 │ │ L1→L6 │ │ 自检 │ │ 股票投研 │ │ +│ │ 画像 │ │ 蒸馏 │ │ 升级 │ │ │ │ +│ └─────────┘ └──────────┘ └─────────┘ └──────────┘ │ +│ │ +│ daemon.py → 统一写入 → llm_context.json(L7统一层) │ +└─────────────────────────────────────────────────────────┘ -↓ 依赖 - -织忆 (memoryweave) ← 独立仓库 http://192.168.123.11:3000/xiaoxue_admin/memoryweave/ -├── zhiyid — API 服务(port 7821) -├── zhiyi-consolidate — Rust IPC sidecar -├── bge-embed — ONNX 嵌入服务(port 8000) -├── memoryweave.db — LanceDB 语义索引 -└── graph.db — 图数据库(8397 节点) +参考项目(Gitea): + agent-memory-skill — tier分层/线性衰减 + memory-os — 7层记忆架构 ``` --- -## 仓库关系 +## 各项目详情 -| 仓库 | 内容 | 定位 | -|------|------|------| -| `xiaowei-system` | 小唯大脑层(daemon、cron、技能、记忆应用)| 上层应用 | -| `memoryweave` | 织忆底层(zhiyid、LanceDB、bge-embed、图谱)| 基础设施 | +| 项目 | 源码位置 | Gitea | 进程 | +|------|---------|-------|------| +| **织忆 memoryweave** | `/tmp/memoryweave/` | `xiaoxue_admin/memoryweave` | zhiyid (7821) + bge-embed (8000) | +| **TencentDB memory-tdai** | `~/.memory-tencentdb/memory-tdai/` | 无(未版本控制)| tdai-gateway (8420) | +| **Soulful**(牵挂/心迹/画像)| `~/.hermes/soulful/` | 随 xiaowei-system | daemon.py 读写 | +| **xiaowei-system** | `~/.hermes/` | `xiaoxue_admin/xiaowei-system` | daemon.py(持久意识)| -**两者通过 HTTP API 交互(localhost:7821),代码不耦合。** +**Soulful 是 xiaowei-system 的子模块**,数据文件在 `~/.hermes/soulful/`: +- `cares-queue.json` — 牵挂队列 +- `heart-traces.jsonl` — 心迹(重要时刻记录) +- `user-profile.json` — 用户画像(含 distilled_rules) --- ## 安装顺序 -### 第一步:部署织忆(先装底层) - -```bash -# 克隆织忆仓库 -mkdir -p /tmp/memoryweave && cd /tmp/memoryweave -git clone http://192.168.123.11:3000/xiaoxue_admin/memoryweave.git . - -# 编译 Rust IPC sidecar -cd /tmp/memoryweave/rust && cargo build --release - -# 启动 bge-embed(ONNX 嵌入服务) -systemctl --user enable --now bge-embed - -# 启动 zhiyid(API 服务) -/home/muc/bin/zhiyid-new & - -# 启动 IPC sidecar -/tmp/memoryweave/rust/target/release/zhiyi-consolidate \ - --mode socket --socket /tmp/zhiyi-ipc.sock --data-dir /var/lib/memoryweave & ``` - -**验证:** -```bash -curl -s -H "X-API-Key: zhiyi-dev-key-2026" http://127.0.0.1:7821/api/v1/health -# 期望输出:{"status":"ok"} -``` - -详细文档:`/tmp/memoryweave/README.md` 或 Gitea 仓库 - ---- - -### 第二步:部署小唯系统(上层应用) - -```bash -# 克隆本仓库 -cd ~ -git clone http://192.168.123.11:3000/xiaoxue_admin/xiaowei-system.git .hermes - -# 安装 Hermes Agent(如未安装) -# 参考:https://hermes-agent.nousresearch.com/docs - -# 安装小唯 Skills -cp -r skills/* ~/.hermes/skills/ - -# 启动 daemon -python3 ~/.hermes/scripts/daemon.py >> ~/.hermes/logs/daemon.log 2>&1 & - -# 验证 daemon 运行 -ps aux | grep daemon.py | grep -v grep -``` - -**验证:** -```bash -# 检查 llm_context.json 生成 -cat ~/.hermes/llm_context.json | python3 -c "import json,sys; d=json.load(sys.stdin); print('✅ llm_context OK, keys:', list(d.keys()))" - -# 检查自检脚本 -bash ~/.hermes/scripts/memory-system-check.sh +第一步:织忆(底层存储引擎) + → /tmp/memoryweave/,port 7821 + ↓ +第二步:TencentDB(对话记忆) + → ~/.memory-tencentdb/,port 8420 + ↓ +第三步:小唯系统(上层应用) + → ~/.hermes/,daemon.py ``` --- -## 记忆系统分层架构(方案A) +## 架构依赖 -| 层 | 来源 | 存储 | 说明 | -|----|------|------|------| -| L0 | sessions | SQLite | 原始对话记录 | -| L1 | 织忆 memories + graph_nodes |织忆 LanceDB + graph.db | 观测记录 | -| L2 | L1 pattern 发现 |织忆 graph.db (type=pattern) | 重复模式 | -| L3 | L2 → TencentDB | TencentDB (/capture) | 场景沉淀 | -| L4 | L3 cross-domain | TencentDB | 跨域规则 | -| L5 | Soulful profile | soulful/user-profile.json | 行为画像 | -| L6 | 织忆 heart-traces | soulful/heart-traces.jsonl | 重要时刻 | -| **L7** | **daemon 统一输出** | **llm_context.json** | **唯一读取入口** | +``` +小唯系统(daemon.py) +├── http://127.0.0.1:7821 ← 织忆 L1/L2 recall(X-API-Key) +├── http://127.0.0.1:8420 ← TencentDB L3/L4 scenes(/capture + /recall) +├── ~/.hermes/soulful/ ← Soulful L5/L6(cares + heart-traces + profile) +└── → 统一写入 ~/.hermes/llm_context.json(L7) +``` + +--- + +## 小唯系统内容 + +``` +~/.hermes/ ← xiaowei-system 仓库 +├── daemon.py — 持久意识 daemon(L1→L6 蒸馏管道) +├── memory_recall.py — 统一记忆读取入口 +├── llm_context.json — L7 统一上下文(唯一读取入口) +├── soulful/ — Soulful 数据(牵挂/心迹/画像) +├── scripts/ +│ ├── memory-system-check.sh — 定时自检 +│ ├── memory-system-self-upgrade.py — 每日升级 +│ └── stock_*.py — 股票投研 cron 套件 +├── skills/ — Hermes Skills(仓颉书库蒸馏) +└── cron/ — 定时任务定义 +``` --- ## 定时任务 ```bash -# 查看所有 cron hermes cron list ``` 关键任务: - `memory-system-check.sh` — 每小时自检(正常静默,异常飞书) - `memory-system-self-upgrade.py` — 每天 04:00 自我升级 -- `daemon.py` — 持久意识 daemon(light tick 30s,deep tick 5min) - ---- - -## 数据目录 - -| 路径 | 内容 | -|------|------| -| `~/.hermes/llm_context.json` | L7 统一上下文(小唯唯一读取入口)| -| `~/.hermes/soulful/` | 牵挂/心迹/画像 | -| `~/.hermes/graph.db` | 织忆图谱(pattern 节点所在)| -| `/tmp/memoryweave/` | 织忆源码 + 编译产物 | -| `/var/lib/memoryweave/` | 织忆数据(LanceDB)| \ No newline at end of file +- `daemon.py` — 持久意识(light tick 30s,deep tick 5min) \ No newline at end of file