Paraz
Paraz
0%
📖
44分钟
👆 顶部

🦞 用小龙虾(OpenClaw)搭建自动化代码走查流水线并生成Skill文件

Paraz-zz Paraz-zz
| 2026-05-15 09:21:56 138 阅读 0 评论 11 分钟阅读
🦞 用小龙虾(OpenClaw)搭建自动化代码走查流水线并生成Skill文件
从提交代码到自动审查、修复、归档,一条龙搞定,还能实时产出可复用的技能文件

在日常开发中,代码走查(Code Review)是最耗时但也最必要的环节。如果能把这部分交给AI自动化处理,不仅节省时间,还能保证每次审查的标准一致。本文将手把手教你如何用OpenClaw(小龙虾)搭建一套全自动代码走查流水线,并且在这个过程中实时生成Skill文件,让你今天搭好的流程,明天就能一键复用。

一、整体思路:流水线要做什么

我们要搭建的自动化代码走查流水线,包含以下几个环节:

text

代码提交(Push/PR)
      ↓
① 自动触发审查 ← 监听Git事件
      ↓
② 代码质量检测 ← 语法、风格、安全漏洞
      ↓
③ AI智能审查 ← 逻辑问题、边界条件、最佳实践
      ↓
④ 自动修复 ← 可自动修复的问题直接处理
      ↓
⑤ 生成审查报告 ← 结构化输出
      ↓
⑥ 沉淀为Skill ← 将本次流程保存为可复用的技能文件



最终目标:开发者只需要提交代码,小龙虾自动完成以上所有步骤,并把整个流程封装成一个Skill,下次同类项目可以直接调用。

二、环境准备

在开始之前,确保你已经完成了OpenClaw的基础部署。如果还没部署,可以参考上一篇文章《OpenClaw(小龙虾)零基础饲养手册》,或者按以下步骤快速检查:

2.1 验证OpenClaw运行状态

bash

# 检查OpenClaw是否运行
openclaw status

# 如果未运行,启动gateway
openclaw gateway start



访问 http://localhost:18789,确认控制台可正常访问。

2.2 安装必要的技能和插件

代码走查流水线需要用到以下技能/插件:


名称用途安装命令autoquality-claw质量门禁,自动审查代码变更openclaw plugins install autoquality-clawgithubGit操作和PR管理内置,无需安装programming-assistant代码分析和修复建议clawhub install programming-assistant

bash

# 安装autoquality-claw(质量门禁核心插件)
openclaw plugins install autoquality-claw
openclaw plugins enable autoquality-claw

# 安装clawhub技能管理器(如未安装)
npm install -g clawhub

# 安装编程助手技能
clawhub install programming-assistant



2.3 配置GitHub集成(可选但推荐)

如果想让流水线自动处理PR,需要配置GitHub访问权限:

bash

# 配置GitHub CLI认证
gh auth login

# 选择HTTPS方式,按照提示完成认证
# 需要授予repo读写权限



💡 如果没有GitHub账号或不需要自动PR,也可以只做本地代码审查,跳过此步骤。

三、搭建代码走查流水线

3.1 创建工作区并初始化配置

bash

# 创建专门用于代码走查的工作目录
mkdir -p ~/code-review-pipeline && cd ~/code-review-pipeline

# 初始化OpenClaw配置
openclaw init



3.2 创建审查规则文件

代码走查的核心是审查规则。我们需要创建一个review-rules.md文件,告诉AI按什么标准审查代码。

bash

touch review-rules.md



写入以下内容(可根据团队规范调整):

markdown

minIterations: 1
maxIterations: 4
qualityGate: "reviewer reports zero error-severity issues AND every behavior change is covered by a test"

# 代码走查规则 v1.0

## 审查触发条件
- 任何对 `src/` 目录下文件的修改
- 任何对 `tests/` 目录下测试文件的修改

## 跳过审查的场景
- 仅修改 `docs/` 目录
- 仅修改 `.gitignore` 或 `README.md`

