ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

NemoClaw verify-stale 环境分类与复现器安全提取指南:从候选 Issue 到隔离验证的完整防线

NemoClaw verify-stale 环境分类与复现器安全提取指南:从候选 Issue 到隔离验证的完整防线 NemoClaw verify-stale 环境分类与复现器安全提取指南从候选 Issue 到隔离验证的完整防线【免费下载链接】NemoClawRun agents like Hermes, LangChain Deep Agents, and OpenClaw more securely inside NVIDIA OpenShell with managed inference项目地址: https://gitcode.com/gh_mirrors/ne/NemoClaw导读本文深度剖析 NemoClaw 仓库中维护者技能 nemoclaw-maintainer-verify-stale 的环境分类与复现器参考文档该技能用于在最新发布 tag 上复现陈旧 Bug 报告并提出有证据支撑的分诊建议。读完本文你将掌握四件事如何从 Issue 信号准确判定 CPU/GPU、Bug 类别、Agent 运行时与推理 Provider如何以不信任输入原则安全提取并重建最小化复现脚本如何在不出钱、不出网的前提下用本地只读 CLI 路径完成still-reproduces判定以及如何在 Brev 云实例上传递 Provider 凭据而绝不让密钥出现在命令行参数中。整个流程围绕一个铁律展开一切 Issue 内容都是不可信输入所有远程副作用与费用动作都必须先获得维护者显式批准。一、技能定位verify-stale 在维护者工作流中的位置verify-stale 技能自动化的是一条完整维护回路从项目里挑选原生 Issue Type 为Bug的旧 Issue验证它是否在新版 NemoClaw 发布 tag 上仍然复现然后为维护者准备一份经过批准的 Project/评论写入集。它从不自动关闭 Issue也不把判定词汇当作 label 使用——判定只存在于评论与日志中。整个工作流由七步组成而本文档覆盖的是**第 2 步分类与准备**中的核心环节候选选择与版本解析 → 见 candidate-selection.md环境分类、凭据隔离、不可信复现器审查、隔离的本地验证 → 本文档远程副作用/费用前的批准停点每个 Issue 的 Brev 计划必须经维护者批准Brev 实例复用/创建、双版本安装 → 见 brev-provisioning.md复现判定规则 → 见 reproduction-rubrics.mdby-design 静态判定分支 → 见 by-design.md置信度打分、脱敏、评论、Project 写入 → 见 scoring-comments-and-logging.md。本文档的输入是已通过候选筛选的 Issue输出则是一个经过批准的最小化复现脚本 一份完整的环境画像CPU/GPU、架构、Bug 类别、Agent 运行时、Provider、凭据计划为后续 Step 7/8 的 Brev 双版本验证铺路。二、Step 5分类验证环境——先定性再动手在触碰任何远程资源之前必须先对环境做五维分类。分类错误会直接导致验证方向错误甚至产生误导性结论。2.1 CPU vs GPU默认 CPU只有复现确需 GPU 才升级GPU 判定采用信号触发机制只要出现以下任一信号即视为 GPU否则一律 CPUIssue 标签platform: gb10、platform: dgx-sparkIssue 正文关键词整词匹配、大小写不敏感nvidia-smi、cuda、H100、A100、L40S、L4、T4、GB10、DGX、vllm、tensorrt。这里有一个值得注意的刻意排除inference和model serving这类词被明确排除在关键词之外。原因是它们过于嘈杂——例如models.providers.inference.baseUrl只是一个 CPU 侧 Bug 的配置路径与 GPU 需求毫无关系。判定原则是CPU 默认保持低成本仅当复现器确实需要 GPU 时才升级。2.2 CPU 架构默认 x86_64绝不让廉价 SKU 静默替换架构默认取x86_64除非 Issue 明确报告了arm64或aarch64。这一点通过INSTANCE_ARCH环境变量固化并要在 Step 7 的 CPU 搜索中保持。文档明确警告不要让最便宜 SKU搜索悄悄用 ARM 替换 x86 报告——安装器与依赖行为可能因架构而异。如果匹配架构是复现症状的必要条件、而 Brev 又没有对应 SKU则必须选择verify-inconclusive结论而不是降级硬件硬跑。2.3 Bug 类别分类决定路由到哪套判定规则在 CPU/GPU 之外还要按验证形态把 Bug 分类。各类别互斥取第一个命中的类别检测启发式路由目标resource-growth正文/标题提到memory leak、RSS/VRAM/磁盘持续增长、无界增长、over time增长Step 8e资源增长判定performance正文/标题提到延迟阈值P50、P90、ms、seconds、slow、hangs或带数值的timeoutStep 8e多轮延迟判定rebuild-cycle正文提到rebuild、recreate、restart、pod recreate、across rebuilds、after restart、survives a destroyStep 8f运行-重建-重跑装置log-only症状是日志而非 stdoutsee lots of error in X log、os.networkInterfaces guard errors或指向特定日志文件Step 8b 匹配规则 日志抓取扩展functional默认其他一切——退出码 stdout/stderr 匹配Step 8b 标准规则大多数 Bug 都是functional。其余四类需要独立验证装置且各有方法论约束一次不出现症状的运行不足以建立百分位数一次 onboarding 运行不足以证明配置跨重建持久。分类结果写入BUG_CLASSclass下游步骤据此选用对应规则。2.4 Agent 运行时分类不互相替代在两次安装前必须设置NEMOCLAW_AGENT检测信号NEMOCLAW_AGENTintegration: hermes标签或 Hermes 专属复现器hermesintegration: openclaw标签或 OpenClaw 专属复现器openclawStep 3 过滤后无运行时信号openclaw铁律是绝不把一个 Agent 运行时替换成另一个。候选筛选Step 3必须丢弃复现器专属 LangChain Deep Agents Code 的 Issueintegration: dcode标签。若运行时信号含糊选择verify-inconclusive或在使用 Brev 前询问维护者。2.5 Provider 分类某些 Bug 在 Ollama 下无法忠实复现部分 Bug 与特定推理 Provider 绑定换用 Ollama 就不会复现。分类信号与结果检测信号Providerprovider: nvidia标签、正文提到 NVIDIA 托管推理、build.nvidia.com、nvapi-...、NVIDIA_INFERENCE_API_KEY、NEMOCLAW_PROVIDERbuildbuild正文提到Gemini、gemini-flash、gemini-pro、GEMINI_API_KEYgemini正文提到 OpenRouter 或OPENROUTER_API_KEYopenrouterprovider: openai标签、正文提到 OpenAI、OPENAI_API_KEYopenaiprovider: anthropic标签、正文提到 Anthropic、ANTHROPIC_API_KEYanthropic正文提到 Amazon Bedrock 或 AWS 凭据变量bedrockprovider: ollama、正文提到ollama/NEMOCLAW_PROVIDERollama或未提及任何 Providerollama默认设置BUG_PROVIDERprovider后托管 Provider 使用如下凭据映射BUG_PROVIDER凭据变量buildNVIDIA_INFERENCE_API_KEYgeminiGEMINI_API_KEYopenrouterOPENROUTER_API_KEYopenaiOPENAI_API_KEYanthropicANTHROPIC_API_KEY注意边界Amazon Bedrock可能需要 profile、region、session token 或工作负载身份不能简化成单个 API key 文件自定义、路由、NCP、Anthropic 兼容等配置也可能需要 endpoint/profile/凭据材料。这些都不在 v1 凭据工作流范围内一律选择verify-inconclusive把环境验证留给单独审查的人工运行。2.6 必填凭据提示用 Brev 前先停一步当BUG_PROVIDER是托管 Provider 且复现器确实执行推理时必须在使用 Brev 之前停下向维护者呈现三个选项The reporters reproducer uses provider and requires credential-variable. Choose one option: 1. Approve a temporary 0600 credential file and a dedicated Brev instance. The skill reads the value with hidden input, copies the file to that instance, and deletes the local copy immediately after a successful copy. The remote wrapper reads the value inside the process that needs it. The value never appears in a command string or process argument. The approval includes instance deletion and immediate credential rotation if deletion cannot be confirmed. 2. Substitute Ollama only when the behavior is provider-independent. Record the mismatch and select verify-inconclusive; provider substitution cannot establish a fixed provider-specific bug. 3. Skip this issue. Select the verify-inconclusive verdict with the reason requires provider API key — not provided in this run, then request approval for the proposed comment and durable verdict marker. Choose 1, 2, or 3.这个批准是 Brev 计划的一部分它不授权公开评论或 Project 写入。另外存在一个豁免纯 CLI / 纯 sandbox 构建的 Bug不真正执行推理即使 Issue 正文提到 Provider 也无关紧要。启发式判据是如果 Step 6.7 的本地优先谓词会触发无沙箱状态、无模型服务器交互就跳过提示。2.7 凭据传播模式选项 1密钥永不进命令行这是本技能最核心的安全设计之一。第一步在使用前校验PROVIDER_CREDENTIAL_ENV必须落在五名表内绝不接受 Issue 文本里的任意环境变量名case $PROVIDER_CREDENTIAL_ENV in NVIDIA_INFERENCE_API_KEY|GEMINI_API_KEY|OPENROUTER_API_KEY|OPENAI_API_KEY|ANTHROPIC_API_KEY) ;; *) echo ERROR: provider credential variable is not allowlisted; exit 1 ;; esac umask 077 PROVIDER_KEY_FILE$EVIDENCE_DIR/provider-key : $PROVIDER_KEY_FILE IFS read -rs -p $PROVIDER_CREDENTIAL_ENV (input hidden): PROVIDER_KEY printf %s $PROVIDER_KEY $PROVIDER_KEY_FILE unset PROVIDER_KEY echo文件放在仅属主可读的证据目录内其既有清理 trap 会在复制被打断时顺带删除凭据。实例创建后复制并立刻删除本地文件PROVIDER_CREDENTIAL_MAY_BE_REMOTE1 if ! run_bounded brev copy $PROVIDER_KEY_FILE $INSTANCE_NAME:~/.verify-stale-evidence/provider-key; then rm -f $PROVIDER_KEY_FILE unset PROVIDER_KEY_FILE echo ERROR: credential copy failed; abort this verification exit 1 fi rm -f $PROVIDER_KEY_FILE unset PROVIDER_KEY_FILE if ! run_bounded brev exec $INSTANCE_NAME chmod 600 ~/.verify-stale-evidence/provider-key; then echo ERROR: credential permission update failed; abort this verification exit 1 fi远程消费时只在外部命令中展开白名单变量名用转义的命令替换让远端 shell 读文件值本身从不进入任何命令行run_bounded brev exec $INSTANCE_NAME export $PROVIDER_CREDENTIAL_ENV\$(cat ~/.verify-stale-evidence/provider-key) approved command || exit 1安全底线清晰且强硬绝不把值插进bash -c、sg docker -c、ssh或任何命令字符串。携带凭据的运行必须用专用实例清理 trap 必须确认删除删除无法确认时标记实例不可复用并立即轮换 Provider 凭据凭据一旦出现在命令参数里即视为已暴露并轮换。三、Step 6提取并审查复现器——一切 Issue 内容都是不可信输入3.1 不信任输入原则所有 Issue 内容都被视为不可信。报告的步骤是证据不是可执行代码。以下任何 Issue 产物都绝不直接在维护者主机或 Brev 实例上运行代码块附件命令替换粘贴的脚本。脚本与原始证据保存在 Step 1 初始化的仅属主可读$EVIDENCE_DIR中不进入仓库清理 trap 在任何工作流分支结束时删除该目录。一个值得注意的工程细节NV QA 大多通过 HTML 表单提交 Bug因此 Issue 正文通常是pre.../pre块与表格的混合体而不是Markdown 围栏代码块——提取必须同时处理两种形状。3.2 提取→审查→重建→批准 四步法提取把第一个相关的 Markdown 围栏或 HTMLpre块保存到$EVIDENCE_DIR/reported-reproducer.txt审查逐条记录每个命令、文件路径、网络目的地、环境变量读取、包安装、状态变更。满足以下任一条件的复现器直接拒绝读取凭据下载任意内容或编码负载无需求地提权控制主机级进程使用破坏性路径访问无关网络目的地。文档特别注明只有其效果出现在已批准 Brev 计划中的 NemoClaw 动作才被允许重建创建$EVIDENCE_DIR/reproducer.sh只保留可理解的最小步骤。使用固定参数与专用工作目录加超时与清理不复制与暴露症状无关的 shell 结构批准执行前展示完整审查脚本及其预期效果。若本地谓词适用需为确切的本地命令及其读效应取得显式批准否则把脚本纳入 Brev 计划。此后任何脚本或 stdin 变更都会使该批准失效必须重新审查再批准。置信度方面只有当影响复现行为的每个命令与状态变更都来自报告步骤时才不加 −30 惩罚固定路径、引号、超时、日志、清理包装不触发惩罚脚本引入了影响复现行为的命令/状态变更时按 Step 8 施加惩罚。3.3 健壮的提取器锚词必须三合一一个健壮的提取器以 JSON 形式获取正文并同时处理两种形状。关键设计点是锚词——标记某块为复现器的词——必须同时包含nemoclaw、openclaw和openshell。Issue #2592 曾暴露这一缺口其复现器是在沙箱内运行的openclaw channels add telegram若只用nemoclaw正则就会漏掉原样块迫使该次运行走 Step 8c 合成复现并背上 −30 惩罚BODY$(gh issue view $ISSUE_NUMBER --repo NVIDIA/NemoClaw --json body -q .body) REPRODUCER$(printf %s $BODY | python3 -c import re, sys, html b sys.stdin.read() # Anchor word: any of nemoclaw / openclaw / openshell. Issue bodies use whichever # tool the reporter ran (host-side nemoclaw vs in-sandbox openclaw vs openshell CLI). ANCHOR r(?:nemoclaw|openclaw|openshell) m re.search(rf(?:bash|sh)?\n(.*?{ANCHOR}.*?)\n, b, re.S) if not m: m re.search(rf~~~(?:bash|sh)?\n(.*?{ANCHOR}.*?)\n~~~, b, re.S) if not m: m re.search(rfpre[^]*(.*?{ANCHOR}.*?)/pre, b, re.S) if m: text re.sub(r[^], , m.group(1)) print(html.unescape(text).strip()) ) [ -n $REPRODUCER ] printf %s\n $REPRODUCER $EVIDENCE_DIR/reported-reproducer.txt若无法安全构造有界脚本选择verify-inconclusive。不要因为 Issue 陈旧或运行在远端就放松审查标准。四、Step 6.5验证本地前置条件——缺依赖就快速失败在进入候选选择、复现器审查以及可选的本地路径之前先确认依赖。不要为了一个本地阳性复现而要求 Brev# CLI deps — fail fast if anything later in the skill needs them but theyre missing. for cmd in gh jq python3; do command -v $cmd /dev/null 21 || { echo ERROR: missing required dependency: $cmd; exit 1; } done # gh identity — every comment posted by Step 10 lands under whatever account gh is currently # authenticated as. Surface that explicitly so the maintainer notices before a public comment # lands under the wrong handle (this matters when gh is multi-token, after a recent re-auth, # or when running under a service-account hostname). GH_IDENTITY$(gh api user --jq .login 2/dev/null) if [ -z $GH_IDENTITY ]; then echo ERROR: gh CLI is not authenticated. Run: gh auth login # then re-run this skill exit 1 fi echo gh identity: $GH_IDENTITY — comments posted by this run will appear under this handle # gh project scope — candidate selection reads Project fields and Step 10 may update them. gh auth status 21 | grep -q project || { echo ERROR: gh is missing project scope. Run gh auth refresh -h github.com -s project in a real terminal, then re-run this skill. exit 1 }这里有两层用意一是gh、jq、python3三件套缺一即停二是把gh身份显式亮出来——Step 10 发布的每条评论都会落在当前gh登录账号名下在 multi-token、最近重新认证或服务账号主机名场景下这条提示防止评论落到错误的账号下。projectscope 缺失则给出精确的修复命令gh auth refresh -h github.com -s project。五、Step 6.7尝试隔离的本地复现——零成本先于 Brev5.1 本地路径只适用于只读 CLI 行为本地路径仅用于只读 CLI 行为。本地阳性匹配可以确立still-reproduces但没有报告症状的本地结果不能确立fixed-on-latest——因为复现器尚未通过报告版本基线门必须在报告版本上先复现出症状。先用只读预检命令解析本地二进制与发布 tag。Python 包装器把版本探测限制在 10 秒内NEMOCLAW_BIN$(command -v nemoclaw) LOCAL_PREFLIGHT_FAILED0 if LOCAL_VERSION$(python3 - $NEMOCLAW_BIN PY import subprocess import sys try: result subprocess.run( [sys.argv[1], --version], checkFalse, stdoutsubprocess.PIPE, stderrsubprocess.STDOUT, textTrue, timeout10, ) except subprocess.TimeoutExpired: raise SystemExit(124) sys.stdout.write(result.stdout) raise SystemExit(result.returncode) PY ); then : else LOCAL_PREFLIGHT_FAILED1 echo Local version probe did not complete; continue to the Brev path. fi5.2 本地优先谓词六项全中才走本地本地优先仅在全部满足时适用LOCAL_PREFLIGHT_FAILED为0每一步都是一次字面的nemoclaw调用无 shell 运算符、展开、重定向、环境读取或命令替换每次调用都只读--version、--help、list、status子命令带--help也算只读。拒绝onboard、update、uninstall、destroy、rebuild、recover、start、stop、upload、download、snapshot及所有写标志Issue 无area: sandbox或platform: container标签且 Step 5 无 GPU 信号command -v nemoclaw能解析且nemoclaw --version与$LATEST完全一致——领先于发布 tag 的源码构建不能确立该 tag 上的行为维护者在 Linux 或 macOS 上Windows 本地复现按 Step 3 平台跳过规则出范围。5.3 本地运行器严格白名单 隔离 HOME 逐命令 60 秒超时谓词触发后要向维护者展示解析出的二进制与版本、每条拟执行复现命令、隔离的 home 目录、每条命令 60 秒超时以及无 Brev 动作、无成本的事实获批后才运行任何复现命令。运行器用 Python 严格白名单化参数元组并隔离 HOME/XDG 配置确保本地试验不污染维护者的真实环境LOCAL_SEMVER$(printf %s\n $LOCAL_VERSION | grep -oE v?[0-9]\.[0-9]\.[0-9] | head -1) LOCAL_ELIGIBLE1 [ v${LOCAL_SEMVER#v} $LATEST ] || LOCAL_ELIGIBLE0 if [ $LOCAL_ELIGIBLE 1 ]; then LOCAL_TRANSCRIPT$EVIDENCE_DIR/local-transcript.log LOCAL_HOME$EVIDENCE_DIR/local-home mkdir -m 700 $LOCAL_HOME if python3 - $NEMOCLAW_BIN $EVIDENCE_DIR/reproducer.sh $LOCAL_TRANSCRIPT $LOCAL_HOME PY import os, pathlib, shlex, subprocess, sys binary, script_path, transcript_path, isolated_home sys.argv[1:] env {key: os.environ[key] for key in (PATH, LANG, LC_ALL, TMPDIR, SHELL) if key in os.environ} env.update({HOME: isolated_home, XDG_CONFIG_HOME: f{isolated_home}/.config, XDG_STATE_HOME: f{isolated_home}/.local/state}) allowed_exact { (--help,), (-h,), (--version,), (list,), (list, --json), (status,), } last_returncode 0 with open(transcript_path, w, encodingutf-8) as transcript: for raw in pathlib.Path(script_path).read_text(encodingutf-8).splitlines(): if not raw.strip() or raw.lstrip().startswith(#): continue argv shlex.split(raw, posixTrue) if not argv or argv[0] ! nemoclaw: raise SystemExit(fdisallowed local reproducer line: {raw}) args tuple(argv[1:]) subcommand_help ( len(args) 2 and not args[0].startswith(-) and args[1] in {--help, -h} ) if args not in allowed_exact and not subcommand_help: raise SystemExit(fnon-read-only local reproducer line: {raw}) try: result subprocess.run([binary, *argv[1:]], envenv, textTrue, stdoutsubprocess.PIPE, stderrsubprocess.STDOUT, timeout60, checkFalse) except subprocess.TimeoutExpired as error: transcript.write(f$ {raw}\n{error.stdout or }\ntimeout60s\nexit124\n) last_returncode 124 continue transcript.write(f$ {raw}\n{result.stdout}\nexit{result.returncode}\n) last_returncode result.returncode raise SystemExit(last_returncode) PY then LOCAL_EXIT0 else LOCAL_EXIT$? fi python3 .agents/skills/nemoclaw-maintainer-verify-stale/scripts/redact-evidence.py \ $LOCAL_TRANSCRIPT $EVIDENCE_DIR/local-transcript.redacted.log echo Local: $LOCAL_VERSION, exit $LOCAL_EXIT else echo Skip local path: installed $LOCAL_VERSION; expected release tag $LATEST fi5.4 本地结果的三路判定只拿脱敏后的local-transcript.redacted.log与 Issue 报告症状对比用 Step 8b 规则。原始本地记录保留在证据目录直至清理 trap 删除本地匹配报告症状退出码与诊断输出和 Issue 的 Actual Result 一致→ 路由到still-reproduces本地记录作为$LATEST的证据。Step 10 评论必须写明Environment: local install (version) — no Brev instance created; the CLI result on release-tag matches the reported symptom本地未显示报告症状→ 继续走报告版本 最新版本的 Brev 路径。不要仅凭$LATEST上的一次运行就选fixed-on-latest本地复现因环境原因报错nemoclaw: command not found、npm link 损坏→ 继续 Step 7本地记为 inconclusive而非验证失败。谓词不触发则正常进入 Step 7——大多数触及沙箱的 Bug 都需要 Brev。六、Step 6.8验证 Brev 前置条件——只在本地路径未决时执行本节仅在本地路径未能确认still-reproduces、且呈现 Brev 计划之前运行。它检查三件事brev与git是否存在、SHA-256 工具可用sha256sum优先退而求其次shasum、Brev 已认证for cmd in brev git; do command -v $cmd /dev/null 21 || { echo ERROR: missing required dependency: $cmd; exit 1; } done if command -v sha256sum /dev/null 21; then VERIFY_STALE_SHA256_TOOLsha256sum elif command -v shasum /dev/null 21; then VERIFY_STALE_SHA256_TOOLshasum else echo ERROR: missing required SHA-256 tool: sha256sum or shasum exit 1 fi brev ls --json /dev/null 21 || { echo ERROR: Brev authentication failed. Run brev login in a separate terminal, complete the browser flow, and rerun. echo If no browser opens, use brev login --skip-browser and open the printed URL. exit 1 }注意认证方式的安全约束绝不在 Agent 命令中用brev login --token value传 Brev token——该值会成为进程参数。必须用交互式浏览器流程失败时用brev login --skip-browser并打开打印的 URL。这一节还定义了贯穿整个技能的执行预算纪律详见 brev-provisioning.md每次验证默认 60 分钟墙上时钟预算、run_bounded给每个事后批准的本地 Brev CLI 进程设上限、清理单独享有最多 120 秒的宽限——因为删除仍依赖 Brev 控制平面计费可能持续到删除被确认。七、贯穿始终的安全边界与脱敏机制本文档的每一步都服务于同一条信任边界远端副作用与成本必须获批敏感材料必须隔离证据必须脱敏。三处机制值得单独强调证据目录的仅属主与自清理本地证据放$EVIDENCE_DIRmktemp -dchmod 700远端证据放~/.verify-stale-evidencemkdir -m 700两处都由清理 trap 兜底任何工作流分支结束都会移除统一脱敏器redact-evidence.py 是所有评论与本地检查的前置过滤器按最长最具体优先、通用兜底最后的顺序执行 14 组正则——JWT、GitHub PAT、nvapi-键、sk-系列键、GeminiAIza键、AWSAKIA、HTTP 认证头、Bearer、URL 基本认证、内联凭据、内部主机名、邮箱、长 base64 块以及最后把报告者 home 路径归一为~/。--html选项先把 NV QA 的 HTML 表单正文转成纯文本再脱敏防止 token 藏在标签或属性里绕过文本模式。技能的非协商条款SKILL.md与之呼应绝不打印或张贴未脱敏的转录、Issue 摘录、合成脚本、内部主机名、邮箱或 token判定词汇与状态分离fixed-on-latest、verify-inconclusive、by-design、still-reproduces是评论与日志词汇不是 GitHub label幂等标记!-- nemoclaw-verify-stale v1 verdict... YYYY-MM-DD --由候选筛选读取最终结论永久有效、still-reproduces采用七天 TTL。技能在任何分支都绝不关闭 Issue。结语一份先分类、后隔离、再验证的守则回顾本文覆盖的五个环节verify-stale 的 Step 5–6.8 其实是一条完整防线先用五维分类CPU/GPU、架构、Bug 类别、Agent 运行时、Provider把验证形态钉死再以不信任输入原则把 Issue 步骤降级为证据并重建最小复现器随后按谓词优先尝试零成本的隔离本地路径最后才把经过批准的计划与文件化凭据搬运到 Brev。这条防线的价值在于分类错误会浪费一个小时以上的 Brev 计费输入审查疏漏可能把维护者主机变成攻击面凭据处理失误则可能泄露生产密钥——而本文档用白名单、专用实例、文件化传递与强制批准把这三种风险都关进了笼子。若需继续深入可依次阅读 brev-provisioning.md实例生命周期与双版本安装、reproduction-rubrics.md判定规则、by-design.md静态意图证据与 scoring-comments-and-logging.md置信度与评论写作。【免费下载链接】NemoClawRun agents like Hermes, LangChain Deep Agents, and OpenClaw more securely inside NVIDIA OpenShell with managed inference项目地址: https://gitcode.com/gh_mirrors/ne/NemoClaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表