eduevidence 5.2.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +105 -0
- package/README.md +142 -75
- package/README.zh-CN.md +73 -30
- package/SKILL.md +397 -131
- package/agents/openai.yaml +4 -0
- package/assets/readme/controlled-execution.svg +34 -0
- package/assets/readme/landing-tour.gif +0 -0
- package/assets/readme/logo.png +0 -0
- package/assets/readme/research-workflow.svg +56 -0
- package/assets/readme/studio-graph.png +0 -0
- package/assets/readme/studio-overview.png +0 -0
- package/assets/readme/studio-reports.png +0 -0
- package/assets/readme/studio-tour.gif +0 -0
- package/autoevolve/config.yaml +17 -0
- package/autoevolve/program.md +25 -0
- package/autoevolve/protected.manifest.yaml +34 -0
- package/benchmarks/adversarial/cases.jsonl +7 -0
- package/benchmarks/evidence-library.json +5268 -0
- package/benchmarks/partitions.json +8 -0
- package/bin/eduevidence.js +2 -1
- package/docs/architecture.md +496 -0
- package/docs/autoresearch-evolution-plan.md +2903 -0
- package/docs/autoresearch-implementation-status.md +101 -0
- package/docs/demo-storyboard.md +20 -0
- package/docs/demo-workplace-ai.md +92 -0
- package/docs/demo.md +32 -0
- package/docs/install-guide.md +150 -0
- package/docs/orchestration-role-model.md +1254 -0
- package/docs/release-closeout/README.md +17 -0
- package/docs/release-closeout/frontend-acceptance.md +23 -0
- package/docs/release-closeout/issues.md +19 -0
- package/docs/release-closeout/verification.md +28 -0
- package/docs/release-contract.md +108 -0
- package/docs/research-studio-guide.zh-CN.md +166 -0
- package/docs/sciverse-api.md +125 -0
- package/eduevidence_cli.py +29 -13
- package/engine/_resources.py +13 -0
- package/engine/autoevolve/__init__.py +3 -0
- package/engine/autoevolve/agent_view.py +167 -0
- package/engine/autoevolve/core.py +357 -0
- package/engine/autoevolve/events.py +11 -0
- package/engine/autoevolve/git_workspace.py +77 -0
- package/engine/autoevolve/projection.py +23 -0
- package/engine/autoevolve/runner.py +413 -0
- package/engine/autoevolve/trust.py +146 -0
- package/engine/autoresearch/__init__.py +6 -0
- package/engine/autoresearch/commit.py +132 -0
- package/engine/autoresearch/contracts.py +126 -0
- package/engine/autoresearch/controller.py +207 -0
- package/engine/autoresearch/events.py +12 -0
- package/engine/autoresearch/gap_priority.py +168 -0
- package/engine/autoresearch/projection.py +30 -0
- package/engine/autoresearch/research_memory.py +59 -0
- package/engine/autoresearch/saturation.py +91 -0
- package/engine/briefs.py +2 -1
- package/engine/capabilities.py +1 -0
- package/engine/contracts.py +3 -1
- package/engine/decision_policy.py +96 -0
- package/engine/evidence_graph.py +14 -10
- package/engine/evidencecore.py +7 -5
- package/engine/gaps.py +132 -73
- package/engine/ids.py +2 -0
- package/engine/judge_pack.py +65 -0
- package/engine/library.py +6 -2
- package/engine/library_builtin.py +3 -1
- package/engine/living.py +36 -5
- package/engine/meta_synthesis.py +3 -1
- package/engine/migration.py +88 -3
- package/engine/orchestration.py +460 -0
- package/engine/paths.py +2 -0
- package/engine/pilot.py +36 -33
- package/engine/project.py +2 -2
- package/engine/research_service.py +113 -0
- package/engine/studio_read_model.py +400 -0
- package/engine/taxonomy.py +211 -0
- package/engine/tribunal.py +44 -33
- package/engine/update.py +1 -0
- package/engine/versions.py +1 -1
- package/engine/worker_result.py +109 -0
- package/engine/workflows.py +70 -0
- package/examples/ai-coding-assistant-evidence/EduEvidence_Report.html +2934 -0
- package/examples/ai-coding-assistant-evidence/artifact_manifest.json +15 -0
- package/examples/ai-coding-assistant-evidence/citation_check.json +79 -0
- package/examples/ai-coding-assistant-evidence/claims.jsonl +12 -0
- package/examples/ai-coding-assistant-evidence/evaluation.json +35 -0
- package/examples/ai-coding-assistant-evidence/evidence.jsonl +12 -0
- package/examples/ai-coding-assistant-evidence/final_verdict.json +107 -0
- package/examples/ai-coding-assistant-evidence/frame.json +48 -0
- package/examples/ai-coding-assistant-evidence/gate_report.json +101 -0
- package/examples/ai-coding-assistant-evidence/intervention.json +51 -0
- package/examples/ai-coding-assistant-evidence/methodology.json +36 -0
- package/examples/ai-coding-assistant-evidence/raw_verdict.json +86 -0
- package/examples/ai-coding-assistant-evidence/report_spec.json +230 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_academic.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_claude.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab-dark.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_presentation.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_academic.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_claude.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab-dark.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_presentation.html +2934 -0
- package/examples/ai-coding-assistant-evidence/result.json +1457 -0
- package/examples/ai-coding-assistant-evidence/result.zh.json +1457 -0
- package/examples/ai-coding-assistant-evidence/skeptic.json +72 -0
- package/examples/ai-coding-assistant-evidence/sources.jsonl +8 -0
- package/examples/ai-coding-assistant-evidence/verdict.json +107 -0
- package/examples/spaced-retrieval-practice/applicability.json +14 -0
- package/examples/spaced-retrieval-practice/artifact_manifest.json +15 -0
- package/examples/spaced-retrieval-practice/claims.jsonl +3 -0
- package/examples/spaced-retrieval-practice/evidence.jsonl +6 -0
- package/examples/spaced-retrieval-practice/final_verdict.json +93 -0
- package/examples/spaced-retrieval-practice/frame.json +58 -0
- package/examples/spaced-retrieval-practice/gate_report.json +101 -0
- package/examples/spaced-retrieval-practice/methodology.json +78 -0
- package/examples/spaced-retrieval-practice/report_spec.json +212 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/result.json +942 -0
- package/examples/spaced-retrieval-practice/result.zh.json +942 -0
- package/examples/spaced-retrieval-practice/skeptic.json +70 -0
- package/examples/spaced-retrieval-practice/sources.jsonl +7 -0
- package/examples/spaced-retrieval-practice/verdict.json +93 -0
- package/examples/workplace-ai-assistant/artifact_manifest.json +15 -0
- package/examples/workplace-ai-assistant/claims.jsonl +4 -0
- package/examples/workplace-ai-assistant/evaluation.json +19 -0
- package/examples/workplace-ai-assistant/evidence.jsonl +4 -0
- package/examples/workplace-ai-assistant/evidence_graph.json +444 -0
- package/examples/workplace-ai-assistant/final_verdict.json +78 -0
- package/examples/workplace-ai-assistant/frame.json +41 -0
- package/examples/workplace-ai-assistant/gate_report.json +101 -0
- package/examples/workplace-ai-assistant/intervention.json +27 -0
- package/examples/workplace-ai-assistant/legacy-link-check.json +16 -0
- package/examples/workplace-ai-assistant/methodology.json +60 -0
- package/examples/workplace-ai-assistant/report_spec.json +224 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_academic.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_claude.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab-dark.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_presentation.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_academic.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_claude.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab-dark.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_presentation.html +2814 -0
- package/examples/workplace-ai-assistant/result.json +615 -0
- package/examples/workplace-ai-assistant/result.zh.json +615 -0
- package/examples/workplace-ai-assistant/search_log.json +19 -0
- package/examples/workplace-ai-assistant/skeptic.json +72 -0
- package/examples/workplace-ai-assistant/sources.jsonl +3 -0
- package/examples/workplace-ai-assistant/validation_result.json +9 -0
- package/examples/workplace-ai-assistant/verdict.json +78 -0
- package/install.sh +7 -7
- package/integrations/agent_mcp.py +2 -2
- package/integrations/orchestration_dispatch.py +146 -0
- package/package.json +46 -3
- package/pyproject.toml +14 -22
- package/references/autoresearch.md +30 -0
- package/references/evaluation-policy.md +24 -0
- package/references/orchestration.md +22 -0
- package/references/report-copy-style.md +67 -0
- package/references/retrieval-compliance.md +75 -0
- package/references/retrieval-protocol.md +20 -0
- package/references/scientific-invariants.md +19 -0
- package/retrieval/audit.py +178 -0
- package/retrieval/fetch.py +96 -0
- package/retrieval/sciverse.py +398 -0
- package/retrieval/search.py +47 -7
- package/schemas/applicability.schema.json +94 -0
- package/schemas/chart-spec.schema.json +10 -3
- package/schemas/evidence.schema.json +316 -43
- package/schemas/fetch-result.schema.json +2 -1
- package/schemas/intervention.schema.json +106 -21
- package/schemas/report-result.schema.json +12 -4
- package/schemas/report-spec.schema.json +98 -100
- package/schemas/skeptic.schema.json +86 -0
- package/schemas/source.schema.json +21 -2
- package/schemas/v2/finding.schema.json +5 -1
- package/schemas/v2/methodology-audit.schema.json +5 -1
- package/schemas/v2/outcome.schema.json +28 -5
- package/schemas/v2/project.schema.json +2 -2
- package/schemas/v2/run.schema.json +1 -1
- package/schemas/v2/study.schema.json +5 -1
- package/schemas/vNext/autoevolve-session.schema.json +34 -0
- package/schemas/vNext/eval-snapshot.schema.json +77 -0
- package/schemas/vNext/execution-plan.schema.json +50 -0
- package/schemas/vNext/gap-priority.schema.json +54 -0
- package/schemas/vNext/negative-search-record.schema.json +68 -0
- package/schemas/vNext/research-iteration.schema.json +87 -0
- package/schemas/vNext/research-strategy.schema.json +62 -0
- package/schemas/vNext/skill-experiment.schema.json +90 -0
- package/schemas/vNext/task-spec.schema.json +156 -0
- package/schemas/vNext/worker-result.schema.json +60 -0
- package/schemas/verdict.schema.json +164 -28
- package/scripts/benchmark_judge.py +2 -2
- package/scripts/benchmark_v3.py +26 -43
- package/scripts/build_esl_artifacts.py +4 -4
- package/scripts/build_evidence_library.py +2 -2
- package/scripts/build_gh_pages.py +98 -0
- package/scripts/build_readme_diagrams.py +72 -0
- package/scripts/build_report_variants.py +101 -0
- package/scripts/build_result.py +74 -9
- package/scripts/check_autoresearch_invariants.py +95 -0
- package/scripts/check_package_parity.py +85 -0
- package/scripts/check_protocol_alignment.py +375 -0
- package/scripts/check_versioned_schemas.py +254 -0
- package/scripts/claim_audit.py +13 -8
- package/scripts/compute_confidence.py +10 -0
- package/scripts/daily_evolve.py +30 -0
- package/scripts/dashboard_server.py +130 -101
- package/scripts/did_regression.py +17 -32
- package/scripts/enrich_projects_human_and_lieflat.py +1 -1
- package/scripts/evidence_score.py +5 -2
- package/scripts/generate_metrics.py +4 -3
- package/scripts/generate_new_projects.py +5 -5
- package/scripts/orchestrator.py +286 -36
- package/scripts/pre_verdict_gate.py +224 -26
- package/scripts/quickstart.py +18 -2
- package/scripts/rebake_all_5themes.py +1 -2
- package/scripts/research_auto_cli.py +475 -0
- package/scripts/run_workspace.py +24 -8
- package/scripts/search_provenance.py +64 -0
- package/scripts/serve_web.py +9 -10
- package/scripts/skill_lint.py +1 -1
- package/scripts/skill_payload.py +81 -0
- package/scripts/test_adversarial_empirical.py +26 -19
- package/scripts/validate_schema.py +46 -2
- package/scripts/vnext_cli.py +133 -0
- package/setup.py +12 -0
- package/skill/agents/evaluation-designer.md +20 -4
- package/skill/agents/evidence-analyst.md +19 -3
- package/skill/agents/evidence-judge.md +50 -2
- package/skill/agents/evidence-retriever.md +20 -3
- package/skill/agents/intervention-designer.md +20 -4
- package/skill/agents/method-reviewer.md +18 -2
- package/skill/agents/{education-planner.md → research-planner.md} +19 -3
- package/skill/agents/skeptic.md +18 -2
- package/skill/roles/registry.yaml +45 -0
- package/skill/sub-skills/aihot-trend-analysis/SKILL.md +28 -9
- package/skill/sub-skills/contradiction-analysis/SKILL.md +31 -11
- package/skill/sub-skills/data-analysis/SKILL.md +34 -15
- package/skill/sub-skills/ethics-review/SKILL.md +33 -10
- package/skill/sub-skills/evidence-extraction/SKILL.md +29 -11
- package/skill/sub-skills/evidence-review/SKILL.md +31 -12
- package/skill/sub-skills/gap-analysis/SKILL.md +31 -9
- package/skill/sub-skills/literature-review/SKILL.md +35 -14
- package/skill/sub-skills/methodology-audit/SKILL.md +29 -12
- package/skill/sub-skills/report-generation/SKILL.md +40 -6
- package/skill/sub-skills/research-planning/SKILL.md +41 -14
- package/skill/sub-skills/study-design/SKILL.md +30 -9
- package/skill/task-briefs/adjudicate.md +32 -7
- package/skill/task-briefs/applicability.md +38 -0
- package/skill/task-briefs/audit.md +32 -7
- package/skill/task-briefs/challenge.md +34 -5
- package/skill/task-briefs/evaluate.md +30 -5
- package/skill/task-briefs/extract.md +31 -8
- package/skill/task-briefs/frame.md +39 -10
- package/skill/task-briefs/intervene.md +32 -6
- package/skill/task-briefs/present.md +32 -8
- package/skill/task-briefs/projection.md +37 -0
- package/skill/task-briefs/retrieve.md +36 -6
- package/skill/workflows/decision-and-pilot.md +85 -0
- package/skill/workflows/evaluate-and-update.md +93 -0
- package/skill/workflows/evidence-review.md +117 -0
- package/visualization/eduevidence-report/assets/base.css +2 -2
- package/visualization/eduevidence-report/assets/reader.css +752 -0
- package/visualization/eduevidence-report/assets/reader.js +132 -0
- package/visualization/eduevidence-report/references/chart-selection-catalog.md +109 -0
- package/visualization/eduevidence-report/references/lieflat-composition.md +3 -1
- package/visualization/eduevidence-report/scripts/build_figures.py +25 -3
- package/visualization/eduevidence-report/scripts/build_infographics.py +5 -1
- package/visualization/eduevidence-report/scripts/build_report.py +561 -121
- package/visualization/eduevidence-report/scripts/charts_data.py +2 -0
- package/visualization/eduevidence-report/scripts/lieflat_engine.py +371 -136
- package/visualization/eduevidence-report/scripts/zh_labels.py +80 -1
- package/visualization/eduevidence-report/themes/academic.css +1 -1
- package/visualization/eduevidence-report/themes/claude.css +1 -1
- package/visualization/eduevidence-report/themes/datalab-dark.css +2 -2
- package/visualization/eduevidence-report/themes/datalab.css +2 -2
- package/visualization/eduevidence-report/themes/presentation.css +2 -2
- package/web/README.md +18 -0
- package/web/architecture.html +14885 -0
- package/web/index.html +53 -0
- package/web/studio/THIRD_PARTY_LICENSES.txt +146 -0
- package/web/studio/assets/index-B8tkF44Q.css +1 -0
- package/web/studio/assets/index-CQ6Keoyc.js +230 -0
- package/web/studio/config.json +1 -0
- package/web/studio/index.html +14 -0
- package/engine/__pycache__/__init__.cpython-312.pyc +0 -0
- package/engine/__pycache__/analysis.cpython-312.pyc +0 -0
- package/engine/__pycache__/bias.cpython-312.pyc +0 -0
- package/engine/__pycache__/briefs.cpython-312.pyc +0 -0
- package/engine/__pycache__/capabilities.cpython-312.pyc +0 -0
- package/engine/__pycache__/citation_check.cpython-312.pyc +0 -0
- package/engine/__pycache__/contracts.cpython-312.pyc +0 -0
- package/engine/__pycache__/datasets.cpython-312.pyc +0 -0
- package/engine/__pycache__/events.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidence_graph.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidence_review.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidencecore.cpython-312.pyc +0 -0
- package/engine/__pycache__/gap_lens.cpython-312.pyc +0 -0
- package/engine/__pycache__/gaps.cpython-312.pyc +0 -0
- package/engine/__pycache__/graph_store.cpython-312.pyc +0 -0
- package/engine/__pycache__/graph_validate.cpython-312.pyc +0 -0
- package/engine/__pycache__/ids.cpython-312.pyc +0 -0
- package/engine/__pycache__/library.cpython-312.pyc +0 -0
- package/engine/__pycache__/library_builtin.cpython-312.pyc +0 -0
- package/engine/__pycache__/living.cpython-312.pyc +0 -0
- package/engine/__pycache__/log.cpython-312.pyc +0 -0
- package/engine/__pycache__/meta_analysis.cpython-312.pyc +0 -0
- package/engine/__pycache__/meta_synthesis.cpython-312.pyc +0 -0
- package/engine/__pycache__/migration.cpython-312.pyc +0 -0
- package/engine/__pycache__/mode_router.cpython-312.pyc +0 -0
- package/engine/__pycache__/paths.cpython-312.pyc +0 -0
- package/engine/__pycache__/pilot.cpython-312.pyc +0 -0
- package/engine/__pycache__/planner.cpython-312.pyc +0 -0
- package/engine/__pycache__/project.cpython-312.pyc +0 -0
- package/engine/__pycache__/projections.cpython-312.pyc +0 -0
- package/engine/__pycache__/robustness.cpython-312.pyc +0 -0
- package/engine/__pycache__/run.cpython-312.pyc +0 -0
- package/engine/__pycache__/semantics.cpython-312.pyc +0 -0
- package/engine/__pycache__/study_design.cpython-312.pyc +0 -0
- package/engine/__pycache__/synthesis.cpython-312.pyc +0 -0
- package/engine/__pycache__/tribunal.cpython-312.pyc +0 -0
- package/engine/__pycache__/update.cpython-312.pyc +0 -0
- package/engine/__pycache__/versions.cpython-312.pyc +0 -0
- package/integrations/__pycache__/__init__.cpython-312.pyc +0 -0
- package/integrations/__pycache__/agent_mcp.cpython-312.pyc +0 -0
- package/integrations/__pycache__/smart_web_fetch.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/__init__.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/corpus_store.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/dedupe.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/failures.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/fetch.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/search.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/source.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/validate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_evaluator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_judge.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_routing.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_v2.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_v3.cpython-312.pyc +0 -0
- package/scripts/__pycache__/build_result.cpython-312.pyc +0 -0
- package/scripts/__pycache__/claim_audit.cpython-312.pyc +0 -0
- package/scripts/__pycache__/complexity_gate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/compute_confidence.cpython-312.pyc +0 -0
- package/scripts/__pycache__/dashboard_server.cpython-312.pyc +0 -0
- package/scripts/__pycache__/did_regression.cpython-312.pyc +0 -0
- package/scripts/__pycache__/effect_calculator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_matrix.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_score.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_semantics.cpython-312.pyc +0 -0
- package/scripts/__pycache__/fetch_benchmark.cpython-312.pyc +0 -0
- package/scripts/__pycache__/lint_report_layout.cpython-312.pyc +0 -0
- package/scripts/__pycache__/orchestrator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/pre_verdict_gate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/recompute_demo_quality.cpython-312.pyc +0 -0
- package/scripts/__pycache__/render_report.cpython-312.pyc +0 -0
- package/scripts/__pycache__/render_report_html.cpython-312.pyc +0 -0
- package/scripts/__pycache__/run_workspace.cpython-312.pyc +0 -0
- package/scripts/__pycache__/skill_lint.cpython-312.pyc +0 -0
- package/scripts/__pycache__/startup_probe.cpython-312.pyc +0 -0
- package/scripts/__pycache__/sync_killer_demo_report.cpython-312.pyc +0 -0
- package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.0.2.pyc +0 -0
- package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.1.1.pyc +0 -0
- package/scripts/__pycache__/validate_schema.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/adapter_contract.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_artifact_manifest.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_charts.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_figures.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_infographics.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_report.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/charts_data.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/lieflat_engine.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/zh_labels.cpython-312.pyc +0 -0
|
@@ -0,0 +1,2903 @@
|
|
|
1
|
+
# EduEvidence vNext — Autoresearch 自进化研究系统完整实施计划
|
|
2
|
+
|
|
3
|
+
> 状态:Implementation Blueprint
|
|
4
|
+
> 范围:EduEvidence Skill + Research Engine + Benchmark + Agent MCP 编排 + Living Evidence
|
|
5
|
+
> 配套文档:[`docs/orchestration-role-model.md`](./orchestration-role-model.md)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 0. 最终定义
|
|
10
|
+
|
|
11
|
+
EduEvidence 下一阶段不增加一个新的“Autoresearch 用户功能页”,也不把现有研究流程改造成无限自主 Agent。
|
|
12
|
+
|
|
13
|
+
保持当前三个用户入口:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Evidence Review
|
|
17
|
+
→ Decision & Pilot
|
|
18
|
+
→ Evaluate & Update
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
保持 Canonical 9-step Protocol:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Frame → Retrieve → Extract → Challenge → Audit → Adjudicate
|
|
25
|
+
→ Applicability → Intervene → Evaluate
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
在它们下面增加一个 **Autonomous Research Meta-Layer**,形成三条不同性质的闭环:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
┌────────────────────────────────────────────────────────────┐
|
|
32
|
+
│ Loop A — Evidence Autoresearch │
|
|
33
|
+
│ “当前决策最值得继续寻找哪一条证据?” │
|
|
34
|
+
│ Gap → Research Hypothesis → Experiment → Evidence Gain │
|
|
35
|
+
│ → GraphRevision → Decision Drift → Next Gap │
|
|
36
|
+
└────────────────────────────────────────────────────────────┘
|
|
37
|
+
|
|
38
|
+
┌────────────────────────────────────────────────────────────┐
|
|
39
|
+
│ Loop B — Decision-to-Outcome │
|
|
40
|
+
│ “真实 Pilot 数据会不会改变当前决定?” │
|
|
41
|
+
│ Decision → Pilot → Data → Analysis → GraphRevision │
|
|
42
|
+
│ → DecisionSnapshot │
|
|
43
|
+
└────────────────────────────────────────────────────────────┘
|
|
44
|
+
|
|
45
|
+
┌────────────────────────────────────────────────────────────┐
|
|
46
|
+
│ Loop C — Skill Autoresearch │
|
|
47
|
+
│ “EduEvidence 这个研究系统本身还能不能做得更好?” │
|
|
48
|
+
│ Hypothesis → One Change → Eval → Keep/Revert → Repeat │
|
|
49
|
+
└────────────────────────────────────────────────────────────┘
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
三条循环对应三个问题:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Evidence Loop:我们还缺什么知识?
|
|
56
|
+
Decision Loop:新证据是否改变行动?
|
|
57
|
+
Skill Loop:我们的研究方法本身还能不能更好?
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
最终产品定位升级为:
|
|
61
|
+
|
|
62
|
+
> **Living Decision Research Engine**
|
|
63
|
+
> 不只把证据变成决定,还主动判断下一条最值得寻找的证据,并持续验证怎样让研究系统本身变得更好。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# 1. 核心思想来源
|
|
68
|
+
|
|
69
|
+
## 1.1 Karpathy autoresearch:吸收“实验组织代码”,不复制训练任务
|
|
70
|
+
|
|
71
|
+
`karpathy/autoresearch` 的关键设计不是“让 AI 一晚上跑很多次”,而是:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
固定 evaluator
|
|
75
|
+
固定实验预算
|
|
76
|
+
限制 mutation surface
|
|
77
|
+
先跑 baseline
|
|
78
|
+
一次只改一个核心变量
|
|
79
|
+
真实运行
|
|
80
|
+
机械测量
|
|
81
|
+
keep / discard
|
|
82
|
+
append-only 实验日志
|
|
83
|
+
git 作为长期实验记忆
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
原版刻意把:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
prepare.py / evaluate_bpb
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
冻结,只允许 Agent 修改 `train.py`;每次训练使用固定 5 分钟时间预算,以单一 `val_bpb` 比较,并执行:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
commit
|
|
96
|
+
→ run
|
|
97
|
+
→ measure
|
|
98
|
+
→ keep / reset
|
|
99
|
+
→ log
|
|
100
|
+
→ next experiment
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
其中 `program.md` 本质是“研究组织代码”:人类不是逐次编辑训练代码,而是定义 AI 研究员怎样组织自主实验。
|
|
104
|
+
|
|
105
|
+
EduEvidence 直接吸收以下原则:
|
|
106
|
+
|
|
107
|
+
1. **Evaluator 与研究对象分离。**
|
|
108
|
+
2. **Mutation surface 有边界。**
|
|
109
|
+
3. **Baseline 必跑。**
|
|
110
|
+
4. **一次实验一个主假设。**
|
|
111
|
+
5. **失败必须记录。**
|
|
112
|
+
6. **结果弱而复杂度大,不保留。**
|
|
113
|
+
7. **实验历史本身是未来推理输入。**
|
|
114
|
+
8. **循环有预算、Plateau 和停止条件。**
|
|
115
|
+
|
|
116
|
+
不照搬:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
单一 score 决定所有研究质量
|
|
120
|
+
validated evidence keep/discard
|
|
121
|
+
无限运行
|
|
122
|
+
Agent 可改 evaluator
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
参考:
|
|
126
|
+
- https://github.com/karpathy/autoresearch
|
|
127
|
+
- https://github.com/karpathy/autoresearch/blob/master/program.md
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 1.2 通用 Autoresearch Skill:吸收“薄路由 + 可验证目标 + plateau”
|
|
132
|
+
|
|
133
|
+
后续通用 autoresearch 实现进一步验证了几个适合 EduEvidence 的工程模式:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
薄 control-plane Skill
|
|
137
|
+
子命令 / references 按需加载
|
|
138
|
+
Success predicate
|
|
139
|
+
Round-0 baseline/dry-run
|
|
140
|
+
bounded iteration
|
|
141
|
+
holdout / adversarial verify hop
|
|
142
|
+
Plateau detection
|
|
143
|
+
checkpoint + resumable state
|
|
144
|
+
simplicity criterion
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
EduEvidence 不复制它的 14 个命令,但采用:
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
Control Plane ≠ Detailed Procedures
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
这也与当前 Skill 的 progressive loading 方向一致。
|
|
154
|
+
|
|
155
|
+
参考:
|
|
156
|
+
- https://github.com/uditgoenka/autoresearch
|
|
157
|
+
- https://github.com/uditgoenka/autoresearch/blob/master/guide/autoresearch-orchestrator.md
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 1.3 Living Systematic Review:Autoresearch 不能破坏系统综述纪律
|
|
162
|
+
|
|
163
|
+
Cochrane 对 living systematic review 的核心定义是:
|
|
164
|
+
|
|
165
|
+
> Review 持续更新,新证据出现后被识别并纳入,而不是每次重新从零生成一个结论。
|
|
166
|
+
|
|
167
|
+
这与 EduEvidence 当前 `engine/living.py` 的:
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
DecisionSnapshot subscription
|
|
171
|
+
→ incremental evidence
|
|
172
|
+
→ GraphRevision n+1
|
|
173
|
+
→ drift
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
高度一致。
|
|
177
|
+
|
|
178
|
+
Autoresearch 不替换 Living Evidence,而是让 Living Evidence 从:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
“监控预设 query terms”
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
升级为:
|
|
185
|
+
|
|
186
|
+
```text
|
|
187
|
+
“根据当前 Evidence Graph / KnowledgeGap / Decision Boundary
|
|
188
|
+
动态决定下一轮最有价值的检索目标”
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
参考:
|
|
192
|
+
- https://training.cochrane.org/handbook/current/chapter-22
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 1.4 Active Learning Screening:优化“先看什么”,不能决定“什么是真证据”
|
|
197
|
+
|
|
198
|
+
ASReview 等 active-learning systematic review 工具证明:
|
|
199
|
+
|
|
200
|
+
```text
|
|
201
|
+
机器学习可以显著改善 record screening 的排序效率
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
EduEvidence 可以吸收为:
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
Screening Priority
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
用于回答:
|
|
211
|
+
|
|
212
|
+
> 下一篇最值得 Fetch / Screen 的候选 Source 是哪一篇?
|
|
213
|
+
|
|
214
|
+
但严格禁止把 active-learning ranking 直接解释为:
|
|
215
|
+
|
|
216
|
+
```text
|
|
217
|
+
证据权重
|
|
218
|
+
研究质量
|
|
219
|
+
支持结论概率
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Ranking 只优化 screening order。
|
|
223
|
+
|
|
224
|
+
参考:
|
|
225
|
+
- https://asreview.nl/project/read-the-docs/
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 1.5 Value of Information:把“下一步研究什么”连接到 Decision
|
|
230
|
+
|
|
231
|
+
Value of Information 的核心不是“信息越多越好”,而是:
|
|
232
|
+
|
|
233
|
+
> 新信息是否足以减少当前决策的不确定性,从而避免错误行动?
|
|
234
|
+
|
|
235
|
+
完整 EVPI / EVPPI / EVSI 通常需要明确的 decision model、utility / loss 和概率分布。EduEvidence 当前没有资格默认生成这些正式统计量。
|
|
236
|
+
|
|
237
|
+
因此 vNext 首先实现:
|
|
238
|
+
|
|
239
|
+
```text
|
|
240
|
+
Conceptual Decision Value of Information
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
简称:
|
|
244
|
+
|
|
245
|
+
```text
|
|
246
|
+
DVI — Decision Value of Information
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
它是**透明的研究优先级启发式**,不是概率、不是效应量、不是正式 EVSI。
|
|
250
|
+
|
|
251
|
+
只有未来某个项目具备完整 decision-analytic model 时,才允许接入 formal VOI adapter。
|
|
252
|
+
|
|
253
|
+
参考:
|
|
254
|
+
- https://pubmed.ncbi.nlm.nih.gov/32113617/
|
|
255
|
+
- https://pmc.ncbi.nlm.nih.gov/articles/PMC7613968/
|
|
256
|
+
- https://pubmed.ncbi.nlm.nih.gov/25986471/
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
# 2. 三条“宪法级”原则
|
|
261
|
+
|
|
262
|
+
保留现有:
|
|
263
|
+
|
|
264
|
+
> **Optimize for decision integrity, not answer confidence.**
|
|
265
|
+
|
|
266
|
+
新增:
|
|
267
|
+
|
|
268
|
+
> **Optimize the research process, never the conclusion.**
|
|
269
|
+
|
|
270
|
+
新增:
|
|
271
|
+
|
|
272
|
+
> **Every iteration must improve the evidence state, improve the research system, or teach us why an attempted path failed.**
|
|
273
|
+
|
|
274
|
+
这三条进入 `references/scientific-invariants.md`,并纳入 protected manifest。
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
# 3. 当前仓库的可复用地基
|
|
279
|
+
|
|
280
|
+
本次不是重建。
|
|
281
|
+
|
|
282
|
+
现有模块直接复用:
|
|
283
|
+
|
|
284
|
+
| 当前能力 | 文件/目录 | vNext 用途 |
|
|
285
|
+
|---|---|---|
|
|
286
|
+
| Canonical 9-step | `docs/architecture.md` | 不变 |
|
|
287
|
+
| Project/Run/Revision/DecisionSnapshot | `engine/` | 继续作为 canonical state |
|
|
288
|
+
| Immutable Graph Revision | `engine/graph_store.py` | Evidence Autoresearch 的写入基础 |
|
|
289
|
+
| KnowledgeGap derivation | `engine/gaps.py` | 加 DVI / lifecycle,不替换原推导 |
|
|
290
|
+
| Study Design grounding | `engine/study_design.py` | Search saturation → Pilot 的硬 gate |
|
|
291
|
+
| Pilot reinjection | `engine/pilot.py` / `engine/update.py` | Decision-to-Outcome Loop |
|
|
292
|
+
| Living Evidence | `engine/living.py` | Evidence Autoresearch 的增量 ingestion 基础 |
|
|
293
|
+
| Decision adjudication | `engine/tribunal.py` | 新 GraphRevision 后重算 |
|
|
294
|
+
| EventBus | `engine/events.py` | Autoresearch 全过程事件流 |
|
|
295
|
+
| Agent MCP adapter | `integrations/agent_mcp.py` | bounded worker dispatch |
|
|
296
|
+
| `safe_spawn()` | `integrations/agent_mcp.py` | 唯一多代理派发入口继续保留 |
|
|
297
|
+
| S/M/L Complexity | `scripts/complexity_gate.py` | ExecutionPlanner 输入 |
|
|
298
|
+
| 30 题 Benchmark | `benchmarks/questions.jsonl` | DEV eval 起点 |
|
|
299
|
+
| Gold annotations | `benchmarks/annotations/` | scientific eval 起点 |
|
|
300
|
+
| Empirical benchmark | `benchmarks/empirical/` | Outer Loop 真实评估 |
|
|
301
|
+
| Graph deterministic metrics | `benchmarks/evaluator/v2_graph_metrics.py` | L0 contract gates |
|
|
302
|
+
| CI | `.github/workflows/ci.yml` | protected / autoresearch gate 扩展 |
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
# 4. 必须消除的架构混淆
|
|
307
|
+
|
|
308
|
+
当前仓库同时存在:
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
9 个 Protocol Stage
|
|
312
|
+
8 个 skill/agents profiles
|
|
313
|
+
多个 skill/sub-skills capabilities
|
|
314
|
+
Agent MCP multi-model dispatch
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
vNext 唯一定义:
|
|
318
|
+
|
|
319
|
+
```text
|
|
320
|
+
Protocol Stage
|
|
321
|
+
≠ Scientific Role
|
|
322
|
+
≠ Capability
|
|
323
|
+
≠ Worker/Subagent
|
|
324
|
+
≠ Model/CLI
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
完整规则见:
|
|
328
|
+
|
|
329
|
+
[`docs/orchestration-role-model.md`](./orchestration-role-model.md)
|
|
330
|
+
|
|
331
|
+
核心一句:
|
|
332
|
+
|
|
333
|
+
> **Parallelize independent evidence acquisition; serialize canonical state transitions.**
|
|
334
|
+
|
|
335
|
+
以及:
|
|
336
|
+
|
|
337
|
+
> **Subagent count is determined by task decomposability, not role count.**
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
# 5. 最终总体架构
|
|
342
|
+
|
|
343
|
+
```text
|
|
344
|
+
USER
|
|
345
|
+
│
|
|
346
|
+
▼
|
|
347
|
+
EduEvidence Skill
|
|
348
|
+
│
|
|
349
|
+
Evidence Review / Decision & Pilot /
|
|
350
|
+
Evaluate & Update
|
|
351
|
+
│
|
|
352
|
+
▼
|
|
353
|
+
Lead Researcher
|
|
354
|
+
│
|
|
355
|
+
Workflow + Complexity Gate
|
|
356
|
+
│
|
|
357
|
+
Capability DAG
|
|
358
|
+
│
|
|
359
|
+
┌─────────────┴────────────┐
|
|
360
|
+
│ │
|
|
361
|
+
▼ ▼
|
|
362
|
+
Platform Native Agent MCP Enhanced
|
|
363
|
+
Local execution bounded subagents
|
|
364
|
+
│ │
|
|
365
|
+
└─────────────┬────────────┘
|
|
366
|
+
▼
|
|
367
|
+
Staging Artifacts
|
|
368
|
+
│
|
|
369
|
+
Schema / Provenance / Science Gates
|
|
370
|
+
│
|
|
371
|
+
▼
|
|
372
|
+
Single Writer Engine
|
|
373
|
+
│
|
|
374
|
+
┌─────────────┼─────────────┐
|
|
375
|
+
▼ ▼ ▼
|
|
376
|
+
Evidence Graph Decision State Research Memory
|
|
377
|
+
│
|
|
378
|
+
▼
|
|
379
|
+
GraphRevision N
|
|
380
|
+
│
|
|
381
|
+
┌────┴───────────────┐
|
|
382
|
+
▼ ▼
|
|
383
|
+
Evidence Autoresearch Decision-to-Outcome
|
|
384
|
+
│ │
|
|
385
|
+
└─────────┬──────────┘
|
|
386
|
+
▼
|
|
387
|
+
GraphRevision N+1
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
Repository / Skill Implementation
|
|
391
|
+
│
|
|
392
|
+
▼
|
|
393
|
+
Skill Autoresearch
|
|
394
|
+
Hypothesis → Candidate → Protected Eval
|
|
395
|
+
→ Keep/Revert → SkillRevision
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
# 6. Canonical State 命名重新冻结
|
|
401
|
+
|
|
402
|
+
避免“Revision”概念混乱。
|
|
403
|
+
|
|
404
|
+
## 现实研究状态
|
|
405
|
+
|
|
406
|
+
```text
|
|
407
|
+
Project
|
|
408
|
+
Run
|
|
409
|
+
GraphRevision
|
|
410
|
+
DecisionSnapshot
|
|
411
|
+
ResearchIteration
|
|
412
|
+
KnowledgeGap
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### GraphRevision
|
|
416
|
+
|
|
417
|
+
表示:
|
|
418
|
+
|
|
419
|
+
> 我们对现实问题所拥有的 Evidence Graph 变了。
|
|
420
|
+
|
|
421
|
+
例如:
|
|
422
|
+
|
|
423
|
+
```text
|
|
424
|
+
GraphRevision 7 → 8
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
### DecisionSnapshot
|
|
430
|
+
|
|
431
|
+
表示:
|
|
432
|
+
|
|
433
|
+
> 基于某个 GraphRevision 的当前 decision-bounded adjudication。
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
### ResearchIteration
|
|
438
|
+
|
|
439
|
+
表示:
|
|
440
|
+
|
|
441
|
+
> Evidence Autoresearch 做过的一轮“下一条证据”实验。
|
|
442
|
+
|
|
443
|
+
它可以:
|
|
444
|
+
|
|
445
|
+
```text
|
|
446
|
+
找到 valid evidence
|
|
447
|
+
只找到重复 evidence
|
|
448
|
+
没有找到 eligible evidence
|
|
449
|
+
tool failure
|
|
450
|
+
search saturation evidence
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
ResearchIteration 不等于 GraphRevision。
|
|
454
|
+
|
|
455
|
+
没有新 validated evidence 时:
|
|
456
|
+
|
|
457
|
+
```text
|
|
458
|
+
ResearchIteration +1
|
|
459
|
+
GraphRevision 不变
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
这是必须保留的信息。
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Skill 自身状态
|
|
467
|
+
|
|
468
|
+
```text
|
|
469
|
+
SkillRevision
|
|
470
|
+
SkillExperiment
|
|
471
|
+
EvalSnapshot
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### SkillRevision
|
|
475
|
+
|
|
476
|
+
表示:
|
|
477
|
+
|
|
478
|
+
> EduEvidence 研究系统本身的一版实现。
|
|
479
|
+
|
|
480
|
+
它与 GraphRevision 完全分离。
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
# 7. Loop A — Evidence Autoresearch
|
|
485
|
+
|
|
486
|
+
## 7.1 目标
|
|
487
|
+
|
|
488
|
+
现在的 Evidence Review 主要回答:
|
|
489
|
+
|
|
490
|
+
```text
|
|
491
|
+
当前证据支持什么?
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
Evidence Autoresearch 再回答:
|
|
495
|
+
|
|
496
|
+
```text
|
|
497
|
+
如果我们还允许花下一单位 research budget,
|
|
498
|
+
最值得获取哪类新证据?
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## 7.2 基本循环
|
|
504
|
+
|
|
505
|
+
```text
|
|
506
|
+
READ STATE
|
|
507
|
+
Project + GraphRevision N + DecisionSnapshot N
|
|
508
|
+
+ KnowledgeGaps + previous ResearchIterations
|
|
509
|
+
↓
|
|
510
|
+
RANK GAPS
|
|
511
|
+
Decision Value of Information
|
|
512
|
+
↓
|
|
513
|
+
SELECT ONE
|
|
514
|
+
one KnowledgeGap / one research objective
|
|
515
|
+
↓
|
|
516
|
+
HYPOTHESIZE
|
|
517
|
+
one falsifiable research strategy
|
|
518
|
+
↓
|
|
519
|
+
PLAN
|
|
520
|
+
TaskSpec + budget + termination
|
|
521
|
+
↓
|
|
522
|
+
EXECUTE
|
|
523
|
+
Retrieve / Fetch / Validate / Extract
|
|
524
|
+
+ Challenge / Audit when triggered
|
|
525
|
+
↓
|
|
526
|
+
MEASURE
|
|
527
|
+
Evidence Gain / Search Yield / Decision Relevance
|
|
528
|
+
↓
|
|
529
|
+
COMMIT
|
|
530
|
+
valid evidence append-only → GraphRevision N+1
|
|
531
|
+
or no-change iteration log
|
|
532
|
+
↓
|
|
533
|
+
RE-ADJUDICATE
|
|
534
|
+
candidate DecisionSnapshot / drift
|
|
535
|
+
↓
|
|
536
|
+
LEARN
|
|
537
|
+
append ResearchIteration + negative search memory
|
|
538
|
+
↓
|
|
539
|
+
NEXT
|
|
540
|
+
recompute gap priority
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
# 8. KnowledgeGap vNext
|
|
546
|
+
|
|
547
|
+
当前 `engine/gaps.py` 的强项是:Gap 来自真实 graph coverage,而不是自由文本 future work。
|
|
548
|
+
|
|
549
|
+
保留这个定义。
|
|
550
|
+
|
|
551
|
+
新增 metadata:
|
|
552
|
+
|
|
553
|
+
```json
|
|
554
|
+
{
|
|
555
|
+
"gap_id": "GAP-...",
|
|
556
|
+
"status": "open",
|
|
557
|
+
"gap_type": "missing_transfer",
|
|
558
|
+
"derived_from_graph_revision": 8,
|
|
559
|
+
"decision_relevance": "high",
|
|
560
|
+
"uncertainty_source": "directness",
|
|
561
|
+
"minimum_useful_evidence": {
|
|
562
|
+
"population": "novice CS1",
|
|
563
|
+
"outcome": "independent_problem_solving",
|
|
564
|
+
"measurement_context": "without_ai"
|
|
565
|
+
},
|
|
566
|
+
"research_priority": {
|
|
567
|
+
"dvi_band": "high",
|
|
568
|
+
"rationale": []
|
|
569
|
+
},
|
|
570
|
+
"attempted_strategy_ids": [],
|
|
571
|
+
"negative_search_ids": [],
|
|
572
|
+
"resolution_status": "unresolved"
|
|
573
|
+
}
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
# 9. Gap Lifecycle
|
|
579
|
+
|
|
580
|
+
新增 lifecycle:
|
|
581
|
+
|
|
582
|
+
```text
|
|
583
|
+
OPEN
|
|
584
|
+
↓
|
|
585
|
+
PRIORITIZED
|
|
586
|
+
↓
|
|
587
|
+
SEARCHING
|
|
588
|
+
↓
|
|
589
|
+
PARTIALLY_RESOLVED
|
|
590
|
+
↓
|
|
591
|
+
RESOLVED
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
另一条:
|
|
595
|
+
|
|
596
|
+
```text
|
|
597
|
+
OPEN
|
|
598
|
+
↓
|
|
599
|
+
SEARCHING
|
|
600
|
+
↓
|
|
601
|
+
SEARCH_SATURATED
|
|
602
|
+
↓
|
|
603
|
+
EMPIRICAL_EVIDENCE_NEEDED
|
|
604
|
+
↓
|
|
605
|
+
StudyDesign / Pilot
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
另一条:
|
|
609
|
+
|
|
610
|
+
```text
|
|
611
|
+
OPEN
|
|
612
|
+
↓
|
|
613
|
+
LOW_DECISION_VALUE
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
Low DVI 不代表“永远不研究”,只是当前 decision context 下不优先。
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
# 10. DVI — Decision Value of Information
|
|
621
|
+
|
|
622
|
+
## 10.1 vNext 只实现 Conceptual DVI
|
|
623
|
+
|
|
624
|
+
禁止输出:
|
|
625
|
+
|
|
626
|
+
```text
|
|
627
|
+
“这项研究有 83.7% 的信息价值”
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
也禁止把 DVI 称为正式 EVPI / EVSI。
|
|
631
|
+
|
|
632
|
+
DVI 是透明优先级模型。
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## 10.2 排序维度
|
|
637
|
+
|
|
638
|
+
每个 Gap 计算以下 ordinal dimensions:
|
|
639
|
+
|
|
640
|
+
```text
|
|
641
|
+
Decision Sensitivity
|
|
642
|
+
当前 decision 对这个未知量有多敏感?
|
|
643
|
+
|
|
644
|
+
Current Uncertainty
|
|
645
|
+
当前 evidence 对它有多不确定?
|
|
646
|
+
|
|
647
|
+
Directness Deficit
|
|
648
|
+
缺的是直接 outcome 证据还是仅补充性信息?
|
|
649
|
+
|
|
650
|
+
Applicability Relevance
|
|
651
|
+
是否直接关系目标人群 / 场景?
|
|
652
|
+
|
|
653
|
+
Expected Evidence Availability
|
|
654
|
+
二手证据是否可能存在?
|
|
655
|
+
|
|
656
|
+
Research Cost
|
|
657
|
+
预计检索/筛选/新研究成本?
|
|
658
|
+
|
|
659
|
+
Risk / Irreversibility
|
|
660
|
+
如果现在做错决定,后果是否高?
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
## 10.3 结果只分 band
|
|
666
|
+
|
|
667
|
+
```text
|
|
668
|
+
HIGH
|
|
669
|
+
MEDIUM
|
|
670
|
+
LOW
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
同时返回 rationale:
|
|
674
|
+
|
|
675
|
+
```json
|
|
676
|
+
{
|
|
677
|
+
"gap_id": "GAP-...",
|
|
678
|
+
"dvi_band": "HIGH",
|
|
679
|
+
"drivers": [
|
|
680
|
+
"当前 ADOPT/PILOT 边界主要被 independent transfer 缺失限制",
|
|
681
|
+
"目标人群完全匹配",
|
|
682
|
+
"已有候选文献线索"
|
|
683
|
+
],
|
|
684
|
+
"cost_band": "LOW",
|
|
685
|
+
"next_research_mode": "secondary_evidence_search"
|
|
686
|
+
}
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
排序必须可解释。
|
|
690
|
+
|
|
691
|
+
---
|
|
692
|
+
|
|
693
|
+
# 11. 一轮只能有一个主 Research Hypothesis
|
|
694
|
+
|
|
695
|
+
示例:
|
|
696
|
+
|
|
697
|
+
```json
|
|
698
|
+
{
|
|
699
|
+
"research_iteration_id": "RIT-0017",
|
|
700
|
+
"gap_id": "GAP-transfer-novice",
|
|
701
|
+
"hypothesis": "针对 novice CS1 + without-AI transfer test 的定向检索,将发现至少一条比当前证据更直接的 eligible Study",
|
|
702
|
+
"strategy_id": "STRAT-targeted-transfer-v1",
|
|
703
|
+
"expected_gain": "directness",
|
|
704
|
+
"budget": {
|
|
705
|
+
"max_queries": 6,
|
|
706
|
+
"max_candidates": 30,
|
|
707
|
+
"max_fulltext_fetches": 12
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
禁止一轮同时:
|
|
713
|
+
|
|
714
|
+
```text
|
|
715
|
+
换检索算法
|
|
716
|
+
换 OutcomeClassifier
|
|
717
|
+
改 Gap ranking
|
|
718
|
+
加新数据库
|
|
719
|
+
改 Method Audit prompt
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
否则无法归因。
|
|
723
|
+
|
|
724
|
+
---
|
|
725
|
+
|
|
726
|
+
# 12. Research Experiment 类型
|
|
727
|
+
|
|
728
|
+
首版只允许明确枚举:
|
|
729
|
+
|
|
730
|
+
```text
|
|
731
|
+
TARGETED_RETRIEVAL
|
|
732
|
+
COUNTER_EVIDENCE_RETRIEVAL
|
|
733
|
+
APPLICABILITY_RETRIEVAL
|
|
734
|
+
TEMPORAL_REFRESH
|
|
735
|
+
CITATION_CHAINING
|
|
736
|
+
SCREENING_PRIORITY
|
|
737
|
+
SOURCE_RECOVERY
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
未来再增加。
|
|
741
|
+
|
|
742
|
+
它们都是:
|
|
743
|
+
|
|
744
|
+
> 获取证据的研究策略实验。
|
|
745
|
+
|
|
746
|
+
不是:
|
|
747
|
+
|
|
748
|
+
> 自动改变科学规则。
|
|
749
|
+
|
|
750
|
+
---
|
|
751
|
+
|
|
752
|
+
# 13. Evidence 绝对 Append-only
|
|
753
|
+
|
|
754
|
+
这是从 autoresearch 移植时最重要的差异。
|
|
755
|
+
|
|
756
|
+
代码候选可以:
|
|
757
|
+
|
|
758
|
+
```text
|
|
759
|
+
keep / revert
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
Validated Evidence 不可以:
|
|
763
|
+
|
|
764
|
+
```text
|
|
765
|
+
支持当前结论 → keep
|
|
766
|
+
反对当前结论 → discard
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
只要符合:
|
|
770
|
+
|
|
771
|
+
```text
|
|
772
|
+
真实来源
|
|
773
|
+
符合纳排标准
|
|
774
|
+
provenance 可验证
|
|
775
|
+
schema 合法
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
就必须保留,不论:
|
|
779
|
+
|
|
780
|
+
```text
|
|
781
|
+
support
|
|
782
|
+
contradict
|
|
783
|
+
neutral
|
|
784
|
+
null
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
科学不变量:
|
|
788
|
+
|
|
789
|
+
> **Never optimize the evidence set toward a preferred conclusion.**
|
|
790
|
+
|
|
791
|
+
---
|
|
792
|
+
|
|
793
|
+
# 14. Negative Search Result 也是 Artifact
|
|
794
|
+
|
|
795
|
+
新增:
|
|
796
|
+
|
|
797
|
+
```text
|
|
798
|
+
NegativeSearchRecord
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
记录:
|
|
802
|
+
|
|
803
|
+
```json
|
|
804
|
+
{
|
|
805
|
+
"negative_search_id": "NSR-...",
|
|
806
|
+
"research_iteration_id": "RIT-...",
|
|
807
|
+
"gap_id": "GAP-...",
|
|
808
|
+
"queries": [],
|
|
809
|
+
"providers": [],
|
|
810
|
+
"candidate_count": 23,
|
|
811
|
+
"fetched_count": 8,
|
|
812
|
+
"eligible_count": 0,
|
|
813
|
+
"exclusion_reasons": {},
|
|
814
|
+
"searched_at": "...",
|
|
815
|
+
"scope": {},
|
|
816
|
+
"conclusion": "no_eligible_evidence_found_within_search_scope"
|
|
817
|
+
}
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
禁止写:
|
|
821
|
+
|
|
822
|
+
```text
|
|
823
|
+
“No evidence exists.”
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
只能说:
|
|
827
|
+
|
|
828
|
+
```text
|
|
829
|
+
“在本轮明确 search scope 内未找到 eligible evidence。”
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
---
|
|
833
|
+
|
|
834
|
+
# 15. Search Saturation Gate
|
|
835
|
+
|
|
836
|
+
不能无限搜论文。
|
|
837
|
+
|
|
838
|
+
每个 Gap 追踪:
|
|
839
|
+
|
|
840
|
+
```text
|
|
841
|
+
new independent studies per iteration
|
|
842
|
+
new eligible findings per iteration
|
|
843
|
+
new direct-outcome findings
|
|
844
|
+
new population coverage
|
|
845
|
+
new contradiction yield
|
|
846
|
+
new DOI/source uniqueness
|
|
847
|
+
Decision Boundary delta
|
|
848
|
+
query/provider novelty
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
当连续多轮出现:
|
|
852
|
+
|
|
853
|
+
```text
|
|
854
|
+
unique eligible evidence ≈ 0
|
|
855
|
+
直接证据增量 = 0
|
|
856
|
+
重复来源持续升高
|
|
857
|
+
Decision Boundary 无变化
|
|
858
|
+
新的 search strategies 已基本耗尽
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
标记:
|
|
862
|
+
|
|
863
|
+
```text
|
|
864
|
+
SEARCH_SATURATED
|
|
865
|
+
```
|
|
866
|
+
|
|
867
|
+
首版不用一个武断的单阈值。
|
|
868
|
+
|
|
869
|
+
使用:
|
|
870
|
+
|
|
871
|
+
```text
|
|
872
|
+
2–3 consecutive low-yield iterations
|
|
873
|
+
+ strategy diversity exhausted
|
|
874
|
+
+ no high-value unresolved retrievable path
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
作为 deterministic + policy 判定。
|
|
878
|
+
|
|
879
|
+
---
|
|
880
|
+
|
|
881
|
+
# 16. 自动从 Literature 转向 Pilot 的条件
|
|
882
|
+
|
|
883
|
+
必须同时满足:
|
|
884
|
+
|
|
885
|
+
```text
|
|
886
|
+
Gap DVI = HIGH
|
|
887
|
+
Gap 对 Decision material
|
|
888
|
+
Secondary Search = saturated
|
|
889
|
+
Gap 仍 unresolved
|
|
890
|
+
新实证研究在伦理 / 可行性上允许
|
|
891
|
+
```
|
|
892
|
+
|
|
893
|
+
然后:
|
|
894
|
+
|
|
895
|
+
```text
|
|
896
|
+
KnowledgeGap
|
|
897
|
+
→ EMPIRICAL_EVIDENCE_NEEDED
|
|
898
|
+
→ StudyDesign grounding gate
|
|
899
|
+
→ preregistration-ready Pilot
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
这直接复用当前:
|
|
903
|
+
|
|
904
|
+
```text
|
|
905
|
+
No Study Design Without Grounded Gap
|
|
906
|
+
```
|
|
907
|
+
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
# 17. Evidence Autoresearch 的停止条件
|
|
911
|
+
|
|
912
|
+
任何一项满足即可停:
|
|
913
|
+
|
|
914
|
+
```text
|
|
915
|
+
目标 Gap RESOLVED
|
|
916
|
+
Decision 对该 Gap 不再敏感
|
|
917
|
+
所有 HIGH-DVI gaps 已处理
|
|
918
|
+
research budget exhausted
|
|
919
|
+
search saturation
|
|
920
|
+
需要新的 empirical study
|
|
921
|
+
用户要求停止
|
|
922
|
+
工具不可用且无有效降级路径
|
|
923
|
+
```
|
|
924
|
+
|
|
925
|
+
不允许“NEVER STOP”。
|
|
926
|
+
|
|
927
|
+
研究系统必须 bounded。
|
|
928
|
+
|
|
929
|
+
---
|
|
930
|
+
|
|
931
|
+
# 18. Decision 的自动化边界
|
|
932
|
+
|
|
933
|
+
Evidence Autoresearch 可以自动:
|
|
934
|
+
|
|
935
|
+
```text
|
|
936
|
+
生成新的 GraphRevision
|
|
937
|
+
运行 deterministic tribunal
|
|
938
|
+
生成 candidate DecisionSnapshot / DriftReport
|
|
939
|
+
```
|
|
940
|
+
|
|
941
|
+
但不得自动:
|
|
942
|
+
|
|
943
|
+
```text
|
|
944
|
+
执行真实世界干预
|
|
945
|
+
改变学校政策
|
|
946
|
+
开始人类受试 Pilot
|
|
947
|
+
对高影响 Decision 自动 promote 为 accepted operational decision
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
新增:
|
|
951
|
+
|
|
952
|
+
```text
|
|
953
|
+
DecisionSnapshot.status
|
|
954
|
+
= candidate | reviewed | accepted
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
若迁移成本过高,首版可先在 `extensions.review_status` 实现,再升级 schema。
|
|
958
|
+
|
|
959
|
+
Living refresh 生成:
|
|
960
|
+
|
|
961
|
+
```text
|
|
962
|
+
candidate
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
用户 / human gate 接受后:
|
|
966
|
+
|
|
967
|
+
```text
|
|
968
|
+
accepted
|
|
969
|
+
```
|
|
970
|
+
|
|
971
|
+
---
|
|
972
|
+
|
|
973
|
+
# 19. Loop B — Decision-to-Outcome 保持现有语义
|
|
974
|
+
|
|
975
|
+
不重写 `engine/pilot.py`。
|
|
976
|
+
|
|
977
|
+
保持:
|
|
978
|
+
|
|
979
|
+
```text
|
|
980
|
+
Decision
|
|
981
|
+
→ grounded StudyDesign
|
|
982
|
+
→ PilotRun
|
|
983
|
+
→ privacy-safe Data
|
|
984
|
+
→ validated AnalysisRun
|
|
985
|
+
→ local Finding
|
|
986
|
+
→ GraphRevision
|
|
987
|
+
→ DecisionSnapshot
|
|
988
|
+
```
|
|
989
|
+
|
|
990
|
+
Autoresearch 只负责在前面回答:
|
|
991
|
+
|
|
992
|
+
> 为什么现在应该从 literature 转入这个 Pilot?
|
|
993
|
+
|
|
994
|
+
---
|
|
995
|
+
|
|
996
|
+
# 20. Loop C — Skill Autoresearch
|
|
997
|
+
|
|
998
|
+
## 20.1 目标
|
|
999
|
+
|
|
1000
|
+
自动实验:
|
|
1001
|
+
|
|
1002
|
+
> 怎样让 EduEvidence 的真实研究质量更高,同时不破坏科学纪律、鲁棒性和成本?
|
|
1003
|
+
|
|
1004
|
+
---
|
|
1005
|
+
|
|
1006
|
+
## 20.2 基本循环
|
|
1007
|
+
|
|
1008
|
+
```text
|
|
1009
|
+
BASELINE
|
|
1010
|
+
↓
|
|
1011
|
+
Read previous experiments
|
|
1012
|
+
↓
|
|
1013
|
+
Propose ONE hypothesis
|
|
1014
|
+
↓
|
|
1015
|
+
Create candidate branch/worktree
|
|
1016
|
+
↓
|
|
1017
|
+
Modify allowed surface
|
|
1018
|
+
↓
|
|
1019
|
+
Fast deterministic gates
|
|
1020
|
+
↓
|
|
1021
|
+
DEV benchmark
|
|
1022
|
+
↓
|
|
1023
|
+
If promising → repeated empirical eval
|
|
1024
|
+
↓
|
|
1025
|
+
HOLDOUT / adversarial verify
|
|
1026
|
+
↓
|
|
1027
|
+
Promotion policy
|
|
1028
|
+
├─ KEEP → candidate best branch
|
|
1029
|
+
├─ REJECT → discard candidate code
|
|
1030
|
+
├─ RETEST → more repeats
|
|
1031
|
+
└─ HUMAN_REVIEW → ambiguous/high-impact
|
|
1032
|
+
↓
|
|
1033
|
+
Log everything
|
|
1034
|
+
↓
|
|
1035
|
+
Next experiment
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
---
|
|
1039
|
+
|
|
1040
|
+
# 21. Protected Scientific Core
|
|
1041
|
+
|
|
1042
|
+
新增:
|
|
1043
|
+
|
|
1044
|
+
```text
|
|
1045
|
+
autoevolve/protected.manifest.yaml
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
首版保护:
|
|
1049
|
+
|
|
1050
|
+
```yaml
|
|
1051
|
+
protected:
|
|
1052
|
+
- benchmarks/annotations/**
|
|
1053
|
+
- benchmarks/holdout/**
|
|
1054
|
+
- benchmarks/evaluator/**
|
|
1055
|
+
- schemas/**
|
|
1056
|
+
- references/scientific-invariants.md
|
|
1057
|
+
- scripts/pre_verdict_gate.py
|
|
1058
|
+
- scripts/compute_confidence.py
|
|
1059
|
+
- engine/graph_store.py::revision_integrity
|
|
1060
|
+
- engine/study_design.py::grounding_gate
|
|
1061
|
+
- tests/scientific_invariants/**
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
Runner 在实验前后计算 hash。
|
|
1065
|
+
|
|
1066
|
+
任何 protected mutation:
|
|
1067
|
+
|
|
1068
|
+
```text
|
|
1069
|
+
EXPERIMENT_INVALID
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
不进入评分。
|
|
1073
|
+
|
|
1074
|
+
---
|
|
1075
|
+
|
|
1076
|
+
# 22. Mutation Surface
|
|
1077
|
+
|
|
1078
|
+
## Tier A — Safe Mutable
|
|
1079
|
+
|
|
1080
|
+
适合自动实验:
|
|
1081
|
+
|
|
1082
|
+
```text
|
|
1083
|
+
retrieval query templates
|
|
1084
|
+
search ordering
|
|
1085
|
+
Challenge prompts
|
|
1086
|
+
context packing
|
|
1087
|
+
role instructions
|
|
1088
|
+
workflow wording
|
|
1089
|
+
few-shot examples
|
|
1090
|
+
report phrasing
|
|
1091
|
+
routing heuristics that do not alter scientific invariants
|
|
1092
|
+
model routing / cost strategy
|
|
1093
|
+
cache strategy
|
|
1094
|
+
```
|
|
1095
|
+
|
|
1096
|
+
---
|
|
1097
|
+
|
|
1098
|
+
## Tier B — Controlled Mutable
|
|
1099
|
+
|
|
1100
|
+
需要完整 regression:
|
|
1101
|
+
|
|
1102
|
+
```text
|
|
1103
|
+
OutcomeClassifier implementation
|
|
1104
|
+
ranking weights
|
|
1105
|
+
Complexity Gate thresholds
|
|
1106
|
+
Gap priority heuristics
|
|
1107
|
+
Graph linking heuristics
|
|
1108
|
+
retrieval dedupe heuristics
|
|
1109
|
+
orchestration policy
|
|
1110
|
+
```
|
|
1111
|
+
|
|
1112
|
+
---
|
|
1113
|
+
|
|
1114
|
+
## Tier C — Protected
|
|
1115
|
+
|
|
1116
|
+
不可自动修改:
|
|
1117
|
+
|
|
1118
|
+
```text
|
|
1119
|
+
Gold / Holdout
|
|
1120
|
+
Evaluator definitions
|
|
1121
|
+
Schema ground truth
|
|
1122
|
+
No Direct Learning Evidence → No ADOPT
|
|
1123
|
+
No False Precision
|
|
1124
|
+
Fail-closed causal analysis
|
|
1125
|
+
Synthetic/real separation
|
|
1126
|
+
StudyDesign grounding
|
|
1127
|
+
privacy / ethics constraints
|
|
1128
|
+
canonical revision integrity
|
|
1129
|
+
```
|
|
1130
|
+
|
|
1131
|
+
---
|
|
1132
|
+
|
|
1133
|
+
# 23. Outer Loop 不是单分数优化
|
|
1134
|
+
|
|
1135
|
+
Karpathy 原版可使用:
|
|
1136
|
+
|
|
1137
|
+
```text
|
|
1138
|
+
val_bpb ↓
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
EduEvidence 必须采用:
|
|
1142
|
+
|
|
1143
|
+
```text
|
|
1144
|
+
Constraint-first Pareto Evaluation
|
|
1145
|
+
```
|
|
1146
|
+
|
|
1147
|
+
---
|
|
1148
|
+
|
|
1149
|
+
# 24. 评估层级
|
|
1150
|
+
|
|
1151
|
+
## L0 — Scientific / Contract Hard Gates
|
|
1152
|
+
|
|
1153
|
+
任意失败:
|
|
1154
|
+
|
|
1155
|
+
```text
|
|
1156
|
+
REJECT
|
|
1157
|
+
```
|
|
1158
|
+
|
|
1159
|
+
包括:
|
|
1160
|
+
|
|
1161
|
+
```text
|
|
1162
|
+
Schema validity
|
|
1163
|
+
Graph traceability
|
|
1164
|
+
Study identity correctness
|
|
1165
|
+
Independent study counting
|
|
1166
|
+
No false precision
|
|
1167
|
+
No unsupported ADOPT
|
|
1168
|
+
Synthetic-data separation
|
|
1169
|
+
Grounded Gap requirement
|
|
1170
|
+
Protected file integrity
|
|
1171
|
+
PII / privacy guards
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
当前 `v2_graph_metrics.py` 继续作为其中一部分。
|
|
1175
|
+
|
|
1176
|
+
它明确只能测 software / contract conformance,不能声称 scientific truth;该边界保持。
|
|
1177
|
+
|
|
1178
|
+
---
|
|
1179
|
+
|
|
1180
|
+
## L1 — Scientific Correctness
|
|
1181
|
+
|
|
1182
|
+
```text
|
|
1183
|
+
Outcome Separation
|
|
1184
|
+
Citation Support
|
|
1185
|
+
Contradiction precision/recall
|
|
1186
|
+
Decision Calibration
|
|
1187
|
+
Scope Calibration
|
|
1188
|
+
Methodology issue detection
|
|
1189
|
+
Gap correctness
|
|
1190
|
+
```
|
|
1191
|
+
|
|
1192
|
+
使用:
|
|
1193
|
+
|
|
1194
|
+
```text
|
|
1195
|
+
gold annotations
|
|
1196
|
+
human/judge annotations where appropriate
|
|
1197
|
+
```
|
|
1198
|
+
|
|
1199
|
+
---
|
|
1200
|
+
|
|
1201
|
+
## L2 — Research Quality
|
|
1202
|
+
|
|
1203
|
+
新增:
|
|
1204
|
+
|
|
1205
|
+
```text
|
|
1206
|
+
Direct Evidence Gain
|
|
1207
|
+
Unique Eligible Evidence Yield
|
|
1208
|
+
Counter-evidence Yield
|
|
1209
|
+
Applicability Coverage
|
|
1210
|
+
Gap Resolution Rate
|
|
1211
|
+
Research Saturation Efficiency
|
|
1212
|
+
Decision-relevant Evidence Gain
|
|
1213
|
+
```
|
|
1214
|
+
|
|
1215
|
+
---
|
|
1216
|
+
|
|
1217
|
+
## L3 — Robustness
|
|
1218
|
+
|
|
1219
|
+
```text
|
|
1220
|
+
S/M/L
|
|
1221
|
+
multiple domains
|
|
1222
|
+
multiple model families
|
|
1223
|
+
repeated runs
|
|
1224
|
+
retrieval provider variation
|
|
1225
|
+
missing-data scenarios
|
|
1226
|
+
adversarial cases
|
|
1227
|
+
```
|
|
1228
|
+
|
|
1229
|
+
---
|
|
1230
|
+
|
|
1231
|
+
## L4 — Efficiency
|
|
1232
|
+
|
|
1233
|
+
```text
|
|
1234
|
+
token
|
|
1235
|
+
cost
|
|
1236
|
+
latency
|
|
1237
|
+
search calls
|
|
1238
|
+
fetch calls
|
|
1239
|
+
subagent count
|
|
1240
|
+
parallel speedup
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
---
|
|
1244
|
+
|
|
1245
|
+
## L5 — Simplicity
|
|
1246
|
+
|
|
1247
|
+
```text
|
|
1248
|
+
LOC delta
|
|
1249
|
+
SKILL.md token load
|
|
1250
|
+
number of rules
|
|
1251
|
+
number of branches
|
|
1252
|
+
new dependencies
|
|
1253
|
+
maintenance surface
|
|
1254
|
+
```
|
|
1255
|
+
|
|
1256
|
+
同等质量:
|
|
1257
|
+
|
|
1258
|
+
```text
|
|
1259
|
+
更简单 = 更优
|
|
1260
|
+
```
|
|
1261
|
+
|
|
1262
|
+
---
|
|
1263
|
+
|
|
1264
|
+
# 25. Promotion Policy
|
|
1265
|
+
|
|
1266
|
+
先看 hard gates。
|
|
1267
|
+
|
|
1268
|
+
```text
|
|
1269
|
+
if L0 fails:
|
|
1270
|
+
REJECT
|
|
1271
|
+
```
|
|
1272
|
+
|
|
1273
|
+
然后:
|
|
1274
|
+
|
|
1275
|
+
```text
|
|
1276
|
+
if core scientific metric material regression:
|
|
1277
|
+
REJECT
|
|
1278
|
+
```
|
|
1279
|
+
|
|
1280
|
+
否则比较 Pareto:
|
|
1281
|
+
|
|
1282
|
+
```text
|
|
1283
|
+
quality
|
|
1284
|
+
robustness
|
|
1285
|
+
efficiency
|
|
1286
|
+
simplicity
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
状态:
|
|
1290
|
+
|
|
1291
|
+
```text
|
|
1292
|
+
KEEP
|
|
1293
|
+
REJECT
|
|
1294
|
+
RETEST
|
|
1295
|
+
HUMAN_REVIEW
|
|
1296
|
+
CRASH
|
|
1297
|
+
INVALID
|
|
1298
|
+
```
|
|
1299
|
+
|
|
1300
|
+
---
|
|
1301
|
+
|
|
1302
|
+
# 26. Noise Floor 与重复运行
|
|
1303
|
+
|
|
1304
|
+
LLM 输出不是 deterministic benchmark。
|
|
1305
|
+
|
|
1306
|
+
保持当前 benchmark 的:
|
|
1307
|
+
|
|
1308
|
+
```text
|
|
1309
|
+
repeats >= 3
|
|
1310
|
+
prefer 5
|
|
1311
|
+
mean + variance / CI
|
|
1312
|
+
```
|
|
1313
|
+
|
|
1314
|
+
并进一步:
|
|
1315
|
+
|
|
1316
|
+
```text
|
|
1317
|
+
小于 noise floor 的提升不得自动 KEEP
|
|
1318
|
+
```
|
|
1319
|
+
|
|
1320
|
+
候选状态:
|
|
1321
|
+
|
|
1322
|
+
```text
|
|
1323
|
+
candidate delta < empirical noise
|
|
1324
|
+
→ RETEST
|
|
1325
|
+
```
|
|
1326
|
+
|
|
1327
|
+
不要让 +0.2% 的偶然波动累计成“自我进化”。
|
|
1328
|
+
|
|
1329
|
+
---
|
|
1330
|
+
|
|
1331
|
+
# 27. Benchmark 三分区
|
|
1332
|
+
|
|
1333
|
+
当前 30 题不能让 Agent 反复看到全部内容。
|
|
1334
|
+
|
|
1335
|
+
重组:
|
|
1336
|
+
|
|
1337
|
+
```text
|
|
1338
|
+
benchmarks/
|
|
1339
|
+
├── dev/
|
|
1340
|
+
├── holdout/
|
|
1341
|
+
├── adversarial/
|
|
1342
|
+
├── temporal/
|
|
1343
|
+
└── evaluator/
|
|
1344
|
+
```
|
|
1345
|
+
|
|
1346
|
+
---
|
|
1347
|
+
|
|
1348
|
+
## DEV
|
|
1349
|
+
|
|
1350
|
+
Agent 可以读取。
|
|
1351
|
+
|
|
1352
|
+
用途:
|
|
1353
|
+
|
|
1354
|
+
```text
|
|
1355
|
+
fast iteration
|
|
1356
|
+
```
|
|
1357
|
+
|
|
1358
|
+
---
|
|
1359
|
+
|
|
1360
|
+
## HOLDOUT
|
|
1361
|
+
|
|
1362
|
+
Candidate 不能读取题目与 gold。
|
|
1363
|
+
|
|
1364
|
+
只允许 protected evaluator 调用。
|
|
1365
|
+
|
|
1366
|
+
用途:
|
|
1367
|
+
|
|
1368
|
+
```text
|
|
1369
|
+
promotion gate
|
|
1370
|
+
```
|
|
1371
|
+
|
|
1372
|
+
---
|
|
1373
|
+
|
|
1374
|
+
## ADVERSARIAL
|
|
1375
|
+
|
|
1376
|
+
至少覆盖:
|
|
1377
|
+
|
|
1378
|
+
```text
|
|
1379
|
+
fake DOI
|
|
1380
|
+
fabricated citation
|
|
1381
|
+
search snippet pretending to be evidence
|
|
1382
|
+
missing CI
|
|
1383
|
+
same Study split into multiple Findings
|
|
1384
|
+
task performance treated as learning
|
|
1385
|
+
population mismatch
|
|
1386
|
+
subgroup overclaim
|
|
1387
|
+
contradictory evidence
|
|
1388
|
+
retracted / corrected source
|
|
1389
|
+
synthetic evidence leakage
|
|
1390
|
+
prompt injection in source content
|
|
1391
|
+
PII in empirical dataset
|
|
1392
|
+
singular DID / invalid causal design
|
|
1393
|
+
```
|
|
1394
|
+
|
|
1395
|
+
---
|
|
1396
|
+
|
|
1397
|
+
## TEMPORAL
|
|
1398
|
+
|
|
1399
|
+
用于:
|
|
1400
|
+
|
|
1401
|
+
```text
|
|
1402
|
+
recent evidence refresh
|
|
1403
|
+
new publications
|
|
1404
|
+
model/provider drift
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1407
|
+
不能 hard-code 成永久 gold;保留 evaluation timestamp。
|
|
1408
|
+
|
|
1409
|
+
---
|
|
1410
|
+
|
|
1411
|
+
# 28. Benchmark Hacking Guard
|
|
1412
|
+
|
|
1413
|
+
任何实验不得:
|
|
1414
|
+
|
|
1415
|
+
```text
|
|
1416
|
+
修改 evaluator
|
|
1417
|
+
读取 holdout gold
|
|
1418
|
+
减少 benchmark workload
|
|
1419
|
+
跳过失败题
|
|
1420
|
+
把 unknown 当 pass
|
|
1421
|
+
针对 question ID 写特例
|
|
1422
|
+
通过少输出降低 unsupported rate
|
|
1423
|
+
```
|
|
1424
|
+
|
|
1425
|
+
防止“少说少错”:
|
|
1426
|
+
|
|
1427
|
+
```text
|
|
1428
|
+
precision + recall 必须成对报告
|
|
1429
|
+
```
|
|
1430
|
+
|
|
1431
|
+
例如:
|
|
1432
|
+
|
|
1433
|
+
```text
|
|
1434
|
+
Contradiction precision
|
|
1435
|
+
Contradiction recall
|
|
1436
|
+
```
|
|
1437
|
+
|
|
1438
|
+
同时看。
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1442
|
+
# 29. Experiment Memory
|
|
1443
|
+
|
|
1444
|
+
新增:
|
|
1445
|
+
|
|
1446
|
+
```text
|
|
1447
|
+
autoevolve/
|
|
1448
|
+
├── program.md
|
|
1449
|
+
├── config.yaml
|
|
1450
|
+
├── protected.manifest.yaml
|
|
1451
|
+
├── results.tsv
|
|
1452
|
+
├── experiments.jsonl
|
|
1453
|
+
├── best.json
|
|
1454
|
+
├── ideas.md
|
|
1455
|
+
├── findings.md
|
|
1456
|
+
└── runs/
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
---
|
|
1460
|
+
|
|
1461
|
+
# 30. `results.tsv`
|
|
1462
|
+
|
|
1463
|
+
```text
|
|
1464
|
+
experiment_id
|
|
1465
|
+
parent_revision
|
|
1466
|
+
candidate_commit
|
|
1467
|
+
scope
|
|
1468
|
+
hypothesis
|
|
1469
|
+
eval_suite_hash
|
|
1470
|
+
model_manifest
|
|
1471
|
+
repeats
|
|
1472
|
+
hard_gates
|
|
1473
|
+
science_score
|
|
1474
|
+
research_score
|
|
1475
|
+
robustness
|
|
1476
|
+
cost
|
|
1477
|
+
latency
|
|
1478
|
+
complexity_delta
|
|
1479
|
+
status
|
|
1480
|
+
description
|
|
1481
|
+
```
|
|
1482
|
+
|
|
1483
|
+
失败同样写入。
|
|
1484
|
+
|
|
1485
|
+
`results.tsv` 是 append-only。
|
|
1486
|
+
|
|
1487
|
+
---
|
|
1488
|
+
|
|
1489
|
+
# 31. `experiments.jsonl`
|
|
1490
|
+
|
|
1491
|
+
每轮保留完整机器可读结构:
|
|
1492
|
+
|
|
1493
|
+
```json
|
|
1494
|
+
{
|
|
1495
|
+
"experiment_id": "EXP-0017",
|
|
1496
|
+
"hypothesis": "显式拆分 direct evidence 与 transfer query 能提高 contradiction/directness recall",
|
|
1497
|
+
"why": "E12/E15 显示当前 retrieve 在 outcome axis 上混合",
|
|
1498
|
+
"change": [],
|
|
1499
|
+
"baseline": {},
|
|
1500
|
+
"candidate": {},
|
|
1501
|
+
"result": "KEEP",
|
|
1502
|
+
"interpretation": "...",
|
|
1503
|
+
"what_this_rules_out": [],
|
|
1504
|
+
"next_ideas": []
|
|
1505
|
+
}
|
|
1506
|
+
```
|
|
1507
|
+
|
|
1508
|
+
Research Memory 不只保存 score。
|
|
1509
|
+
|
|
1510
|
+
---
|
|
1511
|
+
|
|
1512
|
+
# 32. Git Workflow
|
|
1513
|
+
|
|
1514
|
+
Autoresearch 永远不直接在 `main` 上实验。
|
|
1515
|
+
|
|
1516
|
+
```text
|
|
1517
|
+
main
|
|
1518
|
+
└── autoresearch/<run-tag>
|
|
1519
|
+
├── experiment commit 1
|
|
1520
|
+
├── experiment commit 2
|
|
1521
|
+
└── best candidate
|
|
1522
|
+
```
|
|
1523
|
+
|
|
1524
|
+
更稳妥实现:
|
|
1525
|
+
|
|
1526
|
+
```text
|
|
1527
|
+
git worktree
|
|
1528
|
+
```
|
|
1529
|
+
|
|
1530
|
+
每个 candidate 有独立工作树。
|
|
1531
|
+
|
|
1532
|
+
---
|
|
1533
|
+
|
|
1534
|
+
# 33. 自动 Promotion 边界
|
|
1535
|
+
|
|
1536
|
+
自动允许:
|
|
1537
|
+
|
|
1538
|
+
```text
|
|
1539
|
+
在 autoresearch branch 内 keep / revert
|
|
1540
|
+
更新 best candidate pointer
|
|
1541
|
+
生成 PR 内容
|
|
1542
|
+
```
|
|
1543
|
+
|
|
1544
|
+
自动禁止:
|
|
1545
|
+
|
|
1546
|
+
```text
|
|
1547
|
+
merge main
|
|
1548
|
+
release
|
|
1549
|
+
修改 protected core
|
|
1550
|
+
删除 benchmark history
|
|
1551
|
+
force push
|
|
1552
|
+
真实部署
|
|
1553
|
+
```
|
|
1554
|
+
|
|
1555
|
+
最终 merge 人工确认。
|
|
1556
|
+
|
|
1557
|
+
---
|
|
1558
|
+
|
|
1559
|
+
# 34. Plateau / Ceiling
|
|
1560
|
+
|
|
1561
|
+
Skill Autoresearch 不无限运行。
|
|
1562
|
+
|
|
1563
|
+
默认:
|
|
1564
|
+
|
|
1565
|
+
```text
|
|
1566
|
+
max_experiments_per_session = 25
|
|
1567
|
+
```
|
|
1568
|
+
|
|
1569
|
+
每日 unattended 可配置:
|
|
1570
|
+
|
|
1571
|
+
```text
|
|
1572
|
+
max_experiments = 50
|
|
1573
|
+
max_cost
|
|
1574
|
+
max_wall_time
|
|
1575
|
+
```
|
|
1576
|
+
|
|
1577
|
+
Plateau:
|
|
1578
|
+
|
|
1579
|
+
```text
|
|
1580
|
+
连续 5 个 valid experiments
|
|
1581
|
+
没有超过 noise floor 的 Pareto improvement
|
|
1582
|
+
```
|
|
1583
|
+
|
|
1584
|
+
停止并输出:
|
|
1585
|
+
|
|
1586
|
+
```text
|
|
1587
|
+
plateau report
|
|
1588
|
+
best revision
|
|
1589
|
+
near misses
|
|
1590
|
+
next hypotheses
|
|
1591
|
+
```
|
|
1592
|
+
|
|
1593
|
+
---
|
|
1594
|
+
|
|
1595
|
+
# 35. 每日自动进化模式
|
|
1596
|
+
|
|
1597
|
+
未来 CLI:
|
|
1598
|
+
|
|
1599
|
+
```bash
|
|
1600
|
+
eduevidence evolve run --budget daily
|
|
1601
|
+
```
|
|
1602
|
+
|
|
1603
|
+
配置:
|
|
1604
|
+
|
|
1605
|
+
```yaml
|
|
1606
|
+
schedule_profile: daily
|
|
1607
|
+
max_experiments: 20
|
|
1608
|
+
max_cost_usd: 5
|
|
1609
|
+
max_wall_minutes: 180
|
|
1610
|
+
mutation_tiers:
|
|
1611
|
+
- safe
|
|
1612
|
+
allow_controlled: false
|
|
1613
|
+
promotion: branch_only
|
|
1614
|
+
```
|
|
1615
|
+
|
|
1616
|
+
每次运行结束:
|
|
1617
|
+
|
|
1618
|
+
```text
|
|
1619
|
+
Daily Evolution Report
|
|
1620
|
+
├── baseline
|
|
1621
|
+
├── experiments attempted
|
|
1622
|
+
├── kept
|
|
1623
|
+
├── rejected
|
|
1624
|
+
├── crashes
|
|
1625
|
+
├── best candidate
|
|
1626
|
+
├── metric deltas
|
|
1627
|
+
├── cost
|
|
1628
|
+
├── protected integrity
|
|
1629
|
+
└── next ideas
|
|
1630
|
+
```
|
|
1631
|
+
|
|
1632
|
+
初版不让 daily mode 自动改 Tier B。
|
|
1633
|
+
|
|
1634
|
+
---
|
|
1635
|
+
|
|
1636
|
+
# 36. 多角色 / 子代理编排
|
|
1637
|
+
|
|
1638
|
+
完整权威定义:
|
|
1639
|
+
|
|
1640
|
+
[`docs/orchestration-role-model.md`](./orchestration-role-model.md)
|
|
1641
|
+
|
|
1642
|
+
核心改变:
|
|
1643
|
+
|
|
1644
|
+
```text
|
|
1645
|
+
8 role profiles
|
|
1646
|
+
≠
|
|
1647
|
+
8 permanent agents
|
|
1648
|
+
```
|
|
1649
|
+
|
|
1650
|
+
---
|
|
1651
|
+
|
|
1652
|
+
# 37. 新增 Lead Researcher / ExecutionPlanner
|
|
1653
|
+
|
|
1654
|
+
逻辑组件:
|
|
1655
|
+
|
|
1656
|
+
```text
|
|
1657
|
+
engine/orchestration/planner.py
|
|
1658
|
+
```
|
|
1659
|
+
|
|
1660
|
+
职责:
|
|
1661
|
+
|
|
1662
|
+
```text
|
|
1663
|
+
Workflow routing
|
|
1664
|
+
Complexity classification
|
|
1665
|
+
Capability DAG
|
|
1666
|
+
local vs delegate decision
|
|
1667
|
+
parallel groups
|
|
1668
|
+
TaskSpec creation
|
|
1669
|
+
budget allocation
|
|
1670
|
+
independence requirements
|
|
1671
|
+
fallback
|
|
1672
|
+
```
|
|
1673
|
+
|
|
1674
|
+
它不直接调用外部 daemon。
|
|
1675
|
+
|
|
1676
|
+
执行仍走:
|
|
1677
|
+
|
|
1678
|
+
```text
|
|
1679
|
+
integrations/agent_mcp.py::safe_spawn()
|
|
1680
|
+
```
|
|
1681
|
+
|
|
1682
|
+
---
|
|
1683
|
+
|
|
1684
|
+
# 38. TaskSpec
|
|
1685
|
+
|
|
1686
|
+
新增 schema:
|
|
1687
|
+
|
|
1688
|
+
```text
|
|
1689
|
+
schemas/vNext/task-spec.schema.json
|
|
1690
|
+
```
|
|
1691
|
+
|
|
1692
|
+
必须包括:
|
|
1693
|
+
|
|
1694
|
+
```text
|
|
1695
|
+
task_id
|
|
1696
|
+
run_id
|
|
1697
|
+
base_revision
|
|
1698
|
+
role_profile
|
|
1699
|
+
objective
|
|
1700
|
+
reason_for_delegation
|
|
1701
|
+
input_artifacts
|
|
1702
|
+
allowed_capabilities
|
|
1703
|
+
forbidden_actions
|
|
1704
|
+
scope
|
|
1705
|
+
budget
|
|
1706
|
+
output_contract
|
|
1707
|
+
termination
|
|
1708
|
+
```
|
|
1709
|
+
|
|
1710
|
+
没有 TaskSpec 不 spawn。
|
|
1711
|
+
|
|
1712
|
+
---
|
|
1713
|
+
|
|
1714
|
+
# 39. Single Writer
|
|
1715
|
+
|
|
1716
|
+
任何 Worker 只能输出:
|
|
1717
|
+
|
|
1718
|
+
```text
|
|
1719
|
+
Staging Artifact
|
|
1720
|
+
```
|
|
1721
|
+
|
|
1722
|
+
只有主引擎可以:
|
|
1723
|
+
|
|
1724
|
+
```text
|
|
1725
|
+
Graph commit
|
|
1726
|
+
DecisionSnapshot write
|
|
1727
|
+
KnowledgeGap persistent update
|
|
1728
|
+
StudyDesign write
|
|
1729
|
+
```
|
|
1730
|
+
|
|
1731
|
+
并行只发生在证据获取 / 分析。
|
|
1732
|
+
|
|
1733
|
+
Canonical State transition 串行。
|
|
1734
|
+
|
|
1735
|
+
---
|
|
1736
|
+
|
|
1737
|
+
# 40. 默认 S/M/L 拓扑
|
|
1738
|
+
|
|
1739
|
+
## S
|
|
1740
|
+
|
|
1741
|
+
```text
|
|
1742
|
+
Lead only
|
|
1743
|
+
subagents = 0
|
|
1744
|
+
```
|
|
1745
|
+
|
|
1746
|
+
---
|
|
1747
|
+
|
|
1748
|
+
## M
|
|
1749
|
+
|
|
1750
|
+
典型:
|
|
1751
|
+
|
|
1752
|
+
```text
|
|
1753
|
+
Lead
|
|
1754
|
+
├─ direct/support retrieval worker
|
|
1755
|
+
├─ counter/risk retrieval worker
|
|
1756
|
+
├─ optional Method Reviewer
|
|
1757
|
+
└─ Judge / Lead adjudication
|
|
1758
|
+
```
|
|
1759
|
+
|
|
1760
|
+
典型 active workers:
|
|
1761
|
+
|
|
1762
|
+
```text
|
|
1763
|
+
2–4
|
|
1764
|
+
```
|
|
1765
|
+
|
|
1766
|
+
---
|
|
1767
|
+
|
|
1768
|
+
## L
|
|
1769
|
+
|
|
1770
|
+
```text
|
|
1771
|
+
Lead
|
|
1772
|
+
│
|
|
1773
|
+
├─ Retrieval Worker — direct causal
|
|
1774
|
+
├─ Retrieval Worker — transfer/retention
|
|
1775
|
+
├─ Retrieval Worker — harms/null/counter
|
|
1776
|
+
├─ Retrieval Worker — applicability/freshness
|
|
1777
|
+
│
|
|
1778
|
+
├─ deterministic merge/dedupe
|
|
1779
|
+
├─ optional Extraction batches
|
|
1780
|
+
│
|
|
1781
|
+
├─ independent Skeptic
|
|
1782
|
+
├─ Method Reviewer
|
|
1783
|
+
│
|
|
1784
|
+
├─ Single Writer Graph commit
|
|
1785
|
+
├─ Evidence Judge
|
|
1786
|
+
└─ high-impact Independent Final Review
|
|
1787
|
+
```
|
|
1788
|
+
|
|
1789
|
+
默认:
|
|
1790
|
+
|
|
1791
|
+
```text
|
|
1792
|
+
parallel active workers <= 6
|
|
1793
|
+
```
|
|
1794
|
+
|
|
1795
|
+
禁止 recursive swarm。
|
|
1796
|
+
|
|
1797
|
+
---
|
|
1798
|
+
|
|
1799
|
+
# 41. Worker 按 Evidence Axis 拆,不按 Provider 拆
|
|
1800
|
+
|
|
1801
|
+
优先:
|
|
1802
|
+
|
|
1803
|
+
```text
|
|
1804
|
+
直接效果
|
|
1805
|
+
transfer / retention
|
|
1806
|
+
negative / null / risks
|
|
1807
|
+
population / subgroup
|
|
1808
|
+
current/fresh evidence
|
|
1809
|
+
```
|
|
1810
|
+
|
|
1811
|
+
而不是:
|
|
1812
|
+
|
|
1813
|
+
```text
|
|
1814
|
+
Google Worker
|
|
1815
|
+
Crossref Worker
|
|
1816
|
+
Semantic Scholar Worker
|
|
1817
|
+
```
|
|
1818
|
+
|
|
1819
|
+
Provider 是工具,不是 epistemic objective。
|
|
1820
|
+
|
|
1821
|
+
---
|
|
1822
|
+
|
|
1823
|
+
# 42. Independence 的三种含义
|
|
1824
|
+
|
|
1825
|
+
```text
|
|
1826
|
+
Search independence
|
|
1827
|
+
Context independence
|
|
1828
|
+
Model-family independence
|
|
1829
|
+
```
|
|
1830
|
+
|
|
1831
|
+
只在需要时使用。
|
|
1832
|
+
|
|
1833
|
+
Skeptic / final reviewer 才优先强调:
|
|
1834
|
+
|
|
1835
|
+
```text
|
|
1836
|
+
context + model-family independence
|
|
1837
|
+
```
|
|
1838
|
+
|
|
1839
|
+
Retriever workers 不必浪费成本全部使用不同旗舰模型。
|
|
1840
|
+
|
|
1841
|
+
---
|
|
1842
|
+
|
|
1843
|
+
# 43. Multi-agent Autoresearch
|
|
1844
|
+
|
|
1845
|
+
Outer Loop 可以自动实验:
|
|
1846
|
+
|
|
1847
|
+
```text
|
|
1848
|
+
1 vs 2 vs 4 retrieval workers
|
|
1849
|
+
provider split vs evidence-axis split
|
|
1850
|
+
Skeptic always vs triggered
|
|
1851
|
+
Method Review batch size
|
|
1852
|
+
TaskSpec detail level
|
|
1853
|
+
worker context bundle size
|
|
1854
|
+
S/M/L spawn thresholds
|
|
1855
|
+
fast/strong routing
|
|
1856
|
+
```
|
|
1857
|
+
|
|
1858
|
+
优化目标:
|
|
1859
|
+
|
|
1860
|
+
```text
|
|
1861
|
+
Marginal Evidence Gain / Added Cost
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
不是:
|
|
1865
|
+
|
|
1866
|
+
```text
|
|
1867
|
+
Agent 数量越多越高级
|
|
1868
|
+
```
|
|
1869
|
+
|
|
1870
|
+
---
|
|
1871
|
+
|
|
1872
|
+
# 44. Orchestration Metrics
|
|
1873
|
+
|
|
1874
|
+
新增:
|
|
1875
|
+
|
|
1876
|
+
```text
|
|
1877
|
+
Duplicate Search Rate
|
|
1878
|
+
Unique Eligible Evidence / Worker
|
|
1879
|
+
Coverage Gain / Worker
|
|
1880
|
+
Counter Evidence Yield
|
|
1881
|
+
Artifact Acceptance Rate
|
|
1882
|
+
Worker Failure Recovery Rate
|
|
1883
|
+
Coordination Token Cost
|
|
1884
|
+
Parallel Speedup
|
|
1885
|
+
Canonical State Conflict
|
|
1886
|
+
Unvalidated Text Used by Judge
|
|
1887
|
+
```
|
|
1888
|
+
|
|
1889
|
+
硬目标:
|
|
1890
|
+
|
|
1891
|
+
```text
|
|
1892
|
+
Canonical State Conflict = 0
|
|
1893
|
+
Unvalidated Text Used by Judge = 0
|
|
1894
|
+
```
|
|
1895
|
+
|
|
1896
|
+
---
|
|
1897
|
+
|
|
1898
|
+
# 45. EventBus 新事件
|
|
1899
|
+
|
|
1900
|
+
## Evidence Autoresearch
|
|
1901
|
+
|
|
1902
|
+
```text
|
|
1903
|
+
autoresearch.evidence.started
|
|
1904
|
+
autoresearch.gap.ranked
|
|
1905
|
+
autoresearch.hypothesis.created
|
|
1906
|
+
autoresearch.iteration.started
|
|
1907
|
+
autoresearch.search.completed
|
|
1908
|
+
autoresearch.iteration.no_gain
|
|
1909
|
+
autoresearch.iteration.evidence_gain
|
|
1910
|
+
autoresearch.saturation.detected
|
|
1911
|
+
autoresearch.empirical_needed
|
|
1912
|
+
autoresearch.evidence.completed
|
|
1913
|
+
```
|
|
1914
|
+
|
|
1915
|
+
## Skill Autoresearch
|
|
1916
|
+
|
|
1917
|
+
```text
|
|
1918
|
+
autoevolve.session.started
|
|
1919
|
+
autoevolve.experiment.created
|
|
1920
|
+
autoevolve.candidate.built
|
|
1921
|
+
autoevolve.eval.completed
|
|
1922
|
+
autoevolve.candidate.kept
|
|
1923
|
+
autoevolve.candidate.rejected
|
|
1924
|
+
autoevolve.candidate.retest
|
|
1925
|
+
autoevolve.plateau
|
|
1926
|
+
autoevolve.session.completed
|
|
1927
|
+
```
|
|
1928
|
+
|
|
1929
|
+
## Orchestration
|
|
1930
|
+
|
|
1931
|
+
```text
|
|
1932
|
+
orchestrator.plan.created
|
|
1933
|
+
orchestrator.task.dispatched
|
|
1934
|
+
orchestrator.task.completed
|
|
1935
|
+
orchestrator.task.failed
|
|
1936
|
+
orchestrator.artifact.accepted
|
|
1937
|
+
orchestrator.artifact.rejected
|
|
1938
|
+
```
|
|
1939
|
+
|
|
1940
|
+
---
|
|
1941
|
+
|
|
1942
|
+
# 46. CLI 设计
|
|
1943
|
+
|
|
1944
|
+
不破坏现有命令。
|
|
1945
|
+
|
|
1946
|
+
新增两个命令域:
|
|
1947
|
+
|
|
1948
|
+
```text
|
|
1949
|
+
research auto
|
|
1950
|
+
|
|
1951
|
+
evolve
|
|
1952
|
+
```
|
|
1953
|
+
|
|
1954
|
+
---
|
|
1955
|
+
|
|
1956
|
+
## Evidence Autoresearch
|
|
1957
|
+
|
|
1958
|
+
```bash
|
|
1959
|
+
eduevidence research auto start --project PRJ-...
|
|
1960
|
+
eduevidence research auto step --project PRJ-...
|
|
1961
|
+
eduevidence research auto status --project PRJ-...
|
|
1962
|
+
eduevidence research auto report --project PRJ-...
|
|
1963
|
+
eduevidence research auto stop --project PRJ-...
|
|
1964
|
+
```
|
|
1965
|
+
|
|
1966
|
+
`step` 永远只执行一轮,便于测试。
|
|
1967
|
+
|
|
1968
|
+
`start` 才执行 bounded loop。
|
|
1969
|
+
|
|
1970
|
+
---
|
|
1971
|
+
|
|
1972
|
+
## Skill Autoresearch
|
|
1973
|
+
|
|
1974
|
+
```bash
|
|
1975
|
+
eduevidence evolve init
|
|
1976
|
+
eduevidence evolve baseline
|
|
1977
|
+
eduevidence evolve run --max-experiments 20
|
|
1978
|
+
eduevidence evolve status
|
|
1979
|
+
eduevidence evolve report
|
|
1980
|
+
eduevidence evolve best
|
|
1981
|
+
eduevidence evolve prepare-pr
|
|
1982
|
+
```
|
|
1983
|
+
|
|
1984
|
+
不提供:
|
|
1985
|
+
|
|
1986
|
+
```text
|
|
1987
|
+
auto-merge-main
|
|
1988
|
+
```
|
|
1989
|
+
|
|
1990
|
+
---
|
|
1991
|
+
|
|
1992
|
+
# 47. 新目录
|
|
1993
|
+
|
|
1994
|
+
```text
|
|
1995
|
+
eduevidence/
|
|
1996
|
+
├── autoevolve/
|
|
1997
|
+
│ ├── program.md
|
|
1998
|
+
│ ├── config.yaml
|
|
1999
|
+
│ ├── protected.manifest.yaml
|
|
2000
|
+
│ ├── results.tsv
|
|
2001
|
+
│ ├── experiments.jsonl
|
|
2002
|
+
│ ├── best.json
|
|
2003
|
+
│ └── runs/
|
|
2004
|
+
│
|
|
2005
|
+
├── engine/
|
|
2006
|
+
│ ├── autoresearch/
|
|
2007
|
+
│ │ ├── controller.py
|
|
2008
|
+
│ │ ├── gap_priority.py
|
|
2009
|
+
│ │ ├── hypothesis.py
|
|
2010
|
+
│ │ ├── iteration.py
|
|
2011
|
+
│ │ ├── saturation.py
|
|
2012
|
+
│ │ ├── research_memory.py
|
|
2013
|
+
│ │ └── contracts.py
|
|
2014
|
+
│ │
|
|
2015
|
+
│ ├── orchestration/
|
|
2016
|
+
│ │ ├── planner.py
|
|
2017
|
+
│ │ ├── role_registry.py
|
|
2018
|
+
│ │ ├── task_spec.py
|
|
2019
|
+
│ │ ├── worker_result.py
|
|
2020
|
+
│ │ └── merge.py
|
|
2021
|
+
│ │
|
|
2022
|
+
│ └── autoevolve/
|
|
2023
|
+
│ ├── controller.py
|
|
2024
|
+
│ ├── mutation_scope.py
|
|
2025
|
+
│ ├── evaluator.py
|
|
2026
|
+
│ ├── promotion.py
|
|
2027
|
+
│ ├── experiment_log.py
|
|
2028
|
+
│ └── git_workspace.py
|
|
2029
|
+
│
|
|
2030
|
+
├── skill/
|
|
2031
|
+
│ ├── roles/
|
|
2032
|
+
│ │ └── registry.yaml
|
|
2033
|
+
│ └── agents/ # compatibility during migration
|
|
2034
|
+
│
|
|
2035
|
+
├── benchmarks/
|
|
2036
|
+
│ ├── dev/
|
|
2037
|
+
│ ├── holdout/
|
|
2038
|
+
│ ├── adversarial/
|
|
2039
|
+
│ ├── temporal/
|
|
2040
|
+
│ └── evaluator/
|
|
2041
|
+
│
|
|
2042
|
+
└── schemas/vNext/
|
|
2043
|
+
```
|
|
2044
|
+
|
|
2045
|
+
---
|
|
2046
|
+
|
|
2047
|
+
# 48. 新 Schema
|
|
2048
|
+
|
|
2049
|
+
首版:
|
|
2050
|
+
|
|
2051
|
+
```text
|
|
2052
|
+
research-iteration.schema.json
|
|
2053
|
+
research-strategy.schema.json
|
|
2054
|
+
negative-search-record.schema.json
|
|
2055
|
+
gap-priority.schema.json
|
|
2056
|
+
task-spec.schema.json
|
|
2057
|
+
worker-result.schema.json
|
|
2058
|
+
execution-plan.schema.json
|
|
2059
|
+
skill-experiment.schema.json
|
|
2060
|
+
eval-snapshot.schema.json
|
|
2061
|
+
autoevolve-session.schema.json
|
|
2062
|
+
```
|
|
2063
|
+
|
|
2064
|
+
不立即重写原 v2/v3/v4 schema。
|
|
2065
|
+
|
|
2066
|
+
---
|
|
2067
|
+
|
|
2068
|
+
# 49. ResearchIteration Schema 核心字段
|
|
2069
|
+
|
|
2070
|
+
```text
|
|
2071
|
+
iteration_id
|
|
2072
|
+
project_id
|
|
2073
|
+
base_graph_revision
|
|
2074
|
+
gap_id
|
|
2075
|
+
hypothesis
|
|
2076
|
+
strategy
|
|
2077
|
+
budget
|
|
2078
|
+
execution_plan_id
|
|
2079
|
+
search_attempts
|
|
2080
|
+
candidate_sources
|
|
2081
|
+
validated_evidence_ids
|
|
2082
|
+
negative_search_ids
|
|
2083
|
+
evidence_gain
|
|
2084
|
+
new_graph_revision|null
|
|
2085
|
+
decision_snapshot_id|null
|
|
2086
|
+
status
|
|
2087
|
+
started_at
|
|
2088
|
+
completed_at
|
|
2089
|
+
```
|
|
2090
|
+
|
|
2091
|
+
状态:
|
|
2092
|
+
|
|
2093
|
+
```text
|
|
2094
|
+
completed_gain
|
|
2095
|
+
completed_no_gain
|
|
2096
|
+
search_saturated
|
|
2097
|
+
empirical_needed
|
|
2098
|
+
budget_exhausted
|
|
2099
|
+
tool_failure
|
|
2100
|
+
invalid
|
|
2101
|
+
```
|
|
2102
|
+
|
|
2103
|
+
---
|
|
2104
|
+
|
|
2105
|
+
# 50. SkillExperiment Schema 核心字段
|
|
2106
|
+
|
|
2107
|
+
```text
|
|
2108
|
+
experiment_id
|
|
2109
|
+
session_id
|
|
2110
|
+
parent_skill_revision
|
|
2111
|
+
hypothesis
|
|
2112
|
+
mutation_scope
|
|
2113
|
+
changed_files
|
|
2114
|
+
candidate_commit
|
|
2115
|
+
baseline_eval_id
|
|
2116
|
+
candidate_eval_id
|
|
2117
|
+
protected_hash_before
|
|
2118
|
+
protected_hash_after
|
|
2119
|
+
status
|
|
2120
|
+
promotion_reason
|
|
2121
|
+
complexity_delta
|
|
2122
|
+
```
|
|
2123
|
+
|
|
2124
|
+
---
|
|
2125
|
+
|
|
2126
|
+
# 51. Dashboard / Web Studio
|
|
2127
|
+
|
|
2128
|
+
不是 P0。
|
|
2129
|
+
|
|
2130
|
+
在 Engine 稳定后新增两个面板:
|
|
2131
|
+
|
|
2132
|
+
## Research Loop
|
|
2133
|
+
|
|
2134
|
+
```text
|
|
2135
|
+
Current Decision
|
|
2136
|
+
Open Gaps ranked by DVI
|
|
2137
|
+
Current Research Hypothesis
|
|
2138
|
+
Iterations
|
|
2139
|
+
Evidence Gain
|
|
2140
|
+
Search Saturation
|
|
2141
|
+
Decision Drift
|
|
2142
|
+
```
|
|
2143
|
+
|
|
2144
|
+
## Skill Evolution
|
|
2145
|
+
|
|
2146
|
+
```text
|
|
2147
|
+
Baseline vs Best
|
|
2148
|
+
Experiment Timeline
|
|
2149
|
+
Keep / Reject
|
|
2150
|
+
Metric Radar
|
|
2151
|
+
Cost
|
|
2152
|
+
Plateau
|
|
2153
|
+
Protected Core status
|
|
2154
|
+
```
|
|
2155
|
+
|
|
2156
|
+
不要做“8 个 Agent 头像同时工作”。
|
|
2157
|
+
|
|
2158
|
+
展示:
|
|
2159
|
+
|
|
2160
|
+
```text
|
|
2161
|
+
Capability DAG + active TaskSpec
|
|
2162
|
+
```
|
|
2163
|
+
|
|
2164
|
+
---
|
|
2165
|
+
|
|
2166
|
+
# 52. SKILL.md 改造原则
|
|
2167
|
+
|
|
2168
|
+
不要把整套 Autoresearch 写进顶层 `SKILL.md`。
|
|
2169
|
+
|
|
2170
|
+
SKILL.md 只加入:
|
|
2171
|
+
|
|
2172
|
+
```text
|
|
2173
|
+
Autonomous Research Meta-Layer
|
|
2174
|
+
```
|
|
2175
|
+
|
|
2176
|
+
约 20–35 行,说明:
|
|
2177
|
+
|
|
2178
|
+
```text
|
|
2179
|
+
何时启用 Evidence Autoresearch
|
|
2180
|
+
何时启用 Skill Autoresearch(仅维护者/开发模式)
|
|
2181
|
+
科学不变量
|
|
2182
|
+
references 路由
|
|
2183
|
+
```
|
|
2184
|
+
|
|
2185
|
+
详细内容进入:
|
|
2186
|
+
|
|
2187
|
+
```text
|
|
2188
|
+
references/autoresearch.md
|
|
2189
|
+
references/orchestration.md
|
|
2190
|
+
references/evaluation-policy.md
|
|
2191
|
+
```
|
|
2192
|
+
|
|
2193
|
+
保持 SKILL.md control-plane。
|
|
2194
|
+
|
|
2195
|
+
---
|
|
2196
|
+
|
|
2197
|
+
# 53. Skill 自进化绝不能改用户研究状态
|
|
2198
|
+
|
|
2199
|
+
Skill Autoresearch 使用 fixture / benchmark project。
|
|
2200
|
+
|
|
2201
|
+
不得对真实用户 Project:
|
|
2202
|
+
|
|
2203
|
+
```text
|
|
2204
|
+
自动修改 Graph
|
|
2205
|
+
生成新的 accepted Decision
|
|
2206
|
+
删除证据
|
|
2207
|
+
重写研究历史
|
|
2208
|
+
```
|
|
2209
|
+
|
|
2210
|
+
Outer Loop 与用户数据物理隔离。
|
|
2211
|
+
|
|
2212
|
+
---
|
|
2213
|
+
|
|
2214
|
+
# 54. Evidence Autoresearch 绝不能改 Skill
|
|
2215
|
+
|
|
2216
|
+
相反:
|
|
2217
|
+
|
|
2218
|
+
Evidence Autoresearch 只可以影响:
|
|
2219
|
+
|
|
2220
|
+
```text
|
|
2221
|
+
Project research state
|
|
2222
|
+
ResearchIteration log
|
|
2223
|
+
GraphRevision
|
|
2224
|
+
candidate DecisionSnapshot
|
|
2225
|
+
```
|
|
2226
|
+
|
|
2227
|
+
不能修改 repo:
|
|
2228
|
+
|
|
2229
|
+
```text
|
|
2230
|
+
SKILL.md
|
|
2231
|
+
retrieval prompts
|
|
2232
|
+
engine code
|
|
2233
|
+
evaluator
|
|
2234
|
+
```
|
|
2235
|
+
|
|
2236
|
+
两条 loop 权限完全分离。
|
|
2237
|
+
|
|
2238
|
+
---
|
|
2239
|
+
|
|
2240
|
+
# 55. Agent MCP 权限
|
|
2241
|
+
|
|
2242
|
+
继续遵守:
|
|
2243
|
+
|
|
2244
|
+
```text
|
|
2245
|
+
Detect
|
|
2246
|
+
→ Recommend
|
|
2247
|
+
→ explicit user approval
|
|
2248
|
+
→ safe_spawn
|
|
2249
|
+
```
|
|
2250
|
+
|
|
2251
|
+
Autoresearch 不绕过用户已经建立的模型 / CLI authorization。
|
|
2252
|
+
|
|
2253
|
+
在 unattended Skill Autoresearch session 中,只能使用:
|
|
2254
|
+
|
|
2255
|
+
```text
|
|
2256
|
+
session 开始前已批准的 model/CLI allowlist
|
|
2257
|
+
```
|
|
2258
|
+
|
|
2259
|
+
不能中途自行授权新模型。
|
|
2260
|
+
|
|
2261
|
+
---
|
|
2262
|
+
|
|
2263
|
+
# 56. 安全与研究诚信
|
|
2264
|
+
|
|
2265
|
+
硬规则:
|
|
2266
|
+
|
|
2267
|
+
```text
|
|
2268
|
+
No evaluator mutation
|
|
2269
|
+
No holdout leakage
|
|
2270
|
+
No evidence deletion because unfavorable
|
|
2271
|
+
No fake precision
|
|
2272
|
+
No fake citations
|
|
2273
|
+
No autonomous human-subject study launch
|
|
2274
|
+
No PII upload
|
|
2275
|
+
No automatic main merge
|
|
2276
|
+
No recursive unbounded agent spawning
|
|
2277
|
+
No evidence-set optimization toward desired verdict
|
|
2278
|
+
```
|
|
2279
|
+
|
|
2280
|
+
---
|
|
2281
|
+
|
|
2282
|
+
# 57. Tests — Evidence Autoresearch
|
|
2283
|
+
|
|
2284
|
+
新增:
|
|
2285
|
+
|
|
2286
|
+
```text
|
|
2287
|
+
tests/test_autoresearch_gap_priority.py
|
|
2288
|
+
tests/test_autoresearch_iteration.py
|
|
2289
|
+
tests/test_autoresearch_negative_search.py
|
|
2290
|
+
tests/test_autoresearch_saturation.py
|
|
2291
|
+
tests/test_autoresearch_transition_to_pilot.py
|
|
2292
|
+
tests/test_autoresearch_append_only.py
|
|
2293
|
+
tests/test_autoresearch_decision_drift.py
|
|
2294
|
+
```
|
|
2295
|
+
|
|
2296
|
+
必须覆盖:
|
|
2297
|
+
|
|
2298
|
+
```text
|
|
2299
|
+
negative evidence 不被丢弃
|
|
2300
|
+
no-result 不被写成 no evidence exists
|
|
2301
|
+
no-gain iteration 不产生 GraphRevision
|
|
2302
|
+
重复 evidence 不产生 revision
|
|
2303
|
+
high-DVI saturated gap → empirical_needed
|
|
2304
|
+
low-DVI gap 不自动生成 Pilot
|
|
2305
|
+
```
|
|
2306
|
+
|
|
2307
|
+
---
|
|
2308
|
+
|
|
2309
|
+
# 58. Tests — Orchestration
|
|
2310
|
+
|
|
2311
|
+
新增:
|
|
2312
|
+
|
|
2313
|
+
```text
|
|
2314
|
+
tests/test_execution_planner.py
|
|
2315
|
+
tests/test_task_spec.py
|
|
2316
|
+
tests/test_worker_merge.py
|
|
2317
|
+
tests/test_single_writer.py
|
|
2318
|
+
tests/test_role_registry.py
|
|
2319
|
+
tests/test_orchestration_budget.py
|
|
2320
|
+
```
|
|
2321
|
+
|
|
2322
|
+
硬测:
|
|
2323
|
+
|
|
2324
|
+
```text
|
|
2325
|
+
S task = 0 workers by default
|
|
2326
|
+
M can selectively spawn
|
|
2327
|
+
L <= configured worker cap
|
|
2328
|
+
worker cannot graph_commit
|
|
2329
|
+
Judge only consumes validated artifacts
|
|
2330
|
+
no direct spawn bypasses safe_spawn
|
|
2331
|
+
```
|
|
2332
|
+
|
|
2333
|
+
---
|
|
2334
|
+
|
|
2335
|
+
# 59. Tests — Skill Autoresearch
|
|
2336
|
+
|
|
2337
|
+
新增:
|
|
2338
|
+
|
|
2339
|
+
```text
|
|
2340
|
+
tests/test_autoevolve_protected_manifest.py
|
|
2341
|
+
tests/test_autoevolve_experiment_log.py
|
|
2342
|
+
tests/test_autoevolve_promotion.py
|
|
2343
|
+
tests/test_autoevolve_noise_floor.py
|
|
2344
|
+
tests/test_autoevolve_plateau.py
|
|
2345
|
+
tests/test_autoevolve_holdout_isolation.py
|
|
2346
|
+
tests/test_autoevolve_git_workspace.py
|
|
2347
|
+
```
|
|
2348
|
+
|
|
2349
|
+
---
|
|
2350
|
+
|
|
2351
|
+
# 60. CI 扩展
|
|
2352
|
+
|
|
2353
|
+
现有三 job 继续。
|
|
2354
|
+
|
|
2355
|
+
新增:
|
|
2356
|
+
|
|
2357
|
+
```text
|
|
2358
|
+
scientific-invariants
|
|
2359
|
+
protected-manifest
|
|
2360
|
+
orchestration-contract
|
|
2361
|
+
```
|
|
2362
|
+
|
|
2363
|
+
PR 来自 `autoresearch/*` 时额外运行:
|
|
2364
|
+
|
|
2365
|
+
```text
|
|
2366
|
+
DEV regression
|
|
2367
|
+
holdout promotion gate
|
|
2368
|
+
adversarial gate
|
|
2369
|
+
complexity report
|
|
2370
|
+
```
|
|
2371
|
+
|
|
2372
|
+
Empirical model eval 成本较高:
|
|
2373
|
+
|
|
2374
|
+
```text
|
|
2375
|
+
不放在每个普通 commit
|
|
2376
|
+
```
|
|
2377
|
+
|
|
2378
|
+
只在:
|
|
2379
|
+
|
|
2380
|
+
```text
|
|
2381
|
+
manual workflow_dispatch
|
|
2382
|
+
nightly / scheduled environment
|
|
2383
|
+
candidate promotion
|
|
2384
|
+
```
|
|
2385
|
+
|
|
2386
|
+
运行。
|
|
2387
|
+
|
|
2388
|
+
---
|
|
2389
|
+
|
|
2390
|
+
# 61. Phase 0 — Architecture Freeze
|
|
2391
|
+
|
|
2392
|
+
交付:
|
|
2393
|
+
|
|
2394
|
+
```text
|
|
2395
|
+
docs/autoresearch-evolution-plan.md
|
|
2396
|
+
docs/orchestration-role-model.md
|
|
2397
|
+
references/scientific-invariants.md
|
|
2398
|
+
```
|
|
2399
|
+
|
|
2400
|
+
冻结:
|
|
2401
|
+
|
|
2402
|
+
```text
|
|
2403
|
+
3 loops
|
|
2404
|
+
5 orchestration concepts
|
|
2405
|
+
Single Writer
|
|
2406
|
+
protected evaluator
|
|
2407
|
+
append-only evidence
|
|
2408
|
+
```
|
|
2409
|
+
|
|
2410
|
+
验收:
|
|
2411
|
+
|
|
2412
|
+
所有核心文档不再把 8 role 写成 8 常驻 Agents。
|
|
2413
|
+
|
|
2414
|
+
---
|
|
2415
|
+
|
|
2416
|
+
# 62. Phase 1 — Orchestration Clarity
|
|
2417
|
+
|
|
2418
|
+
实现:
|
|
2419
|
+
|
|
2420
|
+
```text
|
|
2421
|
+
skill/roles/registry.yaml
|
|
2422
|
+
ExecutionPlanner
|
|
2423
|
+
TaskSpec
|
|
2424
|
+
WorkerResult
|
|
2425
|
+
ExecutionPlan artifact
|
|
2426
|
+
```
|
|
2427
|
+
|
|
2428
|
+
先不做 Autoresearch。
|
|
2429
|
+
|
|
2430
|
+
原因:
|
|
2431
|
+
|
|
2432
|
+
> 不能在不清晰的 agent topology 上建立自主循环。
|
|
2433
|
+
|
|
2434
|
+
验收:
|
|
2435
|
+
|
|
2436
|
+
```text
|
|
2437
|
+
S/M/L deterministic plan tests
|
|
2438
|
+
Agent MCP approval tests 全通过
|
|
2439
|
+
safe_spawn 仍是唯一 spawn path
|
|
2440
|
+
```
|
|
2441
|
+
|
|
2442
|
+
---
|
|
2443
|
+
|
|
2444
|
+
# 63. Phase 2 — Evidence Research Memory
|
|
2445
|
+
|
|
2446
|
+
实现:
|
|
2447
|
+
|
|
2448
|
+
```text
|
|
2449
|
+
ResearchIteration
|
|
2450
|
+
NegativeSearchRecord
|
|
2451
|
+
ResearchStrategy
|
|
2452
|
+
append-only iteration history
|
|
2453
|
+
```
|
|
2454
|
+
|
|
2455
|
+
此阶段仍由人工选择 Gap。
|
|
2456
|
+
|
|
2457
|
+
CLI:
|
|
2458
|
+
|
|
2459
|
+
```bash
|
|
2460
|
+
eduevidence research auto step --gap GAP-...
|
|
2461
|
+
```
|
|
2462
|
+
|
|
2463
|
+
验收:
|
|
2464
|
+
|
|
2465
|
+
```text
|
|
2466
|
+
一轮可完整复现
|
|
2467
|
+
no-gain 正确记录
|
|
2468
|
+
Graph 只在 valid evidence 时 revision
|
|
2469
|
+
```
|
|
2470
|
+
|
|
2471
|
+
---
|
|
2472
|
+
|
|
2473
|
+
# 64. Phase 3 — Gap Priority + DVI
|
|
2474
|
+
|
|
2475
|
+
扩展 `engine/gaps.py`,不替换现有 coverage derivation。
|
|
2476
|
+
|
|
2477
|
+
新增:
|
|
2478
|
+
|
|
2479
|
+
```text
|
|
2480
|
+
DVI band
|
|
2481
|
+
minimum useful evidence
|
|
2482
|
+
researchability
|
|
2483
|
+
research cost band
|
|
2484
|
+
```
|
|
2485
|
+
|
|
2486
|
+
验收 fixture:
|
|
2487
|
+
|
|
2488
|
+
CS1 案例中:
|
|
2489
|
+
|
|
2490
|
+
```text
|
|
2491
|
+
missing independent transfer
|
|
2492
|
+
```
|
|
2493
|
+
|
|
2494
|
+
应优先于:
|
|
2495
|
+
|
|
2496
|
+
```text
|
|
2497
|
+
低 decision relevance 的满意度缺口
|
|
2498
|
+
```
|
|
2499
|
+
|
|
2500
|
+
同时必须给出可读 rationale。
|
|
2501
|
+
|
|
2502
|
+
---
|
|
2503
|
+
|
|
2504
|
+
# 65. Phase 4 — Bounded Evidence Autoresearch
|
|
2505
|
+
|
|
2506
|
+
实现 controller:
|
|
2507
|
+
|
|
2508
|
+
```text
|
|
2509
|
+
rank
|
|
2510
|
+
→ select
|
|
2511
|
+
→ hypothesize
|
|
2512
|
+
→ dispatch
|
|
2513
|
+
→ validate
|
|
2514
|
+
→ measure
|
|
2515
|
+
→ log
|
|
2516
|
+
→ next
|
|
2517
|
+
```
|
|
2518
|
+
|
|
2519
|
+
首版:
|
|
2520
|
+
|
|
2521
|
+
```text
|
|
2522
|
+
max_iterations = 5
|
|
2523
|
+
```
|
|
2524
|
+
|
|
2525
|
+
默认不是无限。
|
|
2526
|
+
|
|
2527
|
+
验收:
|
|
2528
|
+
|
|
2529
|
+
```text
|
|
2530
|
+
可以跑完整 3–5 iteration
|
|
2531
|
+
worker failure 可恢复
|
|
2532
|
+
不重复同一个失败策略
|
|
2533
|
+
```
|
|
2534
|
+
|
|
2535
|
+
---
|
|
2536
|
+
|
|
2537
|
+
# 66. Phase 5 — Search Saturation → Pilot Bridge
|
|
2538
|
+
|
|
2539
|
+
实现:
|
|
2540
|
+
|
|
2541
|
+
```text
|
|
2542
|
+
saturation.py
|
|
2543
|
+
```
|
|
2544
|
+
|
|
2545
|
+
然后连接:
|
|
2546
|
+
|
|
2547
|
+
```text
|
|
2548
|
+
SEARCH_SATURATED
|
|
2549
|
+
+ HIGH DVI
|
|
2550
|
+
→ EMPIRICAL_EVIDENCE_NEEDED
|
|
2551
|
+
→ existing StudyDesign gate
|
|
2552
|
+
```
|
|
2553
|
+
|
|
2554
|
+
验收:
|
|
2555
|
+
|
|
2556
|
+
```text
|
|
2557
|
+
不能直接凭“资料少”生成 Pilot
|
|
2558
|
+
必须有 Gap + attempts + saturation evidence
|
|
2559
|
+
```
|
|
2560
|
+
|
|
2561
|
+
---
|
|
2562
|
+
|
|
2563
|
+
# 67. Phase 6 — Skill Autoresearch MVP
|
|
2564
|
+
|
|
2565
|
+
先只允许 Tier A mutation。
|
|
2566
|
+
|
|
2567
|
+
运行:
|
|
2568
|
+
|
|
2569
|
+
```text
|
|
2570
|
+
baseline
|
|
2571
|
+
→ one change
|
|
2572
|
+
→ deterministic gates
|
|
2573
|
+
→ DEV
|
|
2574
|
+
→ keep/reject
|
|
2575
|
+
→ log
|
|
2576
|
+
```
|
|
2577
|
+
|
|
2578
|
+
不做 nightly。
|
|
2579
|
+
|
|
2580
|
+
验收:
|
|
2581
|
+
|
|
2582
|
+
```text
|
|
2583
|
+
protected mutation = INVALID
|
|
2584
|
+
bad candidate 自动回退
|
|
2585
|
+
results.tsv append-only
|
|
2586
|
+
best pointer 正确
|
|
2587
|
+
```
|
|
2588
|
+
|
|
2589
|
+
---
|
|
2590
|
+
|
|
2591
|
+
# 68. Phase 7 — Holdout / Adversarial / Empirical Promotion
|
|
2592
|
+
|
|
2593
|
+
实现:
|
|
2594
|
+
|
|
2595
|
+
```text
|
|
2596
|
+
DEV / HOLDOUT separation
|
|
2597
|
+
noise floor
|
|
2598
|
+
repeated empirical run
|
|
2599
|
+
adversarial suite
|
|
2600
|
+
Pareto promotion
|
|
2601
|
+
```
|
|
2602
|
+
|
|
2603
|
+
验收:
|
|
2604
|
+
|
|
2605
|
+
不能通过:
|
|
2606
|
+
|
|
2607
|
+
```text
|
|
2608
|
+
输出更少
|
|
2609
|
+
只在 DEV 特化
|
|
2610
|
+
破坏 contradiction recall
|
|
2611
|
+
增加巨大复杂度换微小收益
|
|
2612
|
+
```
|
|
2613
|
+
|
|
2614
|
+
的方式 KEEP。
|
|
2615
|
+
|
|
2616
|
+
---
|
|
2617
|
+
|
|
2618
|
+
# 69. Phase 8 — Daily Evolution
|
|
2619
|
+
|
|
2620
|
+
加入:
|
|
2621
|
+
|
|
2622
|
+
```text
|
|
2623
|
+
bounded daily profile
|
|
2624
|
+
checkpoint
|
|
2625
|
+
plateau
|
|
2626
|
+
budget
|
|
2627
|
+
PR preparation
|
|
2628
|
+
```
|
|
2629
|
+
|
|
2630
|
+
初版只:
|
|
2631
|
+
|
|
2632
|
+
```text
|
|
2633
|
+
branch_only
|
|
2634
|
+
```
|
|
2635
|
+
|
|
2636
|
+
绝不自动 merge。
|
|
2637
|
+
|
|
2638
|
+
---
|
|
2639
|
+
|
|
2640
|
+
# 70. Phase 9 — UI / Showcase
|
|
2641
|
+
|
|
2642
|
+
Research Studio 增加:
|
|
2643
|
+
|
|
2644
|
+
```text
|
|
2645
|
+
Decision State
|
|
2646
|
+
Gap Priority
|
|
2647
|
+
Autoresearch Iterations
|
|
2648
|
+
Research Saturation
|
|
2649
|
+
Revision Diff
|
|
2650
|
+
```
|
|
2651
|
+
|
|
2652
|
+
Developer 模式增加:
|
|
2653
|
+
|
|
2654
|
+
```text
|
|
2655
|
+
Skill Evolution
|
|
2656
|
+
```
|
|
2657
|
+
|
|
2658
|
+
公开报告默认不展示内部自我优化 debug 信息。
|
|
2659
|
+
|
|
2660
|
+
---
|
|
2661
|
+
|
|
2662
|
+
# 71. 文件变更矩阵
|
|
2663
|
+
|
|
2664
|
+
| 文件/目录 | 动作 |
|
|
2665
|
+
|---|---|
|
|
2666
|
+
| `SKILL.md` | 小改:加入 meta-layer 路由,不塞实现细节 |
|
|
2667
|
+
| `docs/architecture.md` | Phase 1 后更新 5 概念分层 |
|
|
2668
|
+
| `docs/living-evidence.md` | Phase 4 后加入主动 Gap research loop |
|
|
2669
|
+
| `docs/benchmark.md` | Phase 7 更新 DEV/HOLDOUT/ADV |
|
|
2670
|
+
| `docs/agent-mcp-enhanced-mode.md` | Phase 1 改成 ExecutionPlanner → TaskSpec → safe_spawn |
|
|
2671
|
+
| `skill/agents/*` | 先兼容保留 |
|
|
2672
|
+
| `skill/roles/registry.yaml` | 新增 |
|
|
2673
|
+
| `engine/gaps.py` | 扩展 priority metadata,不改 coverage truth |
|
|
2674
|
+
| `engine/living.py` | 复用 ingestion;增加 controller adapter,不塞 orchestrator |
|
|
2675
|
+
| `engine/autoresearch/*` | 新增 |
|
|
2676
|
+
| `engine/orchestration/*` | 新增 |
|
|
2677
|
+
| `engine/autoevolve/*` | 新增 |
|
|
2678
|
+
| `integrations/agent_mcp.py` | Phase 1 改读取 registry / TaskSpec,保留 gate |
|
|
2679
|
+
| `benchmarks/*` | 重组 eval partitions,保持历史结果 |
|
|
2680
|
+
| `.github/workflows/ci.yml` | 加 scientific/protected gates |
|
|
2681
|
+
|
|
2682
|
+
---
|
|
2683
|
+
|
|
2684
|
+
# 72. 不做的架构
|
|
2685
|
+
|
|
2686
|
+
明确排除:
|
|
2687
|
+
|
|
2688
|
+
```text
|
|
2689
|
+
“八 Agent 一起跑所有问题”
|
|
2690
|
+
“每一个 Stage 一个 Agent”
|
|
2691
|
+
“无限 swarm”
|
|
2692
|
+
“Agent 互相自由聊天决定研究方向”
|
|
2693
|
+
“自动删除不利证据”
|
|
2694
|
+
“用一个综合 LLM Judge score 决定科学质量”
|
|
2695
|
+
“自动改 evaluator 让 benchmark 变好”
|
|
2696
|
+
“自动 merge main”
|
|
2697
|
+
“没有 Gap 就自动设计研究”
|
|
2698
|
+
“搜不到三轮就声称不存在证据”
|
|
2699
|
+
“DVI 伪装成 EVPI 概率”
|
|
2700
|
+
```
|
|
2701
|
+
|
|
2702
|
+
---
|
|
2703
|
+
|
|
2704
|
+
# 73. 旗舰 CS1 案例的最终运行示例
|
|
2705
|
+
|
|
2706
|
+
用户问题:
|
|
2707
|
+
|
|
2708
|
+
> 大一 C/Python 是否应该允许生成式 AI 编程助手?
|
|
2709
|
+
|
|
2710
|
+
初始 Evidence Review:
|
|
2711
|
+
|
|
2712
|
+
```text
|
|
2713
|
+
Task Performance:有收益
|
|
2714
|
+
Independent Learning:冲突
|
|
2715
|
+
Transfer:不足
|
|
2716
|
+
Retention:不足
|
|
2717
|
+
Decision:PILOT
|
|
2718
|
+
```
|
|
2719
|
+
|
|
2720
|
+
Graph 生成:
|
|
2721
|
+
|
|
2722
|
+
```text
|
|
2723
|
+
GAP-101 missing_transfer
|
|
2724
|
+
GAP-102 missing_retention
|
|
2725
|
+
GAP-103 population heterogeneity
|
|
2726
|
+
```
|
|
2727
|
+
|
|
2728
|
+
DVI:
|
|
2729
|
+
|
|
2730
|
+
```text
|
|
2731
|
+
GAP-101 HIGH
|
|
2732
|
+
GAP-102 MEDIUM
|
|
2733
|
+
GAP-103 MEDIUM
|
|
2734
|
+
```
|
|
2735
|
+
|
|
2736
|
+
Iteration 1:
|
|
2737
|
+
|
|
2738
|
+
```text
|
|
2739
|
+
Hypothesis:novice CS1 + without-AI transfer targeted query
|
|
2740
|
+
Result:找到 1 个 eligible Study
|
|
2741
|
+
GraphRevision 8 → 9
|
|
2742
|
+
```
|
|
2743
|
+
|
|
2744
|
+
Iteration 2:
|
|
2745
|
+
|
|
2746
|
+
```text
|
|
2747
|
+
重新排名
|
|
2748
|
+
GAP-101 仍 HIGH 但 directness 改善
|
|
2749
|
+
尝试 citation chaining
|
|
2750
|
+
Result:0 eligible, 6 duplicates
|
|
2751
|
+
记录 NegativeSearchRecord
|
|
2752
|
+
```
|
|
2753
|
+
|
|
2754
|
+
Iteration 3:
|
|
2755
|
+
|
|
2756
|
+
```text
|
|
2757
|
+
独立 counter/risk search
|
|
2758
|
+
Result:1 个 relevant Finding
|
|
2759
|
+
GraphRevision 9 → 10
|
|
2760
|
+
```
|
|
2761
|
+
|
|
2762
|
+
Iteration 4:
|
|
2763
|
+
|
|
2764
|
+
```text
|
|
2765
|
+
search yield 接近 0
|
|
2766
|
+
strategy diversity 基本耗尽
|
|
2767
|
+
GAP-101 → SEARCH_SATURATED
|
|
2768
|
+
```
|
|
2769
|
+
|
|
2770
|
+
系统判断:
|
|
2771
|
+
|
|
2772
|
+
```text
|
|
2773
|
+
HIGH DVI
|
|
2774
|
+
+ unresolved
|
|
2775
|
+
+ secondary evidence saturated
|
|
2776
|
+
→ EMPIRICAL_EVIDENCE_NEEDED
|
|
2777
|
+
```
|
|
2778
|
+
|
|
2779
|
+
然后才:
|
|
2780
|
+
|
|
2781
|
+
```text
|
|
2782
|
+
Gap
|
|
2783
|
+
→ StudyDesign
|
|
2784
|
+
→ restricted Pilot
|
|
2785
|
+
→ Data
|
|
2786
|
+
→ New Finding
|
|
2787
|
+
→ GraphRevision 11
|
|
2788
|
+
→ DecisionSnapshot
|
|
2789
|
+
```
|
|
2790
|
+
|
|
2791
|
+
这是最终要实现的“研究不是报告终点”的系统行为。
|
|
2792
|
+
|
|
2793
|
+
---
|
|
2794
|
+
|
|
2795
|
+
# 74. Competition / Product Differentiation
|
|
2796
|
+
|
|
2797
|
+
Autoresearch 迭代后,不要宣传:
|
|
2798
|
+
|
|
2799
|
+
> “24 小时无人值守自动科研。”
|
|
2800
|
+
|
|
2801
|
+
更准确的表达:
|
|
2802
|
+
|
|
2803
|
+
> **EduEvidence 不只在新证据出现后更新决定,还会识别当前决策中最值得解决的证据缺口,执行有边界的下一轮研究,并持续用受保护的评估体系改进自己的研究方法。**
|
|
2804
|
+
|
|
2805
|
+
英文:
|
|
2806
|
+
|
|
2807
|
+
> **EduEvidence does not only update decisions when evidence changes. It identifies which evidence is most worth seeking next, runs bounded research iterations, and continuously tests how to become a better research system without optimizing the conclusion itself.**
|
|
2808
|
+
|
|
2809
|
+
---
|
|
2810
|
+
|
|
2811
|
+
# 75. 最终 Definition of Done
|
|
2812
|
+
|
|
2813
|
+
## Evidence Autoresearch
|
|
2814
|
+
|
|
2815
|
+
- [ ] Gap 来源仍是 Evidence Graph,不是自由脑暴
|
|
2816
|
+
- [ ] Gap 有透明 DVI band 与 rationale
|
|
2817
|
+
- [ ] 每轮一个主 hypothesis
|
|
2818
|
+
- [ ] 每轮有明确 budget / termination
|
|
2819
|
+
- [ ] Negative search 可追溯
|
|
2820
|
+
- [ ] Valid Evidence append-only
|
|
2821
|
+
- [ ] No-gain iteration 不生成假 GraphRevision
|
|
2822
|
+
- [ ] Search saturation 可解释
|
|
2823
|
+
- [ ] 高 DVI + saturated 才能桥接 empirical study
|
|
2824
|
+
- [ ] Decision action 不被自动真实执行
|
|
2825
|
+
|
|
2826
|
+
## Orchestration
|
|
2827
|
+
|
|
2828
|
+
- [ ] Protocol / Role / Capability / Worker / Model 完全分离
|
|
2829
|
+
- [ ] S 级默认 0 subagents
|
|
2830
|
+
- [ ] M/L 按 evidence axis 并行
|
|
2831
|
+
- [ ] TaskSpec 是所有 spawn 的前置条件
|
|
2832
|
+
- [ ] safe_spawn 仍是唯一 Agent MCP path
|
|
2833
|
+
- [ ] Single Writer
|
|
2834
|
+
- [ ] Judge 不读取 unvalidated worker prose
|
|
2835
|
+
- [ ] parallel worker cap 生效
|
|
2836
|
+
|
|
2837
|
+
## Skill Autoresearch
|
|
2838
|
+
|
|
2839
|
+
- [ ] Baseline 必跑
|
|
2840
|
+
- [ ] One change per experiment
|
|
2841
|
+
- [ ] Protected manifest 生效
|
|
2842
|
+
- [ ] DEV / HOLDOUT / ADV 隔离
|
|
2843
|
+
- [ ] empirical repeats + noise floor
|
|
2844
|
+
- [ ] Pareto promotion
|
|
2845
|
+
- [ ] simplicity criterion
|
|
2846
|
+
- [ ] results / failures append-only
|
|
2847
|
+
- [ ] plateau / budget / ceiling
|
|
2848
|
+
- [ ] branch only;不 auto merge main
|
|
2849
|
+
|
|
2850
|
+
## Scientific Integrity
|
|
2851
|
+
|
|
2852
|
+
- [ ] 不优化 conclusion
|
|
2853
|
+
- [ ] 不删除反证
|
|
2854
|
+
- [ ] 不伪造 precision
|
|
2855
|
+
- [ ] 不把 active-learning ranking 当 evidence weight
|
|
2856
|
+
- [ ] 不把 conceptual DVI 当正式 EVSI
|
|
2857
|
+
- [ ] 不把 simulation benchmark 当真实性能证据
|
|
2858
|
+
- [ ] human-subject Pilot 仍有人类 / ethics gate
|
|
2859
|
+
|
|
2860
|
+
---
|
|
2861
|
+
|
|
2862
|
+
# 76. 实施优先级
|
|
2863
|
+
|
|
2864
|
+
```text
|
|
2865
|
+
P0 Orchestration clarity / Single Writer
|
|
2866
|
+
↓
|
|
2867
|
+
P1 ResearchIteration + NegativeSearch memory
|
|
2868
|
+
↓
|
|
2869
|
+
P2 DVI / Gap lifecycle
|
|
2870
|
+
↓
|
|
2871
|
+
P3 bounded Evidence Autoresearch
|
|
2872
|
+
↓
|
|
2873
|
+
P4 Saturation → Pilot bridge
|
|
2874
|
+
↓
|
|
2875
|
+
P5 Skill Autoresearch protected MVP
|
|
2876
|
+
↓
|
|
2877
|
+
P6 Holdout / adversarial / repeated empirical eval
|
|
2878
|
+
↓
|
|
2879
|
+
P7 Daily evolution
|
|
2880
|
+
↓
|
|
2881
|
+
P8 Studio visualization
|
|
2882
|
+
```
|
|
2883
|
+
|
|
2884
|
+
不要先做 UI。
|
|
2885
|
+
|
|
2886
|
+
不要先做“每天自动跑”。
|
|
2887
|
+
|
|
2888
|
+
先让:
|
|
2889
|
+
|
|
2890
|
+
```text
|
|
2891
|
+
状态
|
|
2892
|
+
责任
|
|
2893
|
+
评估
|
|
2894
|
+
保护区
|
|
2895
|
+
```
|
|
2896
|
+
|
|
2897
|
+
四件事正确。
|
|
2898
|
+
|
|
2899
|
+
---
|
|
2900
|
+
|
|
2901
|
+
# 77. 最终架构一句话
|
|
2902
|
+
|
|
2903
|
+
> **EduEvidence vNext = 一个以 Evidence Graph 为事实状态、以 Decision 为目标、以 KnowledgeGap 为下一步研究入口、以 bounded experiments 为学习机制、以 protected evals 约束自我改进、以按需 subagents 扩展执行能力的 Living Decision Research Engine。**
|