新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Hermes:实战场景】34、开发自动化:代码审查、测试、日报、周报全自动——7×24 小时的 AI 开发者助手

发布时间:2026/9/30 18:12:33来源:尧图网络
【Hermes:实战场景】34、开发自动化:代码审查、测试、日报、周报全自动——7×24 小时的 AI 开发者助手
1. 深夜提交完 PR为什么你的仓库还需要一个 7×24 小时的 AI 管家你有没有过这种体验晚上十一点终于把最后一个 PR 推上去CI 还在排队代码审查要等明天同事上班测试报告得后天才能看到。第二天早上打开电脑第一件事不是写代码而是花十五分钟翻 commit 记录回忆昨天干了什么。这就是典型的“沉睡的浪费”——你的仓库在夜间完全处于停滞状态而重复性的开发工作却在持续堆积。Hermes AI Agent 配合 GitHub MCP 和 cron 定时调度可以把这些夜间空窗期变成自动化流水线的工作时间。简单说Hermes 是一个能持久运行、跨会话记忆、定时触发任务的 AI Agent 运行时它不像 Claude Code 那样只活在你的终端会话里而是可以部署在服务器上7×24 小时盯着你的仓库。这套方案适合谁适合那些团队规模不大、没有专职 DevOps、但又想让代码质量和项目透明度上一个台阶的开发者。你不需要买额外的 CI 服务不需要写复杂的 GitHub Actions 脚本只需要一份 Hermes 配置骨架、一个 GitHub MCP 接入参数、几条 cron 表达式就能让代码审查、测试生成、日报周报全部自动跑起来。我试过把这套流水线跑通之后最大的感受不是“省了多少时间”而是每天早上打开 Telegram 就能看到昨晚所有 PR 的审查意见、新增测试的覆盖率报告、以及一份按开发者分组的项目动态汇总。你直接进入心流状态写核心业务代码就行杂活已经被默默搞定了。下面我会从零开始把 GitHub MCP 接入、cron 配置、手动触发验证全链路输出的每一步都拆开讲清楚。你跟着操作半小时内就能看到第一条自动审查意见出现在 PR 下方。2. GitHub MCP 接入与 Hermes 配置骨架从 Token 到 config.yaml 的完整链路Hermes 对 GitHub 的自动化访问核心依赖 MCP模型上下文协议。你可以把 MCP 理解成一个“工具注册中心”——Hermes 通过 MCP Server 把 GitHub 的list_commits、create_pull_request、list_issues等能力注册为 Agent 的原生工具Agent 就能像调用本地函数一样直接操作 GitHub不需要你手写 API 请求。2.1 申请 Fine-Grained PAT遵循最小权限原则第一步是申请一个 Fine-Grained Personal Access Token。相比经典 PATFine-Grained Token 可以精确控制授权范围比如只授权某个特定仓库的 Pull Request 写权限而不是所有仓库。操作路径GitHub 右上角头像 → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token。Token name 填HERMES-AUTOMATIONRepository access 选择Select repositories勾选你的目标仓库。Permissions 按最小权限原则设置权限项级别用途ContentsRead write读取代码、创建/修改文件Pull requestsRead write创建/审查 PRIssuesRead write创建/回复 IssueMetadataRead基础元数据WorkflowsRead监控 CI 状态只读即可点击 Generate token 后立即复制保存刷新页面后就不可见了。注意不要一股脑把所有权限都打钩。自动化真正需要的权限就上面这几项多给的权限都是潜在风险。2.2 配置 .env 与 config.yaml拿到 Token 后在~/.hermes/.env中添加GITHUB_PERSONAL_ACCESS_TOKENgithub_pat_your_fine_grained_token_here然后在~/.hermes/config.yaml中注册 GitHub MCP Server。这份配置骨架你可以直接复制路径和原文保持一致mcp_servers: github: command: npx args: - -y - modelcontextprotocol/server-github env: GITHUB_PERSONAL_ACCESS_TOKEN: ${GITHUB_PERSONAL_ACCESS_TOKEN} GITHUB_READ_ONLY: false connect_timeout: 60 timeout: 180 auxiliary_models: default: deepseek-chat fallback: gpt-4o-mini gateway: enabled: true platforms: telegram: bot_token: ${env:TELEGRAM_BOT_TOKEN} home_channel: -1001234567890这里有几个关键点。GITHUB_READ_ONLY设为false才能让 Agent 有写权限否则它只能读不能评论 PR。auxiliary_models是给定时任务用的性价比模型因为 cron 任务对延迟不敏感用 DeepSeek 或 GPT-4o-mini 可以把 Token 成本再压下来。gateway部分先配好 Telegram后面日报推送直接走这里。2.3 验证 MCP 连接是否正常配置写完后先别急着配 cron。用一条命令验证 MCP 是否成功注册hermes mcp list如果输出里能看到github且状态是connected说明 MCP Server 已经挂载成功。如果显示disconnected检查npx是否在 PATH 里以及 Token 是否过期。接着手动跑一次 GitHub 查询确认 Agent 能真正读到仓库数据hermes chat -q 列出仓库 myteam/backend-api 最近 24 小时的 commits按作者分组如果 Agent 返回了真实的 commit 列表说明 GitHub MCP 接入完成。这一步是整个流水线的地基地基没打好后面的 cron 任务全是空转。3. 可复制的 Hermes 配置骨架cron 表达式与 Skill 定义MCP 通了之后下一步是让 Hermes 知道“什么时候做什么事”。Hermes 内置了自然语言 Cron 调度器你不需要写复杂的 crontab 语法直接用中文描述任务即可。3.1 三条核心 cron 表达式先把你最需要的三条定时任务加上# 夜间 PR 审查每小时检查一次新 PR hermes cron add 0 * * * * 检查仓库中最近 1 小时内创建的新 PR对每个 PR 执行自动代码审查将审查意见评论到 PR 下方 # 凌晨测试生成每天凌晨 2 点为昨日提交的代码自动生成测试 hermes cron add 0 2 * * * 检查项目根目录下 tests/ 文件夹中的测试文件数量对比昨日新增的 Python 文件对尚未有对应测试的文件自动生成 pytest 用例 # 晨间日报汇总每天上午 8:30 推送项目动态 hermes cron add 30 8 * * * 汇总团队仓库昨日 commits、PR 和 issues按开发者分组生成 Markdown 日报推送到 Telegramcron 表达式就是标准五段式分钟、小时、日、月、星期。0 * * * *表示每小时整点触发0 2 * * *表示每天凌晨 2 点30 8 * * *表示每天上午 8:30。你不需要记这些Hermes 的自然语言调度器也支持直接写“每天凌晨两点”但用标准表达式更精确。3.2 自定义日报 Skill 的 SKILL.md如果你希望日报格式更符合团队风格可以写一个专门的 SKILL.md。这个文件放在~/.hermes/skills/daily-report/SKILL.md--- name: daily-report description: 生成昨日 GitHub 项目动态日报包括 commits、PR 和 issues推送到团队消息平台 --- ## 触发条件 用户提到“日报”、“每日汇总”、“项目动态”时自动触发 ## 执行步骤 1. 调用 GitHub MCP 的 list_commits 获取最近 24 小时 commits 2. 调用 list_pull_requests 获取 PR 状态变化 3. 调用 list_issues 获取新增 Issue 4. 分类统计 - commits按作者分组列出关键提交信息 - PR 摘要待审查、已合并、需修复 - Issues待处理、进行中、已关闭 5. 按严重程度排序后生成 Markdown 格式报告 6. 通过 Gateway 推送到指定频道这份 SKILL.md 就是 Hermes 的“技能记忆”。它会在每次会话开始时自动加载Agent 看到这个文件就知道日报该怎么生成、按什么格式输出、推送到哪里。3.3 代码审查 Skill 的安装与自定义PR 审查是开发自动化中最有价值的一环。Hermes 把这个场景提炼成了技能一键安装hermes skills install github-code-review hermes skills list | grep github-code-review如果技能未显示先确认ghCLI 是否已登录gh auth status未登录的话执行gh auth login按提示完成 OAuth 流程。安装完成后你可以对指定 PR 手动执行一次审查hermes skills run github-code-review --pr42 --repomyteam/backend-api审查结果会包含带行号标注的问题点、修复建议、严重性分级。如果需要导出为 Markdown 报告追加--outputreview-report.md。3.4 自定义审查规则集默认的审查规则可能不完全符合你的团队规范。你可以覆盖提示模板来定制ls ~/.hermes/skills/github-code-review/templates/ cp default.md default.md.bak编辑default.md在“检查项”章节下新增自定义条目比如“确保所有导出函数均配有 returns JSDoc 注释”、“禁止在代码中出现 eval() 调用”。保存后重启 Agent 使变更生效hermes restart这里有个细节值得注意Hermes 的审查结果会受记忆系统影响。它的三层记忆体系中持久记忆MEMORY.md USER.md会在每个会话开始时自动加载。如果你在 USER.md 中记录了“代码中禁用 eval()”、“优先使用类型注解”等偏好这些偏好会自动注入所有 PR 审查流程使审查结果与团队规范保持一致。这比每次手动改模板要省事得多。4. 手动触发验证全链路输出从 PR 审查到日报推送配置写完了但你不能等到凌晨才验证。最好的做法是手动触发一次全链路确认每个环节都能正常输出。4.1 手动触发 PR 审查先找一个真实的 PR 编号执行hermes skills run github-code-review --pr42 --repomyteam/backend-api预期输出是一段 Markdown 格式的审查报告包含问题行号、修复建议、严重性分级。如果 Agent 返回了“无法访问仓库”或“PR 不存在”检查 Token 的 Pull requests 权限是否设为 Read write。4.2 手动触发测试生成进入你的项目根目录激活虚拟环境然后执行cd /path/to/your/project source venv/bin/activate hermes test --generate --target src/my_module.pyHermes 会分析src/my_module.py中的函数签名、类型注解和 docstring自动生成对应的tests/test_my_module.py。生成后立即验证pytest tests/test_my_module.py -v如果测试通过说明测试生成链路正常。如果失败检查生成的测试文件里是否有导入路径错误通常是sys.path没配好。4.3 手动触发日报生成hermes chat -q 查询团队仓库 myteam/backend-api 最近 24 小时的 commits、PR 和 issues按变动类型汇总生成 Markdown 格式的日报Agent 会返回一份完整的日报文本。如果 Gateway 配置正确这份日报会自动推送到 Telegram 的指定频道。你去 Telegram 里确认一下是否收到消息。4.4 验证 cron 任务是否注册成功hermes cron list输出里应该能看到你添加的三条任务每条都有下次触发时间。如果某条任务没显示检查 cron 表达式是否写错或者任务描述里是否包含了 Hermes 无法解析的指令。4.5 全链路成功的结果长什么样当你完成上述验证后一个完整的夜间自动化时间线是这样的时间任务输出23:00PR 代码审查审查意见评论到 PR23:30CI 状态监控构建失败 → Telegram 告警02:00测试生成与覆盖率检查覆盖率报告存入 Wiki08:30日报/周报生成日报推送至 Telegram你早上打开 Telegram看到的是昨晚所有 PR 的审查意见、新增测试的覆盖率报告、以及一份按开发者分组的项目动态汇总。这就是全链路跑通的标志。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth 报错对照配置过程中最容易卡住的就是各种报错。下面是我踩过的坑和对应的排查方法你对照着看。5.1 401 Unauthorized这是最常见的错误通常出现在hermes mcp list或手动触发 GitHub 查询时。原因一Token 过期或复制不完整。Fine-Grained Token 以github_pat_开头检查.env文件里是否完整复制有没有多余空格。原因二Token 权限不足。回到 GitHub Token 设置页面确认 Contents、Pull requests、Issues 三项都是 Read writeMetadata 是 Read。原因三.env文件没被加载。Hermes 启动时会读取~/.hermes/.env如果你把 Token 写在了别的地方Agent 读不到。用hermes config check确认环境变量是否注入成功。5.2 local proxy failed这个报错通常出现在 MCP Server 启动阶段。Hermes 通过npx启动modelcontextprotocol/server-github如果本地网络环境导致npx无法拉取包就会报 local proxy failed。排查步骤先手动执行npx -y modelcontextprotocol/server-github看是否能正常启动。如果卡在下载阶段检查 npm 源是否可用。另外确认connect_timeout: 60和timeout: 180是否写进了 config.yaml超时时间太短也会导致连接失败。5.3 reading choices 报错这个错误通常出现在模型返回结果解析阶段。Hermes 调用 auxiliary_models 时如果模型返回的格式不符合预期就会报 reading choices 失败。原因一auxiliary_models 配置的模型不支持 function calling。DeepSeek 和 GPT-4o-mini 都支持但如果你配了其他模型需要确认它是否支持工具调用。原因二模型返回了空 choices。这通常是 API Key 无效或额度耗尽导致的。检查~/.hermes/.env里的模型 API Key 是否有效。5.4 OAuth 报错如果你在gh auth login阶段遇到 OAuth 报错通常是浏览器回调失败。可以改用 Token 方式登录gh auth login --with-token your_token.txt或者直接跳过ghCLI因为 Hermes 的 GitHub MCP 不依赖ghCLI它直接用GITHUB_PERSONAL_ACCESS_TOKEN环境变量。gh auth status只是用来辅助排查的不是必须步骤。5.5 CC Switch / Cline MCP / Codex auth.json 三件套如果你同时在使用 Claude Code、Cline 或 Codex需要确保三件套配置一致Base URL、Key、Model ID。以 Claude Code 为例在~/.claude/settings.json中配置{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: your_key_here, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }Cline MCP 的配置在 VS Code 的settings.json中Codex 的配置在~/.codex/auth.json中。三者的 Base URL 都指向https://taotoken.net/apiKey 用同一个Model ID 按各自支持的模型填写。这样你在 Claude Code 里写的代码Hermes 在夜间审查时用的是同一套模型能力审查标准不会漂移。6. 从手动到自动把 Hermes 接入你的日常开发流到这里你已经有了一个能跑的自动化流水线。但要让它在真实团队里持续产生价值还需要把它接入日常开发流。6.1 与 Claude Code 的分工工匠 管家很多开发者会纠结用 Claude Code 还是 Hermes。我的实践结论是两者不是竞争关系而是分工协作。Claude Code 活在你的代码仓库里读代码、写代码、跑测试、提交变更是目前最强的编码智能体之一。它适合深度编码任务比如重构一个大函数、调试复杂 Bug、实现一个新模块。Hermes 的优势在另一端——持久性。它跨会话记忆、跨平台运行、自动技能固化适合长期运行的自动化工作流夜间 PR 审查、定时日报、CI 监控。工作内容推荐工具编写复杂函数实现Claude Code对该函数生成单元测试Hermes自动测试生成本地调试 BugClaude Code提交 PR 后自动 reviewHermesGitHub 技能 cron每天上班前了解项目进展Hermes日报推送代码重构、依赖升级Claude Code依赖安全审计Hermescron 告警一句话需要深度理解代码结构时用 Claude Code需要每天、每 PR、每 Issue 自动触发时用 Hermes。6.2 质量门禁设置如果希望 PR 审查不通过时阻止合并可以在 GitHub 分支保护规则中设置。进入仓库 Settings → Branches → Add ruleBranch name pattern 填main或master勾选 Require status checks to pass before merging在搜索框中选择 Hermes PR Review点击 Save changes。这样任何未通过 Hermes 审查的 PR 都被禁止合并。6.3 成本控制建议Hermes 的 API 调用成本通常只有同类方案的 30%-50%四层渐进式 Skill 加载确保日常运行仅需约 3000 token。对于定时任务这类对延迟不敏感的场景建议在~/.hermes/config.yaml中配置auxiliary_models使用性价比高的模型Token 成本可再节省 40%-60%。6.4 下一步可以做什么当你跑通这套基础流水线后可以继续扩展把 Gateway 接到飞书或企业微信让日报推送到团队群增加依赖安全审计的 cron 任务每周扫描一次 npm/cargo 依赖把测试覆盖率报告自动写入 Wiki形成质量趋势图。如果你还没有配置模型接入可以先从模型对话开始验证基础能力再进入 Coding Plan 做长期编码任务。API Key 的获取和接入文档在官网可以找到配置过程中遇到报错优先对照第 5 节的排查清单。这套流水线跑起来之后你每天走进办公室时杂活已经被默默搞定复杂的上下文已经提前整理好。你直接进入心流状态专注核心业务就行。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

