@0xsequence/codegenie

中文文档
0.7.0发布于 2026/09/26MITES Module近 30 天下载 6073

高级AI代码审查代理

中文使用文档
文档目录13 节
  1. 安装
  2. 快开始
  3. 审查
  4. GitHub 动作
  5. 每个评论选取的几个模型
  6. 全权证书
  7. 触发、信任和取消
  8. 供应商和模式
  9. 配置
  10. 如何进行审查
  11. 设计和哲学
  12. 发展
  13. 状态

代码 qq

AI代码检讨管. codegenie是一款TypeScript CLI,在员工-工程师级别上审查PR-风格的diffs——真实的bugs,逻辑错误,安全问题,建筑风险,以及缺失的测试——并避免将你的注意力浪费在nitpicks上. 它宁愿不发表评论,也不愿发表微弱的评论。 codegenie支持所有受欢迎的LLM提供者.

这不是一个聊天员指向diff。 这是一个多阶段的代码审查工具:一个分阶段的管道,其中确定性代码拥有保证(覆盖、锚地、核查、卸载、预算、遥测),LLM代理在每个阶段进行判断工作。 Codegenie是建立在 pi AI 库和树保姆语言剖析器上,以提供更强大的工具来更高效地穿行代码.

安装

npm install -g @0xsequence/codegenie   # or: bun install -g @0xsequence/codegenie

或者不安装就运行 : npx @0xsequence/codegenie --help

注: npm 软件包将搬出 @0xsequence 范围.

快开始

# 1. Connect a model provider (pick one)
codegenie provider login anthropic --api-key   # Anthropic API key
codegenie provider login openai-codex          # ChatGPT plan (browser OAuth)
codegenie provider login openai --api-key      # OpenAI API key
codegenie provider login openrouter --api-key  # OpenRouter API key setup

# 2. Pick your default model (fuzzy-matched)
codegenie provider use luna:xhigh                # -> openai/gpt-6-luna
codegenie provider use opus                      # -> anthropic/claude-opus-5
codegenie provider use gpt-5.5                   # -> openai-codex/gpt-5.5
codegenie provider use deepseek-v4.1-flash:max   # -> openrouter/deepseek/deepseek-v4.1-flash
codegenie provider use glm-5.3:max               # -> openrouter/z-ai/glm-5.3


# 3. Review your current branch
codegenie review

Codegenie的内置模型 覆盖了所有 OpenRouter 模型 , 并且从 ID 开始 deepseek/ 页:1 deepseek, (中文(简体) ), fireworks,以及 together 上游(按此顺序排列) only编号 :order 财务报告和审定财务报表 allow_fallbacks: false。对于这个被绑定的模型家族,提交呼叫只会暴露提交工具和使用 tool_choice: "auto",以容纳在DeepSeek V4.1 Flash上观察到的被命名为强制工具的拒绝. 交回的呈文仍然经过严格的验证,而缺失的呈文已经限定了复述的范围. 这些 OpenRouter 路由偏好 适用于每一个阶段,包括修理; Codegenie的阶段特定推理水平仍然适用。 不能回到清单之外的上游。 routing包含在调试请求跟踪和本地模式调用缓存密钥中. 超音速飞行器 src/provider/models-override.ts。 。 。 .

以 ID 开头的 OpenRouter 模型 z-ai/ 使用情况 only: ["together", "fireworks", "cloudflare"], (中文(简体) ), order: ["together", "fireworks", "cloudflare"],以及 allow_fallbacks: false. 这种通路覆盖适用于各个阶段,包括修复,并保留了模型的推理和工具选择行为. 它没有添加 require_parameters。 。 。 .

在我们的追踪-api eval中,将 OpenRouter 和 自动提交工具相容的设置一起 连接到 DeepSeek 的上游, 产生了显著更好的完成和性能: DeepSeek V4.1 Flash at max 完成运行 79 in 8平方千米23 (8m23),所有已审查 10/10 猎犬,找到预期错误,然后通过 无超时。在这些变化之前,运行 77 42m19s (英语) 和失败的完整 与7个未经审查的hunks。 组成从将近6分钟(包括计时尝试)降至 20秒钟。记录成本从大约 0.14至0.26 (美元);运行中的超时电话77的使用报告不完整。 这是一次eval比对,并不是每个DeepSeek模型或工作量的保证:跑出79还使用了具有正常覆盖度的倒计时器,而不是跑出77's 大部分深度覆盖度的倒计时器,仍然需要计划修复. 覆盖目标为 deepseek/ openRouter上的模型命名空间;它不直接调用DeepSeek的API,也不改变其他模型家族.

