idea-storm工程问题的自动化迭代实验室。给定一个 idea 或工程问题,自动调研方案、设计实现、验证效果、迭代优化,结果存入 Notion。触发词:"idea-lab"、"实验一下"、"帮我验证"、"迭代优化"、"idea 验证"。当用户提出一个工程问题并希望自动化地调研→设计→验证→迭代时使用此 skill。
Install via ClawdBot CLI:
clawdbot install c4chuan/idea-storm工程问题的自动化 设计→验证→迭代 闭环。后台运行,不阻塞主会话。
采用分段 spawn 模式:每个检查点之间的工作在独立子 agent 中运行,状态通过文件传递。
主会话 子 agent (isolated)
│ │
├─ 创建 experiment.yaml │
├─ spawn("idea-storm: 调研+设计") ───→ │
│ (继续聊天) ├─ Phase 2: 调研
│ ├─ Phase 3: 方案设计
│ ├─ 更新 experiment.yaml
│ ◄── announce 方案摘要 ────────────┤ ✅ 检查点1
│ └─ (退出)
│
├─ 用户确认方案
├─ spawn("idea-storm: 实现+验证") ───→ │
│ (继续聊天) ├─ 读 experiment.yaml 恢复状态
│ ├─ Phase 4: 实现
│ ├─ Phase 5: 验证
│ ├─ Phase 6: 评估
│ ├─ 更新 experiment.yaml
│ ◄── announce 迭代结果 ────────────┤ ✅ 检查点2
│ └─ (退出)
│
├─ 用户确认(继续迭代/收敛)
├─ spawn("idea-storm: 迭代N") ───→ ...(重复直到收敛)
│
├─ spawn("idea-storm: 收敛报告") ──→ │
│ ◄── announce 最终报告 ────────────┤ ✅ 检查点3
└─ 完成
每次 spawn 时,task 中必须包含:
experiments//experiment.yaml 示例:
sessions_spawn(task="执行 idea-storm 实验。
读取实验状态:experiments/facial-gan-20260213/experiment.yaml
执行阶段:Phase 4-6(实现→验证→评估)
用户反馈:方案OK,用 StyleGAN3 路线
按 idea-storm skill 流程执行,完成后更新 experiment.yaml 并汇报结果。")
子 agent 启动后:
三层存储,确保状态不丢失:
主会话的 SESSION-STATE.md 记录当前活跃实验的概要:
idea_lab:
active_experiment: "facial-gan-20260213"
experiment_path: "experiments/facial-gan-20260213/"
current_phase: "等待用户确认检查点2"
last_spawn_label: "idea-storm-facial-gan-iter2"
每个实验在 workspace 下有独立目录:
experiments/<experiment-id>/
├── experiment.yaml # 实验完整状态(核心)
├── research/ # 调研资料
│ └── findings.md
├── design/ # 方案设计
│ └── plan.md
├── src/ # 实现代码
├── data/ # 输入数据、参考图等
├── results/ # 每轮验证结果
│ ├── iter-1/
│ ├── iter-2/
│ └── ...
└── report.md # 最终报告(本地副本)
结构化实验报告,按时间和分类组织。详见 Notion 页面结构。
实验的完整状态文件,子 agent 靠它恢复上下文:
id: "facial-gan-20260213"
title: "用 GAN 生成面部微表情"
created: "2026-02-13T12:00:00+08:00"
status: "running" # running | paused | completed | abandoned
# 当前进度
phase: "Phase 5: 验证"
iteration: 2
max_iterations: 5
# 问题定义
problem:
description: "需要生成逼真的面部微表情动画"
constraints: "实时渲染,延迟<50ms"
# 验证配置
validation:
mode: "B" # A=图片对比 B=指标优化 C=功能验证 D=自定义
description: "优化 FID score"
threshold: 50
current_best: 67.3
# 检查点记录
checkpoints:
- phase: 3
time: "2026-02-13T13:00:00+08:00"
status: "approved"
user_feedback: "方案确认,用 StyleGAN3"
- phase: 6
iteration: 1
time: "2026-02-13T14:30:00+08:00"
status: "continue"
user_feedback: "FID 67.3,继续优化学习率"
# 迭代历史
iterations:
- round: 1
changes: "初始实现,lr=0.001"
result: "FID 67.3"
decision: "继续,调整学习率"
- round: 2
changes: "lr=0.0003, 增加数据增强"
result: "pending"
# Notion
notion_page_id: "xxx-xxx-xxx"
用户输入工程问题或 idea。提取并确认:
如果用户没有明确给出以上信息,主动询问(不要一次问太多)。
确认后:
experiments// experiment.yaml偏向工程化搜索,优先级:
工具:web_search + web_fetch
输出:
research/findings.md:调研结果基于调研设计技术方案:
输出:
design/plan.md:方案详情用户确认后,主会话 spawn 新子 agent 执行 Phase 4-6。
按方案执行。可能包括:编写代码、配置环境、生成资源、调用 API。
输出:
src/ 下的实现代码按 experiment.yaml 中定义的验证方式执行。详见 验证模式。
输出:
results/iter-N/:本轮验证数据根据验证结果判断:
| 情况 | 动作 |
|------|------|
| 达标 | 标记收敛,announce 结果 |
| 接近达标,参数可调 | 自动迭代参数,回到 Phase 4(不超过 max_iterations) |
| 方向有问题 | announce 建议换方案 |
更新 experiment.yaml 后 announce 结果给主会话。
汇报内容:
用户确认后 spawn 下一轮或进入收敛。
生成最终报告:
report.md:本地完整报告由用户在 Phase 1 定义。
用户提供参考图 + 输入集。Agent 生成输出,与参考图对比。
scripts/compare_images.py(SSIM / 像素差异)或 image 工具(视觉分析)用户定义评测函数或指标,Agent 优化实现以提升指标。
用户定义测试用例或验收标准,Agent 逐项验证。
用户描述验证方式,Agent 按描述执行。
每次启动实验时创建新页面。配置见 references/notion-setup.md。
📋 [实验标题] - [日期]
├── 问题定义
├── 调研记录
├── 方案设计
├── 实验日志(按迭代轮次)
├── 验证结果(按迭代轮次)
└── 最终报告
| 阶段 | 工具 |
|------|------|
| 调研 | web_search, web_fetch |
| 实现 | Claude Code(首选), exec, write, edit |
| 图片验证 | image, scripts/compare_images.py |
| 指标验证 | exec(运行评测脚本) |
| Notion | Notion API via exec |
| 后台运行 | sessions_spawn |
| 状态传递 | experiment.yaml 文件 |
| 通知用户 | announce(子 agent 自动) |
Phase 4(实现)阶段,优先使用 Claude Code 在 Docker 沙盒中完成编码任务。
每个实验在独立的 Docker 容器中运行 Claude Code,与宿主机隔离:
宿主机 Docker 容器 (idea-storm-sandbox)
├── openclaw.json ──(env注入)────→ ANTHROPIC_AUTH_TOKEN / BASE_URL
├── experiments/<id>/ ──(volume)──→ /workspace
│ ├── 非 root 用户 (coder)
│ ├── Claude Code CLI + --dangerously-skip-permissions
│ ├── Python3 / Node.js / Git
│ └── 代码写在 /workspace,自动持久化
优势:
--dangerously-skip-permissions 自动跳过权限openclaw.json 动态注入,换中转改一处即可使用预构建的 idea-storm-sandbox 镜像。Dockerfile 位于 scripts/Dockerfile:
FROM node:22-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip python3-venv git curl ca-certificates \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g @anthropic-ai/claude-code
RUN useradd -m -s /bin/bash coder
RUN mkdir -p /home/coder/.openclaw /workspace && chown -R coder:coder /workspace /home/coder
USER coder
WORKDIR /workspace
CMD ["bash"]
构建:docker build -t idea-storm-sandbox -f scripts/Dockerfile .
从 openclaw.json 动态提取 API 配置,注入容器环境变量:
# 提取 API 配置
API_KEY=$(python3 -c "import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])")
BASE_URL=$(python3 -c "import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])")
# 运行 Claude Code(单次任务)
docker run --rm -t \
-e ANTHROPIC_AUTH_TOKEN="$API_KEY" \
-e ANTHROPIC_BASE_URL="$BASE_URL" \
-v experiments/<id>:/workspace \
idea-storm-sandbox \
bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions "<prompt>"'
子 agent 执行 Phase 4 时,通过 exec + pty:true 调用:
exec(
command="API_KEY=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])\") && BASE_URL=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])\") && docker run --rm -t -e ANTHROPIC_AUTH_TOKEN=$API_KEY -e ANTHROPIC_BASE_URL=$BASE_URL -v /root/.openclaw/workspace/experiments/<id>:/workspace idea-storm-sandbox bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions \"<prompt>\"'",
pty=true,
timeout=300
)
也可以使用辅助脚本 scripts/run-sandbox.sh 简化调用(见下方)。
给 Claude Code 的 prompt 应包含:
示例:
基于 design/plan.md 中的方案,在当前目录实现面部微表情生成模块。
技术栈:Python 3.11 + PyTorch + StyleGAN3
要求:
1. 实现 FacialExpressionGenerator 类
2. 支持 6 种基本表情
3. 推理延迟 < 50ms
4. 写好单元测试
完成后运行 pytest 确认测试通过。
多轮迭代优化时,循环调用容器中的 Claude Code:
PROMPT.md# 单轮实现(在容器中)
scripts/run-sandbox.sh <experiment-id> "$(cat experiments/<id>/PROMPT.md)"
# 宿主机验证结果
cd experiments/<id> && python3 -m pytest
# 如果失败,更新 PROMPT.md 加入错误信息,再跑一轮
| 场景 | 推荐 |
|------|------|
| 创建项目脚手架、多文件编辑 | Docker 沙盒 (Claude Code) |
| 复杂代码重构 | Docker 沙盒 (Claude Code) |
| 安装未知依赖、运行不信任代码 | Docker 沙盒 |
| 简单文件写入、小修改 | 宿主机 OpenClaw write/edit |
| 运行已验证的命令 | 宿主机 OpenClaw exec |
| 需要读取实验状态做决策 | 宿主机 OpenClaw(子 agent 自身) |
AI Usage Analysis
Analysis is being generated… refresh in a few seconds.
Manage Trello boards, lists, and cards via the Trello REST API.
Sync and query CalDAV calendars (iCloud, Google, Fastmail, Nextcloud, etc.) using vdirsyncer + khal. Works on Linux.
Manage tasks and projects in Todoist. Use when user asks about tasks, to-dos, reminders, or productivity.
Master OpenClaw's timing systems. Use for scheduling reliable reminders, setting up periodic maintenance (janitor jobs), and understanding when to use Cron v...
Calendar management and scheduling. Create events, manage meetings, and sync across calendar providers.
Kanban-style task management dashboard for AI assistants. Manage tasks via CLI or dashboard UI. Use when user mentions tasks, kanban, task board, mission con...