## 审查维度(按优先级排序)

### P0 - 必须通过(阻断级)
- 安全漏洞(SQL注入、XSS、硬编码密钥)
- 空指针/未定义变量引用
- 内存泄漏风险(未释放的资源、未关闭的连接)

### P1 - 强烈建议修复
- 逻辑错误(条件判断、循环边界)
- 异常处理缺失(try-catch 空块或过于宽泛)
- 并发安全问题

### P2 - 建议优化
- 代码重复(DRY原则违反)
- 命名不规范
- 函数过长(超过50行)
- 过深的嵌套(超过4层)

### P3 - 风格提示
- 注释缺失或过期
- 导入语句未使用
- 格式化问题

## 审查输出格式

每次审查完成后,必须按以下格式输出:

### 📊 审查摘要
- 审查文件数:X
- 发现问题数:P0=?, P1=?, P2=?, P3=?
- 可自动修复数:?
- 审查耗时:X秒

### 🔴 严重问题(P0)
| 文件 | 行号 | 问题描述 | 建议修复 |
|------|------|----------|----------|

### 🟡 建议修复(P1)
...

### 🔵 优化建议(P2)
...

### ⚪ 风格提示(P3)
...

## Reviewer 指令
- 必须逐行分析代码变更,不可跳跃
- 遇到不确定的问题,标记为"需人工确认"并说明原因
- 对每个P0/P1问题,必须给出具体的修复代码示例

## Fixer 指令
- 优先修复P0级别问题
- 修复后必须运行测试验证
- 每次修复记录变更内容



3.3 配置autoquality-claw插件

编辑OpenClaw的配置文件(通常在.openclaw/config.jsonopenclaw.yml),添加autoquality-claw配置:

json

{
  "plugins": {
    "entries": {
      "autoquality-claw": {
        "enabled": true,
        "config": {
          "enabled": true,
          "rulesPath": "review-rules.md",
          "gatekeeperModel": "claude-haiku-4-5-20251001",
          "defaultReviewerModel": "claude-sonnet-4-6",
          "defaultFixerModel": "claude-sonnet-4-6",
          "reviewerAgentId": "code-reviewer",
          "fixerAgentId": "coder",
          "maxIterations": 4,
          "loopTimeoutSeconds": 600,
          "subagentRunTimeoutSeconds": 180,
          "emitLivenessUpdates": true,
          "mutatingTools": ["edit", "write", "apply_patch"]
        }
      }
    }
  }
}



3.4 创建主工作流配置

创建openclaw.yml文件,定义完整的走查工作流:

yaml

