需配置github token、启用git凭据助手、切换镜像源并浅克隆、手动指定技能源。一、生成带repo权限的token并设为环境变量;二、用git credential helper缓存token;三、修改hosts映射镜像源并执行--depth 1克隆;四、在config.yaml中设置source_repo并禁用gpg签名验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您尝试加载 Hermes Agent 技能库,但出现 技能文件夹为空、hermes skills list 无输出 或 fetch failed: authentication required 等提示,则可能是由于 GitHub Token 权限未配置、Token 过期、或技能仓库拉取过程受网络限制导致下载中断。以下是解决此问题的步骤:
一、配置具备 repo 权限的 GitHub Personal Access Token
GitHub 默认对未认证请求实施严格限流(60 次/小时),且技能仓库(如 hermes-org/skills)为私有或受限公开库时,必须使用带 repo 范围的 Token 才能完整克隆子模块与 LFS 大文件。未授权 Token 将导致 fetch 中断或仅拉取空目录。
1、访问 GitHub Tokens 页面,勾选 repo(含 repo:status、repo_deployment、public_repo)权限项。
2、在 Token description 中填写 hermes-skill-fetch,点击 Generate token。
3、将生成的 Token 值写入环境变量:执行 export GITHUB_TOKEN=ghp_xxx...(Linux/macOS)或 setx GITHUB_TOKEN "ghp_xxx..."(Windows CMD)。
4、验证 Token 是否生效:运行 curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/user/repos | jq '.[0].name' 2>/dev/null,应返回个人仓库名。
二、启用 Git Credential Helper 自动注入 Token
仅设置环境变量不足以支持 git subtree、git submodule 等嵌套操作中的认证,需通过 Git 凭据管理器将 Token 注入 HTTPS 请求头,避免每次交互手动输入凭证。
1、执行 git config --global credential.helper store 启用明文凭据缓存(开发环境可用)。
2、触发一次 HTTPS 认证:运行 git ls-remote https://github.com/hermes-org/skills.git,当提示用户名时输入 token,密码栏粘贴完整 Token 值。
3、确认凭据已保存:检查 ~/.git-credentials 文件中是否包含 https://token:ghp_xxx...@github.com 行。
4、测试子模块拉取:进入 ~/.hermes/skills/ 目录,执行 git submodule update --init --recursive,不应再出现 403 错误。
三、切换至国内镜像源并启用 shallow clone
原始 GitHub 域名在部分网络下存在 DNS 解析失败或 TLS 握手超时问题,直接导致技能仓库 fetch 超时中断;同时完整克隆含历史提交的技能库体积庞大(>500MB),易因网络抖动失败。使用镜像源 + 浅克隆可跳过历史对象传输,显著提升成功率。
1、配置 GitHub 镜像域名映射:向系统 /etc/hosts(Linux/macOS)或 C:\Windows\System32\drivers\etc\hosts(Windows)追加两行:
185.199.108.133 raw.githubusercontent.com
140.82.121.4 github.com
2、刷新本地 DNS 缓存:Linux/macOS 执行 sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder,Windows 执行 ipconfig /flushdns。
3、对技能仓库执行浅克隆:进入 ~/.hermes/skills/,运行 git clone --depth 1 --no-single-branch https://github.com/hermes-org/skills.git .。
4、强制更新子模块为浅模式:执行 git config --global submodule.fetchJobs 1 和 git submodule foreach --recursive 'git fetch --depth 1'。
四、手动指定技能源仓库地址并跳过签名验证
当默认技能源 hermes-org/skills 因组织策略变更不可达,或本地 Git 配置强制校验 commit GPG 签名但技能提交未签名时,会阻塞加载流程。可通过覆盖远程 URL 并禁用签名检查绕过该限制。
1、编辑 ~/.hermes/config.yaml,在 skills: 下添加字段:source_repo: https://ghproxy.com/https://github.com/hermes-org/skills。
2、若使用 Git 2.39+,全局禁用子模块签名验证:执行 git config --global gpg.ssh.program none 和 git config --global commit.gpgsign false。
3、清除旧技能缓存:运行 rm -rf ~/.hermes/skills/* && mkdir -p ~/.hermes/skills。
4、触发重新拉取:执行 hermes skills sync --force,观察日志中是否出现 Cloning into 'xxx'... done.。