报告打印成马克道克 附有调查结果的审查是: 已经成功 审查:退出代码为: 0 无论是哪种方式.

审查

codegenie review                            # current branch vs its base (merge-base semantics)
codegenie review --pr 123                   # a GitHub PR — no checkout needed, fork PRs included
codegenie review feat                       # branch vs resolved base
codegenie review --branch feat --base main
codegenie review master...49f4645b          # shorthand for --base master --head 49f4645b
codegenie review abc1234                    # one commit
codegenie review abc1234 def5678            # a commit range

单位目标为分支-第一:如果它作为一个分支解决,Codegenie根据它的基数来审查;否则它就被当作一个单一的承诺.

一等语法上下文和默认语言指导目前覆盖了Go,TypeScript,JavaScript,Rust,Python,和Solidity. JavaScript 有自己的语言 lang/javascript 运行时语义指导; .js, (中文(简体) ), .jsx, (中文(简体) ), .mjs,以及 .cjs 共享已验证的 ECMAScript 适配器执行,而不继承 TypeScript 只检查。 JavaScript CommunityJS导出推论,Flow/JSDoc语义打字,不支持的建议语法,框架/bundler语义仍然被推迟. 固态包包括合同自有的方法/类型/活动/错误/状态值、只进口源、超载安全申报身份和确定默认的预设 foundry.toml 已存在。 文件级常数不是值符号. 固态存储-放出、生成-改进、ABI/出口分析、自定义创建目录和Hardhat TypeScript连接仍然被推迟; 故意留下的固态符号 exported 未设. 蟒 .pyi 积分/海关收集以及Rust同文/任意整合-测试发现也仍然被推迟.

Rust, Python, and Solidity 组成一个语言-库存单位. 他们三种默认启用的技能有意改变全球第5阶段技能清单、登记册散列和模式调用缓存身份。 单一的外部测量边界是在完成第1-4阶段库存时发生的 origin/next 时间 eb20533;该修订前后的测量数据不能与同一缓存/即时制度相媲美。 后期第五阶段大门位于 40b87b0 更改验证、包装政策、固定装置、测试和文件,但不包括捆绑的技能清单或登记册散列。 一个分支推不是 npm/ 标记发布 : master,最新标签和 npm latest 保持不变 v0.4.2 直到明确释放.

专门的JavaScript技巧和收缩的TypeScript技巧在修订时创造了第二个有意的阶段-5库存/登记/缓存边界,这个完整的阶段-6单元首先对外可见. 在整个着陆过程中的测量是不可比较的即时/缓存制度。 本地执行或分支推仍然有别于主合并,标记,npm发布,或GitHub发布.

共同选项 :

codegenie review --depth light|normal|deep         # review budget & planner bias
codegenie review --lens lang/go --lens core/tests  # restrict lenses for this run
codegenie review --provider anthropic --model claude-opus-5   # one-run model override
codegenie review --model claude-opus-5:max         # model[:reasoning] shorthand
codegenie review --reasoning high                  # minimal | low | medium | high | xhigh | max | auto
codegenie review --format json                     # machine-readable review object
codegenie review --pr 123 --post-github-comments   # publish inline comments (explicit flag, never config)

贴到 GitHub 是单曲 COMMENT- 以已更改行为锚的内置注释进行类型审查 —— 它从不批准或请求更改, 只有在您通过国旗时才会发生 。 交互式运行显示一个 stderr 进度自旋器( CI 中自动失效 ); --no-progress 明确禁用). 副刊Markdown/JSON将报告全文发出,转而发出一份简洁的张贴摘要。 行动模式将报告全文分别纳入状况评论、步骤摘要和报告文物.

投稿文件( E).md, (中文(简体) ), .mdx, (中文(简体) ), .rst, (中文(简体) ), .txt),无变化的内置注释内容会在同一文件与diff一面的被转移锚点上被分解. 相匹配在截取前使用完整的消毒体;修改后的措辞仍然符合张贴条件. 可执行实例 docs/ 保留代码指纹匹配 。 单独的调查结果不能仅仅因为出现在同一个文件中而合并.

GitHub 动作