练习实践一 2026/9/30 19:11:14

练习实践一

一.利用vmware安装Linux操作系统的详细步骤1.1 VMware 软件安装找到安装包VMware‑workstation‑full‑17.6.4‑24832109.exe,右键以管理员身份运行。同意许可协议,修改安装路径到 D 盘,示例路径 :D:\vmwarel。用户体验设置&#…

阅读更多 →
Linux 执行 .sh 报 No such file or directory?用 TaoToken 统一 Key 排查三种配置解法 2026/9/30 19:10:47

Linux 执行 .sh 报 No such file or directory?用 TaoToken 统一 Key 排查三种配置解法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
用定时器做每周依赖巡检:自然语言写周期,错过可补跑(Caravel F12) 2026/9/30 19:10:40

用定时器做每周依赖巡检:自然语言写周期,错过可补跑(Caravel F12)

写在前面 工程实践里,最容易被忽略的一类任务是周期性巡检:依赖过期、安全告警、周五例行脚本。本文只讲一个功能点——一句话创建 周期 脚本/Agent 执行(F12)——让每周依赖巡检不再靠记性。产品:Caravel&#xff0…

阅读更多 →
VSCode终端里Codex CLI粘贴图片失效?用keybindings.json把Ctrl+V还给终端 2026/9/30 19:09:59

VSCode终端里Codex CLI粘贴图片失效?用keybindings.json把Ctrl+V还给终端

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Cursor 使用指南:把 Base URL 改到 TaoToken 的完整配置与验证 2026/9/30 19:09:52

Cursor 使用指南:把 Base URL 改到 TaoToken 的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ubuntu 20.04 把中文输入法背景颜色调成纯黑 2026/9/30 19:09:52

ubuntu 20.04 把中文输入法背景颜色调成纯黑

中文输入法候选窗「纯黑背景」配置说明 机器环境:Ubuntu 20.04.6 LTS / GNOME Shell 3.36.9 / X11 会话 输入法:ibus 1.5.22 ibus-libpinyin(拼音) 改动日期:2026-09-29 当前状态:已生效(候选窗…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