详细分析 ▾
运行时依赖
版本
feature-flag-manager 初始版本——灵活的 AI 代理特性开关管理系统。 - 支持创建、切换和管理特性标志,包括 A/B 测试与灰度发布。 - 提供百分比发布、多变量 A/B 测试及紧急熔断开关。 - 提供 CLI 命令用于创建、更新、检查、列出及导出标志状态/历史。 - 配置以 JSON 文件存储,便于集成与导出。 - 使用场景包括灰度发布、A/B 测试、熔断开关、用户分群及远程配置变更。
安装命令
点击复制技能文档
# feature-flag-manager > 管理 AI 代理的 feature flag —— 开关功能、A/B 测试、灰度发布、百分比发布。 ## Skill 元数据 - Slug: feature-flag-manager - Version: 1.0.0 - Description: 面向 AI 代理的 feature flag 管理系统。无需重新部署即可开关功能、运行 A/B 测试、按百分比灰度发布并控制功能可见性。 - Category: automation - Trigger Keywords: feature flag, feature toggle, A/B testing, gradual rollout, release management, canary release, percentage rollout --- ## 功能 ### 1. 创建 Feature Flag ``bash # 创建简单的开关 flag node flag.js create my-feature --description "New dashboard" # 创建百分比灰度(初始 10%) node flag.js create dark-mode --percentage 10 --description "Dark theme" # 创建 A/B 测试变体 node flag.js create pricing-page --variants control,v1,v2 --weights 50,25,25 ` - 将 flag 存储在 .featureflags/ JSON 配置中 - 支持基于百分比的灰度发布(0-100%) - 多变量 A/B 测试,可自定义权重分配 ### 2. 检查 Flag 状态 `bash # 检查功能是否开启 node flag.js enabled my-feature # 获取当前用户的变体(用于 A/B) node flag.js variant pricing-page --user-id user123 # 获取灰度百分比 node flag.js percentage dark-mode ` - 简单 flag 返回布尔值 - A/B 测试返回变体名称 - 返回灰度百分比 ### 3. 更新 Flag `bash # 立即启用/禁用 node flag.js toggle my-feature # 更新灰度百分比(逐步增加) node flag.js update dark-mode --percentage 50 # 暂停 flag node flag.js pause pricing-page ` - 即时切换,用于紧急回滚 - 百分比更新,用于灰度发布 - 暂停时保留配置 ### 4. 列出与监控 `bash # 列出所有 flag 及状态 node flag.js list # 显示 flag 历史 node flag.js history my-feature # 导出 flag 用于报告 node flag.js export --format json ` - 实时概览所有 flag - 带时间戳的变更历史 - 可导出供分析集成 --- ## 配置 `json // .featureflags/config.json { "flags": { "new-dashboard": { "enabled": true, "percentage": 100, "variants": null, "description": "Redesigned dashboard UI" }, "dark-mode": { "enabled": true, "percentage": 25, "variants": null, "description": "Dark theme support" }, "pricing-page": { "enabled": true, "percentage": 100, "variants": ["control", "v1", "v2"], "weights": [50, 25, 25] } } } ` ## 使用场景 1. 灰度发布:从 5% 用户开始,逐步扩大到 100% 2. A/B 测试:测试不同 UX 变体并衡量转化率 3. 紧急开关:无需部署即可立即禁用有缺陷的功能 4. 用户分群:针对特定用户组 5. 远程配置:无需改代码即可调整行为 ## 集成示例 `javascript // 在代理代码中 const flag = require('./flag.js'); async function handleRequest(req) { // 检查新功能是否启用 if (await flag.enabled('new-dashboard', { userId: req.userId })) { return renderNewDashboard(req); } return renderLegacyDashboard(req); } ``