mcpField
N
nomArmy

nomArmy

本地服务
nomarmy.dev开发工具41 周前更新

关于 nomArmy

nomArmy 为编码助手协调沙箱中的编码工作者,并在提交前独立验证改动。检查包括在全新沙箱中运行测试、撤销改动后复测,以及扫描机密信息。

主要功能

  1. 01将编码任务分派给沙箱工作者
  2. 02核验差异并在全新沙箱中重跑测试
  3. 03撤销改动以检查测试能否检出问题
  4. 04扫描机密并标记测试规避行为
  5. 05将已验证改动提交到独立分支
  6. 06不启动工作者即可运行验证

适用场景

  1. 01按验收标准分派错误修复
  2. 02不启动工作者而检查分支测试
  3. 03在审查和合并前验证功能改动
  4. 04标记工作者改动中的机密或弱化测试

MCP 相关

README 提到 Reason 插件包含 MCP 服务端,但未说明 nomArmy 提供或使用 MCP。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"rayson-tech-nomarmy": {
"command": "npx",
"args": [
"-y",
"nomarmy"
]
}
}
}
启动命令npx -y nomarmy

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmnomarmy0.1.0-beta.14

工具

16

收录的工具列表 · 更新于 1 周前

参数类型必填说明
modeenum否verify:在没有 worker 和模型令牌的情况下运行必需的验证配置;base_ref 选择分支或提交(默认为当前 HEAD),task 是简短的记录标签,agent/model 不使用,army_role 仅作为标签。implement:在隔离的 worktree 中编辑,协调器在报告有效后提交。scout:只读研究;每项发现都必须引用 [path:start-end],nomArmy 会在根据基础提交验证引用内容后附上引用行。decompose:只读;针对宽泛目标提出 2 个或更多相互独立、以证据为依据的子任务,而不是在一个 worker 回合中完成所有工作。绝不自动分发——提案会像 scout 的发现一样接受审查,协调器会另行进行自己的分发调用,并选择要采用的子任务。scout | implement | decompose | verify
taskstring是implement:worker 必须实现的目标,而不是应执行的编辑。scout:要从代码库中回答的问题。decompose:要提出拆分方案的广泛目标。
agentstring否按名称在操作者的 agents.yml 中指定要运行的 agent(例如 "codex"、"grok"、"local"):本地模型、按量计费的 api key,或个人订阅。省略 agent 和 army_role 可使用本地模型。遇到未知名称时会拒绝,且不会回退。不能与 army_role 同时使用。订阅型 agent 还需要 on_behalf_of。
modelstring否要在作业的 agent(api 或订阅型 agent)上运行的模型,例如 "gpt-6-sol"。覆盖角色模型和 agent 默认模型。当角色模型为 "auto" 或 agent 没有默认模型时,此项为必填。`army` 工具会列出各 agent 的模型。若使用本地 agent 则会拒绝,因为其模型由 `nomarmy model` 设置。
reportenum否worker 可返回报告的详细程度,受 agent 层级限制:brief(适合本地任务的简短报告)、standard(默认)、full(最高上限:implement 约 2k tokens,scout 约 4k tokens)。api 或订阅型 scout 默认使用 full,因为其调查结果最重要;其他作业默认使用 standard。报告会进入你自己的上下文,并在之后每一轮重新读取。对本地模型无影响,其上限已校准。brief | standard | full
run_idstring否此作业所属的 /feature 运行(来自 run_start)。加入后会强制执行该运行的限制(作业数、api 支出、时长),并拒绝运行已因供应商使用限额错误而暂停的 agent;完成的作业会记录到该运行中。
stakesenum否implement:错误可能造成的代价,与工作难度分开评估。涉及安全或访问控制、个人或租户数据、数据丢失、资金,或无法撤销的更改时,设为 high:此时必须指定验证配置文件,不能关闭回滚检查,并且在独立审查(由另一家供应商的 scout 使用 reviews: <job id>,或由另一家供应商的 judge)完成之前,作业始终会标记为需要审查。一行身份验证更改也可能简单但风险很高。normal | high
reviewsstring否scout:该 scout 要独立审查的作业 ID,审查结果会记录到该作业(nomarmy stats 会显示有独立审查和无独立审查的高风险作业)。请使用与该作业 worker 不同的供应商。
base_refstring否
criteriaarray否implement:由此作业提供的 acceptance/*.yml 中的契约 ID。
evidencestring否仅限 implement:提供已确认的事实(例如通过 repo_evidence 获取),供 worker 信任且无需重新推导——准确的签名、调用位置、行范围、现有行为。这样可避免 worker 在你已掌握的信息上探索,耗费自身上下文预算。不能替代清晰的目标和验收标准。
refactorboolean否implement:行为保持不变的更改(代码移动或重组)。nomArmy 随后要求通过验证配置;如果任何测试文件被新增、修改或删除,就会拒绝提交:现有测试原样通过,才能证明没有行为变化。此时会跳过回退检查,因为回退重构会恢复可工作的代码,因此总能通过。改变行为的任务必须修改测试,因此无法作为重构通过。
army_rolestring否按 army 角色分派(例如 "sr-dev"、"security-analyst"):nomArmy 会将任务交给此仓库为该角色指定的 Agent,并在任务说明开头附上该角色的描述。先调用 `army` 工具查看此仓库的角色。与 agent 互斥。如果该角色的 Agent 使用订阅,请添加 on_behalf_of;否则会忽略。
reasoningenum否传递给 worker 模型的思考级别:off、minimal、low、medium、high、xhigh、adaptive、max 或 ultra(较高级别仅在供应商提供时可用,例如 Codex 模型的 xhigh;模型不支持的级别会回退一次到最接近的支持级别)。较高级别会更快耗尽订阅用量限额。对于本地模型,仅当该模型支持思考时才生效(NOMARMY_MODEL_THINKING);对于 api 或 subscription Agent,则按该 Agent 自身的 `thinking` 设置生效(false = off,固定级别 = 始终使用该级别)。默认值为 medium,而非 high,这是基于实际测量证据:处理相同工单时,gpt-oss-20b 使用 high 耗时 318s,调用工具 21 次且失败 4 次;使用 medium 耗时 62s,调用 9 次且失败 0 次——high 并未给出更好的答案,只是反复折腾。另一个开放式任务中,Qwen3.6-27B 在 high 下完全超时(630s,无输出),而在 medium 下成功。不要因为认为更多思考应该有帮助,就默认提高到 high——迄今测试中它只造成负面影响或超时。只有当任务在 medium 下已失败一次,且失败具体表现为思考不足(根因错误,而非格式或范围问题)时,才考虑使用 high。off | minimal | low | medium | high | xhigh | adaptive | max | ultra
worker_idstring否
acceptancearray否implement:worker 必须满足的验收标准。scout:完整答案必须涵盖的要点。decompose:良好拆分必须遵守的约束。
on_behalf_ofstring否当任务的 Agent 使用订阅时必填:必须与 agents.yml 中该 Agent 的所有者完全一致,否则 nomArmy 会拒绝任务。这是自我报告的声明,并非独立验证的身份检查——nomArmy 目前没有调用者身份边界,因此它保证的是明确、可审计的意图,以及不匹配或缺失时的强制拒绝,而非调用者身份的加密证明。本地或 api Agent 使用时会忽略。
verificationstring否验证配置名称(例如 quick、standard、browser)。语义由 nomArmy 定义;实际执行由 nomArmy 负责。scout 会忽略此项。
continue_fromstring否仅限 implement:需要继续完成的保留中、未提交 implement 任务的 job id(部分完成、受阻或验证失败)。新的 worktree 会从该任务的 base 创建,并包含其已有更改,因此任务说明只需描述修正内容。完成后的整体工作(包括原有更改)会一并验证并提交。使用此项,而不要自行修复 worker 的文件,否则这些文件会未经验证就被提交。不要设置 base_ref。
commit_subjectstring否implement:nomArmy 在 worker 分支上创建的提交的主题行,例如 "Keep held-back tables in the list_tables cache"。默认使用任务的第一句话;正文为 worker 的 NOTE,并附带 job id 作为尾注。
timeout_secondsinteger否默认值为 600;review scout(带有 `reviews` 的任务,或处于 review 阶段的 army 角色)为 1200,因为一次真实的安全审查持续阅读了整整 10 分钟后被中断。
verify_regressionboolean否仅限 implement:diff 通过 `verification` 且涉及生产文件后,临时回退这些生产文件,仅重新运行相同的验证配置(预期没有修复时会失败),然后还原文件。若重新运行仍然通过,则证明没有测试能捕获此回归;无论 worker 如何报告,结果都会降级为 NEEDS_REVIEW——绝不会悄悄提交为已完成。这是唯一能捕获验证配置因错误原因而通过的机制(例如测试选择标志意外排除了变更文件自身的测试,会产生真实、有效的绿色运行,但实际上未覆盖 diff;仅检查退出码无法发现这种差异)。只要设置了 `verification`,此项默认开启,因为这一缺口正是 nomArmy 声称要封闭的信任边界;显式传入 `false` 可跳过双倍耗时(在拥有数千个测试的仓库中可能很重要),但需自行承担风险。未设置 `verification` 配置时无效——没有内容可重新运行。scout 会忽略此项。
confirm_over_limitboolean否覆盖已达到的用量限额:General 必须先询问操作员,才能使用 confirm_over_limit: true 重新提交;或者将任务发送给另一个 Agent。nomArmy 不会自行设置此项。

详细介绍

nomArmy

CI npm License: Apache 2.0 nomArmy: AI worker claims checked on this repository

每个字节都经过验证。 🍪

nomarmy.dev · 文档 · 赞助

你的编码助手负责规划;沙箱化的工作者负责构建;只有经 nomArmy 检查后,结果才算数。

AI 编码工作者信心十足。它们声称“完成了,所有测试都通过了”,但这只是说法,并非证据。nomArmy 让你的编码助手(Claude Code、Codex 或 Cursor)把工作交给称为 noms 的工作者,然后在提交任何内容之前自行检查每项改动:实际差异、在全新沙箱中运行的测试、这些测试是否确实能捕获改动,以及机密扫描。

简要说明

  1. 准备好 Git、Node 24.16+(或 26.1+)、Podman,以及已安装并登录的 Claude Code、Codex 或 Cursor。在 macOS 上,为 Podman 分配 8 GiB:brew install podman && podman machine init --memory 8192 && podman machine start。 支持在 Windows 上使用 WSL2 中的引擎。请按照 Windows 设置指南操作。
  2. 安装并设置:
    npm install -g nomarmy
    cd your-project
    nomarmy setup
    
    nomarmy setup 是一本操作指南。它会显示检查清单,并在你每次答应后执行下一步:
    ✓ Where models run: hosted
    ✓ Installed: OpenClaw 2026.10.3
    → Agents: add a hosted agent
      Roles: add an agent first
      This repo: configure this project
      Check: verify the installation
    Run `nomarmy agents add` now? [Y/n]
    
    可随时停止;nomarmy setup 会从你上次停下的地方继续。想了解每一步的详细说明?设置示例:Claude Code、Codex 和 API 密钥逐条列出了命令。
  3. **开始使用:**在项目中重启 Claude Code,让它用 nomArmy 修复一个带有测试的小 bug。成功后,试试 /feature <what you want built>。

更喜欢使用插件?完成第 2 步后,Claude Code 用户可以运行 /plugin marketplace add rayson-tech/nomarmy 和 /plugin install nomarmy@nomarmy,而不是使用 nomarmy connect;Codex 也支持(插件)。

遇到问题?nomarmy doctor 会检查机器,nomarmy health 会检查 nomArmy 所依赖的一切。之后想升级?运行 nomarmy update。

如何验证每一个字节

  1. 你的编码助手 General 会说明任务:具体工作、验收标准,以及用于证明任务完成的测试。
  2. nomArmy 从你的分支创建一个 git worktree,并在 Podman 沙箱中运行 nom,不提供网络访问权限,也不提供主机凭据。(唯一例外是 Claude 订阅:请参阅安全态势。)
  3. nom 会编辑代码、运行测试,最后提供一份四行报告:STATUS、TESTS、NOT_DONE、NOTE。
  4. nomArmy 将这份报告视为一项声明,并自行核验相关证据:
    • 从 git 读取实际 diff,而不是依赖 nom 对 diff 的描述
    • 在全新的沙箱中运行你的验证配置
    • 撤销生产代码更改并重新运行测试:如果测试仍然通过,就无法证明任何事情,因此该任务会转交审核,而不会被提交
    • 拦截机密信息,并标记为通过而刻意修改的测试(新增跳过项、存根导入)以及无人调用的代码
  5. 只有完成这些步骤后,才会在 nom 自己的分支上提交。它绝不会合并到你的分支:审核和集成仍由 General 和你负责。

验证失败就会一直保持失败,不设例外。报告格式不正确并不一定会导致任务失败:如果仓库发生了更改,nomArmy 会独立核验,并可能恢复相关工作。此外,General 无权豁免这些检查:仓库的 .nomarmy.yml 策略(新仓库默认启用)要求每项任务都必须通过验证和撤销检查。

展示检查结果。 /feature 运行完成后,General 会收到一个用于拉取请求的“已由 nomArmy 验证”区块,其中列出通过核验的“已完成,测试通过”声明数量、nomArmy 发现的问题数量及原因,以及撤销相应更改后会失败的新测试。nomarmy stats --share 会输出任意时间段的相同统计信息,nomarmy stats --badge 则会生成一个 README 徽章,例如 nomArmy | 78 claims checked · 11 caught。所有数字均来自已验证的记录。

无需构建即可检查,而且不花费任何成本:mode: verify 会针对任意分支运行验证配置,无需工作进程,也不会消耗模型令牌。

想要更深入的检查? 三个可选的验证器可进行更深入的检查,但都只会添加审核标记:变异测试(测试是否充分约束了更改的代码行?)、Jev(侦察员的引用是否支持其发现,报告是否与 diff 相符?;可在你自己的机器上使用 TypeSafe 或兼容的服务),以及模型裁判(验收标准、被削弱的测试)。

工作运行的位置

  • Agents 说明任务可以在哪里运行:使用 API 密钥、你自己的 Claude、ChatGPT、Muse Code 或 Grok 订阅(或其他 OpenClaw 提供商),也可以使用 llama.cpp 上的本地模型。
  • 团队说明哪些角色由哪些 Agent 执行:高级和初级开发人员负责构建,安全分析师和数据架构师负责审查,项目经理检查计划,产品负责人负责验收。
  • /feature 端到端地完成整个功能,从规划到构建、审查和验收,最后交给你一个可供合并的分支。
  • Harness 为每个仓库提供合适的沙箱:Go、Rust、Python 和 Node(也支持混合仓库)、Playwright 浏览器测试,以及模拟登录服务等虚假服务;全程离线。添加 Harness 不会触及核心代码。

你得到的是无需盲目信任的工作成果,而不是更便宜的工作。委派任务也会消耗 General 的令牌,用于任务说明和审查:对于规模较小、问题已诊断的工单,我们测得 General 消耗的令牌是直接修复 Bug 的 4 到 8 倍;当修复需要阅读的上下文约有 150 行时,成本才达到盈亏平衡点(测量结果)。对于较大的工单、并行工作,以及任何原本需要你相信 Agent 说法的场景,委派就很划算。

有 GPU 或内存充足的 Mac? 在 nomarmy setup 中选择“本地模型”:无需按令牌付费,代码也会留在本地,但你需要付出硬件、电力和速度方面的代价。nomarmy sizing 会告诉你哪些配置适用。共享模型服务 也同样可用。

由 Rayson Technologies 开发和维护。这是一个 Beta 版(0.1.0-beta):升级后设置会保留(参见配置兼容性)。

文档

安装各种安装方式:托管服务(API 密钥和订阅)、macOS 上的本地模型、Linux、通过 WSL2 运行引擎的 Windows 或 DGX Spark、共享模型服务、Bedrock
安装示例Claude Code、Codex 和 API 密钥,逐条命令说明
Agents 和团队任务可以在哪里运行、各角色的职责、使用限制、如何选择 Agent
/feature 运行端到端完成一个功能,以及查看 nomArmy 的工作进度
你的仓库.nomarmy.yml、验证、依赖项、私有注册表、nomArmy 会检查的内容
验证器可选的深度检查:变异测试、Jev、模型裁判
Harness生态系统注册表、检测、网络级别和要求
配置设置、切换本地模型、资源配置、准入
参考所有 CLI 命令和 MCP 工具
安全态势沙箱会限制什么,以及唯一的例外
常见问题各角色适用的模型、切换模型、使用限制
故障排除问题表现和解决方法

安全

一个 nom 在 Podman 沙箱中获得一个可写的 git 工作树,仅此而已:没有网络、没有主机凭据,也没有 Podman 套接字。所有模型调用都由你机器上的 OpenClaw 发起,从不在沙箱内发起。验证可以逐级开放网络:先使用专用网络上的模拟服务,再使用你批准的测试租户允许列表,但 noms 始终处于 network none 状态。例外情况是 Claude 订阅,其工具在你的机器上运行,因此除非你允许,否则 nomArmy 会拒绝在其上执行构建任务。切勿向 nom 提供生产凭据、部署权限或 SSH 密钥。详情:安全态势;如需报告漏洞,请参阅 SECURITY.md。

状态

能力状态
验证核心:工作树、由 nomArmy 管理的 git、独立验证、还原检查、保留失败的工作树可用,已完成端到端测试
mode: verify、密钥扫描(secretlint,硬性阻断)、测试变通方案和未接线代码检查已通过单元测试和实时测试;启发式检查仅作为审查标记
Scout 和分解模式、auto_union已通过单元测试和实时测试
Agent:API 密钥已通过 xAI 的实时验证;其他提供商按 OpenClaw 的文档接口构建
Agent:订阅ChatGPT(Codex)和 Muse Code 已沙箱化并通过实时验证;Claude 已通过实时验证,但其工具在主机上运行(默认用于侦察和审查)
本地(llama.cpp)和 Bedrock 配置可用
Army 和 /feature每天用于 nomArmy 本身和我们的产品:2026 年 9 月 18 日至 10 月 10 日共处理 783 个任务(测量结果)
测试框架:Go、Rust、Python、Node 和混合仓库;Playwright;模拟服务已通过离线实时验证
私有注册表和仅供验证使用的网络允许列表已通过实时验证;均通过了独立安全审查
验证器:变异测试、Jev、模型裁判已通过单元测试和实时测试;Jev 和模型裁判已在真实任务记录上评估
nomarmy stats已根据真实任务记录上的手工报告核对

关于真实运行中的经验,包括委派何时有效、何时无效,详见 docs/findings.md。

已知限制
  • Claude 订阅不在沙箱中。 其工具会在你的计算机上运行,因此除非设置 allow_host_tools: true,否则会拒绝在其上执行任务。请参阅安全态势。
  • 你自己的 compose 服务尚未启动。 如果验证配置文件需要从你的 compose 文件中获取真实数据库(environment: basic 或更高),则会报告 not_run,而不会在缺少数据库的情况下运行(并且 compose 解析器无法解析 YAML 锚点)。测试框架提供的模拟服务(例如模拟登录服务)可以运行。
  • 私有注册表尚不支持 Poetry 或 Yarn Berry:Poetry 无法保证经过身份验证的安装过程不会运行任何包代码,而 Yarn Berry 不读取 .npmrc。uv、pip wheels、npm、pnpm、Yarn Classic 和 bun 均可使用。请参阅私有注册表。
  • 供应商列出但拒绝使用的模型,会在分派时通过测试调用捕获。 对于从未在其 Agent 上成功使用过的模型,首个任务会等待几秒,进行一次单 token 测试调用;如果被拒绝(例如 ChatGPT 方案中的 gpt-6-sol),系统会报告并记住此情况,而不会让任务承担费用。测试调用结果不明确(超时)时,任务会继续执行。
  • Claude 订阅的 token 数量取自 Claude CLI 自身的会话日志,因为 OpenClaw 只能看到最终回复;总数包含缓存读取和写入。
  • 测试规避检测是一个标记,而非定论:即使是合理的新跳过项,也会被标记。
  • 部署时的失败需要你自行检查。 请参阅为单元测试无法发现的问题添加检查。
  • 同主机沙箱:MCP 服务、OpenClaw 以及每个任务的沙箱都运行在协调器所在的计算机上。只有模型可以运行在其他位置。

更多信息

配置变量为 NOMARMY_*;旧版 RAYSON_* 变量会在加载时转换一次,并显示弃用警告。

根据 Apache 2.0 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。