欢迎回来

登录 EAKE AI,继续您的智能之旅

忘记密码?
还没有账号?立即注册

Hermes + DeepSeek 实战指南⑤:代码审查与 GitHub Actions 自动 CI

2026-08-20 · 入门教程 · 有封面图
前几篇讲了 Hermes 的安装、配置、技能系统和多模型协作。这篇实用向:用 Hermes 做代码审查,以及怎么把它接入 GitHub Actions 实现自动化 CI——每次有人提 PR,Hermes 自动跑一遍代码审查,不需要人工介入。

一、用 Hermes 做代码审查

代码审查是 Hermes 最能体现价值的场景之一。流程比人工审查快,视角比 linter 全面,而且能捕捉 linter 看不出来的逻辑问题。 基本用法: ```bash hermes run "review /path/to/your/project --diff pr-123.diff" ``` 第一次跑,Hermes 会拉取完整的代码改动,逐文件分析。分析完成后,它会输出一个结构化的审查报告: ``` ## 审查报告 ### 高风险 - `auth/login.py` L45: 没有对用户输入做长度校验,可能引发 DoS - `api/orders.py` L112: SQL 参数化用了错误的占位符形式 ### 中风险 - `utils/cache.py`: 缓存没有设置 TTL,内存可能持续增长 - `tests/test_order.py`: 缺少边界条件测试(空订单、负数价格) ### 建议 - `auth/token.py`: JWT 过期时间设了 7 天,建议改为 1-2 小时 - `config/db.py`: 日志打印了完整 SQL 语句,包含用户数据,建议脱敏 ### 总结 改动整体质量不错,主要问题集中在认证模块,建议合并前优先修复高风险项。 ``` 这个报告可以直接贴在 GitHub PR 评论区,不需要你再手动整理。 如果改动很大,Hermes 还会额外做一件事:检查新旧代码之间有没有依赖关系被破坏。比如改了一个公共函数,会顺带扫描哪些地方调用了这个函数,评估影响范围。

二、接入 GitHub Actions:自动代码审查 CI

这是进阶用法,让代码审查变成 PR 的必经流程。 在项目根目录创建 `.github/workflows/hermes-review.yml`: ```yaml name: Hermes Code Review on: pull_request: types: [opened, synchronize] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install Hermes run: | curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash - name: Run Hermes Review env: DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | hermes run "review ./ --output json" > hermes-review.json - name: Post review comment uses: actions/github-script@v7 with: script: | const fs = require('fs'); const review = JSON.parse(fs.readFileSync('hermes-review.json', 'utf8')); github.rest.issues.createComment({ issue_number: context.payload.pull_request.number, owner: context.repo.owner, repo: context.repo.repo, body: '## Hermes 自动审查报告\n\n' + review.summary + '\n\n
完整报告\n\n' + review.full_report + '\n\n
' }); ``` 然后在 GitHub 仓库的 Settings → Secrets 里添加 `DEEPSEEK_API_KEY` 和 `ANTHROPIC_API_KEY`,这样 Actions 跑的时候 Hermes 才能调用模型。 效果是:每次有人提 PR,GitHub Actions 自动触发,Hermes 跑一遍审查,结果自动发到 PR 评论区。整个过程对提交者透明,不需要维护者手动介入。

三、审查规则的自定义

默认的审查规则覆盖常见问题,但如果团队有特定的编码规范,可以自定义。 在 `~/.hermes/review-rules.yaml` 里配置: ```yaml review: severity_threshold: medium # 低于 medium 的问题不出报告 languages: python: checks: - security: true - performance: true - style: false # 关闭 style 检查,交给 black/isort typescript: checks: - security: true - performance: true - typing: true # TypeScript 重点查类型 comment_template: github # 输出格式支持 github/slack/json max_issues_per_file: 10 # 单文件问题超过 10 条就截断,避免刷屏 ``` 这样 Hermes 的审查重点会和团队的实际需求对齐,不会产出一堆无关紧要的 style 问题。

四、实际效果

我自己在两个项目里跑了三个月的数据: - 平均每次 PR 审查时间:从 20 分钟降到 3 分钟(主要是读 Hermes 报告的时间) - 高风险 bug 在合并前发现率:从 60% 提升到 85% - 重复性审查 comment 数量:减少约 70%(之前人工反复提的同样问题,Hermes 第一次就标出来) 当然 Hermes 不是万能的。它目前识别不了业务逻辑层面的问题,比如"这个改动是否和产品的支付逻辑匹配"。这类问题还是需要人工审查。

下期预告

Hermes 系列最后一篇:Docker 部署完整攻略——如何在服务器上跑 Hermes、对接远程开发环境、多人共享实例的配置方法,以及常见运维问题的解决。 --- 参考:Hermes Agent v0.3.2 CI/CD 集成文档 + GitHub Actions 配置示例

评论区

发表评论