Gendle commited on
Commit
8a3e442
·
verified ·
1 Parent(s): cc13624

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +23 -387
README.md CHANGED
@@ -1,387 +1,23 @@
1
- 20260504更新内容
2
- ### 2.1 Baoyu 技能系统(Baoyu Skills)
3
- **什么是 Baoyu Skills?**
4
- 这是知名AI大神宝玉老师的一套开源的 AI 技能库,就像一本"AI 技能菜谱",里面包含了各种预置的功能模块。
5
- **使用的三个核心技能:**
6
- #### 1. baoyu-imagine(AI 画画技能)
7
- - **功能:** 根据文字描述生成图片
8
- - **支持的后端:** Google Gemini、SiliconFlow、OpenAI 等
9
- - **特点:** 可以设置图片尺寸、质量、比例等参数
10
- #### 2. baoyu-cover-image(封面图生成)
11
- - **功能:** 自动为文章生成封面图
12
- - **特点:** 可以设置风格、配色、字体等
13
- #### 3. baoyu-article-illustrator(文章配图生成)
14
- - **功能:** 为长篇文章自动生成插图
15
- - **特点:** 根据文章内容智匹配图片,支持批量生成
16
- - **适用场景:** 公众号长文、博客文章、年度报告等需要大量配图的场景
17
- ### 2.2 数字卡兹克(Digital Kazik)—— 长文写作助手
18
- "数字生命卡兹克"(Khazix-writer)是 **独立的开源 AI 技能**。它是一个**公众号长文写作 skill**,由另一位大神卡兹克(Khazix个人开发。
19
- **核心功能:**
20
- 当用户需要撰写公众号文章、写稿子、续写文章、根据素材产出长文时使用。
21
- **触发词包括但不限于:**
22
- 写文章、写稿子、帮我写、续写、扩写、公众号文章、长文、出稿、按我的风格写
23
- ### 2.3 数据同步系统(Data Sync)
24
- **为什么要数据同步?**
25
- 因为 Hugging Face Spaces 的容器重启后会丢失所有数据,就像电脑重启后内存里的东西会消失一样。
26
- **工作原理(用邮局比喻):**
27
- 1. **备份:** 每次有新的聊天记录、图片、配置,就打包寄到"邮局"(Hugging Face Dataset)
28
- 2. **恢复:** 容器重启后,从邮局取回之前的包裹,恢复所有数据
29
- 3. 注意SKIP_CONFIG_RESTORE 的作用是:
30
- 这是一个 "不恢复配置" 的开关。默认行为(不设置此变量):
31
- - Space 重启时,会从 Dataset 恢复 所有 之前保存的文件
32
- - 包括 config.yaml、.env、以及各种配置
33
- - 这会把你调试配置阶段手动修改的设置覆盖掉
34
- 设置 SKIP_CONFIG_RESTORE=true 后:
35
- - 跳过恢复某些配置文件,比如 config.yaml和baoyu_skills/等等
36
- - 但其他数据正常恢复: 聊天记录、图片、记忆、skills、会话历史等
37
- - 容器重启后entrypoint.sh 会重新生成受保护的配置文件,比如 config.yaml 等。
38
- 建议如果没有修改配置的需求时或者配置稳定后使用设置SKIP_CONFIG_RESTORE=false,这样每次重启会从dataset中恢复所有备份。
39
- ### 2.4 图片浏览和下载服务
40
- 核心组件
41
- image-proxy.js —— 一个 Node.js 代理服务器,部署在 Space 的 :7860 端口(对外暴露的端口)。
42
- 工作原理
43
- 用户访问 https://usernamename-spacename.hf.space/images/
44
-
45
- image-proxy.js (端口 7860)
46
-
47
- 读取 /data/.hermes/image_cache/ 目录
48
-
49
- 返回 HTML 图片列表页面
50
- 功能特性
51
- 1. 图片列表页面(/images/)
52
- - 自动扫描 image_cache 目录下的所有图片
53
- - 生成美观的 HTML 页面展示所有图片
54
- - 支持缩略图预览、下载链接、原始大小查看
55
- 2. 单图片访问(/images/<filename>)
56
- - 直接访问单张图片,可用于嵌入到聊天或其他页面
57
- - 支持常见的图片格式:png, jpg, jpeg, gif, webp
58
- 3. 代理功能
59
- - 除了 /images/ 路径,其他所有请求都转发给 BFF(:7861)
60
- - 这意味着 :7860 是统一入口,既提供图片服务,又提供 Web UI
61
- 特点:
62
- 1. 图片持久化:生成的图片保存在 /data/.hermes/image_cache/
63
- 2. Web 可访问:通过 /images/ URL 可以直接在浏览器查看
64
- 3. 方便分享:用户可以把图片 URL 分享给其他人
65
- 4. 统一管理:所有 AI 生成的图片集中在一个地方
66
-
67
-
68
- 4.26更新内容;
69
-
70
- web UI 主要功能上手指南
71
- 现在你的 AI 助手已经部署好、微信也接通了,来看看 Web UI 还能做什么。
72
- ### 7.1 聊天(Chat)
73
- 点击左侧的 **Chat** 按钮,进入聊天界面。
74
- - **新建对话**:点左上角的 **+ New Chat** 按钮
75
- - **切换模型**:在聊天框上方的下拉菜单中切换不同的 AI 模型
76
- - **搜索历史**:按 `Ctrl+K` 可以搜索所有历史对话
77
- - **上传文件**:点击聊天框旁边的附件按钮,可以上传图片或文件让 AI 分析
78
- - **下载文件**:AI 生成的文件可以在对话中直接下载
79
- ### 7.2 模型管理(Models)
80
- 点击左侧的 **Models** 按钮。
81
- - 这里列出了你所有可用的 AI 模型供应商
82
- - 点击任意供应商可以看到该供应商下有哪些模型
83
- - 你可以添加新的供应商(支持任何 OpenAI 兼容的接口)
84
- - **Nous Portal** 和 **OpenAI Codex** 还支持 OAuth 登录,直接在网页上点击授权就行
85
- ### 7.3 用量统计(Usage)
86
- 点击左侧的 **Usage** 按��。
87
- - 你可以看到 token 使用量的每日趋势图
88
- - 每个模型的使用占比
89
- - 估算的费用(基于公开的模型定价)
90
- - 缓存命中率(缓存命中越多,速度越快、费用越低)
91
- ### 7.4 定时任务(Jobs)
92
- 点击左侧的 **Jobs** 按钮。
93
- - 你可以创建定时任务,让 AI 在指定时间自动做事
94
- - 比如每天早上 8 点总结新闻、每周一整理待办事项
95
- - 支持 Cron 表达式(高级用户),也有简单的预设可选
96
- - 可以随时暂停、恢复或手动触发执行
97
- ### 7.5 技能和记忆(Skills & Memory)
98
- 点击左侧对应的按钮。
99
- - **Skills**:查看 AI 自己学到的技能。AI 会在使用过程中自动创建技能,比如"如何调用某个 API"或"用户喜欢的代码风格"
100
- - **Memory**:查看和编辑 AI 关于你的记忆。你可以修改这些记忆来让 AI 更了解你
101
- ### 7.6 设置(Settings)
102
- 点击右上角的齿轮图标。
103
- - **Display**:调整显示偏好(流式输出、紧凑模式等)
104
- - **Agent**:AI 的行为参数(最大迭代次数、超时时间等)
105
- - **Memory**:记忆系统的开关和限制
106
- - **Session**:会话超时和重置设置
107
- - **Privacy**:隐私保护(自动去除个人信息)
108
-
109
-
110
-
111
-
112
- 4.20更新了哪些内容
113
-
114
- ### 1. 备份恢复不再覆盖模型配置
115
-
116
- **改动文件**:`src/data_sync.py`
117
-
118
- 之前的工作流程是:Space 启动 → 从 Dataset 恢复旧配置(覆盖新配置)→ 启动 Hermes。这导致每次重启后模型配置都被旧数据覆盖。
119
-
120
- 现在的流程是:Space 启动 → 从 Dataset 恢复其他数据(聊天记录、人格设定等)→ **跳过 config.yaml** → 由启动脚本根据当前环境变量重新生成配置。
121
-
122
- 具体来说,`data_sync.py` 的 `restore_from_download()` 方法现在会:
123
- - 默认跳过 `config.yaml` 的恢复(由环境变量 `SKIP_CONFIG_RESTORE=true` 控制)
124
- - 仅在本地完全不存在 config.yaml 时,才从备份中恢复一份作为初始值
125
- - 其他数据(聊天记录、人格、技能等)照常恢复,不受影响
126
-
127
- ### 2. 三层防覆盖机制保护模型配置
128
-
129
- **改动文件**:`entrypoint.sh`
130
-
131
- 即使跳过了旧配置恢复,Hermes 内部仍然有一个"配置桥接"机制,会在启动时自动检测 API Key 并可能修改 config.yaml。为了防止这种情况,我们增加了三层保护:
132
-
133
- **第一层:环境变量注入**
134
- - 在 Hermes 启动前,将所有供应商的 Base URL 导出到进程环境变量中
135
- - 导出 `HERMES_MODEL` 环境变量,确保定时任务等场景也使用正确的模型
136
- - 环境变量列表包括:`NVIDIA_BASE_URL`、`SILICONFLOW_BASE_URL`、`GEMINI_BASE_URL`、`OPENROUTER_BASE_URL`、`LONGCAT_BASE_URL`
137
-
138
- **第二层:启动前强制锁定**
139
- - 在 Dashboard 启动前,通过 `hermes config set` 命令将模型配置写入 config.yaml
140
- - 如果 `hermes config set` 不可用,回退到 `yq` 工具直接修改 YAML 文件
141
- - 修改后立刻用 `yq` 读取验证,确认模型字段没有被意外修改
142
-
143
- **第三层:启动后二次验证**
144
- - Dashboard 改为后台启动,等待 5 秒初始化
145
- - 再次读取 config.yaml,检查模型配置是否被 Dashboard 启动流程覆盖
146
- - 如果发现被修改或被清空,立即用 `yq` 修正回正确值
147
- - 没有 `yq` 时回退到 `sed` 做局部修改(不会破坏其他配置项)
148
-
149
- ### 3. 修复压缩阈值错误
150
-
151
- **改动文件**:`entrypoint.sh`、`config/config.yaml`
152
-
153
- Hermes 的 `compression.threshold` 是一个**比率值**(0 到 1 之间的小数),不是绝对 token 数。例如 0.50 表示"当对话上下文使用到模型上下文窗口的 50% 时触发压缩"。
154
-
155
- 之前的配置写了 `threshold: 4000`,Hermes 把它当作"400000%"来计算,得出的压缩阈值为 8.19 亿 tokens,远超压缩模型 100 万 tokens 的处理能力,导致压缩功能完全失效。
156
-
157
- 现在改为 `threshold: 0.50`,含义清晰:对话上下文达到模型上限的 50% 时触发压缩,压缩模型 `gemini-3-flash-preview`(1M 上下文)完全能够处理。
158
-
159
- ### 4. Dockerfile 支持自动更新和 YAML 处理
160
-
161
- **改动文件**:`Dockerfile`
162
-
163
- - 移除了 `--branch v2026.4.13` 固定版本参数,改为始终拉取最新代码。这样在 Hugging Face Space 的 Settings 页面点击 **Factory Rebuild**,就会自动获取 Hermes Agent 的最新版本
164
- - 新增安装 `yq`(YAML 处理工具),用于运行时精确修改 config.yaml 中的特定字段,而不是覆盖整个文件
165
-
166
- ### 5. 更新默认模型
167
-
168
- **改动文件**:`entrypoint.sh`、`config/config.yaml`
169
-
170
- NVIDIA 供应商的默认模型从 `minimaxai/minimax-m2.7`(该模型在实际使用中无响应)更换为 `moonshotai/kimi-k2-thinking`。
171
-
172
-
173
-
174
-
175
- # Hermes Agent v0.9.0 on Hugging Face Spaces
176
-
177
- 智能AI代理,支持16个消息平台,持久化记忆,和Web管理界面。
178
-
179
- ## 功能
180
-
181
- - 🤖 AI 对话与工具调用
182
- - 🌐 Web Dashboard 管理
183
- - 💾 数据��久化到 Hugging Face Dataset
184
- - 🔔 支持消息网关(Telegram/Discord/Slack等)
185
- - ⚡ 自动唤醒保持在线
186
-
187
- ## 技术栈
188
-
189
- - Hermes Agent v0.9.0
190
- - FastAPI Web Dashboard
191
- - Hugging Face Datasets 持久化
192
- - Docker Spaces
193
-
194
- ## 数据目录映射
195
-
196
- | Hermes 目录 | Dataset 路径 | 说明 |
197
- |------------|-------------|------|
198
- | `~/.hermes/config.yaml` | `/config/config.yaml` | 核心配置 |
199
- | `~/.hermes/.env` | `/config/.env` | 环境变量 |
200
- | `~/.hermes/auth.json` | `/config/auth.json` | OAuth认证 |
201
- | `~/.hermes/SOUL.md` | `/personality/SOUL.md` | 代理人格 |
202
- | `~/.hermes/memories/` | `/memories/` | 持久记忆 |
203
- | `~/.hermes/skills/` | `/skills/` | 自定义技能 |
204
- | `~/.hermes/sessions/` | `/sessions/` | 会话历史 |
205
- | `~/.hermes/state.db` | `/state/state.db` | SQLite数据库 |
206
- | `~/.hermes/logs/` | `/logs/` | 日志文件 |
207
- | `~/.hermes/cron/` | `/cron/` | 定时任务 |
208
-
209
- ## 环境变量
210
-
211
- ```bash
212
- # 必需
213
- HF_DATASET_REPO=your-username/hermes-data
214
-
215
- # 可选
216
- HERMES_HOME=/data/.hermes
217
- SYNC_INTERVAL=300 # 同步间隔(秒)
218
- HF_TOKEN=your-huggingface-token # 用于访问私有 dataset
219
- ```
220
-
221
- ## 快速开始
222
-
223
- ### 1. 创建 Hugging Face Dataset
224
-
225
- ```bash
226
- # 创建一个新的 dataset 用于存储数据
227
- huggingface-cli repo create hermes-data --type dataset
228
- ```
229
-
230
- ### 2. 设置环境变量
231
-
232
- 在 Hugging Face Spaces 的 Settings 中设置:
233
- - `HF_DATASET_REPO`: 你的 dataset 名称 (例如: username/hermes-data)
234
- - `HF_TOKEN`: Hugging Face access token
235
-
236
- ### 3. 配置唤醒服务
237
-
238
- 使用 UptimeRobot 或 Cron-job.org 定期访问 Space URL 以保持在线。
239
-
240
- ## 部署步骤
241
-
242
- ### 部署到 Hugging Face Spaces
243
-
244
- #### 方式一:通过 Web 界面部署
245
-
246
- 1. **创建 Space**: 访问 https://huggingface.co/new-space
247
- - 选择 "Docker" SDK
248
- - 设置 Space 名称
249
- - 选择硬件配置(免费版即可开始)
250
-
251
- 2. **克隆 Space 仓库**:
252
- ```bash
253
- git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME
254
- cd YOUR_SPACE_NAME
255
- ```
256
-
257
- 3. **复制项目文件**:
258
- ```bash
259
- # 复制所有项目文件到 Space 目录
260
- cp -r /path/to/hermes-spaces/* .
261
- ```
262
-
263
- 4. **配置环境变量**:
264
- - 在 Space Settings → Variables 中设置:
265
- - `HF_DATASET_REPO`: `your-username/hermes-data`
266
- - `HF_TOKEN`: `your-huggingface-token`
267
-
268
- 5. **提交并推送**:
269
- ```bash
270
- git add .
271
- git commit -m "Initial deployment"
272
- git push
273
- ```
274
-
275
- 6. **等待部署完成**:
276
- - 访问 `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME`
277
- - 查看 Build 日志,等待部署完成
278
-
279
- #### 方式二:通过 GitHub Actions 自动部署
280
-
281
- 1. **Fork 本仓库** 到你的 GitHub 账号
282
-
283
- 2. **在 Hugging Face 创建 Space**:
284
- - 访问 https://huggingface.co/new-space
285
- - 选择 Docker SDK
286
- - 记下 Space 名称
287
-
288
- 3. **配置 GitHub Secrets**:
289
- - 进入 GitHub 仓库 → Settings → Secrets and variables → Actions
290
- - 添加以下 secrets:
291
- - `HF_TOKEN`: 你的 Hugging Face access token
292
- - `HF_SPACE_REPO`: `YOUR_USERNAME/YOUR_SPACE_NAME`
293
-
294
- 4. **推送代码到 main 分支**:
295
- ```bash
296
- git push origin main
297
- ```
298
-
299
- 5. **GitHub Actions 会自动部署**:
300
- - 查看 Actions 标签页查看部署进度
301
- - 部署完成后访问 Space URL
302
-
303
- ## 配置唤醒服务
304
-
305
- 由于 Hugging Face Spaces 免费版会在 48 小时无活动后休眠,建议配置外部唤醒服务:
306
-
307
- ### 使用 UptimeRobot(推荐)
308
-
309
- 1. 访问 https://uptimerobot.com 并注册账号
310
- 2. 点击 "Add New Monitor"
311
- 3. 配置如下:
312
- - **Monitor Type**: HTTP(s)
313
- - **Friendly Name**: Hermes Agent
314
- - **URL**: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/health`
315
- - **Monitoring Interval**: 5 minutes
316
- 4. 点击 "Create Monitor"
317
-
318
- ### 使用 Cron-job.org(备选)
319
-
320
- 1. 访问 https://cron-job.org
321
- 2. 创建新的 cron job
322
- 3. 配置 URL: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/health`
323
- 4. 设置每 5 分钟执行一次
324
-
325
- ## 首次使用
326
-
327
- 1. 访问 Space URL: `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space`
328
- 2. 首次启动会创建默认配置,从 Dataset 恢复数据(如果存在)
329
- 3. 在 Web Dashboard 中配置:
330
- - API Keys(OpenAI, OpenRouter, etc.)
331
- - 消息网关(Telegram, Discord, etc.)
332
- - 代理人格(SOUL.md)
333
-
334
- ## 故障排除
335
-
336
- ### Space 无法启动
337
-
338
- 1. **检查构建日志**:
339
- - 访问 Space 页面 → Files → "Build logs"
340
- - 查看错误信息
341
-
342
- 2. **常见问题**:
343
- - **内存不足**: 升级到付费硬件(CPU Upgrade)
344
- - **依赖安装失败**: 检查 requirements.txt 格式
345
- - **权限错误**: 确保 Dockerfile 中设置了 USER appuser
346
-
347
- ### 数据未持久化
348
-
349
- 1. **检查环境变量**:
350
- - 确认 `HF_DATASET_REPO` 已正确设置
351
- - 确认 `HF_TOKEN` 有写入 Dataset 的权限
352
-
353
- 2. **检查 Dataset 权限**:
354
- - 确保 Dataset 是私有的(推荐)
355
- - 确保 Token 有 `write` 权限
356
-
357
- 3. **查看同步日志**:
358
- - 在 Space 的 Logs 中查看 data-sync 相关日志
359
-
360
- ### 消息网关断开
361
-
362
- 1. **这是正常现象**: Spaces 休眠后所有连接会断开
363
- 2. **解决方案**:
364
- - 升级到付费版保持持续运行
365
- - 或配置网关自动重连(在 Hermes 配置中设置)
366
-
367
- ## 文件说明
368
-
369
- - `Dockerfile` - Docker 镜像定义
370
- - `entrypoint.sh` - 容器启动脚本
371
- - `requirements.txt` - Python 依赖
372
- - `src/data_sync.py` - 数据同步服务
373
- - `.github/workflows/deploy.yml` - GitHub Actions 自动部署
374
-
375
- ## 许可证
376
-
377
- MIT License - 详见 LICENSE 文件
378
-
379
- ## 贡献
380
-
381
- 欢迎提交 Issue 和 Pull Request!
382
-
383
- ## 相关链接
384
-
385
- - [Hermes Agent 官方仓库](https://github.com/NousResearch/hermes-agent)
386
- - [Hugging Face Spaces 文档](https://huggingface.co/docs/hub/spaces-overview)
387
- - [Hermes Agent 文档](https://hermes-agent.com)
 
1
+ ---
2
+ title: Hermes Agent
3
+ emoji: 🤖
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ app_port: 7860
9
+ ---
10
+
11
+ # Hermes Agent v0.10.0
12
+
13
+ 智能 AI 代理,支持多平台消息网关、持久化记忆和 Web 管理界面。
14
+
15
+ ##
16
+ - 🤖 AI 对话与工具调用
17
+ - 🌐 Web Dashboard 管理
18
+ - 💾 数据持久化(Hugging Face Dataset
19
+ - 🔔 多平台消息网关
20
+ - ⚡ 自动唤醒
21
+
22
+ ## 使用
23
+ 访问 Space URL 即可使用 Web 管理界面。