# test **Repository Path**: jacky_ysu/testtest ## Basic Information - **Project Name**: test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-24 - **Last Updated**: 2026-10-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Hermes 项目记忆库(集中存放) > **位置**: `E:\git\hermes-memory\` > **用途**: 所有项目的持久记忆 / 踩坑记录 / 运维约定 + **Hermes 全局记忆**,统一放这里。 > **原则**: > - **独立于项目目录** —— 项目被删除/移动/改名,记忆不丢失。 > - **集中备份** —— 只需整体备份本目录(`E:\git\hermes-memory\`)即可。 > - 全局 Hermes 记忆文件里**只保留每个项目的一行摘要 + 本索引链接**,不放长条目。 ## 目录结构 ``` E:\git\hermes-memory\ ├─ README.md 本索引/说明 ├─ HOST.md ★ 各主机的共享内容落点登记表(跨主机引导依据) ├─ global\ ★ Hermes 全局记忆(实际存储位置) │ ├─ MEMORY.md (Hermes 笔记记忆) │ └─ USER.md (用户画像) ├─ skills\ ★ 共享技能库(经 skills.external_dirs 挂载) │ └─ \\SKILL.md ... ├─ scripts\ ★ 引导/自动同步/脱敏脚本 │ ├─ link_memory.py(.bat/.sh) 跨主机引导: 建记忆软链 + 写 external_dirs │ ├─ auto_push.py 自动 commit+push 到 Gitee(cron 调用) │ ├─ make_clean_config.py 生成脱敏 config.yaml.clean │ ├─ onboard_newhost.py ★ 新主机已有旧内容时: 自动上云对齐(合并旧记忆/技能/项目) │ └─ ... ├─ SOUL.md 共享人格(可选, 各机默认一致) ├─ config\ ★ 共享配置 │ └─ config.yaml.clean 脱敏配置示例(base_url/秘钥已占位) ├─ hermes-remote-hub.md 项目记忆: Hermes 远程通信 ├─ ruoyi-performance-appraisal.md 项目记忆: RuoYi 绩效考核 ├─ university-finance-audit.md 项目记忆: 高校财务审查 └─ server-monitor.md 项目记忆: 服务监控 ``` ## ★ 多主机共享机制(云端 + 软链) 本仓库是 **私有 Gitee 云端库**。各主机的 Hermes 通过**一致的目录骨架 + 软链/外部目录**共享同一套记忆与技能: - **记忆**: `MEMORY.md`/`USER.md` 用软链接指向本库 `global\`(见下节)。 - **技能**: 本库 `skills\` 作为共享技能源, 通过 Hermes 的 `skills.external_dirs` 挂载 (Hermes 视为"外部只读维护"技能, 各主机看到同一套)。 - **主机标识**: `HOST.md` 登记每台主机名 + 它的记忆/技能在本机的实际路径, **不同主机的本地路径可以不同**, 由 `scripts/link_memory.py` 按 `hostname` 自动匹配落地。 - **cron 不入云**: cron 任务/jobs/executions 留在各机 Hermes 私有目录, 不进本库。 ### 首次接入新主机(跨主机引导) > 已实测(模拟全新 Linux 主机): clone → 登记 HOST.md → `link_memory.py` 即可完整接入 > (自动建记忆软链 + 写正确的 external_dirs YAML 列表 + Hermes 识别通过)。 **步骤(在另一台主机上):** ```bash # 1. clone 共享库到任意位置(本机路径可以和 WIN 主机不同) git clone https://gitee.com/jacky_ysu/hermes-memory.git cd hermes-memory # 2. 登记本机到 HOST.md(表格加一行, 主机名必须=运行 hostname 的值) # 编辑 HOST.md, 加: | <系统> | <本机共享库>/global | <本机共享库>/skills | 备注 # 例(Linux): server2 | Linux | /home/me/hermes-memory/global | /home/me/hermes-memory/skills | 我的笔记本 # 3. 跑引导脚本(按 hostname 自动匹配 HOST.md, 自动落地) python scripts/link_memory.py # (或 ./scripts/link_memory.sh; Windows 可双击 link_memory.bat) # 强制指定主机名: --host server2 ; 先看将做什么: --dry-run # 4. 重启该机 Hermes, 用 skills_list 确认共享技能可见 # (也可 python -c "from agent.skill_utils import get_external_skills_dirs; print(...)" 验证) # 5. (可选) 在该机也建同样的自动同步 cron, 让该机的记忆变更也能推回云端: # Hermes cron 每 30min 跑: python /scripts/auto_push.py ``` **新主机要点:** - clone 位置随意, **各机路径可不同**, 只要 HOST.md 里填对 + 脚本按 hostname 匹配即可。 - `link_memory.py` 自动算出该机 Hermes home(Windows=`%LOCALAPPDATA%\hermes`, Linux=`~/.local/share/hermes`)。 - 记忆软链 & external_dirs 由脚本**幂等**处理(已存在则跳过, 不重复/不破坏)。 - Linux 软链需正常权限;符号链接文件级创建一般无需 root。 ### 自动同步(cron) Hermes 定时任务每 ~30 分钟调用 `python /scripts/auto_push.py`, 对本库 `git add(显式路径) → commit → push` 到 Gitee, 记忆/技能变更自动落云。 ## ★ 全局记忆的符号链接机制(重要) Hermes 运行时会从 `C:\Users\PC\AppData\Local\hermes\memories\` 读取 `MEMORY.md` / `USER.md`。 这两个文件现在**是指向本库 `global\` 下的符号链接**(`os.symlink` 创建): - 读写行为与普通文件一致,Hermes 正常使用; - 文件实体在 `E:\git\hermes-memory\global\`,消除 C 盘实体、随本库一起 git 备份。 - **重装系统后恢复**: Hermes 装好后在 `memories\` 重新建链接: ``` python -c "import os; os.symlink(r'E:\git\hermes-memory\global\MEMORY.md', r'C:\Users\PC\AppData\Local\hermes\memories\MEMORY.md'); os.symlink(r'E:\git\hermes-memory\global\USER.md', r'C:\Users\PC\AppData\Local\hermes\memories\USER.md')" ``` (需先确认目标不存在;符号链接文件级创建可能需开发者模式/管理员,失败可用 `mklink`) ## 项目索引 | 文件 | 项目 | 源码位置 | 内容 | |---|---|---|---| | `hermes-remote-hub.md` | Hermes 远程通信系统 | `E:\git\hermes-remote-hub\` | 架构/运维/踩坑(provider bug、agent 断线、WPF 崩溃坑、uv、证书等) | | `ruoyi-performance-appraisal.md` | RuoYi 绩效考核系统 | `E:\git\performance-appraisal-system\` | CAS/数据库约定/Excel 导入 | | `university-finance-audit.md` | 高校财务审查系统 | `E:\git\高校财务制度一致性与合规性智能审查系统` | 后端/测试/前端/环境注意 | ## 新增项目的流程 1. 在本库新建 `<项目名>.md`(套用本库格式,含:一句话、源码位置、运行方式、运维/踩坑)。 2. 全局记忆里只加一行: `<项目名>: 记忆→E:\git\hermes-memory\<项目名>.md。一句话要点`。 3. 项目内如有 `docs/project-memory.md` 的旧内容,按需迁入本库后可在项目中留链接或删除。 ## 备份 - 备份本目录即可:`robocopy E:\git\hermes-memory <备份目标> /MIR`(或 git 仓库管理)。 - 建议: `E:\git\hermes-memory` 本身已做 git 仓库,历史可追溯。 ## ★ 技能维护约定(2026-09-24 更新) - **唯一技能库** = 本库 `skills\`(经 `skills.external_dirs` 挂载)。已整合去重:中英重复对合并(self-signed / windows-ocr)、平铺技能归入分类(erp/software-development)、本地独有技能全量迁入,**当前全量 147 个技能**。 - Hermes 技能扫描 = 本地默认目录 + external_dirs。因此本地默认目录 `%LOCALAPPDATA%\hermes\skills\` **不再保留技能副本**(仅剩 `.usage.json`/`.curator_*`/`.hub` 等运行时文件),避免同名 Ambiguous 二义。 - **新建技能**:`skill_manage` 会把新技能写入本地默认目录(不会自动进本库)。完成后请把它移入本库 `skills\<分类>\<技能>\`(或让 Agent 直接写本库),再 commit+push,即可随库上云。 - 上云: `scripts/auto_push.py`(cron 每 ~30min,显式路径 add → commit → pull --rebase → push),也可手动 `git push`。