十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

no-mistakes 实战指南:AI 编码 Agent 的选择、配置与集成原理

no-mistakes 实战指南:AI 编码 Agent 的选择、配置与集成原理 no-mistakes 实战指南AI 编码 Agent 的选择、配置与集成原理【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakesno-mistakes是一个以“代码评审门禁gate”为核心的管线工具它调用你本机安装的 AI 编码 Agent 来完成代码评审、证据化测试、文档更新、自动修复等需要判断力的工作。本指南基于 docs/src/content/docs/guides/agents.md 展开系统讲解 Agent 的职责边界、支持的 Agent 清单、agent配置的三种形态、ACP 桥接、底层统一接口与各 Agent 的调用细节。读完你既能按项目场景快速选定并配置合适的 Agent也能理解管线如何解析二进制、复用会话、解析结构化输出做到“知其然也知其所以然”。设计原则管线与 Agent 无关但绝不脱离 Agent 运行no-mistakes在架构上对管线 Agent 是中立的pipeline-agent-agnostic无论你选择哪个受支持的 Agent 后端门禁的含义保持一致——通过pass就是通过不因 Agent 品牌而异。但有两个前提必须明确它不是免运行时的每一次校验运行都必须有一个受支持的原生 Agent 二进制、agent: cursor这样的 ACP 别名或通过acpx显式指定的acp:target。默认值是agent: auto自动挑选系统上第一个可用的受支持原生 Agent 或 ACP 别名。值得注意的还有“调用者”与“执行者”的分离。调用no-mistakes axi的编码 Agent 只负责驱动审批门禁它不会自动变成执行评审、证据测试、文档更新、文档lint 合并清理或修复工作的管线 Agent。那些工作在 daemon 的一次性 worktree可丢弃工作树中由配置的管线 Agent 完成。校验步骤中的 Agent 只负责检查、修复并返回自己被分配的阶段用户意图中的交付要求在门禁内仍是验收上下文但其余校验、push、PR、CI 阶段由外层执行器executor完成。如果该步骤试图越权控制管线no-mistakes会返回error.code: nested_gate_contextAgent 必须把控制权交还给外层执行器只读的no-mistakes axi status、no-mistakes axi logs、帮助信息和no-mistakes doctor仍然可用。Agent 的职责门禁中需要判断力的部分管线 Agent 负责门禁中那些“仅靠规则无法完成”的部分代码评审review面向证据的测试校验evidence-oriented test validation未配置显式命令时的测试或 lint 检测自动修复auto-fixing设置向导建议当你把提示词留空时为了约束 Agent 的行为管线 Agent 的提示词还包含两部分固定的契约内容workspace-boundary preamble工作区边界前言要求 Agent 把所有有意的源码、项目、用户数据与系统文件写入都限制在一次性 worktree 内当工具要求绝对路径时必须使用该精确路径前缀不得猜测或重新解析路径避免修改系统状态如 Homebrew 包、/Applications、全局工具配置。文档明确强调这一边界是提示性引导prompt steering而非强制约束。execution-context执行上下文给出确切的 worktree 目录与路径契约。边界规则有一个有意的例外当测试提示词要求时允许把测试证据写入运行管理的证据目录该目录始终位于 worktree 之外。开发工具产生的临时文件或缓存写入仍被允许。测试提示词还要求 Agent 在报告完成前清理自己创建的临时工作树产物如下载的模型、缓存、构建输出、大型二进制、生成的数据目录。支持的 Agent 一览下表列出了当前仓库支持的全部 Agent、调用方式与通信协议表格见 agents.mdAgentBinaryProtocolClaudeclaudeSubprocess per invocation, JSONL streamingCodexcodexSubprocess per invocation, JSONL eventsGrok BuildgrokSubprocess per invocation, Messages-compatible JSONL streamingAntigravityagySubprocess per invocation, NDJSONstream-jsoneventsRovo DevacliPersistent HTTP server, SSE streamingOpenCodeopencodePersistent HTTP server, SSE streamingPipiSubprocess per invocation, JSONL eventsCopilotcopilotSubprocess per invocation, JSONL eventsCursorcursor-agentacpxcursor-agent acpthrough the ACP bridgeACP targetacpxOptional user-installed ACP bridge可以看到Agent 分两类形态一次性子进程型Claude、Codex、Grok、Pi、Copilot、Antigravity、acpx与持久 HTTP 服务器型Rovo Dev、OpenCode通过 SSE 流式传输。Runner 要求完整的门禁绝不静默降级设计上一个完整的门禁在其配置的管线 Agent 不可用时绝不静默降级。daemon 会在创建管线步骤记录之前解析有效 Agent如果配置的二进制无法运行运行会在任何步骤启动前立即失败并给出设置指引。这个“拒绝”同样适用于配置了确定性 test/lint 命令的情况——因为评审和文档始终需要 Agent 判断而 rebase、PR、CI 路径也可能需要 Agent 解决冲突、生成内容或修复失败。各能力与 Agent 的关系如下见 agents.mdSurface or capabilityWorks without a runnable pipeline agent?BehaviorInstall,init, daemon lifecycle,status,runs, anddoctorYes本地设置与诊断仍可用。doctor报告门禁校验不可用。Start or rerun a validation gateNo运行在任何管线步骤开始前失败。ReviewNo需要 Agent 判断与结构化 findings。Test withcommands.testNo, as part of a full gate命令是确定性的但门禁在步骤开始前拒绝而不是把仅命令校验当作完整通过呈现。Test, with or withoutcommands.testNo可选命令只是基线Agent 必须推导并驱动端到端用户场景。DocumentNo需要 Agent 发现并更新文档缺口。Lint withcommands.lintNo, as part of a full gate命令是确定性的但完整门禁仍需要 Agent。Lint withoutcommands.lintand all fix roundsNo文档步骤执行初始合并清理回退评估或代码变更仍需要 Agent。Push, PR, and CI as part of a gateNo它们只在必需校验步骤之后运行且 PR 或 CI 路径可能自己调用 Agent。如何快速选择 Agent文档给出了四条快捷决策路径已安装一个好用的 Agent 且不需要仓库特定行为保持agent: auto。某个代码库明显更适合另一种工具设置仓库级agent覆盖。偏好某个 Agent但希望它不可用时尝试另一个使用有序回退列表。想要与 Agent 选择无关的确定性本地基线显式配置commands.lint和有针对性的commands.test。测试始终先跑可选基线再跑 Agent 驱动的端到端用户场景广泛的回归由远程 CI 负责。详见 pipeline-steps.md 的实时校验契约。最后一点尤其重要显式仓库命令让基线可预测而 Agent 负责确认请求的行为在真实产品中确实可用。该测试调用预期只在 worktree 内留下有意的源码或测试文件改动同时把请求的证据文件保留在专用证据目录下——该目录始终位于 worktree 之外由 no-mistakes 按有界保留策略回收GitHub.com/GHEC 的 PR 会上传受支持的截图与录制也可以借助test.evidence.store_in_repo发布孤儿证据分支。位置、附件与清理规则见 global-config.md。配置 Agent 的三种形态全局默认# ~/.no-mistakes/config.yaml agent: auto仓库级覆盖# .no-mistakes.yaml agent: codex仓库配置优先于全局配置。有序回退列表# ~/.no-mistakes/config.yaml 或 .no-mistakes.yaml agent: [codex, grok]当首选 Agent 进程不可用时no-mistakes 会按列表顺序尝试下一个。可选 ACP 目标如果你单独安装了acpx可以用acp:前缀选用任意 ACP 目标例如agent: acp:gemini。注意agent: auto只会探测原生 Agent 与一等 ACP 别名如cursor永远不会自动选中任意的acp:target条目。关于解析顺序、回退列表过滤与重试语义、以及没有任何条目可运行时的失败行为由 global-config.md 中的agent字段参考文档全权定义。Antigravity 与 Gemini 环境的接入从 Antigravity 或其他基于 Gemini 的编码环境运行门禁不会自动让该调用模型对 daemon 可用。需要采用以下三种受支持配置之一安装任意受支持的原生 Agent CLI保持agent: auto或在~/.no-mistakes/config.yaml中显式选择。同时安装cursor-agent和acpx保持agent: auto或选择agent: cursor。安装acpx确认本地 Gemini ACP 目标可用然后配置agent: acp:gemini# ~/.no-mistakes/config.yaml agent: acp:gemini # Optional when acpx is not on PATH. acpx_path: C:\path\to\acpx.exe配置后运行no-mistakes doctor寻找成功的gate validation行。doctor 检查的是全局 Agent 配置每次运行在应用任何受信任的仓库级 Agent 覆盖后会再次执行权威检查。如果调用环境既没有受支持的原生 CLI也没有可用的 ACP 目标它仍然可以检查和响应已有的 AXI 状态但无法自行启动一次诚实的校验门禁。二进制解析与六个全局配置字段当 daemon 通过托管服务运行时它的PATH在 macOS/Linux 上来自你的登录 shell 环境再加上常见的用户、Homebrew 与系统二进制目录在 Windows 上则复用当前进程环境。如果原生 Agent 发现逻辑没有解析到你期望的二进制请检查~/.no-mistakes/logs/daemon.log并设置显式覆盖完整解析说明见 environment.md。以下六个全局配置字段共同控制解析与调用各字段细节均由 global-config.md 全权定义agent_path_override每个原生 Agent 的自定义二进制路径外加默认原生二进制名表如antigravity→agy。agent_config用一套通用拼写为每个 Agent 设置 model 与 reasoning effort再映射到各 harness 自身的机制含完整逐 harness 映射表及对原生参数的优先级规则。agent_args_override为每个原生 Agent 追加 CLI 参数用于agent_config覆盖不到的内容如服务层级或权限模式含保留参数规则与智能默认值。这两个字段都仅限全局因为它们反映的是你的本地 Agent 环境而非仓库策略。acpx_path桥接二进制的路径用于显式 ACP 目标与一等 ACP 别名。acp_registry_overrides原始 ACP 目标命令包括对别名默认值如cursor-agent acp的替换以及可用性探测规则。agentauto的解析顺序与有序回退列表语义。底层实现统一调优层 agentcfg从源码看model/effort 的统一映射实现在 internal/agentcfg/agentcfg.go。Profile{Model, Effort}是“操作者想要什么”的单一陈述该包负责映射到每个 harness 真正能表达的机制MechanismArgs注入原生 CLI 参数如 Claude 的--model/--effort、Codex 的-m与-c model_reasoning_effort...、Pi 的--model/--thinking、Copilot 的--model/--effort、Grok 的--model/--reasoning-effort。MechanismRequest值通过协议体携带OpenCode 运行在opencode serve下拒绝 model 参数model/effort 随 session message 的model与variant传递且 model 必须用provider/model形式。MechanismUnsupportedharness 无法表达该旋钮Rovo Dev 与 Antigravity 的 model/effort 会被拒绝而非静默忽略ACP 目标的 effort 同样被拒绝model 走 acpx 自己的--model。优先级固定且单向agent_args_override里原生设置了某个旋钮Profile 值就不输出从而保持既有配置字节级一致也避免给 CLI 重复传参。审查会话复用Review Session Reuse在默认的session_reuse: true下Claude、Codex、Grok、Pi 和 Antigravity 会为每次运行保留一个持久化的 review-fixer 会话且恢复失败时会回退到全新 fixer 会话而不是跳过修复轮。Pi 的原生 fixer 转录存储在 Pi 的会话目录中no-mistakes 只持久化恢复所需的最小会话标识。评审轮始终在全新的无会话调用中运行重评审rereview要认证的是“实现了上一评审轮 findings 的修复”因此绝不能恢复规定这些 findings 的那个会话。完整语义见 global-config.md。统一的 Agent 接口所有 Agent 实现同一接口。每次调用接收对应 internal/agent/agent.go 中的RunOptsPrompt任务描述评审这段 diff、修复这些 findings 等管线运行时会加上前述 workspace-boundary 引导与精确 execution-context 契约前缀CWDworktree 目录Environmentdaemon 环境加上非交互 Git 覆盖GIT_EDITORtrue、GIT_SEQUENCE_EDITORtrue、GIT_TERMINAL_PROMPT0避免 Agent 调用的 Git 命令挂在编辑器或凭据提示上JSONSchema可选的类型化响应结构输出 schemaOnChunk把流式文本输出回调给 TUI 的回调OnLifecycle原生子进程启动、退出、重试、回退与输出活跃度的回调控制事件进入步骤日志与 AXI active-step 状态节流的输出活跃度只更新状态而不会淹没日志Session可选的 no-mistakes 持有的原生会话标识用于 review-fixer 复用Purpose该调用服务的管线职责的本地性能标签review、review-fix、test-evidence 等每次调用返回对应ResultOutput结构化 JSON 输出请求了JSONSchema时adapter 要求返回结构化输出管线步骤各自校验自己的输出契约。文本解析回退会按请求的 schema 校验可选字段允许为nullText原始文本输出Usagetoken 计数input、output、cache read、cache creationSessionID与Resumedadapter 原生的会话标识以及本次调用是否恢复了它Model与Provider可用的 adapter 上报的 serving 元数据结构化输出的严格解析当结构化输出来自最终文本时no-mistakes 会按请求的 schema 校验 JSON fence 与从散文结尾提取的裸 JSON 对象。它接受内联或未闭合的 JSON fence 形式但拒绝多个有效候选当 fenced 与 bare 候选语义不同时失败关闭语义相同的 fenced/bare 候选则接受。一个后面还跟着实质性散文的裸对象不会被当作结论。底层解析逻辑fence 提取、闭合/未闭合候选分组、平衡括号扫描、schema 校验、JSON 数值语义比较全部实现于 internal/agent/agent.go对json粘在正文末尾、fence 未闭合、正文引用json示例等真实输出形态都有专门处理。生命周期与重试一次性子进程 AgentClaude、Codex、Grok、Pi、Copilot CLI、Antigravity、acpx以调用为作用域no-mistakes 启动后一旦调用退出、失败或被取消它会终止所有残留子进程因此 Agent 拉起的测试 worker、构建 watcher 和 dev server 不会越过步骤存续。步骤日志记录进程生命周期含 PID 的启动/退出行AXI 状态在子进程活跃时暴露该 PID。持久服务器 AgentRovo Dev、OpenCode改用其托管服务器生命周期。瞬态 API/网络失败、随机散文式结尾、瞬态工具调用或权限校验错误会用指数退避重试至多三次。Provider 配额与免费额度限制错误是终态的即使后端标记它们可重试。重试消息对原生子进程 Agent 记录为生命周期活动对未提供OnLifecycle的直接调用者回退到流式文本路径。各 Agent 的调用细节Claude每次调用派生claude子进程使用--output-format stream-jsonprint 模式的用户提示通过 stdin 文本发送而非进程参数。默认附加--dangerously-skip-permissions除非你通过agent_args_override设置了自有权限标志。从 stdout 读取 JSONL 事件通过--json-schema支持原生结构化输出。review-fixer 复用时以 stream-json 会话启动并用claude -p --resume id恢复。源码见 internal/agent/claude.go。Codex每次调用派生codex子进程使用exec --json。请求结构化输出时还会写入规范化 schema 文件并以--output-schema传入。默认附加--dangerously-bypass-approvals-and-sandbox除非已通过agent_args_override设置。读取 JSONL 事件结构化输出从最终agent_message文本返回。Codex 的 model/effort 应放在全局agent_config.codex中渲染为-m与-c model_reasoning_effort其他覆盖如-c service_tierpriority属于agent_args_override.codex。review-fixer 复用通过codex exec resume id prompt该命令参数面比codex exec窄因此恢复拒绝某个覆盖时回退到全新 fixer 会话而非跳过修复轮。Grok Build每次调用派生grok子进程使用权限受限的提示文件与--output-format streaming-messages-json用--json-schema请求原生结构化输出终态structured_output、会话标识、model 与 usage 字段从 Messages 兼容的 result 事件读取。review-loop 复用通过--resume恢复。未显式指定时 Grok 使用当前配置的默认模型。安全边界disable_project_settings: true的仓库不可用 Grok因为 Grok 1.0.5 仍会发现原生项目指令与.grok项目表面门禁在启动前失败关闭见 repo-config.md。系统提示、备用 Agent、工作目录、worktree 与 restore 标志均被保留全局覆盖无法重定向受管调用。源码见 internal/agent/grok.go其中还以GROK_*环境变量关闭记忆、自动更新器与 Claude/Cursor 兼容面。Antigravity每次调用派生agy子进程使用--print prompt --output-format stream-json并始终附加--dangerously-skip-permissionsagent_args_override无法抑制。默认还会加--print-timeout 24h防止长回合中管道过早关闭除非你已通过agent_args_override设置-t或--print-timeout。从 stdout 读取 NDJSON 事件把step_update文本增量流式传给 TUI。结构化输出通过临时--json-schema文件请求从终态结果的structured_output读取结果优先级以终态为权威structured_output 终态response 流式增量。review-fixer 复用通过--conversation id恢复被裁剪或未知的会话 id 会开新会话而不是失败。usage 记账会把 agy 上报的thinking_tokens计为推理 token。Rovo Dev首次使用时启动持久 HTTP 服务器acli rovodev serve并在后续调用间复用复用的服务器拒绝连接时no-mistakes 丢弃它并用新服务器重试。agent_args_override.rovodev的任何参数插在受管 serve 参数之前。serve 命令与 REST 会话 API 都不接受 model 或 reasoning 参数因此 no-mistakes 无法为 Rovo Dev 映射这些旋钮——agent_config参考文档对拒绝与逃生口语义有权威说明。通过 REST API 与 SSE 流通信每次调用创建会话、发送提示、流式接收结果、删除会话。结构化输出通过把 schema 指令注入系统提示、再以通用回退解析最终文本实现可选字段允许null。OpenCode首次使用时启动持久 HTTP 服务器opencode serve并复用复用服务器拒绝连接时丢弃并重试。opencode serve遇到未知参数会以 usage 退出所以 model 参数不能放那里model 与 effort 来自agent_config.opencode随会话消息以modelprovider/model形式与variant传递。会话生命周期与 Rovo Dev 类似创建会话、发送消息、流式接收 SSE 事件直到空闲、删除会话。结构化输出通过按 OpenCode 1.17 要求在info.format发送json_schema描述实现retryCount: 2给模型第二次机会输出结构化响应。当 provider 因启用 thinking/reasoning 而显式拒绝该格式所需的强制工具选择时no-mistakes 会去掉原生格式重试一次schema 仍留在提示中返回文本必须按原 schema 解析并校验。其他 provider 错误不触发该重试turn 已调用工具后的冲突也不重试重试在新会话中运行会重放工具副作用。info.error上报的失败 turn 会让调用失败并透出 provider 自己的名称、状态与消息。Pi每次调用派生pi子进程使用--mode json冷调用附加--no-session在session_reuse: true下review-fixer 轮通过--session UUID创建并恢复每运行一个 Pi 会话。model 与 effort 来自agent_config.pi渲染为--model与--thinking。从 stdout 读取 JSONL 事件并把增量文本增量流式传给 TUI。结构化输出通过把 JSON schema 注入提示并校验最终文本实现。Copilot CLI每次调用派生copilot子进程使用-p prompt --output-format json附加--no-color与--no-ask-user保证非交互外加--allow-all-tools非交互模式的必需项除非已通过agent_args_override设置自有权限标志。agent_args_override.copilot参数插在受管参数之前。优先用agent_config.copilot设置 model/effort渲染为--model与--effort此处原生参数仍可覆盖它。Copilot CLI 没有输出 schema 标志结构化输出靠注入 schema 到提示并校验最终文本。ACP 别名与 acpx 桥接ACP 别名是一等 Agent 名称解析到 ACP 目标。agent: cursor是第一个别名它是cursorACP 目标默认原始命令cursor-agent acp的简写不是独立原生后端。agent: acp:cursor使用同一默认命令两种拼写都无需acp_registry_overrides.cursor条目。别名仍经由 acpx 运行它们用acpx_path指定桥接二进制并共享与agent: acp:target相同的 ACP 提示与结构化输出行为。与任意acp:target条目不同别名在可用性检查通过后可以参与agent: auto。ACP 支持可选需要单独安装acpx二进制。no-mistakes 以 JSON 输出、approve-all 权限、拒绝非交互权限提示、repo worktree 作为--cwd调用 acpx见 internal/agent/acpx.go 的buildArgs。结构化输出通过把请求的 JSON schema 追加到提示并校验最终 assistant 文本实现。agent_config中为别名或acp:target设置的model会作为 acpx 自己的--model传递因此 ACP 目标可以钉到显式模型acpx 没有 reasoning-effort 表面所以对 ACP 名称的effort会被拒绝而不是静默忽略。用 /no-mistakes skill 驱动门禁让改动通过门禁的主要方式是从编码 Agent 内调用/no-mistakesskill源码见 skills/no-mistakes/SKILL.md。skill-aware 工具如 Claude Code支持两种调用模式裸/no-mistakes校验已有已提交工作。/no-mistakes taskAgent 先完成任务、只在特性分支上提交该任务的改动然后以任务文本作为--intent运行管线。两种模式下Agent 自行解决低风险 findings遇到需要你决策的内容则停下来转达。Grok Build 是管线运行者而非驱动 skill 目标。no-mistakes init会为 Claude Code 和使用厂商中立.agents约定的 Agent 安装 skillinit会跟随~/.claude与~/.agents的符号链接让 skill 在两个逻辑路径都可达。升级后重新运行no-mistakes init可刷新 skill包括覆盖旧二进制的过期SKILL.md。旧版本会把 skill 复制进每个初始化仓库的.claude/skills与.agents/skills这些副本已不再需要init发现时会打印提示。细节见 cli.md。skill 驱动的是no-mistakes axi——一个非交互命令面向 stdout 打印 TOON、向 stderr 打印进度。Agent 也可以直接调用no-mistakes axi run --intent the users goal no-mistakes axi status no-mistakes axi sync --check no-mistakes axi sync no-mistakes axi sync --recover no-mistakes axi respond --action approve no-mistakes axi logs --step review --full no-mistakes axi abort no-mistakes axi abort --run idCI 就绪、合并冲突与分支同步当 CI 就绪已注册检查通过或受信任的默认分支配置声明了 repo-config.md 的no_ci: true且无已注册检查但 PR 仍开着时axi run与axi respond返回outcome: checks-passed并附指向 PR 的帮助行而不是等待人工合并。空检查结果且无该声明则不算就绪就绪规则见 pipeline-steps.md。这是成功的 Agent 停止点报告 PR 已就绪请用户评审并合并。成功结果还要求 Agent 为用户总结运行管线应用了修复时成功结果包含fixes表逐条列出修复便于 Agent 承认遗漏、用户评审修复。如果该 PR 之后落后于默认分支或撞上合并冲突常见于另一个 PR 先合入Agent 不运行任何命令、绝不手工 rebase。CI 监控在检查通过后仍保持后台存活当它看到真实冲突时会 rebase 到基线、解决冲突、从 Review 阶段重新校验因为 rebase 无法证明与已评审 head 的连续性再通过 Push 重新推送分支——无需 Agent 或用户操作。仅落后但干净的 PR 也不需要任何操作平台会合并它。唯一例外是监控已不在运行PR 关闭、运行被中止或取代、空闲超时、自动修复尝试耗尽此时重启条件见 cli.md。Agent 绝不能对仍活跃的 PR 用no-mistakes axi run刷新checks-passed之后它会以 HEAD 不变重连到运行中的监控并返回其输出不做 rebase。在任务优先模式下如果仓库在默认分支skill 会要求 Agent 先创建特性分支再提交因为门禁校验的是非默认分支上的已提交历史。Agent 应在改动或提交前检查git status保留无关的既有未提交改动只提交属于用户任务的改动。任何管线后本地提交或新运行之前都要读branch_sync并严格遵循其next_action.commandsync动作先运行no-mistakes axi syncrecover_custody动作在保有的 head 仍可用时是普通的no-mistakes axi sync --recoverhead 不可用且你要丢弃缺失提交、或绑定归档保留发散的后继工作而 custody 返回到上报的必需 head 时用no-mistakes axi sync --recover --keep-local——两个动作绝不能互相替代。branch_sync.state为user_owned表示运行在改动提交 head 之前已终态、取消释放了分支可直接使用、无需同步动作。next_action.code为continue_active_run时运行上报的命令并继续驱动活跃运行。同步被阻塞时处理该状态而不是即兴 reset、stash、merge、rebase、force 或替换分支之后把后续工作提交在顶层让每个管线修复提交都留在分支里。完整的驱动协议如何读 home view 与gate:对象、何时 respond/fix/approve 或转达ask-userfindings、如何解读axi status的awaiting_agent、active_steps等字段由 skill 本身和活生生的axi输出拥有。每次axi响应都携带与其版本匹配的help行no-mistakes axi run --help与no-mistakes axi respond --help对已安装二进制权威地描述了循环所以驱动门禁的 Agent 无需常开本页。cli.md 为人类记录了每个axi命令与输出字段。Intent 提取从转录推断作者意图通过no-mistakes axi run --intent启动运行时no-mistakes 会把该意图逐字作为权威验收标准跳过转录推断——即使intent.enabled为 false 也如此。评审会按这些标准对照 diff移除必需行为或添加禁止行为的改动会成为ask-userfinding 而非自动解决。否则当intent.enabled为 true 时no-mistakes 在intent管线步骤读取最近的本地产物Claude Code 转录~/.claude/projects、Codex 元数据~/.codex/state_*.sqlite及引用的 rollout 文件、OpenCode 消息$XDG_DATA_HOME/opencode/opencode.db或~/.local/share/opencode/opencode.db、Rovo Dev 会话~/.rovodev/sessions、Pi 转录~/.pi/agent/sessions、GitHub Copilot CLI 会话~/.copilot/session-state。会话需来自同一工作目录或同一 Git checkout相同 common Git 目录或规范化远程 URL。ACP 转录当前不参与 intent 提取。会话匹配优先按非删除变更文件全删除 diff 回退到全部变更文件匹配存在多解时no-mistakes 可能请配置的管线 Agent 用匹配文件路径与脱敏的转录包文件来挑选。选中的转录文本发给管线 Agent 在intent步骤做总结因此 intent 提取可能产生额外 Agent/API 调用。处理前会排除工具输出、脱敏疑似密钥、剥离常见提示控制标记、截断长转录但保留首尾。派生出的意图总结与匹配元数据来源、会话 ID、匹配分数、缓存总结存入~/.no-mistakes/state.sqlite不存原始转录文本。步骤日志记录候选匹配诊断匹配成功时记录来源、分数与脱敏后的推断意图。用intent.disabled_readers禁用特定转录源或用intent.enabled: false整体退出。意图摘要会作为不可信、低置信度提示进入 rebase 修复、评审检查与修复、测试检测与校验、lint 检测与修复、文档检查与修复、CI 自动修复及 PR 提示pr.publish_intentrepo-config.md控制生成 Intent 章节的发布。检查 Agent 可用性no-mistakes doctor运行no-mistakes doctor检查各个原生与 ACP runner 二进制并核对有效的全局 Agent 配置$ no-mistakes doctor ✓ git ✓ gh ✓ data directory ✓ database ✓ daemon running ✓ claude – codex (not found) – grok (not found) – rovodev (not found) – opencode (not found) – pi (not found) – copilot (not found) – antigravity (not found) – acpx (not found) – cursor (not found (cursor-agent, acpx)) ✓ gate validation claude is runnable符号含义✓ 可用– 未找到可选✗ 发现问题。独立的acpx与cursor行检查默认二进制名。gate validation行是决定性结果当配置的全局 runner 不可用时doctor 失败因为完整门禁没有它就无法校验。每次新校验运行在应用任何受信任的仓库级覆盖后会再次解析其有效 Agent——这保证了仓库级配置在每次运行中都能被权威地重新验证。小结Agent 是 no-mistakes 门禁中唯一承担“判断”的部分而它的选择、解析与调用机制被设计成可预测、可配置且不静默降级agent: auto兜底、仓库级覆盖与有序回退列表覆盖不同场景、agent_config/agent_args_override/acp_registry_overrides精确控制每个 harness 的调用方式。理解 agents.md 与 global-config.md、internal/agent、internal/agentcfg 中的实现你就能在任意受支持的编码环境包括 Antigravity/Gemini下可靠地让代码通过一次“诚实”的完整门禁。【免费下载链接】no-mistakesgit push no-mistakes项目地址: https://gitcode.com/GitHub_Trending/no/no-mistakes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表