Community编程与开发github.com

labs-graduation

将功能移出 Control UI Labs,可以选择默认开启或默认关闭。当被要求推广、毕业或发布 Labs 功能时使用。

labs-graduation 是什么?

该技能为 AI 代理提供了将功能从 Control UI Labs 中毕业的结构化流程,涵盖两个独立决策:是否保留实验室(将功能移至永久位置)以及是否默认启用。它强调了与功能负责人确认具体需求的重要性,因为“毕业”并不自动意味着默认开启,并引用实际案例说明两种组合都可能存在。关键步骤包括在生产环境中测量成本或风险、解决已知缺陷、确保用户仍可通过 UI 开启功能,以及移除 Labs 注册表条目、更新配置默认值、完善文档并调整措辞。该技能还要求提供截图作为证据、进行端到端测试、确保测试通过,并在合并后告知用户新位置。适用于 Claude Code、Cursor 等 AI 代理,旨在避免因假设不足或测试不充分而导致的错误。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/labs-graduation

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

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

文档

毕业一个 Labs 功能

毕业会移除功能的 Labs 开关,使其成为普通功能。在编写任何代码之前,由功能负责人做出两个独立决定:

  1. 退出 Labs: 功能获得永久归属(自己的设置或插件页面),并去除 Labs 相关措辞。
  2. 默认: 默认开启,或默认保持关闭。

两者相互独立。#197029 最初尝试了同时执行两项,但最终只发布了第一项:Advisor 退出了 Labs 但仍保持关闭。请询问具体需要哪一项;不要假设“毕业”就意味着“默认开启”。

先例:Swarm 默认开启 (#136514),Tool Search 默认开启 (#154068),原生插件 UI 无需 Labs 选择即可使用 (de50262a1f96),Labs 功能移入设置页面 (#145460),Advisor 退出 Labs 且保持关闭 (#197029)。

PR 之前

  • 在实际路由上衡量成本或风险,如果该功能需要花费资金或令牌,或者会改变从未选择加入的用户的行为。来自模拟或单元测试的当前数据不能作为证据。#197074 根据模拟数据合并了一项缓存成本声明,但实际供应商反驳了该声明,并在 #197175 中被还原。请使用该功能自身 PR 中已有的实际测量值,并将数据写入 PR 描述中。
  • 先解决已知缺陷。 Advisor 的毕业等待了其分支缓存修复 (#197203, #197223, #197224, #197226),因为如果默认开启,每个用户都将被收取未缓存成本。
  • 找到保留的启用路径。 在 Labs 行移除后,用户仍需能够从 UI 开启该功能。捆绑插件使用 设置 → 插件 → <名称> → 启用;核心功能需要其设置页面。仅在不存在开关时才添加。

修改内容

  1. 默认值。 仅在负责人选择默认开启时修改:捆绑插件的 openclaw.plugin.json 中的 enabledByDefault,或核心配置默认值。现有的显式 false(或功能的退出值)必须继续有效,现有的 true 必须保持开启。切勿添加会重写已保存配置以更改用户选择的迁移。
  2. Labs。 从 ui/src/pages/labs/labs-registry.ts 中移除条目,并移除仅由其使用的所有内容:labs-page.tsx 行或插槽、labs-feature-state.ts 条目、字符串和测试。
  3. 文档。 将该功能的章节从 docs/concepts/experimental-features.md 移至其自己的参考页面。在该页面中留下一个包含旧锚点的段落,说明该功能已毕业、其默认值以及在哪里可以开启它。更新“Labs 包含 ...”列表和“当前已记录的标志”表格。
  4. 措辞。 从清单描述、包描述、README、插件摘要以及任何面向用户或模型的文本(如提示前缀)中移除“实验性”和“OpenClaw Labs”。
  5. 生成的文件。 请重新生成,切勿手动合并:pnpm config:docs:gen、pnpm plugins:inventory:gen。根据 ui/AGENTS.md,Control UI 区域设置产物(*.meta.json、*.tm.jsonl、catalog-fallbacks.json)应保留在 PR 之外;区域设置刷新工作流会更新它们。pnpm ui:i18n:verify 必须通过。
  6. 升级验证。 仅针对默认值更改:通过实际升级证明,没有保存的条目获得新的默认值,显式关闭保持关闭,显式开启保持开启。默认值保持不变的情况无需升级案例;#197029 放弃了为默认开启而构建的案例。

PR 中的证据

  • Control UI 截图,上传前检查是否包含私有数据:Labs 前后的截图,以及在真实网关上正常工作的启用路径截图。使用 gh pr comment <n> --attach '<文件>#<替代文本>' 附加它们。
  • 启用路径经过端到端测试:开关保存预期的配置,并且无需重新启动即可生效。
  • 该功能的测试和 Labs 页面测试通过;测试行数限制不会增加。
  • 文档声明与代码匹配。ClawSweeper 发现了 Advisor 的“每个 everyMinutes 最多一个审查”,但在 everyToolCalls 开启的情况下是不正确的。

合并之后

新位置仅出现在包含该合并的构建中。告知用户确切路径,以及旧版本仍会显示 Labs 开关。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills and agent Templates when requested; add Templates; install, verify, update, uninstall, publish, or sync skills.

相关技能