codegenie ships 作为一种可重复使用的 GitHub 动作: 在 PR 打开/ 更新上自动运行审查, 或在合作者评论时按要求运行 codegenie review 在公关。 运行会张贴一个单一状态评论("Reviewing..."),该评论通过管道阶段进行活化更新,并完成为完整减记报告;内置后查找评论帖作为公关审查(默认情况下), post-inline-comments: "false" / 禁用).

# .github/workflows/codegenie.yml
name: codegenie review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review]
permissions:
  contents: read
  pull-requests: write
  issues: write
concurrency:
  group: codegenie-review-pr-${{ github.event.pull_request.number }}
  cancel-in-progress: true  # newest event wins; a push supersedes the stale review
jobs:
  review:
    runs-on: ubuntu-latest
    timeout-minutes: 45
    steps:
      - uses: actions/checkout@v7
        with:
          ref: ${{ github.event.pull_request.base.sha }}  # trusted base; PR head is fetched as review data
          fetch-depth: 0
      - uses: 0xPolygon/[email protected]
        with:
          # Works with any model!
          model: "openrouter/openai/gpt-6-luna:xhigh"
          # model: "openrouter/deepseek/deepseek-v4.1-flash:max"
          # model: "openrouter/z-ai/glm-5.3:max"
          # model: "anthropic/claude-opus-5:high"

          # Set the llm-api-key to the api key for the respective model provider.
          # for example, for Claude, pass an Anthropic key, for OpenRouter models
          # pass the OpenRouter API Key.
          llm-api-key: ${{ secrets.LLM_API_KEY }}

这个 model 输入是一个 spec: provider/model[:reasoning] - 任何型号 型号.md 工程 (openai/gpt-5.5:xhigh, (中文(简体) ), google/gemini-3-pro),推理默认为 high。 。 。 . llm-api-key 是提供方- 基因: 代码基因将它导出到指定提供方读取的任何变量 。 何时 llm-api-key 它被设定为唯一的模式键——它超越了提供商的env vars. 没有它,Codegenie读取提供者自己的env vars(参见: 全权证书) (中文(简体) ).

每个评论选取的几个模型

列出命名型号一次. model 保留自动审查的默认值和空值 codegenie review。合作者可以评论 codegenie review opus 来运行一次回顾 opus 输入.

      - uses: 0xPolygon/[email protected]
        env:
          # one credential env var per provider in the list (see Credentials below)
          OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        with:
          model: luna                 # default: an alias below, or a full spec
          models: |
            luna:     openrouter/openai/gpt-6-luna:xhigh
            deepseek: openrouter/deepseek/deepseek-v4.1-flash:max
            glm:      openrouter/z-ai/glm-5.3:max
            opus:     anthropic/claude-opus-5:high
  • 语法. 触发短语后的第一个词,在同一行,被放在 models (对大小写不敏感;周围的引文或后缀和后缀被忽略,所以 `opus` 财务报告和审定财务报表 opus. 双方工作). 评论中没有其他内容被读取. 评论不能提供模型规格、推理级别或任何其他选项;为了提供推理变量,为其添加别名(opus-max: anthropic/claude-opus-5:max) (中文(简体) ). 无 models,在触发语句后,正像以前一样忽略了文本.
  • 未知名号. codegenie review opsu 运行不审查。 带有已配置名称的代码化响应( c)Unknown model. Available: luna (default), deepseek, …),并且只发给通过许可检查的合作者.
  • 钥匙. models 只持有模型规格——从不将密钥放入其中. 与多家提供商一起,将每个提供商的env var设置在台阶上,如上. 如果每个配置的模型都使用一个提供者,一个 llm-api-key 覆盖他们全部。 何时 llm-api-key 被设定,且模型跨越多个提供者,每一次运行都会因配置出错而失败,而不是将一个提供者的密钥发送到另一个提供者. 在一个自营的跑者那里 codegenie provider login 对于提供商来说,存储的登录将优先,所以运行失败,并说要登录到那里或放下 llm-api-key。 。 。 .
  • 取序相变. llm-api-key 现在胜过同一供应商的提供商 古老的释放更喜欢阴道。 现在使用的工作流程设置了两种不同的值 llm-api-key。 。 。 .
  • 一个状态评论. A 类 codegenie review opus 注释取代同一PR(最新事件胜出)的飞行中运行,PR的单个状态评论显示最新报告.
  • 错误类型的名称仍然取消 . codegenie review opsu 开始运行以取代运行中的审查,然后只公布答复——与下文所述的“任何评论都取代”权衡.
  • 跨模型的内置注释会累积. A 类 codegenie review opus 在自动审查后运行,公布其内部调查结果。 重复压制只符合不变的措辞,因此两个报告同一问题的模型都出现. 预计将提出第二份意见.

