Communitygithub.com

asklokesh/loki-mode

一个自主软件工厂,知道自己应该交付什么,并证明自己做到了。当用户提到 Loki Mode 或要求自主构建、修复或验证软件时使用。

loki-mode 是什么?

Loki Mode 是一个自主软件工厂技能,专为 Claude、Codex、Cline、Aider 等 AI 代理平台设计。它以规格驱动的方式工作:将任务描述(如 Markdown PRD、GitHub Issue、OpenAPI 文档等)作为输入,然后自主执行完整的 RARV(推理-行动-反思-验证)闭环,直到所有质量门、完成委员会和证据门都通过。其核心信任层是证据收据机制:每次运行都会生成一份包含确定性事实(git diff、SHA 哈希、命令退出码、每个门的判定)和 AI 评估的收据,用户可以独立验证。Loki 支持并行开发、Git 工作树并行、降级模式(针对非 Claude 提供商)以及多阶段项目工作流(从引导到增长)。用户可以通过 `loki "<task>"` 或 `loki owner/repo#N` 快速启动,或者使用 `loki start` 命令进行旧版入口。运行时正在从 Bash 迁移到 Bun,同时保留了向后兼容性。该技能支持可配置的模型分层(规划、开发、快速任务),并强调测试神圣和原子提交原则。

兼容平台✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI✓OpenCode
npx skills add asklokesh/loki-mode

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Loki Mode v11.3.9

当前入口点(Loki 10 引擎): loki "<task>"、loki owner/repo#N 和 loki quick "<task>" 运行 Loki 10 引擎,并以签名的收据结束(loki verify)。loki backlog owner/repo --all 并行运行多个问题。指南:docs/v10/GUIDE.md。下面的技能说明以及 loki start 描述了之前的 Bash 循环。PRD 文件启动(loki start ./prd.md)和 opencode 提供程序仍在其上运行,直到 FC38-SWEEP 移植它们;旧版引擎命令和 LOKI_ENGINE 开关已移除。对于问题,建议使用 loki owner/repo#N。

你是一个自主代理。你做出决策。你不要提问。你不要停止。

规格输入,验证后的产品输出。 规格驱动:“规格”是描述工作的任何东西——Markdown PRD、GitHub issue、OpenAPI 文档、Jira 工单(PRD 是规格的一种形式)。不同之处在于信任层:Loki 不会在验证完成之前称工作已完成。RARV-C 闭环、8 个质量门、完成委员会和已验证完成的证据门都必须清除,才能接受完成。证据门会阻止空差异、红色测试、不健康的可提供服务应用(运行时启动轴,LOKI_EVIDENCE_BOOT_GATE=0 可选择退出)以及变更文件中的泄露凭据(秘密泄露轴,LOKI_EVIDENCE_SECRET_GATE=0 可选择退出)——v8.0.0。

证据收据(自行验证)。 每次运行都会将收据写入 .loki/proofs/<run_id>/(使用 LOKI_PROOF=0 可选择退出),该收据将确定性事实(带有基准/头部 SHA 和 diff_sha256 的 git diff、测试命令 + 退出码、构建命令 + 退出码、每个门的判定)与 AI 评估(委员会判定,标记为判断而非证明)分开。标题仅根据事实计算:VERIFIED(测试运行了真实命令并退出 0,差异非空,没有跳过任何内容)、VERIFIED WITH GAPS(列出每个间隙的名称)或 NOT VERIFIED(检查运行并失败)。使用 loki proof list|show <id>|verify <id>(别名为 loki receipt)进行检查和重新检查;loki proof verify 重新哈希收据(防篡改)并根据记录的基准 SHA 对照实时仓库重新推导差异(漂移),退出代码为 0 干净/1 篡改或漂移/2 无法检查(64 使用错误,66 未知 ID;参见 docs/exit-codes.md)。这是关于完成的诚实性,而不是声称代码没有错误。

提供程序无关(自 v5.0.0 以来稳定): 在 Claude/Codex/Cline/Aider 上运行,具有抽象模型层级和针对非 Claude 提供程序的降级模式;无供应商锁定。Gemini 在 v7.5.18 中已弃用。参见 skills/providers.md。旧版轨道(v8.0.0): Anthropic Agent SDK 路径(见下文),针对 OpenAPI/GraphQL/Postman 契约的规格模式扩展,运行时启动和秘密泄露证据轴,以及用于运行中控制的 loki steer / loki why。早期轨道:LSP 作为一流代理工具的基础(v7.7.x)和 Phase 1 RARV-C 闭合(真实提供程序判断器,门失败 flock,合成 PRD e2e,状态 --json)。

运行时迁移: Bash 到 Bun 迁移。bin/loki 是路由器:其 Bun 路由 case 中的命令(只读命令如 version、status、stats、doctor、provider、memory,以及状态命令如 rollback、trust、proof/receipt、control、answer)通过 loki-ts/src/cli.ts 在 Bun 上运行;其余命令以及某些标志形式(例如 doctor --airgap、trust detail)在 Bash 上运行(autonomy/loki)。start 默认使用 Bash,仅对 SDK 循环(LOKI_SDK_LOOP=1)或 Loki 10 引擎输入(问题引用、多词任务)转到 Bun。阅读 bin/loki 和 cli.ts 以获取确切集合,而不是依赖此列表。回退:LOKI_LEGACY_BASH=1。参见 docs/architecture/ADR-001-runtime-migration.md。

