name: sciomc description: 使用AUTO模式协调并行科学家代理进行综合分析 argument-hint: <研究目标>
研究技能
协调并行科学家代理进行综合研究工作流,支持可选的AUTO模式以实现完全自主执行。
概述
研究是一个多阶段工作流,将复杂的研究目标分解为并行调查:
- 分解 - 将研究目标分解为独立阶段/假设
- 执行 - 在每个阶段运行并行科学家代理
- 验证 - 交叉验证发现,检查一致性
- 合成 - 将结果汇总成综合报告
使用示例
/oh-my-claudecode:sciomc <目标> # 标准研究,带有用户检查点
/oh-my-claudecode:sciomc AUTO: <目标> # 完全自主执行直到完成
/oh-my-claudecode:sciomc status # 检查当前研究会话状态
/oh-my-claudecode:sciomc resume # 恢复中断的研究会话
/oh-my-claudecode:sciomc list # 列出所有研究会话
/oh-my-claudecode:sciomc report <会话-id> # 为会话生成报告
快速示例
/oh-my-claudecode:sciomc 不同排序算法的性能特征是什么?
/oh-my-claudecode:sciomc AUTO: 分析此代码库中的认证模式
/oh-my-claudecode:sciomc API层的错误处理是如何工作的?
研究协议
阶段分解模式
当给定研究目标时,分解为3-7个独立阶段:
## 研究分解
**目标:** <原始研究目标>
### 阶段1:<阶段名称>
- **焦点:** 此阶段调查的内容
- **假设:** 预期发现(如果适用)
- **范围:** 要检查的文件/区域
- **层级:** LOW | MEDIUM | HIGH
### 阶段2:<阶段名称>
...
并行科学家调用
通过Task工具并行触发独立阶段:
// 阶段1 - 简单数据收集
Task(subagent_type="oh-my-claudecode:scientist", model="haiku", prompt="[RESEARCH_STAGE:1] 调查...")
// 阶段2 - 标准分析
Task(subagent_type="oh-my-claudecode:scientist", model="sonnet", prompt="[RESEARCH_STAGE:2] 分析...")
// 阶段3 - 复杂推理
Task(subagent_type="oh-my-claudecode:scientist-high", model="opus", prompt="[RESEARCH_STAGE:3] 深度分析...")
智能模型路由
关键:始终显式传递 model 参数!
| 任务复杂度 | 代理 | 模型 | 用途 |
|---|---|---|---|
| 数据收集 | scientist (model=haiku) |
haiku | 文件枚举、模式计数、简单查找 |
| 标准分析 | scientist |
sonnet | 代码分析、模式检测、文档审查 |
| 复杂推理 | scientist-high |
opus | 架构分析、跨领域关注点、假设验证 |
路由决策指南
| 研究任务 | 层级 | 示例提示 |
|---|---|---|
| “计算X的出现次数” | LOW | “计算所有useState钩子的使用次数” |
| “查找所有匹配Y的文件” | LOW | “列出项目中所有测试文件” |
| “分析模式Z” | MEDIUM | “分析API路由中的错误处理模式” |
| “文档化W如何工作” | MEDIUM | “文档化认证流程” |
| “解释为什么X发生” | HIGH | “解释缓存层中竞争条件发生的原因” |
| “比较方法A vs B” | HIGH | “比较此处Redux与Context用于状态管理” |
验证循环
并行执行完成后,验证发现:
// 交叉验证阶段
Task(subagent_type="oh-my-claudecode:scientist", model="sonnet", prompt="
[RESEARCH_VERIFICATION]
交叉验证这些发现的一致性:
阶段1发现:<摘要>
阶段2发现:<摘要>
阶段3发现:<摘要>
检查:
1. 阶段间的矛盾
2. 缺失的连接
3. 覆盖的空白
4. 证据质量
输出:[VERIFIED] 或 [CONFLICTS:<列表>]
")
AUTO模式
AUTO模式以循环控制自主运行完整研究工作流。
循环控制协议
[RESEARCH + AUTO - ITERATION {{ITERATION}}/{{MAX}}]
您之前的尝试未输出完成承诺。继续工作。
当前状态:{{STATE}}
已完成阶段:{{COMPLETED_STAGES}}
待处理阶段:{{PENDING_STAGES}}
承诺标签
| 标签 | 含义 | 何时使用 |
|---|---|---|
[PROMISE:RESEARCH_COMPLETE] |
研究成功完成 | 所有阶段完成、验证、报告生成 |
[PROMISE:RESEARCH_BLOCKED] |
无法继续 | 数据缺失、访问问题、循环依赖 |
AUTO模式规则
- 最大迭代次数: 10(可配置)
- 继续直到: 发出承诺标签或达到最大迭代次数
- 状态跟踪: 每个阶段完成后持久化
- 取消:
/oh-my-claudecode:cancel或 “stop”、“cancel”
AUTO模式示例
/oh-my-claudecode:sciomc AUTO: 认证系统的全面安全分析
[分解]
- 阶段1 (LOW): 枚举认证相关文件
- 阶段2 (MEDIUM): 分析令牌处理
- 阶段3 (MEDIUM): 审查会话管理
- 阶段4 (HIGH): 识别漏洞模式
- 阶段5 (MEDIUM): 文档化安全控制
[执行 - 并行]
触发阶段1-3并行...
依赖完成后触发阶段4-5...
[验证]
交叉验证发现...
[合成]
生成报告...
[PROMISE:RESEARCH_COMPLETE]
并行执行模式
独立数据集分析(并行)
当阶段分析不同数据源时:
// 所有同时触发
Task(subagent_type="oh-my-claudecode:scientist", model="haiku", prompt="[STAGE:1] 分析 src/api/...")
Task(subagent_type="oh-my-claudecode:scientist", model="haiku", prompt="[STAGE:2] 分析 src/utils/...")
Task(subagent_type="oh-my-claudecode:scientist", model="haiku", prompt="[STAGE:3] 分析 src/components/...")
假设测试(并行)
当测试多个假设时:
// 同时测试假设
Task(subagent_type="oh-my-claudecode:scientist", model="sonnet", prompt="[HYPOTHESIS:A] 测试缓存是否改进...")
Task(subagent_type="oh-my-claudecode:scientist", model="sonnet", prompt="[HYPOTHESIS:B] 测试批处理是否减少...")
Task(subagent_type="oh-my-claudecode:scientist", model="sonnet", prompt="[HYPOTHESIS:C] 测试懒加载是否帮助...")
交叉验证(顺序)
当验证依赖所有发现时:
// 等待所有并行阶段
[阶段完成]
// 然后顺序验证
Task(subagent_type="oh-my-claudecode:scientist-high", model="opus", prompt="
[CROSS_VALIDATION]
验证所有发现的一致性:
- 发现1:...
- 发现2:...
- 发现3:...
")
并发限制
最大20个并发科学家代理以防止资源耗尽。
如果超过20个阶段,分批处理:
批次1:阶段1-5(并行)
[等待完成]
批次2:阶段6-7(并行)
会话管理
目录结构
.omc/research/{会话-id}/
state.json # 会话状态和进度
stages/
stage-1.md # 阶段1发现
stage-2.md # 阶段2发现
...
findings/
raw/ # 科学家的原始发现
verified/ # 验证后发现
figures/
figure-1.png # 生成的视觉化
...
report.md # 最终合成报告
状态文件格式
{
"id": "research-20240115-abc123",
"goal": "原始研究目标",
"status": "in_progress | complete | blocked | cancelled",
"mode": "standard | auto",
"iteration": 3,
"maxIterations": 10,
"stages": [
{
"id": 1,
"name": "阶段名称",
"tier": "LOW | MEDIUM | HIGH",
"status": "pending | running | complete | failed",
"startedAt": "ISO时间戳",
"completedAt": "ISO时间戳",
"findingsFile": "stages/stage-1.md"
}
],
"verification": {
"status": "pending | passed | failed",
"conflicts": [],
"completedAt": "ISO时间戳"
},
"createdAt": "ISO时间戳",
"updatedAt": "ISO时间戳"
}
会话命令
| 命令 | 操作 |
|---|---|
/oh-my-claudecode:sciomc status |
显示当前会话进度 |
/oh-my-claudecode:sciomc resume |
恢复最近中断的会话 |
/oh-my-claudecode:sciomc resume <会话-id> |
恢复特定会话 |
/oh-my-claudecode:sciomc list |
列出所有会话及状态 |
/oh-my-claudecode:sciomc report <会话-id> |
生成/重新生成报告 |
/oh-my-claudecode:sciomc cancel |
取消当前会话(保留状态) |
标签提取
科学家使用结构化标签表示发现。用这些模式提取:
发现标签
[FINDING:<id>] <标题>
<证据和分析>
[/FINDING]
[EVIDENCE:<finding-id>]
- 文件:<路径>
- 行数:<范围>
- 内容:<相关代码/文本>
[/EVIDENCE]
[CONFIDENCE:<level>] # HIGH | MEDIUM | LOW
<置信度级别的推理>
提取正则模式
// 发现提取
const findingPattern = /\[FINDING:(\w+)\]\s*(.*?)
([\s\S]*?)\[\/FINDING\]/g;
// 证据提取
const evidencePattern = /\[EVIDENCE:(\w+)\]([\s\S]*?)\[\/EVIDENCE\]/g;
// 置信度提取
const confidencePattern = /\[CONFIDENCE:(HIGH|MEDIUM|LOW)\]\s*(.*)/g;
// 阶段完成
const stageCompletePattern = /\[STAGE_COMPLETE:(\d+)\]/;
// 验证结果
const verificationPattern = /\[(VERIFIED|CONFLICTS):?(.*?)\]/;
证据窗口
提取证据时,包括上下文窗口:
[EVIDENCE:F1]
- 文件:/src/auth/login.ts
- 行数:45-52(上下文:40-57)
- 内容:
```typescript
// 行45-52,上下各5行
[/EVIDENCE]
### 质量验证
发现必须满足质量阈值:
| 质量检查 | 要求 |
|---------------|-------------|
| 证据存在 | 每个[FINDING]至少1个[EVIDENCE] |
| 置信度声明 | 每个发现有[CONFIDENCE] |
| 引用来源 | 文件路径是绝对和有效的 |
| 可重现 | 其他代理可验证 |
## 报告生成
### 报告模板
```markdown
# 研究报告:{{GOAL}}
**会话ID:** {{SESSION_ID}}
**日期:** {{DATE}}
**状态:** {{STATUS}}
## 执行摘要
{{2-3段关键发现摘要}}
## 方法论
### 研究阶段
| 阶段 | 焦点 | 层级 | 状态 |
|-------|-------|------|--------|
{{STAGES_TABLE}}
### 方法
{{分解原理和执行策略描述}}
## 关键发现
### 发现1:{{TITLE}}
**置信度:** {{HIGH|MEDIUM|LOW}}
{{带证据的详细发现}}
#### 证据
{{嵌入证据块}}
### 发现2:{{TITLE}}
...
## 视觉化
{{图表}}
## 交叉验证结果
{{验证摘要,任何冲突已解决}}
## 局限性
- {{局限性1}}
- {{局限性2}}
- {{未覆盖区域及原因}}
## 推荐
1. {{可操作推荐}}
2. {{可操作推荐}}
## 附录
### 原始数据
{{原始发现文件链接}}
### 会话状态
{{链接到state.json}}
图表嵌入协议
科学家使用此标记生成视觉化:
[FIGURE:path/to/figure.png]
标题:图表显示内容描述
替代:无障碍描述
[/FIGURE]
报告生成器嵌入图表:
## 视觉化

*标题:图表显示内容描述*

*标题:图表显示内容描述*
图表类型
| 类型 | 用途 | 生成者 |
|---|---|---|
| 架构图 | 系统结构 | scientist-high |
| 流程图 | 处理流程 | scientist |
| 依赖图 | 模块关系 | scientist |
| 时间线 | 事件序列 | scientist |
| 比较表 | A vs B分析 | scientist |
配置
在.claude/settings.json中的可选设置:
{
"omc": {
"research": {
"maxIterations": 10,
"maxConcurrentScientists": 5,
"defaultTier": "MEDIUM",
"autoVerify": true,
"generateFigures": true,
"evidenceContextLines": 5
}
}
}
取消
/oh-my-claudecode:cancel
或说:“停止研究”、“取消研究”、“中止”
进度保存在.omc/research/{会话-id}/中以供恢复。
故障排除
卡在验证循环中?
- 检查阶段间的矛盾发现
- 查看state.json中的具体冲突
- 可能需要用不同方法重新运行特定阶段
科学家返回低质量发现?
- 检查层级分配 - 复杂分析需要HIGH层级
- 确保提示包括清晰范围和预期输出格式
- 审查研究目标是否太广泛
AUTO模式耗尽迭代次数?
- 查看状态以了解卡在哪里
- 检查目标是否可用数据实现
- 考虑分解为更小的研究会话
报告中缺少图表?
- 验证figures/目录是否存在
- 检查发现中的[FIGURE:]标签
- 确保路径相对于会话目录