全权证书

每个供应商都从自己的地道读取钥匙。 常见的:

提供者新闻 var
anthropicANTHROPIC_API_KEY
openaiOPENAI_API_KEY
openrouterOPENROUTER_API_KEY
googleGEMINI_API_KEY
amazon-bedrockAWS 证书AWS_ACCESS_KEY_ID + 键 AWS_SECRET_ACCESS_KEY, (中文(简体) ), AWS_BEARER_TOKEN_BEDROCK,或 OIDC 通过 aws-actions/configure-aws-credentials(中文(简体) )
google-vertexGOOGLE_CLOUD_API_KEY,或应用程序默认身份加 GOOGLE_CLOUD_PROJECT 财务报告和审定财务报表 GOOGLE_CLOUD_LOCATION

大部分名字都是首都的提供人身份 _API_KEY例外包括: google → GEMINI_API_KEY, (中文(简体) ), vercel-ai-gateway → AI_GATEWAY_API_KEY, (中文(简体) ), huggingface → HF_TOKEN, (中文(简体) ), github-copilot → COPILOT_GITHUB_TOKEN名称,例如 MOONSHOT_API_KEY 财务报告和审定财务报表 CLOUDFLARE_API_KEY。 。 。 . openai-codex 使用已存储的 ChatGPT 计划登录,所以在CI中它需要一个带有该登录的自主机跑车. 每个供应商的完整表格都在 模型.md#证书。一个缺失的密钥会以一个信件来命名要设置的 Env var .

触发、信任和取消

见 examples/workflows/codegenie-review.yml 用于一个既服务于触发道的工作流程(自动并触发评论)。 所有授权——精确的触发句匹配,活写-permission检查,型号-名取出——都发生在代码(codegenie)内部;工作流程中没有任何能漂移的滑动逻辑. 取消政策是一条规则: cancel-in-progress: true,最新事件获胜——一推就取代了现在的回顾. 在评论道上,这也意味着对PR的任何评论都会在Codegenie决定是跳过之前取代PR在飞行中的运行;如果你的PR线程是聊天的,请设定为: false (重触发队列代替),或打开一个单独的未组合任务与 preflight-only 输入最严格的设置 。 飞行前的工作不需要模型证书;给予同样的证书 model, (中文(简体) ), models 并触发投入作为审查工作。 叉头 pull_request 事件跳过干净(评论道服务于分叉公关),所有张贴都是决定性的带码——经过审查的内容和评论文本从未作为指示或工具到达模型. 成本是通常的二: GitHub Action minutes和提供者的代号.

供应商和模式

codegenie provider list                  # known providers and auth status
codegenie provider login <provider>      # OAuth by default; --api-key to store a key
codegenie provider models [query]        # list available models (e.g. `models gpt`)
codegenie provider use <model>           # set the default by fuzzy model id
codegenie provider use <model>:<level>   # ...and its reasoning level (e.g. opus:max)
codegenie use <model>[:<level>]          # shorthand for `provider use`

支持的模型的完整清单——每个提供商、模型代号、上下文窗口和推理水平——生活在 型号.md (来自 模式.dev 登记册; 以 make models-list) (中文(简体) ).

provider use 模糊矩阵 : use opus, (中文(简体) ), use sonnet, (中文(简体) ), use gpt-5.5 所有给混凝土提供者/型号配对的分辨率,并打印他们选取的东西(确切的标识,然后是前缀,然后是全名尾巴,然后是下字符串;链接到后来列出的标识)。 A 类 :reasoning 后缀在同一步骤中设置关卡(use deepseek-v4.1-flash:max); 不支持的关卡被正常化为支持的关卡,命令打印并保存有效关卡. 精确支持的关卡被保存. 退后偏好为 minimal → low, (中文(简体) ), medium → high,以及 xhigh → max; 如果无法找到目标, 请选择其上方的下一个支持级别, 或可用的最高级别 。 这也适用于: provider config set-reasoning· ; :auto 清除存储级别。 没有广告推理水平的模型保留了现有的行为. 证书和默认值低于 ~/.codegenie/,从不在仓库。 所支持的道包括Anthropic (API key)和OpenAI,通过API和ChatGPT-plan Codex OAuth两种方式——全部在每家提供者目前的API上.

