2026年7月12日 2 分钟阅读

AI 编码 Agent 执行结果看运气?Rigorix 用确定性 DAG 让每次代码生成都可审计、可复现

tinyash 0 条评论

你的 AI 编码 Agent 究竟在做什么?

Claude Code 和 Codex 的确很强——它们能写代码、修 bug、跑测试、甚至独立完成整个功能开发。但有一个问题很少有人正面回答:

Agent 的每一次执行真的可复现吗?

当你让 Agent “给 API 添加一个新端点”,它可能调用 20 次 LLM、编辑 5 个文件、产生 3 次 git commit。下次运行同样的需求,流程可能完全不同——编辑不同文件、用不同的 API 模式、产生不同的 diff。这种不确定性在本地开发时或许可以接受,但当你想把 Agent 放进 CI/CD 流水线、交给合规审核、或者预算有限想防止 “失控循环” 时,问题就暴露了:

  • 无法审计:Agent 的”思考过程”散落在对话历史里,没有结构化的执行记录
  • 无法预算:不知道一次任务会调用多少次 LLM、消耗多少 token
  • 无法治理:没有策略引擎说”不允许修改 auth 模块”或”每个 diff 必须通过类型检查”

Rigorix 就是为了解决这个问题而生的——一个用 Rust 编写的确定性编码 Agent 运行时,MIT/Apache-2.0 双许可开源。

核心思路:把意图编译成 DAG

Rigorix 的核心想法非常直接:放弃自由散漫的 Agent 循环,把开发任务先编译成一个有向无环图(DAG),再执行。

传统 Agent 的工作方式是:

用户需求 → LLM 循环(决定→执行→检查→循环)

Rigorix 的方式是:

用户需求 → 分类器(选择模板)→ 提取参数 → 生成 DAG → 验证 DAG → 执行 DAG → 质量门禁 → 审计记录

区别是什么?前者 LLM 在每个步骤自由决定下一步做什么,后者执行路径在执行前就已确定。LLM 只负责生成代码内容,执行流由模板和 DAG 控制

三种工作模式

Rigorix 提供了三层使用方式:

  1. CLI 模式:本地开发,带 TUI 交互界面
  2. GitHub Action 模式:CI/CD 中的 PR 治理和自动化代码生成
  3. Engine 核心库:上述两者的底层,可作为库嵌入
$ rigorix plan "Add a method to TaskList class in src/task.ts that returns only active tasks"
Plan: Add a method to TaskList class in src/task.ts that returns only active tasks (confidence 100%)
  Template: add-get-active-tasks-method | LLM: 2 calls, 1141 tokens
  Parameters:
    └── file_path: "src/task.ts"
  Graph: 5 node(s), sealed=true
    · Read current task.ts file
    · Insert getActiveTasks method after activeCount
    · Write extended task list test file
    · Type-check with tsc
    · Run extended task list tests

Run this plan now? [y/N]: y
Run: Completed — 0 failed, 5 passed, 0 skipped (5 total)

看到区别了吗?在执行前,Rigorix 告诉你会做什么、调用几次 LLM、消耗多少 token。你可以审查、批准或拒绝。执行完成后,每一步都有结果记录。

模板系统:把工程流程编码为可复用的 DAG

Rigorix 的模板(Template)是它的核心抽象。一个模板定义了一次编码任务的完整结构:读哪些文件、生成什么、跑什么验证、输出放哪里。

name: extract-function-docs
description: Extract JSDoc comments from a TypeScript file
parameters:
  - name: file_path
    type: string
    description: Path to the TypeScript file
nodes:
  - id: read_file
    action: file_read
    params:
      path: "{{ file_path }}"
  - id: extract_docs
    action: llm_generate
    depends_on: [read_file]
    params:
      prompt: >-
        Extract all JSDoc comments from the file below.
        Return them as a markdown list.
      input: "{{ read_file.output }}"
  - id: write_output
    action: file_write
    depends_on: [extract_docs]
    params:
      path: "docs/{{ file_path | basename }}.md"
      content: "{{ extract_docs.output }}"

当用户说 “从 src/api.ts 提取文档” 时,Rigorix 分类器匹配到这个模板,让 LLM 填写参数(file_path),然后构建出 3 个节点的 DAG。模板控制流程,LLM 生成内容——职责分离非常清晰。

如果当前模板库中没有匹配项,Rigorix 会让 LLM 动态生成一个新模板并可缓存复用。

安全与治理:不只是”点确认”

大多数 Agent 工具在安全方面只是弹个权限确认框。Rigorix 做了三层防护:

层级能力
风险门控策略引擎检查每次操作是否在允许范围内
预算控制限制每次运行的 LLM 调用次数和 token 消耗
质量门禁执行后自动跑类型检查、测试、lint,不通过则标记

对比其他工具:

维度RigorixClaude CodeCursor
执行方式模板驱动 DAGAgent 循环Agent 循环
安全性风险门控 + 预算 + 权限权限提示框权限提示框
PR 治理内置 policy.toml外部 CI
审计HMAC 签名信封对话历史对话历史
质量门禁执行后自动验证

快速上手

安装

cargo install --git https://github.com/arman-jalili/rigorix-oss rigorix-cli

或者本地构建:

git clone https://github.com/arman-jalili/rigorix-oss
cd rigorix-oss && cargo build --release -p rigorix-cli

初始化项目

cd my-project
rigorix init

运行第一个任务

rigorix run "Explain how the main module works"

先审查再执行(推荐)

rigorix plan "Add error handling to the parser"
rigorix run "Add error handling to the parser"

适用场景

Rigorix 不是要替代 Claude Code 或 Cursor——它解决的是这些工具不擅长的问题:

  • CI/CD 自动化代码生成:让 Agent 在 CI 中自动生成代码变更,但受策略约束、产生审计记录
  • 合规敏感项目:需要完整执行记录满足审计要求
  • 成本管控:预算制 API 调用,防止 Agent 失控循环消耗大量 token
  • 团队协作:PR 治理 + 质量门禁,确保自动生成的代码符合团队标准

如果你的需求是 “Agent 跟我聊着天写代码”,Claude Code 更合适。如果你需要的是 “Agent 在无人值守下按规则生成代码并留下审计记录”,Rigorix 就是你要的工具。

总结

Rigorix 用 DAG 编译替代了自由 Agent 循环,在确定性灵活性之间做出了一个明确的取舍:放弃部分灵活性,换取可审计、可预算、可治理的编码自动化。对于想在 CI/CD 中安全使用 AI 编码 Agent 的团队来说,这是一个值得关注的方向。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。