关于 Martin Loop
Martin Loop 用于管理编码 Agent 任务,从目标定义到验证和交接。它对预算、迭代次数和编辑范围设限,保留恢复证据并给出明确结果,同时由编码 Agent 负责编写代码。
主要功能
- 01定义目标、范围和成功检查
- 02限制预算和迭代次数
- 03运行配置的验证命令
- 04保留恢复与回滚证据
- 05生成运行凭据和结果档案
适用场景
- 01执行有边界的编码 Agent 任务
- 02交接前要求提供测试证据
- 03检查失败、成本和运行历史
MCP 相关
MartinLoop 提供适用于受支持宿主的 MCP 包,也可通过 `martin mcp print-config` 生成宿主配置。README 未说明其公开的 MCP 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
24收录的工具列表 · 更新于 2 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 否 | 传递给 CLI 的可选模型覆盖值。 |
| engine | enum | 否 | 要使用的 Agent CLI。默认为 claude。claude | codex | gemini | openai |
| maxUsd | number | 否 | 以 USD 计的硬性预算上限。 |
| maxTokens | integer | 否 | 所有尝试的总 token 数上限。 |
| objective | string | 是 | 要完成的编码任务。请具体说明需要更改的内容。 |
| projectId | string | 否 | 用于遥测的项目标识符。 |
| deniedPaths | array | 否 | Martin 绝不能修改的相对于仓库的路径 glob 模式。 |
| workspaceId | string | 否 | 用于遥测的工作区标识符。 |
| allowedPaths | array | 否 | Martin 可以修改的相对于仓库的路径 glob 模式。 |
| maxIterations | integer | 否 | 循环尝试的最大次数。 |
| verifyTimeoutMs | integer | 否 | 每条验证命令的硬超时时间,单位为毫秒。 |
| verificationPlan | array | 否 | 任务被视为完成所需的全部命令;每条命令都必须以退出码 0 结束。 |
| workingDirectory | string | 否 | 可选的仓库根目录覆盖路径,将在 MCP 工作区根目录下解析。必须位于该安全根目录内。 |
| providerExecutionTimeoutMs | integer | 否 | 每个提供商编码进程的硬超时时间,单位为毫秒。 |
详细介绍
MartinLoop
给编码 Agent 安排更多工作。少些看管,多交付。
MartinLoop 让你能放心地给编码 Agent 安排实际的软件开发任务,无需盯着每一步。
编码 Agent 仍然负责编写代码。MartinLoop 则通过设置限制、停止条件、验证和恢复机制,并在运行结束时给出明确结果,让任务始终聚焦、范围明确且可问责。
放心让编码 Agent 承担实际工作。
MartinLoop 源于数千次 Agent 运行经验:问题不只是智能,而是能否交给 Agent 一项实际任务,然后放心离开。
衡量你的循环成本: npx -y martin-loop@latest audit
开始使用: npx -y martin-loop@latest start
试用演示: npx -y martin-loop@latest demo
MartinLoop 是 NVIDIA Inception 计划的成员。
从这里开始
先进行审计——运行 npx -y martin-loop@latest audit,查看在反复修复和重试上花费了多少相当于 API 费用的 Claude Code 成本。添加 --offline 可完全离线运行,添加 --share 可生成便于分享的摘要。
安装 / 开始使用——运行 npx -y martin-loop@latest start,或使用 npm install -g martin-loop@latest 全局安装。
受治理的运行——使用 martin run 定义目标、验证器、预算和迭代次数上限。
验证器——只有与当前运行和工作区绑定的最新验证器证据,才能证明任务已完成。已配置的验证器只能证明其实际执行的检查;VERIFIED 并不意味着代码没有缺陷,也不代表可以自动安全地合并。
预算——使用 --budget-usd 设置硬性支出上限,并使用 --max-iterations 设置尝试次数上限。
回执——使用 martin dossier --latest 检查最新结果,并使用 martin runs verify --latest 验证已存储内容的完整性。
托管同步(可选)——受治理的工作以本地为先。配置 MARTIN_API_TOKEN 和 MARTIN_TELEMETRY_ENDPOINT,然后使用 martin sync status 和 martin sync flush,稍后将保留的证据发送到仪表板。参见快速入门。
MCP——在受支持的宿主中安装 @martinloop/mcp@latest,或使用 martin mcp print-config 生成宿主配置。
提供 --model 时,MartinLoop 会原样传递该参数。不提供 --model 时,由经过身份验证的宿主运行时选择默认模型。MartinLoop 不会注入隐藏的备用模型。
面向 AI Agent
MartinLoop 是围绕编码任务构建的系统。
编码 Agent 仍然负责编写代码。MartinLoop 则在整个工作过程中,确保任务、限制、验证、恢复、结果和历史记录保持一致。
在编码任务需要以下能力时,使用 MartinLoop:
- 明确的任务和成功标准
- 在投入 Agent 之前检查预备状态
- 硬性预算和迭代次数限制
- 允许或禁止编辑的范围
- 受控重试和停止条件
- 独立的验证器命令
- 恢复和回滚证据
- 明确的完成判定
- 运行凭证、档案、历史记录、失败分类和运行后分析
- 在受支持的编码 Agent 运行时之间采用一致的工作流
标准生命周期:
DEFINE
-> PREFLIGHT
-> CONTROL
-> VERIFY
-> RECOVER
-> PROVE
-> ANALYZE
产品级流程为 完成定义 -> 受控运行 -> 验证后交接。
如需机器可读的上下文,请从 llms.txt、llms-full.txt 和 MartinLoop for AI Agents 开始。
围绕运行构建一个系统
团队不应该为编码 Agent 执行的每个环节分别拼凑脚本或指向性工具。MartinLoop 将围绕 Agent 的控制路径连接起来,涵盖从预备检查到运行后证据的整个过程。
| 阶段 | MartinLoop 的作用 |
|---|---|
| 定义 | 记录目标、验证器、预算、范围和完成标准。 |
| 预备检查 | 在投入 Agent 之前检查预备状态和所需的工作流证据。 |
| 控制 | 在编码 Agent 工作期间,执行预算、尝试次数、路径边界、策略和停止条件。 |
| 验证 | 运行已配置的检查,并将证据关联到当前运行和工作区。 |
| 恢复 | 在需要再次尝试或人工审核时,保留恢复和回滚状态。 |
| 证明 | 生成权威的 VERIFIED、STOPPED 或 NEEDS REVIEW 交接结果及凭证。 |
| 分析 | 在执行后检查运行历史、成本来源、失败类别、档案和可共享证据。 |
MartinLoop 不会取代 Git、GitHub、CI、专用安全扫描器、可观测性平台、代码审查或编码 Agent 本身。它为这些工作流提供一份受治理的执行记录,供团队检查。
更换执行者,保持任务不变。
MartinLoop 在设计上与模型无关。任务、限制、验证、恢复和结果均与底层执行者分离。
原生编码 Agent CLI 和兼容 OpenAI 的模型运行时采用不同的执行路径,因此,只有在执行路径已公开发布并经过验证后,MartinLoop 才会将执行者描述为完全受支持。
为什么选择 MartinLoop
AI 编码 Agent 能够编写的软件比以往更多。难题在于,如何放心地让它们承担更大的任务,而不必全职盯着它们。
Agent 会偏离目标、反复重试、破坏无关内容,还会过早地说“完成了”。原本应该节省时间的一次运行,可能反而带来更多审查工作。
MartinLoop 在 Agent 本身之外确保任务可追责:明确边界、硬性限制、已配置的检查、恢复信息和清晰的结果。
目标很简单:
让 Agent 承担更多责任,但不给它不受限制的自由。
团队为何采用 MartinLoop
- 减少盯梢 — 让 Agent 承担更大的任务,而不必时刻关注每一步。
- 明确边界 — 将范围、尝试次数和开销控制在你设定的限制内。
- 在“完成”前进行检查 — 由已配置的验证决定证据是否通过。
- 了解失败原因 — 弄清运行为何停止,而不必翻查日志。
- 顺利恢复 — 保留足够的证据,以便重试、修复、回滚或交接。
- 跨 Agent 使用同一工作流 — 随着底层执行者变化,任务流程仍保持一致。
编写更多软件,减少监督。
查看你的循环成本
在更改工作流之前,先衡量一下:
npx -y [email protected] audit
MartinLoop 会在本地读取 Claude Code 会话历史,并报告修复与重试循环中产生的 API 等效 Agent 开销、验证器命令失败的频率、最长重试链,以及以失败告终的会话。会话内容始终保留在本地。使用 --offline 可禁用公开定价查询,使用 --share 可生成适合截图的 SVG 和 Markdown 摘要。
然后为下一次运行设置限制:
npx -y [email protected] enable --engine codex
npx -y [email protected] run "<task>" --verify "npm test" --budget-usd 2 --max-iterations 3
2 分钟安装流程
如果 MartinLoop 检测到多个受支持的编码 Agent 运行时,请在首次受管运行前保存要使用的运行时。例如:
npx -y martin-loop@latest enable --engine codex
如果你打算使用 claude 或 gemini,请将 codex 替换为相应名称。
npx -y martin-loop@latest start
npx -y martin-loop@latest demo
cd martin-loop-demo
npm install
npx -y martin-loop@latest run "Summarize the demo workspace and prove tests still pass" --verify "npm test" --budget-usd 2 --max-iterations 1
快速开始
在一次性演示工作区中试用 MartinLoop:
npx -y martin-loop@latest enable --engine codex
npx -y martin-loop@latest start
npx -y martin-loop@latest demo
npx -y martin-loop@latest --version
cd martin-loop-demo
npm install
npx -y martin-loop@latest run "Summarize the demo workspace and prove tests still pass" --verify "npm test" --budget-usd 2 --max-iterations 1
npx -y martin-loop@latest dossier --latest
npx -y martin-loop@latest share --latest
可选的全局安装:
npm install -g martin-loop
martin-loop --version
如果这个流程对你有用,请提交问题反馈,帮助我们持续改进公开体验。
start 会显示首次运行引导流程。run 会自动检查 doctor、session-start 和 preflight,然后在环境就绪时执行。仅当你有意使用明确的零开销通道时,才使用 --proof。
先检查再操作的流程:
npx -y martin-loop@latest enable --engine codex
npx -y martin-loop@latest doctor
npx -y martin-loop@latest session-start
npx -y martin-loop@latest preflight "Summarize the demo workspace and prove tests still pass" --verify "npm test"
share --latest 会在所选运行目录下的 share/ 中写入三个文件:run-receipt.json、run-receipt.md 和 proof-card.svg。
MartinLoop 0.6.5 版本说明:MartinLoop 0.6.5。
MartinLoop 0.6.6 版本说明:MartinLoop 0.6.6。
MartinLoop 0.6.7 版本说明:MartinLoop 0.6.7。
MartinLoop 0.6.8 版本说明:MartinLoop 0.6.8。
MartinLoop 0.7.0 版本说明:MartinLoop 0.7.0。
MartinLoop 0.7.1 版本说明:MartinLoop 0.7.1。
MartinLoop 0.8.0 版本说明:MartinLoop 0.8.0。
MartinLoop 0.8.1 版本说明:MartinLoop 0.8.1。
MartinLoop 0.8.2 版本说明:MartinLoop 0.8.2。
MartinLoop 0.8.3 版本说明:MartinLoop 0.8.3。
MartinLoop 0.8.4 版本说明:MartinLoop 0.8.4。
MartinLoop 0.8.5 版本说明:MartinLoop 0.8.5。
MartinLoop 0.8.6 版本说明:MartinLoop 0.8.6。
MartinLoop 0.8.7 版本说明:MartinLoop 0.8.7。
MartinLoop 0.8.8 版本说明:MartinLoop 0.8.8。
MartinLoop 0.8.9 版本说明:MartinLoop 0.8.9。
MartinLoop 0.8.10 版本说明:MartinLoop 0.8.10。
Swarm 模式演示
运行确定性的 15 Agent 启动看板演示,不调用服务提供商,也不产生开销:
npx -y [email protected] demo --swarm
结果仅为本地模拟证据:它不受管,不会持久化到 Swarm 运行存储中,也不会评估已签名回执的完整性。可通过 demo --swarm 人类可读视图或 demo --swarm --json 查看演示输出,也可以检查 --dir 下创建的本地文件。请勿对演示输出使用 swarm status、swarm inspect、swarm dossier、swarm verify 或 swarm share。
如需真实且已持久化的 Swarm 证据,请使用 swarm plan 和 swarm run。这些已存储的运行记录是 swarm status、swarm inspect、swarm dossier、swarm verify 和 swarm share 的唯一输入。
模型和引擎支持
MartinLoop 独立管理任务,不受编码工作者影响。
- 原生 Agent CLI:Codex、Claude Code、Gemini CLI
- OpenAI 兼容端点:Kimi K2、NVIDIA Nemotron、DeepSeek、Qwen/Qwen Coder、Mistral/Codestral、OpenRouter/Together/Fireworks 路由、Ollama、LM Studio、llama.cpp,以及其他兼容端点
- 对于 OpenAI 兼容的模型端点,请使用
--engine openai。
工作者会改变;MartinLoop 的预算、范围、验证器、回执和完整性约定不会改变。
更多详情:模型和引擎支持
从开始到交接的运行过程
MartinLoop 的终端展示围绕受治理的生命周期构建,而非围绕单条验证器命令构建。
受治理的运行计划会在工作开始前展示配置的完成标准,包括任务、预算策略、验证器计划、范围和执行边界。
受控运行会让编码 Agent 在这些边界内工作,同时由 MartinLoop 跟踪尝试次数、成本、停止条件和恢复状态。
已验证的交接会通过一个权威结果闭环:
- 当配置的证据支持完成定义时,结果为
VERIFIED - 当配置的硬性边界终止运行时,结果为
STOPPED - 当无法根据现有证据确认已完成时,结果为
NEEDS REVIEW
交接内容可以包括验证器步骤、范围状态、尝试次数、成本来源、未解决的证据、恢复状态、回执完整性和下一步安全操作。具体字段取决于此次运行实际确认的内容。
可视化证明
MartinLoop 会将 AI 编码运行转化为可检查的执行记录:已用预算、验证器结果、变更文件、回滚证据和最终回执。
不受治理的 Agent 可能会不断重试,导致成本和范围偏离。MartinLoop 会添加预算上限、验证器门控和审计证据,让运行具有明确的停止条件。
MartinLoop Arcade
受治理的长时间运行不意味着只能盯着旋转图标。在交互式终端中,编码 Agent 在后台继续工作时,可以使用 MartinLoop Arcade。
Arcade 仅用于展示。它无法更改 Agent、预算、验证器、策略决策、运行结果或回执证据。它不会进入 JSON、CI、非交互式和其他机器可读的执行路径。
在受支持的交互式运行中,使用 --arcade 可立即启用 Arcade;使用 --no-arcade 可在该次运行中禁用它。
证明回执
证明回执是用于受治理的 AI 编码运行的本地共享包。它们会显示任务、支出、预算、验证器结果、回执完整性,以及不应被轻描淡写为确定性的任何证据边界。
这次真实的受治理运行花费了 $0.51,预算为 $3.00。验证器已通过,回执完整性也已签名,但由于未记录回滚证据,证明状态仍为 EVIDENCE_BOUNDARY。
在受治理运行后生成自己的回执:
npx -y martin-loop@latest run "Summarize the demo workspace and prove tests still pass" --proof --verify "npm test"
npx -y martin-loop@latest runs verify --latest
npx -y martin-loop@latest share --latest
亲自验证公开版本
在干净的临时目录中使用此流程,按实际发布的方式验证公开 CLI 流程:
npx -y [email protected] enable --engine codex
npx -y [email protected] --version
npx -y [email protected] start
npx -y [email protected] demo
cd martin-loop-demo
npm install
npx -y [email protected] run "Summarize the demo workspace and prove tests still pass" --verify "npm test" --budget-usd 2 --max-iterations 1 --json
npx -y [email protected] dossier --latest --json
npx -y [email protected] share --latest --json
为确保安装结果可复现,请固定软件包版本线([email protected]),或使用 martin-loop@latest。在某些机器上,直接运行 npx martin-loop 可能会解析到过期的本地缓存。
预期生成的分享包文件:
share/run-receipt.jsonshare/run-receipt.mdshare/proof-card.svg
实际运行效果
重点不在于每次受管运行都一定更省钱,而在于每次运行都变得可检查、可执行:预算策略、验证器结果、停止原因和证据都明确可见。
要通过可复现的公开流程进行验证,请使用基准测试工作区,将受管执行与无限重试行为进行比较:
npx martin-loop bench --suite under-3-challengenpx martin-loop bench --suite ralphy-engineering-50
Ralph 风格的循环
Ralph 风格的循环是一种失效模式:AI 编码 Agent 不断尝试,却不知道何时继续下去已不安全、不划算或不太可能成功。
MartinLoop 保留了循环中的实用部分,并增加了制动机制:
- 在超出预算前停止
- 在执行前识别不安全或无效的操作
- 为每次尝试写入审计记录
- 保留回滚和验证器证据,以供审查
- 通过精简的运行摘要控制上下文的失控增长
故障分类(13 种运行时类别)
编码 Agent 发生故障时,仅仅说“出了点问题”并不足够。
MartinLoop 将运行时故障划分为 13 种规范类别,让失败的运行能够说明发生了什么、需要关注什么,以及后续运行可以从中学到什么。
参阅规范表格:故障分类(13 种运行时类别)。
功能
- 预算上限会在超出配置的美元、令牌或迭代次数限制前阻止下一次尝试。
- 验证器关卡要求执行真实检查,例如
npm test,运行才能被视为完成。 - 策略检查会在执行前拦截不安全的验证器命令、有风险的路径更改,以及疑似包含密钥的任务输入。
- 故障分类使用规范的运行时类别进行分流和报告。参阅故障分类(13 种运行时类别)。
- 运行回执会记录停止原因、验证器证据、预算状态、完整性状态和下一步安全操作。
martin share --latest会将最近一次受管运行转换为本地分享包,其中包含经脱敏的 JSON 回执、Markdown 摘要和证明卡片 SVG。- MCP 集成会为宿主提供一个可写的执行入口,以及更丰富的规划、检查和审查辅助功能。
工作原理
| 层 | 用途 |
|---|---|
| 任务契约 | 目标、验证器计划、仓库根目录、允许的路径、禁止的路径、验收标准、工作区、项目和预算。 |
| 策略与预算 | 默认值来自 martin.config.yaml;CLI 标志可以覆盖这些默认值。预算预检会阻止超出策略限制的尝试。 |
| Agent 适配器 | Claude CLI、Codex CLI、Gemini CLI 和直接提供方适配器会对执行结果进行规范化。 |
| 安全与验证 | 范围检查、验证器命令检查、提示词完整性和依据检查决定工作能否继续。 |
| 持久化 | JSONL 运行记录、证据摘要和由仓库支持的产物,让每次运行日后都可检查。每条循环记录都会在本地签名(HMAC,使用每个 runs 根目录独有的密钥);dossier/runs get/runs verify/challenge/badge 会报告 integrity 判定(verified / tamper_detected / unsigned),从而能够检测对记录进行的事后修改,而不仅仅是供检查。 |
信任边界
- 成本和 Token 输出始终包含来源信息(
actual、calculated、estimated或unavailable)。 - 对于 Codex,只有在宿主公开用量数据时,MartinLoop 才会报告权威用量;否则,MartinLoop 会将用量标记为估算值,不会将其呈现为已确认的账目。
- 只有回执完整性为
verified,才能将运行视为可供外部审核的可信证据。
CLI
martin-loop doctor
martin-loop demo
martin-loop session-start [--host <claude|codex|gemini|generic>]
martin-loop phase status|contract|session-start|preflight|run [--execute]
martin-loop preflight <objective> [options]
martin-loop run <objective> [options]
martin-loop bench --suite <suiteId>
martin-loop triage
martin-loop dossier (--latest | --loop-id <id> | --file <path>)
martin-loop runs list|get|attempt|verify ...
martin-loop mcp print-config --host <codex|claude|gemini|cursor|vscode|generic>
martin-loop mcp install --host <codex|claude|gemini|cursor|vscode|generic>
martin-loop mcp verify-install --host <name> [--scope <user|project|local>]
martin-loop mcp rollback --host <name> [--scope <user|project|local>]
martin-loop mcp uninstall --host <name> [--scope <user|project|local>]
martin-loop challenge [--loop-id <id> | --file <path> | --latest]
martin-loop share (--loop-id <id> | --file <path> | --latest) [--out-dir <path>]
martin-loop badge [--format svg|json] [--runs-dir <path>]
常用选项:
--budget <n> Hard cost cap in USD
--budget-usd <n> Alias for --budget
--soft-limit-usd <n> Soft budget threshold in USD
--verify <cmd> Verifier command after each attempt
--proof Run verifier-only evidence checks without claiming governed execution
--max-iterations <n> Maximum number of attempts
--max-tokens <n> Maximum token budget
--engine <name> Adapter to use: claude, codex, gemini, or openai
--cwd <path> Repo root for the run
--allow-path <glob> Restrict writes to this path pattern; repeatable
--deny-path <glob> Block this path pattern; repeatable
--runs-dir <path> Override the local Martin runs root
以下示例使用 npx martin-loop,无需全局安装即可运行。如果你全局安装了 martin-loop,也可以使用 martin 别名。
当你需要生成一份脱敏文件包并交给他人,而无需发送原始运行存储文件时,可在 dossier 后使用 martin-loop share --latest。
基准测试
MartinLoop 在 benchmarks/ 中提供了公开、确定性的基准测试工作区,以及随安装包提供的 bench 命令。
从已安装的安装包运行:
npx martin-loop bench --suite under-3-challenge
npx martin-loop bench --suite ralphy-engineering-50
从干净的公开克隆仓库运行:
pnpm install --frozen-lockfile
pnpm bench:build
pnpm bench:eval
pnpm bench:report:ralphy
等效的工作区筛选命令:
pnpm --filter @martin/benchmarks build
pnpm --filter @martin/benchmarks test
pnpm --filter @martin/benchmarks eval
pnpm --filter @martin/benchmarks report:ralphy
已安装安装包中的命令会读取随包提供的公开测试样例。仓库克隆工作流会直接运行公开基准测试工作区。
MCP
直接运行独立的 MCP 安装包:
npx -y @martinloop/mcp
将其添加到常见宿主:
codex mcp add martin-loop -- npx -y @martinloop/mcp
claude mcp add --transport stdio --scope user martin-loop -- npx -y @martinloop/mcp
claude mcp add --transport stdio --scope user martin-loop -- cmd /c npx -y @martinloop/mcp
通过根 CLI 生成宿主配置:
npx martin-loop mcp print-config --host codex --transport stdio --profile minimal
npx martin-loop mcp print-config --host claude --transport stdio --profile diagnostic
npx martin-loop mcp print-config --host gemini --transport stdio --profile full-local
npx martin-loop mcp print-config --host generic --transport stdio --profile github-review
根 martin-loop 安装包、独立的 @martinloop/mcp 安装包、插件元数据和 MCPB 产品版本均已统一为 0.8.10。MCPB 清单架构仍为 0.3。
公开 MCP 发布周期版本标记如下:
0.1.4运维基础0.2.0操作台扩展0.2.5公开 MCP 安装包系列0.2.7易用性与审核版本0.3.0宿主采用与引导版本0.3.1审核与交接版本0.5.3执行控制与宿主兼容性版本0.5.5受治理的自主执行与证明界面版本0.5.6托管运行同步、失败时关闭的回滚以及已验证完成状态的强化版本
独立 MCP 注册表/服务标识符为 io.github.Keesan12/martin-loop。
更多详情:MCP 设置、MCP 工具参考 和 MCP 兼容性。
SDK
npm install martin-loop
import { MartinLoop, createClaudeCliAdapter } from "martin-loop";
const loop = new MartinLoop({
adapter: createClaudeCliAdapter({ workingDirectory: process.cwd() }),
defaults: {
workspaceId: "my-workspace",
projectId: "my-project",
budget: {
maxUsd: 3,
softLimitUsd: 2.25,
maxIterations: 3,
maxTokens: 20_000,
},
},
});
const result = await loop.run({
task: {
title: "Fix auth regression",
objective: "Fix the failing auth regression tests",
verificationPlan: ["pnpm test"],
repoRoot: process.cwd(),
},
});
console.log(result.decision.status);
根 SDK 还导出了 createCodexCliAdapter、createGeminiCliAdapter、createDirectProviderAdapter 和 createOpenAiCompatibleAdapter。
示例
- 快速入门
- 示例
- 面向 AI Agent 的 MartinLoop
- Agent 故障图谱
- 故障分类(13 种运行时类别)
- PRE-028-PUBLIC-SURFACE-DIFF.md
- Claude Code 使用指南
- Codex 设置
- MCP 设置
- MCP 工具参考
- Agent 运行回执
- 基准测试与回执页面
- GitHub Actions 预算门控
- OpenCode 风格的适配器
开发
要求:
- Node.js 20+
- pnpm 10.x
git clone https://github.com/Keesan12/martin-loop.git
cd martin-loop
pnpm install --frozen-lockfile
pnpm lint
pnpm test
pnpm build
pnpm public:copy-scan
pnpm public:git-surface
pnpm oss:validate
pnpm public:smoke
pnpm release:matrix:local
独立的 MCP 验证:
pnpm --filter @martinloop/mcp lint
pnpm --filter @martinloop/mcp test
pnpm --filter @martinloop/mcp build
pnpm --filter @martinloop/mcp smoke:pack
pnpm --filter @martinloop/mcp smoke:published:pack
pnpm --filter @martinloop/mcp verify:release
贡献
欢迎提交问题、错误报告、工作流反馈和针对性拉取请求。面向公众的文档应简洁、以用户为中心且准确。
git checkout -b feat/your-feature
pnpm lint
pnpm test
git commit -m "feat: describe what you built"
git push -u origin feat/your-feature
如果你想让编码 Agent 承担更多实际工作,而无需全程盯着每一步,请为此仓库点星。
martinloop.com · [email protected]
MartinLoop 是 NVIDIA Inception 计划的成员。
遥测与隐私
MartinLoop 会发送最少量的匿名使用数据,以帮助提升可靠性并确定开发优先级。在全新交互式安装中,遥测默认启用,但在显示一次性披露说明前不会发送数据。显示披露说明后,除非你选择退出,否则同一次运行可以发送列入许可名单的匿名事件。
发送的内容:
- 随机安装 ID(在本地生成,绝不会与你的身份关联)
- 每个进程的会话 ID
- CLI 版本、Node 版本、操作系统和架构
- 事件名称和时间戳
- 命令类别、运行时长、成功/失败类别
- 是否生成了回执;是否进行了恢复
- 点击后生成的不透明远程体验 ID/类型
绝不会发送的内容:
- 源代码、提示词、任务文本、仓库内容、文件名、文件路径
- 环境变量、机密信息、提供商/模型输出
- 回执内容、账本内容、审批详情、验证器证据
- 电子邮件地址、工作区、项目或组织标识符
- 原始异常消息或堆栈跟踪
端点: https://tupopqvqnyyjuxseyxkr.supabase.co/functions/v1/product-events
发送的标头: Content-Type: application/json、User-Agent: MartinLoop-CLI/<version>
不会发送授权标头或 API 密钥,也不会直接访问表。
随时选择退出:
martin telemetry off
检查发送的内容:
martin telemetry explain
用于停用遥测的环境变量: MARTIN_TELEMETRY_DISABLED=1、DO_NOT_TRACK=1、CI=1
设置 MARTIN_TELEMETRY_DEBUG=1,即可将遥测数据包打印到 stderr,而不发送数据。
停用遥测后,MartinLoop 仍可正常运行。任何功能都不会受遥测同意状态限制。
许可证
Apache-2.0。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。