配置

放下一个 codegenie.toml 在你的还原根。 每件事物都有合理的默认;典型的配置是小的:

[git]
baseBranch = "main"

[review]
depth = "normal"
maxTime = 60        # positive number of minutes; --max-time overrides this per run
budgetBoost = 1.0   # scales per-packet review budgets; does not change finding caps
compositionReasoningStepDown = true # default; set false to keep configured reasoning for composition

[telemetry]
enabled = true      # opt into local run artifacts under .codegenie/runs

[[classification.pathRules]]
pattern = "lib/payments/**"
reviewPriority = "critical"
labels = ["payments"]

[[classification.pathRules]]
pattern = "generated/**"
processingMode = "skip"
  • 遥测默认关闭. Repo 配置只能设置 telemetry.enabled; 用户级别 ~/.codegenie/config.toml 也可以设置运行的目录,日志级别和保留.
  • 技能旅行与回波. 团队可以将具体项目审查专门知识作为Markdown 技能 .codegenie/skills/ ——具体检查,假阳性规则,安全规律.
  • 预算是调度,不是中调中断. review.maxTime 默认为30分钟,可设置在repo或用户配置中; --max-time <minutes> 是每个运行的最后一个覆盖。 越过软盖可以让飞行中的工作完成,记录超支,并停止派遣非必要的工作.

如何进行审查

十一相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 五是LLM调用(阴影);其他一切都是决定性代码——决定性阶段拥有保证.

