{
  "run_id": "20260328T125822484685Z",
  "generated_at": "2026-03-28T13:31:58.099915Z",
  "stages": [
    {
      "ts_start": "2026-03-28T12:58:27.290633Z",
      "ts_end": "2026-03-28T12:58:28.122900Z",
      "duration_sec": 0.832,
      "stage": "chunks",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Ingestion & Chunking Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
          "kind": "novel_text"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "metrics": {
        "chunks": 30,
        "max_chars": 1800,
        "limit_chunks": 30,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-28T12:58:28.141287Z",
      "ts_end": "2026-03-28T12:58:28.268680Z",
      "duration_sec": 0.127,
      "stage": "ontology",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01b_ontology_samples.json",
          "kind": "ontology_samples"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01c_ontology_candidates.json",
          "kind": "ontology_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "metrics": {
        "samples": 30,
        "candidate_entity_types": 7,
        "candidate_relation_types": 8,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 8,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-28T12:58:28.288608Z",
      "ts_end": "2026-03-28T13:31:57.335982Z",
      "duration_sec": 2009.047,
      "stage": "kg",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02_kg.json",
          "kind": "kg_summary"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "metrics": {
        "entities": 114,
        "relations": 156,
        "observations": 664,
        "ambiguous_entity_forks": 9,
        "chunks": 30,
        "ontology_loaded": true,
        "high_density_chunks": 12,
        "supplement_chunks": 10,
        "max_entity_limit": 14,
        "max_relation_limit": 14,
        "kg_window_size": 1,
        "kg_window_concurrency": 1,
        "kg_warmup_chunks": 30,
        "kg_window_batches": 0,
        "kg_parallel_chunks": 0,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-28T13:31:57.369574Z",
      "ts_end": "2026-03-28T13:31:57.705166Z",
      "duration_sec": 0.336,
      "stage": "closure_fix",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Contextual Closure & Cleanup Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02a_kg_closure.json",
          "kind": "kg_summary_closure"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02a_kg_store_closure.json",
          "kind": "kg_store_closure"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02a_kg_closure_decisions.json",
          "kind": "kg_closure_decisions"
        }
      ],
      "metrics": {
        "entities": 112,
        "relations": 155,
        "closure_decision_count": 2,
        "closure_drop_count": 0,
        "closure_merge_count": 2,
        "stub_cleanup_dropped_entities": 0,
        "stub_cleanup_dropped_relations": 0,
        "stub_cleanup_merged_duplicate_entities": 0,
        "stub_cleanup_merged_same_name_entities": 0,
        "stub_cleanup_merged_duplicate_relations": 1,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-28T13:31:57.736035Z",
      "ts_end": "2026-03-28T13:31:57.904607Z",
      "duration_sec": 0.169,
      "stage": "type_consolidation",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02a_kg_store_closure.json",
          "kind": "kg_store_closure"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02b_type_candidates.json",
          "kind": "type_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02c_type_consolidation.json",
          "kind": "type_consolidation"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "metrics": {
        "candidates": 80,
        "apply_type_count": 8,
        "apply_subtype_count": 24,
        "review_type_count": 11,
        "review_subtype_count": 28,
        "other_before": 9,
        "other_after": 1,
        "ontology_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-28T13:31:57.942860Z",
      "ts_end": "2026-03-28T13:31:58.045241Z",
      "duration_sec": 0.102,
      "stage": "kg_lite",
      "status": "ok",
      "run_id": "20260328T125822484685Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02i_kg_lite.json",
          "kind": "kg_lite"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02i_kg_lite_store.json",
          "kind": "kg_lite_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_kg_current_chain_30_20260328_v1/02i_kg_lite_decisions.json",
          "kind": "kg_lite_decisions"
        }
      ],
      "metrics": {
        "input_entities": 112,
        "input_relations": 155,
        "kept_entities": 111,
        "kept_relations": 154,
        "dropped_entities": 1,
        "dropped_relations": 1,
        "resumed": false
      }
    }
  ],
  "stage_items": {
    "total": 30,
    "ok": 30,
    "partial": 0,
    "error": 0
  },
  "llm_calls": {
    "total": 40,
    "ok": 40,
    "error": 0
  },
  "run_errors": 0
}