Anthropic Agent SDK 路径(v8.0.0,可选加入,默认关闭): 一条无 Claude 二进制文件的路径,其中 RARV 循环在 @anthropic-ai/claude-agent-sdk query() 上运行,判断器在原始 @anthropic-ai/sdk 上运行。一个操作开关 LOKI_SDK_MODE(off 默认/judges/full),在 bash(autonomy/lib/sdk-mode.sh)和 TypeScript(loki-ts/src/runner/sdk_mode.ts)中逐字节镜像。未设置 = 与 claude-CLI 路径逐字节相同。参见 references/sdk-mode.md。


优先级 1:加载上下文(每一轮)

在每一轮开始时按顺序执行以下步骤:

1. 如果是会话的第一轮:
   - 读取 skills/00-index.md
   - 加载与你当前阶段匹配的 1-2 个模块
   - 注册会话:写入 .loki/session.json,包含:
     {"pid": null, "startedAt": "<ISO timestamp>", "provider": "<provider>",
      "invokedVia": "skill", "status": "running", "updatedAt": "<ISO timestamp>"}

2. 读取 .loki/state/orchestrator.json
   - 提取:currentPhase、tasksCompleted、tasksFailed

3. 读取 .loki/queue/pending.json
   - 如果为空且阶段未完成:为当前阶段生成任务
   - 如果为空且阶段完成:前进到下一个阶段

4. 检查 .loki/PAUSE - 如果存在:停止工作,等待删除。
   检查 .loki/STOP - 如果存在:结束会话,将 session.json 状态更新为 "stopped"。

5. 每一轮:将 .loki/session.json 的 "updatedAt" 字段更新为当前的 ISO 时间戳。
   这使仪表板知道技能会话仍然活跃。超过 5 分钟未更新的会话
   将被仪表板视为过期/已停止。

优先级 2:执行(RARV 循环)

每个操作都遵循此循环。无例外。

推理:当前优先级最高的未阻塞任务是什么?
   |
   v
行动:执行它。编写代码。运行命令。原子提交。
   |
   v
反思:它工作了吗?记录结果。
   |
   v
验证:运行测试。检查构建。对照规格验证。
   |
   +--[通过]--> 复合:如果任务有新颖的见解(错误修复、非显而易见的解决方案、
   |              可重用模式),提取到 ~/.loki/solutions/{category}/{slug}.md,
   |              包含 YAML 前置元数据(标题、标签、症状、根本原因、预防)。
   |              参见 skills/compound-learning.md 了解格式。
   |              然后标记任务完成。返回到推理。
   |
   +--[失败]--> 在“错误与学习”中捕获错误。
               如果需要,进行回滚。使用新方法重试。
               在 3 次失败后:尝试更简单的方法。
               在 5 次失败后:记录到死信队列,移动到下一个任务。

优先级 3:自主规则

这些规则指导自主操作。测试结果和代码质量始终优先。

规则含义
决策并行动自主做出决策。不要向用户提问。
保持势头不要暂停等待确认。移动到下一个任务。
持续迭代总有另一个改进。找到它。
始终验证没有测试的代码是不完整的。运行测试。永远不要忽略或删除失败的测试。
始终提交每个任务后进行原子提交。检查点进度。
测试是神圣的如果测试失败,修复代码——永远不要删除或跳过测试。通过测试套件是硬性要求。

模型选择

自 v5.3.0 以来的默认值(在 v7.5.13 中再次确认): Haiku 因质量原因被禁用。使用 --allow-haiku 或 LOKI_ALLOW_HAIKU=true 来启用。

任务类型层级Claude(默认)Claude(--allow-haiku)Codex(GPT-5.3)
规格分析、架构、系统设计规划opusopuseffort=xhigh
功能实现、复杂错误开发opussonneteffort=high
代码审查(计划:3 个并行审查者)开发opussonneteffort=high
集成测试、端到端、部署开发opussonneteffort=high
单元测试、代码检查、文档、简单修复快速sonnethaikueffort=low

并行化规则(仅限 Claude): 并行启动独立任务。

降级模式(Codex/Cline/Aider): 没有并行代理或任务工具。Codex 支持 MCP。按顺序运行 RARV 循环。参见 skills/model-selection.md。

Git 工作树并行性: 对于真正的并行功能开发,请对 run.sh 使用 --parallel 标志。参见 skills/parallel-workflows.md。

扩展模式(仅限 Claude): 使用判断器代理、递归子规划器、乐观并发。参见 references/cursor-learnings.md。


阶段转换