flowchart TB
    S1["1 · Resolve input<br/>PR / branch / commits → base, head, diff"]
    S2["2 · Parse & filter diff<br/>skip generated / vendor / binary"]
    S3["3 · Classify files<br/>language, test vs source, priority"]
    S4["4 · Index symbols<br/>tree-sitter parse, static signals"]
    S5(["5 · Plan (LLM)<br/>intent, coverage depth, lenses"])
    S6["6 · Build review packets<br/>hunks + symbols + tests + context"]
    S7(["7 · Review packets (LLM × packet)<br/>parallel, read-only repo tools"])
    S8(["8 · Follow-up (LLM, usually skipped)"])
    S9(["9 · Verify (LLM × candidate)<br/>fresh context, never sees reviewer reasoning"])
    S10(["10 · Compose (LLM)<br/>merge, rank, cap, phrase"])
    S11["11 · Publish<br/>stdout / JSON / optional GitHub comments"]

    S1 --> S2 --> S3 --> S4 --> S5 --> S6 --> S7
    S7 --> S9
    S7 -. "repeated scoped questions only" .-> S8 --> S9
    S9 --> S10 --> S11

    classDef llm fill:#fdf3d8,stroke:#c8963e,color:#5b4a1e;
    class S5,S7,S8,S9,S10 llm;
{\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}阶段它会做什么LLM 调用
1个解析输入转弯 --pr / 分支 / 将 args 输入到可信任的 base+ 头修改和原始 diff 中 .—— 说
2个解析过滤器( F)分析统一的 diff; 跳过生成/ vendor/ lock/ 二进制文件; 短路 0- 工作运行 .—— 说
3个分类指定语言,测试-vs- source状态,审查优先级,以及路径规则标签.—— 说
页:1指数构建符号索引(tree-sitter),提取已改变的符号事实和静态风险信号.—— 说
页:1计划决定意向框架、每个目标覆盖深度和镜头。 不猎虫.1个
6个构建数据包集成焦点包:已更改的hunks, 包含符号, 文件大纲, 可能的测试, 绑定相關上下文 .—— 说
第7条审查平行审查人员用只读的Repo工具审查每包(read_symbol, (中文(简体) ), find_definition,并返回候选人调查结果+不确定性.每包1个
第8条后续行动仅在多个数据包独立提出相同范围的问题时运行;大多数运行跳过它.0 - 纵横
第9条校验每个候选人都会在从未见过审查者推理的新背景下接受独立再审.每个候选人1名
10个编曲Dedupe和合并了同根 - 因为发现,级别,上限,和短语 最终审查.1个
第11个发布写入 stdout/ JSON; 后 GitHub 注释只使用明确的旗帜 .—— 说

审查单位为已改变的hunk;理解单位为受影响的系统. 审查者不会把存储器丢在上下文中——他们得到一个紧凑的包和工具,在每包预算范围内,把一个关切所依赖的完全拉出来.

设计和哲学

在模型中判断,在牵引力中变化无常. codegenie有四个主要的LLM决定点——规划者,审查者,核查者,作曲者——其他一切都是决定性的管道. 一个完全自主的代理是一个决策点, 作出数百个不可接受的微观决定; 我们宁愿有一些可审计的决定。 一个审查工具的价值不是"查找bugs"(边框模型免费做)——这是围绕调查结果的保证:

  • 报道诚实. 每个猎人都会得到一个决定 或一个被披露的跳过的原因。 一个自主的特工不能告诉你是什么 没有 看着.
  • 独立核查. 校验者从来不会看到审查者的推理,因此他们不能在它上站住脚——分离之所以存在,只是因为工作流程强制执行.
  • 诊断质量. 不同阶段之间打入的文物意味着每一次错失都是可以归咎于的:世代错失,在核实时被杀死,被去除,或被盖被剪去. 一个端到端的代理告诉你 那个 它错过了;一个舞台吊带告诉你 为什么。 。 。 .
  • 精密经济学. 有一条错误的言论公开流出, 自主优化探索;审查产品需要在代码中强制精确.

自治权仍然维持着它的生活 内部 在预算范围内,审查员和核查员用工具调查的各个阶段. 政策按模式, 变化的代码.

先决相取. 所有可以决定的都是:diff解析,分类,符号提取,包构造,锚定,指纹,盖. 树保姆是跨语言语法的下方,作为 综合证据,不是语义上的真理 ——工具结果带有后端和精准出处,因此审查者知道该如何相信它所读的内容.

焦点上下文胜出大上下文. 一个模型把100k-token diff 的评分 一点点,没有好。 小的密集包 加上目标工具 颠倒了这一点.

技能是检查,而不是人. 技能是一出由混凝土检查,假阳性规则,安全图案,和实例组成的马克下地档案——而不是"你是一个精细的高级工程师"剧场. 每个阶段都会有指导,这样它就会在改变行为的地方降落.

已建成待评. 有了遥测功能,每跑会写出打字的文物——计划,包,候选者,判决,选择,预算,每个呼叫费用. codegenie eval 根据预期结果重播真实的重播, 分数缺失 损失阶段eval套房、技能和遥测是复合资产——其中的模型交换.

Eval YAML也可以选择独立观察推荐法官:

recommendationJudge:
  provider: openai-codex
  model: gpt-6-astra
  reasoning: medium
  checks:
    - id: preserves-caller-contract
      rubric: |
        State the established caller requirement and relevant source evidence.
        Assess whether the published remedy preserves that requirement.
        Accept equivalent implementations; distinguish withheld advice from
        an incorrect recommendation and from rejected historical alternatives.

这使得每次直播后再使用一次LLM通话,使用的是上面的固定法官而不是审查模式. 结果为: correct, (中文(简体) ), incorrect, (中文(简体) ), withheld,或 uncertain,并附有报告引用和理由。 它们分别出现在 info.json 财务报告和审定财务报表 recommendation-judge.json;法官费用与审阅费用是分开的,而否定的判断或法官的错误都不会改变现有的 eval ass/故障. 法官将公布的报告与制作者的历史出处相提并论;它不独立检查存储处。 在使用判决作为高质量证据之前,在标题中提供有关合同,并对照节省的报告进行校正。 无效的响应和180秒的超时产生明显的错误,没有修复回路.

自动重新评分 默认会离线 。 使用 codegenie eval --from-artifacts /path/to/logs/118 --judge。重放创建了新运行;不会改变原运行。 重复的现场案件记录判决和每次重复案件的单独使用 score.json 审判文物.

对于可选法官校正, scripts/calibrate-recommendations.ts 装入一个 eval 大小写和单独的 JSON 数组 { id, report, expected, reason } 实例。 运行它 pnpm exec tsx scripts/calibrate-recommendations.ts --eval-dir <suite> --cases <cases.json> --out <new-directory> --repeats 2; 添加 --live 给法官打电话 黄金标签不在提示范围. 每一次重复和分歧都会被节省,同时使用和输入散列。 此校正不会改变 eval ass/ 失败 .

审查不信任的代码是一个安全问题. PR是攻击者控制输入流入工具装备的LLMs,其输出被公开发布. 未经信任的内容在结构上被划分为非指令数据;工具执行再接再励的封装;再接的配置永远不会允许命令执行或发布;评论在发布前通过确定性消毒.

诚实的失败,可以预测地降解. 一个失败的策划者又回到一个决定性计划;一个失败的包标志着其覆盖范围;预算耗尽使未来的调度停止,而不放弃已完成的工作。 部分审查退出 0 财务报告和审定财务报表 说他们是部分的。 。 。 .

证据需要时建起. 更丰富的设计(分级规划,每个作用模型分级,跨包索引)被指定,但被推迟到书面触发后——当遥测显示其改进了审查质量时会加入机械,从不推测.

Eval案件可选择更严格的可靠性检查:

expect:
  planningQuality: non-degraded
  compositionQuality: non-degraded
  recoveryFidelity: preserved

计划检查拒绝退化的计划,即使每一次审查都这样。 成分检查拒绝将退化报告综合与覆盖完整性分开。 回收检查需要完全的遥测,没有未解决的结构化产出义务,并证明保存;重新生成或修订的内容作为报告 unknown,没有假设保存。 修复工作保留了整个复读进度草案并验证了整个合并呈件。 对于无法读取的JSON,修复提示包括一个有边框的,被修改过的语法节录和可得到的解析器诊断. 碎片仍然是不信任的诊断,从未接受过数据或证明替换者保留了原件.

SVG 文件默认被跳过 。 设定 [review] skipSvgReview = false 内 codegenie.toml,或运行 codegenie review --no-skip-svg-review,将其列入,但须遵守其他排除规则. --skip-svg-review 明确启用跳过 。 此控制更改文件审查; 仓库证据搜索仍然可以找到 SVG 内容并披露它们忽略的超大小匹配 .

地方调查预算是软目标,硬上限为 2× (简体中文) 用于集合工具呼叫、调查回合和结果字符的目标。 这适用于包审查、系统审查和核查。 在正常深度与 budgetBoost = 1,调查包目标20呼叫 / 6发 / 48 000个字符深覆盖,6 / 2 / 12 000个正常覆盖,4 / 2 / 4 000个轻覆盖。 系统审查目标为6/2/12 000;核查目标为8/3/32 000。 在计算最高比率之前,适用深度和预算比额表。 零预算仍为残疾。 现有源扩展部分包含在这项备抵中,不能增加超出这一备抵的能力。 每笔成果上限、明确的支出限额、供应商背景限制、阶段期限和修理预算保持不变.

在第一次请求之前和每个寄存器工具批次之后,模型都收到剩余的软目标,并在目标达到时得到完成或解决所剩具体问题的推动. 追踪记录软目标、硬天花板和剩余容量 tool_budget_initial 编号 : tool_budget_remaining,加单曲 tool_budget_soft_target_reached 每项调查的事件。 仅跨越目标不是拒绝或不完整的审查诊断。 已执行的调用和缓存会点击每个计数;无效的参数和执行前拒绝不消耗这些调用,而是一个单独的拒绝限制和圆天花板绑定的重复无效请求. 资源分配是共享性能津贴范围内的指导。 发现结果保留了4 000个字符的每个成果上限(2 000个用于轻度调查),但须视现有预算规模而定。 搜索和文件列表保存整个条目并披露遗漏. 无效的原始工具参数在 SDK 强制之前收到更正反馈 . read_range 要求同时包含基于 1 的界限; 请求完全超出 EOF 返回空文本, 而不是另行 .

对于没有语法适配器的格式,大纲明确将符号提取标记为不可用. 小文件包括完整的源文本; 更大的文件提供 read_range 指点 空符号数组不能确定缺少定义 。 通过大纲提供的完整来源也可以作为注意力调节期间的证据.

组成默认使用下一个较低支持的推理级别,包括重试:用于支持的模型 low, (中文(简体) ), high,以及 max, (中文(简体) ), max 变成 high设置 [review] compositionReasoningStepDown = false 内 codegenie.toml 以保留配置的编组审查推理级别。 最低支持的关卡保持不变;没有公示的推理关卡的模型保留所配置的行为. 每跑一次覆盖此选项 codegenie review --composition-reasoning-step-down 或者说 --no-composition-reasoning-step-down。两面旗帜都保留配置,默认为 true. 调查和核查时保持其配置的推理;跟踪记录的配置和选定的级别。 结构化产出维修继续使用模型最低的支持推理水平。 每次尝试都有300秒的期限,最多一次重复试验。 外部构成期限为780秒(两次尝试加180秒的共享修理津贴);总体审查取消仍然优先。 修理工作共用180秒的津贴,而不是每人获得180秒的津贴.

组成在接受之前验证来源参考。 它在当地删除了重复的已知参考文献和错误的参考文献,这些参考文献已经正确计入同一发现,记录了这些去除,并验证了整个结果。 其余的归属错误在有准确的实地路径和源目录的新背景下得到有界限的修复。 归属补丁只取代所允许的参考列表;寻找秩序和传言保持完好无损,集合后的报告必须经过充分验证. 如果一项建议缺乏支持,限定范围的组成修复可能会在保留诊断和保留其原始来源的同时省略或改写该咨询部分。 报告合并了相同的证据,在可扩展的章节中保留了更多的逐字记录和说明。 如果综合失败,报告将确定其基于源的列报方式,并保留不同的贡献. stages/10-composition/composition-sources.json 记录所有投入和处置; 参考书目确定归属,而不是语义等同的证据。 核查将基本缺失的证据与次要不确定性区分开来:未解决的假设在人类的注意下仍然可见,而已确定的缺陷可能仍然对严重程度有不确定性.

核查收到6 000个字符,其中6 000个字由已填好的文件包收集,并附有文件、修订版和工具出处。 注意调节在选择源证据时也匹配关注文件/同义元数据;选择不能确定一个问题是否得到回答.

核查使用现有的任择评估领域和调查预算,独立评估拟议修复和测试。 核查人选择一种具体的补救办法,保留最初的呼叫人要求,并对照缺陷和被削弱的保证检查其测试结果。 在核查意见中, suggestionText 可能省略:在保留修复草案之前,控制带将评估与命名的最后建议挂钩。 明确的案文不匹配仍然失去支持;仅仅修改一项建议不能将保留评估转移给它。 支持需要可观察到的要求的证据;测试应拒绝削弱的保证,而不排除其他有效的执行。 突出的固定/测试部分和结构化建议领域只包含支持目前的提议。 未经核实、不相容和被取而代之的建议仍然在可扩展的来源。 作曲家奉命保持总结诊断重点和咨询意见出自影响/验证道具;源验证检查归属和资格,而不是任意道具的语义正确.

发展

运行 pnpm run check typeScript 和 GitHub 工作流程验证, 那么 pnpm test 财务报告和审定财务报表 pnpm build 整个套房。 工作流程验证用途 actionlint· ; pnpm test 自动运行它,所以当单位测试保持绿色时, GitHub 表达式/文本错误不能通过 .

运行 make evals 以决定者发誓 合成绳索。这些假想在没有网络请求或模型推论的情况下利用行为,并运行在 pnpm test。 。 。 .

状态

代码是1.0前的CLI,通过活的等离子体被硬化. 完整规格 specs/project/数字 :

由类型脚本所建, @earendil-works/pi-ai网路保姆,以及 git编号 :gh 作为唯一的外部 CLI 依赖.

版本与发布记录

@0xsequence/codegenie 共发布 19 个版本,首次发布于 2026/06/23;过去 12 个月发布了 19 个版本。

版本发布日期距今
0.7.0latest2026/09/261 个月前
0.6.32026/09/251 个月前
0.6.22026/09/251 个月前
0.6.12026/09/251 个月前
0.6.02026/09/241 个月前
0.5.72026/09/221 个月前

关于 @0xsequence/codegenie 的常见问题

@0xsequence/codegenie 是什么?

高级AI代码审查代理

如何安装 @0xsequence/codegenie?

在项目目录运行 npm install @0xsequence/codegenie,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 codegenie,可以用 npx codegenie 直接运行。

@0xsequence/codegenie 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/0xsequence__codegenie 是否存在。

@0xsequence/codegenie 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@0xsequence/codegenie 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@0xsequence/codegenie 可以商用吗?

@0xsequence/codegenie 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@0xsequence/codegenie 的下载量有多少?

根据 npm 官方下载统计,@0xsequence/codegenie 在 2026/10/04 – 2026/11/02 这 30 天内被下载 6,073 次,日均约 202 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@0xsequence/codegenie 还在维护吗?

最新版本 0.7.0 发布于 2026/09/26(1 个月前);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/06/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。