workflows:
  # 代码走查主工作流
  code-review-pipeline:
    trigger:
      - on: push
        branches: [main, develop, feature/*]
      - on: pull_request
        actions: [opened, synchronize, ready_for_review]

    tasks:
      # 任务1:检出代码
      - name: checkout-code
        command: |
          git fetch origin
          git checkout ${CI_COMMIT_SHA}
        description: "检出待审查的代码版本"

      # 任务2:安装依赖(如需要)
      - name: install-deps
        command: |
          if [ -f package.json ]; then npm ci; fi
          if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
        depends_on: [checkout-code]
        description: "安装项目依赖"

      # 任务3:静态代码分析
      - name: static-analysis
        command: |
          # ESLint for JS/TS
          if [ -f .eslintrc* ]; then npx eslint src/ --format json > eslint-report.json; fi
          # Pylint for Python
          if [ -f .pylintrc ]; then pylint src/ --output-format=json > pylint-report.json; fi
        depends_on: [install-deps]
        parallel: true
        description: "运行静态分析工具"
        on_failure:
          action: continue
          notify: true

      # 任务4:AI智能审查(核心)
      - name: ai-code-review
        command: |
          openclaw skill run code-reviewer \
            --input-dir ./src \
            --rules ./review-rules.md \
            --output review-report.json
        depends_on: [static-analysis]
        description: "调用AI进行代码审查"
        timeout: 300

      # 任务5:自动修复(仅限可自动修复的问题)
      - name: auto-fix
        command: |
          openclaw skill run auto-fixer \
            --report review-report.json \
            --max-attempts 3
        depends_on: [ai-code-review]
        description: "自动修复检测到的问题"
        conditions:
          - auto_fixable_issues_count > 0
          - branch != "main"

      # 任务6:运行测试验证
      - name: run-tests
        command: |
          if [ -f package.json ]; then npm test; fi
          if [ -f pytest.ini ]; then pytest tests/ -v; fi
        depends_on: [auto-fix]
        description: "运行测试套件验证修复"
        retry:
          max_attempts: 2
          backoff: exponential
        on_failure:
          action: rollback_fix
          notify: [slack]

      # 任务7:生成审查报告
      - name: generate-report
        command: |
          openclaw skill run report-generator \
            --input review-report.json \
            --format markdown \
            --output CODE_REVIEW_REPORT.md
        depends_on: [run-tests]
        description: "生成结构化的审查报告"

      # 任务8:沉淀为Skill(重点!)
      - name: archive-as-skill
        command: |
          openclaw skill create \
            --name "code-review-pipeline-$(date +%Y%m%d)" \
            --from-workflow code-review-pipeline \
            --output ./skills/
        depends_on: [generate-report]
        description: "将本次流程保存为可复用的Skill文件"
        conditions:
          - review_passed: true

    # 工作流级别的错误处理
    on_failure:
      action: notify
      channels: [slack, email]
      message: "代码走查流水线失败:{{error_message}}"



3.5 添加自动化测试技能集成

为了确保代码质量,建议在流水线中加入单元测试自动生成和执行的环节:

yaml

      # 任务3.5:单元测试覆盖检查与生成
      - name: test-coverage
        command: |
          openclaw skill run python-testing-patterns \
            --source-dir ./src \
            --test-dir ./tests \
            --coverage-threshold 80
        depends_on: [static-analysis]
        description: "检查测试覆盖率,自动补充缺失的单元测试"
        conditions:
          - language == "python"



3.6 启动流水线监听

配置完成后,启动OpenClaw监听模式:

bash

# 启动工作流监听
openclaw workflow start code-review-pipeline --watch

# 查看运行日志
openclaw logs --follow



现在,只要有代码推送到配置的分支,流水线就会自动触发。

四、实时生成Skill文件(核心功能)

这是本教程的重点:如何把刚才搭好的流水线,自动保存成一个Skill文件,以后可以直接调用。

4.1 Skill文件的结构

一个标准的OpenClaw Skill文件包含以下部分:

text

my-skill/
├── skill.json          # 技能元数据(名称、版本、依赖)
├── prompt.md           # AI执行该技能的指令
├── rules/              # 规则文件目录
│   └── review-rules.md
├── scripts/            # 可执行脚本
│   └── run.sh
└── examples/           # 使用示例
    └── example.md



4.2 从工作流生成Skill

当工作流成功执行完成后,archive-as-skill任务会自动将整个流程打包成Skill。具体来说,它会做以下事情:

  1. 提取工作流配置:将openclaw.yml中的任务定义转换为Skill的指令
  2. 打包审查规则:将review-rules.md作为Skill的核心规则文件
  3. 生成调用接口:创建标准的Skill入口文件
  4. 记录执行上下文:保存本次执行的成功参数,供下次复用

手动创建Skill的命令:

bash

# 从已有的工作流创建Skill
openclaw skill create \
  --name "code-review-automation" \
  --description "自动化代码走查流水线,支持多语言、自动修复、报告生成" \
  --version "1.0.0" \
  --from-workflow code-review-pipeline \
  --output ./skills/

# 查看生成的Skill
ls ./skills/code-review-automation/



4.3 生成的Skill文件示例

执行上述命令后,会生成类似下面的Skill文件结构:

json

// skill.json
{
  "name": "code-review-automation",
  "version": "1.0.0",
  "description": "自动化代码走查流水线,支持多语言、自动修复、报告生成",
  "author": "your-team",
  "triggers": ["code_push", "pull_request"],
  "dependencies": {
    "plugins": ["autoquality-claw"],
    "skills": ["programming-assistant"]
  },
  "config": {
    "rules_path": "rules/review-rules.md",
    "max_iterations": 4,
    "auto_fix_enabled": true
  }
}



markdown

// prompt.md - Skill的核心指令
# Code Review Automation Skill

You are an automated code review agent. When invoked, follow this exact workflow:

## Step 1: Analyze Changes
- Identify all files changed in the current commit/PR
- Categorize changes by language and file type

## Step 2: Apply Review Rules
- Load rules from `rules/review-rules.md`
- Scan each changed file against the rules
- Assign severity levels (P0/P1/P2/P3)

## Step 3: Generate Report
- Create structured report with findings
- Include fix suggestions for each issue

## Step 4: Auto-Fix (if enabled)
- Attempt to fix P0 and P1 issues automatically
- Validate fixes with tests

## Step 5: Output
- Return report in the specified format
- Optionally create PR with fixes

## Example Usage



/code-review src/ --auto-fix --output report.md

text



4.4 安装和使用生成的Skill

bash

# 安装刚生成的Skill
clawhub install ./skills/code-review-automation

# 或者直接复制到OpenClaw的技能目录
cp -r ./skills/code-review-automation ~/.openclaw/skills/

# 使用Skill进行代码审查(一行命令搞定)
openclaw skill run code-review-automation --input ./src --output review.md

# 或者直接在对话中调用
# 在OpenClaw聊天框输入:/skill code-review-automation 审查 src/ 目录



五、进阶:结合autoresearch实现持续优化

如果你的团队追求极致的代码质量,可以将代码走查与autoresearch实验循环结合起来。autoresearch是OpenClaw的一个插件,可以自动运行实验、测量结果、优化参数。

5.1 安装autoresearch插件

bash

openclaw plugins install @gianfrancopiana/openclaw-autoresearch



5.2 配置实验目标

在项目根目录创建autoresearch.md

markdown

# 代码走查优化实验

## Metrics to Optimize
- review_time_seconds: 审查耗时(目标:降低)
- false_positive_rate: 误报率(目标:低于5%)
- auto_fix_success_rate: 自动修复成功率(目标:高于80%)

## Experiment Script
./autoresearch.sh

## What's Been Tried
- 调整审查规则优先级权重
- 更换不同的AI模型
- 修改修复策略



创建autoresearch.sh基准脚本:

bash

#!/bin/bash
# 运行代码走查并输出指标

# 执行审查
start_time=$(date +%s%N)
openclaw skill run code-review-automation --input ./test-samples/
end_time=$(date +%s%N)

# 计算耗时(秒)
review_time=$(echo "scale=2; ($end_time - $start_time) / 1000000000" | bc)

# 分析结果
false_positives=$(grep -c "false_positive" review-report.json)
total_issues=$(grep -c "\"severity\":" review-report.json)
false_positive_rate=$(echo "scale=2; $false_positives / $total_issues * 100" | bc)

auto_fix_success=$(grep -c "fix_success" review-report.json)
auto_fix_total=$(grep -c "fix_attempt" review-report.json)
auto_fix_rate=$(echo "scale=2; $auto_fix_success / $auto_fix_total * 100" | bc)

# 输出指标
echo "METRIC review_time_seconds=$review_time"
echo "METRIC false_positive_rate=$false_positive_rate"
echo "METRIC auto_fix_success_rate=$auto_fix_rate"



5.3 启动自动优化循环

bash

# 启动autoresearch,自动寻找最优配置
/autoresearch setup "优化代码走查的准确率和效率"

# 查看实验进展
/autoresearch status



autoresearch会自动运行多轮实验,每次调整参数(如换模型、改规则),保留效果更好的配置,最终沉淀为最优版本的Skill。

六、实战案例:Python项目的代码走查

下面用一个完整的案例来演示整个流程。

场景

你有一个Python项目,刚刚提交了一个PR,希望AI自动完成代码审查并生成报告。

步骤1:触发审查

在OpenClaw对话框中输入:

text

请对 ./my-python-project/src/ 目录进行完整代码走查,项目使用Python 3.11,遵循PEP 8规范,重点关注安全漏洞和逻辑错误



步骤2:AI自动执行

小龙虾会按顺序执行:

  1. 扫描src/下所有.py文件
  2. 加载review-rules.md中的规则
  3. 逐文件分析,输出问题清单
  4. 尝试自动修复P0/P1问题
  5. 运行pytest验证修复
  6. 生成CODE_REVIEW_REPORT.md

步骤3:查看报告

生成的报告示例:

markdown

# 代码走查报告
生成时间:2026-05-15 14:30:22
审查范围:./my-python-project/src/
审查文件数:12

## 📊 摘要
| 级别 | 数量 | 状态 |
|------|------|------|
| P0(阻断) | 1 | ✅ 已修复 |
| P1(严重) | 3 | ✅ 已修复 |
| P2(建议) | 5 | 待处理 |
| P3(风格) | 2 | 待处理 |

## 🔴 P0问题(已修复)
### 文件:src/auth/login.py 行号:47
**问题**:硬编码的API密钥
**修复**:已替换为环境变量`os.getenv('API_KEY')`

## 🟡 P1问题(已修复)
...

## 总结
- 自动修复成功率:80%(4/5)
- 建议人工关注:P2级别的函数过长问题(user_service.py 第120-210行)



步骤4:沉淀Skill

审查完成后,执行:

bash

openclaw skill create \
  --name "python-code-review" \
  --from-execution last \
  --output ./skills/



以后遇到新的Python项目,只需要:

bash

openclaw skill run python-code-review --input ./new-project/src/



七、常见问题与解决方案


问题可能原因解决方法审查任务卡住不动AI模型响应慢或超时检查网络连接,或降低maxIterations值autoquality-claw不生效未正确配置rulesPath确认review-rules.md存在且路径正确自动修复破坏了代码修复逻辑有问题设置maxIterations: 1先测试,或禁用auto-fixSkill生成失败工作流未完整执行检查所有任务状态,确保archive-as-skill依赖的任务都成功了GitHub PR无法自动创建缺少认证或权限运行gh auth login重新认证,检查token权限

八、总结

通过以上步骤,你已经成功搭建了一套全自动的代码走查流水线,并且掌握了如何将流水线实时生成为Skill文件的核心技能。

回顾一下我们做了什么:

  1. ✅ 创建了审查规则文件review-rules.md
  2. ✅ 配置了autoquality-claw质量门禁插件
  3. ✅ 编写了完整的openclaw.yml工作流
  4. ✅ 实现了自动触发→审查→修复→报告的全流程
  5. ✅ 将工作流打包成可复用的Skill文件
  6. ✅ (进阶)集成了autoresearch实现持续优化

现在,你的小龙虾已经具备了“代码审查专家”的能力。无论是日常开发还是CI/CD集成,都可以用这套流水线来保证代码质量。

下次新项目开始时,只需要一行命令:

bash

openclaw skill run code-review-automation --input ./src/



小龙虾就会自动完成整个走查流程,把时间还给你,去写更有价值的代码。🦞

*本文教程基于 OpenClaw v2.7.1 及 autoquality-claw v0.1.0,随着版本迭代,界面和功能可能会有变化,请以实际使用为准。*

网友评论

暂无评论,来发表第一条评论吧

分享文章

相关树洞

暂无相关树洞内容