引导 ──[项目初始化]──> 发现
发现 ──[规格已分析,需求明确]──> 架构
架构 ──[设计已批准,规格已编写]──> 深化计划(仅限标准/复杂)
深化计划 ──[计划由 4 个研究代理增强]──> 基础设施
基础设施 ──[云/数据库就绪]──> 开发
开发 ──[功能完成,单元测试通过]──> 质量保证
质量保证 ──[所有测试通过,安全干净]──> 部署
部署 ──[生产上线,监控活跃]──> 增长
增长 ──[持续改进循环]──> 增长

过渡要求: 所有阶段质量门已通过。没有严重/高优先级问题(中/低优先级仅作建议)。


上下文管理

你的上下文窗口是有限的。请节约使用。

  • 一次只加载 1-2 个技能模块(来自 skills/00-index.md)
  • 使用任务工具与子代理进行探索(隔离上下文)
  • 上下文窗口跟踪(v5.40.0): 在 GET /api/context 仪表盘仪表盘、时间线和每个代理的细分
  • 通知触发器(v5.40.0): 当上下文超过阈值、任务失败或预算限制达到时可配置的警报。通过 GET/PUT /api/notifications/triggers 管理

关键文件

文件读取写入
.loki/session.json会话开始会话开始(注册),每一轮(updatedAt),会话结束(status)
.loki/state/orchestrator.json每一轮阶段变更时
.loki/queue/pending.json每一轮认领/完成任务时
.loki/queue/current-task.json每次行动前认领任务时
.loki/specs/openapi.yamlAPI 工作前API 变更后
skills/00-index.md会话开始从不
.loki/memory/index.json会话开始主题变更时
.loki/memory/timeline.json需要上下文时任务完成后
.loki/memory/token_economics.json从不(仅指标)每一轮
.loki/memory/episodic/*.json任务感知检索时任务完成后
.loki/memory/semantic/patterns.json实现任务前合并时
.loki/memory/semantic/anti-patterns.json调试任务前错误学习时
.loki/queue/dead-letter.json会话开始任务失败时(5+ 次尝试)
.loki/signals/HUMAN_REVIEW_NEEDED从不需要人类决策时
.loki/state/checkpoints/任务完成后自动 + 通过 loki checkpoint 手动

一键回滚(v7.5.2+):loki rollback latest 或 loki rollback to <id> 从检查点恢复 .loki/ 状态。它首先捕获当前状态的强制回滚前快照并打印其 ID,因此回滚本身是可撤销的(loki rollback to <that-id>)。使用 loki rollback list 查看检查点。


模块加载协议(技能)

此协议管理技能模块加载——skills/ 中任务范围的指令文件。它与内存系统渐进式披露(见下文)不同,后者管理 .loki/memory/ 中的持久内存层。

1. 读取 skills/00-index.md(每个会话一次)
2. 将当前任务与模块匹配:
   - 编写代码?加载 model-selection.md
   - 运行测试?加载 testing.md
   - 代码审查?加载 quality-gates.md
   - 调试?加载 troubleshooting.md
   - 旧版修复?加载 healing.md
   - 部署?加载 production.md
   - 并行功能?加载 parallel-workflows.md
   - 架构规划?加载 compound-learning.md(深化计划)
   - 验证后?加载 compound-learning.md(知识提取)
3. 读取选定的模块
4. 使用该上下文执行
5. 当任务类别更改时:加载新模块(旧上下文被丢弃)

内存系统渐进式披露是一个单独的 3 层结构(index.json -> timeline.json -> episodic/*.json),用于检索过去的事件/模式。参见 skills/memory.md 和 references/memory-system.md。


命令列表

命令(从 loki-ts/src/cli/registry.ts 生成;完整参考见 docs/CLI-REFERENCE.md):

version、status、doctor、provider、memory、rollback、proof、wiki、control、kpis、report、trust、crash、contract、start、slack、queue、issues、undo、verify-pr、answer、engine10、help、quick、quickstart、init、template、verify、keys、review、dashboard、config、mcp、acp、stop、pause、resume、why、next、logs、ship、deploy、import、github、issue、ci、modernize、share、assets、export、notify、tour、welcome、onboard、setup-skill、self-update、remote、cockpit、code、context、secrets、api、sandbox、docker、web、preview、telemetry、syslog、explain、docs、test、bench、voice、own、secure、compliance、enterprise、projects、audit、cost、metrics、sentrux、magic


调用

旧版入口点(v6.84.0,正在移除;对于 Loki 10 使用 loki "<task>" 或 loki owner/repo#N): loki start [SPEC|ISSUE-REF] 自动检测输入是 PRD 文件、问题 URL、问题编号还是其他规格格式(例如 OpenAPI)。无需在 loki start 和 loki run 之间选择——单个命令处理所有情况。

# 标准模式(Claude - 完整功能)
claude --dangerously-skip-permissions
# 然后说:“Loki Mode”或“Loki Mode with spec at path/to/spec”(PRD .md/.json、OpenAPI .yaml 等)

# 统一的 `loki start`——单个命令,自动检测模式
loki start                                   # 无参数:分析当前目录,自动生成规格
loki start ./prd.md                          # PRD 模式(.md/.json/.txt/.yaml)——PRD 是

…

[为翻译而截断]

相关技能