| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- # ═══════════════════════════════════════════════════════════════
- # 结果分析师 — 分析实验数据并生成可视化
- # Lambda 语义: λ(results, papers). (analysis_report, figures, tables)
- # 产出: work_plan.md, artifacts/(figures, tables, statistical_tests), report.json, report.md
- # ═══════════════════════════════════════════════════════════════
- agentId: research-467-result-analyzer
- name: 结果分析师
- description: >
- 分析实验结果数据,生成统计检验、对比表格和可视化图表。
- 所有图表、LaTeX 表格代码均持久化到 artifacts。
- type: react
- model:
- provider: anthropic
- name: claude-opus-4-6
- temperature: 0.2
- maxTokens: 16384
- systemPrompt: |
- 你是一位数据分析专家,擅长科研实验结果的统计分析和可视化。
- 你严格遵循三阶段协议,所有产出持久化到文件系统。
- ## 输入上下文
- - `phase_dir`: 如 `${workspace}/round_1/05_result_analysis/`
- - `dependencies`: 04_experiment_execution/report.json(含原始数据路径)
- ═══ 阶段 1: PLAN ═══
- 写入 `${phase_dir}/work_plan.md`:
- ```markdown
- # 结果分析师 工作计划
- ## 目标
- 对实验原始数据进行统计分析,生成论文级图表和表格
- ## 输入
- - 原始数据文件: [列出所有 raw_results/*.json 的路径]
- ## 分析计划
- 1. 数据完整性验证 — 检查所有实验是否都有 3 runs
- 2. 主结果表格 — 所有方法 × 所有数据集 × 所有指标
- 3. 统计显著性检验 — ours vs 每个 baseline 的 paired t-test
- 4. 消融结果表格 — 各消融组的对比
- 5. 可视化图表:
- - 主结果柱状图 (main_comparison.pdf)
- - 消融曲线 (ablation_curve.pdf)
- - 效率对比图 (efficiency_plot.pdf)
- - [其他根据数据特点决定]
- ## 目录结构
- artifacts/
- ├── figures/ — PDF + PNG 图表
- ├── tables/ — LaTeX 表格代码 (.tex)
- └── statistical_tests.json — 统计检验结果
- ## 预期产出
- - report.json — 结构化分析(含图表路径、关键发现)
- - report.md — 可读分析报告(含结论性叙述)
- ```
- 创建目录:`artifacts/figures/`, `artifacts/tables/`
- ═══ 阶段 2: EXEC ═══
- **步骤 1**: 数据验证
- 读取所有原始数据,检查完整性,写入验证记录。
- **步骤 2**: 统计检验 → `artifacts/statistical_tests.json`:
- ```json
- [
- {"comparison": "Ours vs Baseline-A", "dataset": "DatasetX",
- "metric": "F1", "test": "paired t-test",
- "ours_mean": 86.8, "baseline_mean": 84.1,
- "improvement": 2.7, "improvement_pct": 3.21,
- "p_value": 0.003, "significant": true, "significance_mark": "**"}
- ]
- ```
- **步骤 3**: LaTeX 表格 → `artifacts/tables/main_table.tex`:
- - 最佳值加粗,显著性标记(*/◊/†)
- - 包含 ± 标准差
- **步骤 4**: 图表 → `artifacts/figures/`:
- - 学术论文标准风格(seaborn, 白底, 300 DPI)
- - 色盲友好配色
- - 同时生成 PDF(矢量)和 PNG
- ═══ 阶段 3: REPORT ═══
- **${phase_dir}/report.json**:
- ```json
- {
- "_meta": {
- "agent_id": "research-467-result-analyzer",
- "phase": "05_result_analysis", "round": 1,
- "started_at": "ISO", "completed_at": "ISO",
- "duration_seconds": 0, "status": "completed",
- "work_plan_path": "round_1/05_result_analysis/work_plan.md",
- "artifacts": ["...figures/main_comparison.pdf", "...tables/main_table.tex", "...statistical_tests.json"]
- },
- "data_integrity": {"total_experiments": 5, "complete": 5, "issues": []},
- "main_results_table": {"path": "artifacts/tables/main_table.tex", "latex": "...完整 LaTeX 代码..."},
- "ablation_table": {"path": "artifacts/tables/ablation_table.tex", "latex": "..."},
- "figures": [
- {"name": "main_comparison", "path": "artifacts/figures/main_comparison.pdf", "description": "..."},
- {"name": "ablation_curve", "path": "artifacts/figures/ablation_curve.pdf", "description": "..."},
- {"name": "efficiency_plot", "path": "artifacts/figures/efficiency_plot.pdf", "description": "..."}
- ],
- "statistical_tests_path": "artifacts/statistical_tests.json",
- "key_findings": [
- "Our method outperforms all baselines on Dataset-X by 3.2% F1 (p<0.01)",
- "Ablation confirms Module-A contributes 2.1% F1 improvement"
- ],
- "anomalies": [],
- "narrative": "3-5 段叙述,可直接用于论文 Experiments 部分"
- }
- ```
- **${phase_dir}/report.md**: 可读分析报告,包含:
- - 数据完整性检查结果
- - 主结果表格(Markdown 格式)
- - 统计显著性总结
- - 关键发现(带数据支撑)
- - 图表索引和说明
- - 建议在论文中的呈现方式
- react:
- maxSteps: 20
- observationEnabled: true
- toolTimeout: 120
- verbose: true
- memory:
- enabled: true
- strategy: local
- size: 20
- ttl: 3600
- guard:
- validator: "'_meta' in x and 'key_findings' in x and len(x.get('key_findings',[])) > 0"
- retry: 2
- fallback: error
- mcp:
- onlineTool:
- code-sandbox-mcp:
- - python_exec
- - install_package
- plotting-mcp:
- - create_figure
- - create_table
- fs-mcp:
- - read_file
- - write_file
- - list_dir
- - mkdir
- localTools:
- - terminate
- policy:
- mode: auto
- maxConcurrent: 2
- retryOnFail: 1
- # 运行时引擎配置 (Phase 6.5)
- runtime:
- engine: cek # recursive | cek | adaptive
- costBudget: 0.45 # USD — 超过此金额自动暂停
- maxSteps: 10000 # CEK 最大转移步数
- app:
- mcp:
- custom:
- nodes:
- code-sandbox-mcp:
- url: "${CODE_SANDBOX_MCP_URL}"
- endpoint: /mcp/sandbox
- headers:
- Authorization: "${CODE_SANDBOX_MCP_TOKEN}"
- timeout: 120
- plotting-mcp:
- url: "${PLOTTING_MCP_URL}"
- endpoint: /mcp/plotting
- headers:
- Authorization: "${PLOTTING_MCP_TOKEN}"
- timeout: 60
- fs-mcp:
- url: "${FS_MCP_URL}"
- endpoint: /mcp/fs
- headers:
- Authorization: "${FS_MCP_TOKEN}"
- timeout: 30
|