A structural diagnostic benchmark for evaluating whether an agent's memory substrate forms cognitive structure under continuous event streams β not just whether it can retrieve facts. CogEval-Bench is the structural-evaluation half of the two-layer evaluation in CogniFold: Always-On Proactive Memory via Cognitive Folding (Wang et al., 2026).
| Paper | arXiv:2605.13438 |
| Code | github.com/OpenNorve/CogniFold |
| Scenarios | 6 (academic_research, customer_support, health_journey, news_stream, software_engineer, team_project) |
| Scales | 2 per scenario (small β 50 events, medium β 90 events) |
| Generation | Top-down: gold concept graph β event stream β distractor injection (10β15%) β temporal shuffle |
Conventional memory benchmarks (LoCoMo, LongMemEval, MuSiQue, β¦) measure end-to-end retrieval accuracy β they reward a system that returns the right fact, but they cannot tell whether the underlying memory has formed cognitive structure or whether it is just keyword-matching. CogEval-Bench inverts the setup:
gold_graphs/
βββ academic_research.json
βββ customer_support.json
βββ health_journey.json
βββ news_stream.json
βββ software_engineer.json
βββ team_project.json
generated/
βββ academic_research_small.json academic_research_medium.json
βββ customer_support_small.json customer_support_medium.json
βββ health_journey_small.json health_journey_medium.json
βββ news_stream_small.json news_stream_medium.json
βββ software_engineer_small.json software_engineer_medium.json
βββ team_project_small.json team_project_medium.json
gold_graphs/<scenario>.jsonThe reference cognitive structure for one scenario:
| Field | Description |
|---|---|
scenario_id, name, description, domain | Identification |
concepts | list of $\mathcal{C}^*$ β concept nodes with id, label, description |
relationships | list of $\mathcal{R}^*$ β inter-concept edges with source, target, type (e.g. PART_OF, CAUSES, RELATED_TO) |
planted_chains | multi-hop reasoning chains across concepts (for Track B) |
expected_intents | $\mathcal{I}^*$ β intents the memory should emerge (with grounding_concepts) |
state_tracking | entities whose state should be tracked over time |
belief_tracking | belief transitions the substrate should record |
distractor_ratio | fraction of distractor events injected (default ~0.12) |
total_events, temporal_span_days | stream-level statistics |
generated/<scenario>_<scale>.jsonA self-contained generated stream + QA bundle:
| Field | Description |
|---|---|
scenario_id, name, description, scale | Identification |
generation_timestamp | when this stream was synthesised |
statistics | counts (total_events, concept_events, chain_events, distractor_events, total_questions, questions_by_type) |
gold_graph | embedded copy of the corresponding gold_graphs/<scenario>.json (for self-contained loading) |
events | the event stream β each event has event_id, timestamp, source, event_type, title, description, data, context |
questions | QA pairs derived from the gold graph (state-tracking, multi-hop chain, intent-emergence, etc.) |
| Track | What it measures | Example metrics |
|---|---|---|
| A β Concept quality | Are the concepts the substrate forms semantically aligned to $\mathcal{C}^*$? | concept purity, recall, label coherence, event-anchoring |
| B β Topology | Is the inter-concept graph $\mathcal{R}^* \cup \mathcal{H}^*$ correctly recovered? Can it traverse planted chains? | hierarchy F1, relationship recall, chain traversal |
| C β Compression Γ Proactivity | Does the substrate compress redundant events into stable concepts? Does it crystallise intents from converging evidence? | compression ratio, intent emergence rate |
Standalone Python evaluators are bundled in this dataset under scripts/ β concept_evaluator.py (Track A + B) and compression_evaluator.py (Track C). The same scripts plus the LLM-assisted generator generate_dataset.py let you reproduce or extend the dataset; see scripts/README.md. Full evaluation harness lives in the CogniFold repo at benchmarks/cogeval/.
from datasets import load_dataset
import json
from huggingface_hub import hf_hub_download
# Load one generated stream
path = hf_hub_download(
repo_id="OpenNorve/CogEval-Bench",
repo_type="dataset",
filename="generated/academic_research_small.json",
)
stream = json.loads(open(path).read())
print(f"{stream['statistics']['total_events']} events, "
f"{stream['statistics']['total_questions']} questions")
# Load the matching gold graph
path = hf_hub_download(
repo_id="OpenNorve/CogEval-Bench",
repo_type="dataset",
filename="gold_graphs/academic_research.json",
)
gold = json.loads(open(path).read())
print(f"{len(gold['concepts'])} gold concepts, "
f"{len(gold['relationships'])} relationships, "
f"{len(gold['expected_intents'])} expected intents")
To run the full benchmark on the CogniFold substrate:
git clone https://github.com/OpenNorve/CogniFold.git && cd CogniFold
bash scripts/reproduce.sh cogeval
@article{wang2026cognifold,
title = {CogniFold: Always-On Proactive Memory via Cognitive Folding},
author = {Wang, Suli and Duan, Yiqun and Deng, Yu and Zhao, Rundong and Shi, Dai and Zhou, Xinliang},
journal = {arXiv preprint arXiv:2605.13438},
year = {2026},
url = {https://arxiv.org/abs/2605.13438}
}
Apache-2.0 β see LICENSE.
6 commits
A structural diagnostic benchmark for evaluating whether an agent's memory substrate forms cognitive structure under continuous event streams β not just whether it can retrieve facts. CogEval-Bench is the structural-evaluation half of the two-layer evaluation in CogniFold: Always-On Proactive Memory via Cognitive Folding (Wang et al., 2026).
| Paper | arXiv:2605.13438 |
| Code | github.com/OpenNorve/CogniFold |
| Scenarios | 6 (academic_research, customer_support, health_journey, news_stream, software_engineer, team_project) |
| Scales | 2 per scenario (small β 50 events, medium β 90 events) |
| Generation | Top-down: gold concept graph β event stream β distractor injection (10β15%) β temporal shuffle |
Conventional memory benchmarks (LoCoMo, LongMemEval, MuSiQue, β¦) measure end-to-end retrieval accuracy β they reward a system that returns the right fact, but they cannot tell whether the underlying memory has formed cognitive structure or whether it is just keyword-matching. CogEval-Bench inverts the setup:
gold_graphs/
βββ academic_research.json
βββ customer_support.json
βββ health_journey.json
βββ news_stream.json
βββ software_engineer.json
βββ team_project.json
generated/
βββ academic_research_small.json academic_research_medium.json
βββ customer_support_small.json customer_support_medium.json
βββ health_journey_small.json health_journey_medium.json
βββ news_stream_small.json news_stream_medium.json
βββ software_engineer_small.json software_engineer_medium.json
βββ team_project_small.json team_project_medium.json
gold_graphs/<scenario>.jsonThe reference cognitive structure for one scenario:
| Field | Description |
|---|---|
scenario_id, name, description, domain | Identification |
concepts | list of $\mathcal{C}^*$ β concept nodes with id, label, description |
relationships | list of $\mathcal{R}^*$ β inter-concept edges with source, target, type (e.g. PART_OF, CAUSES, RELATED_TO) |
planted_chains | multi-hop reasoning chains across concepts (for Track B) |
expected_intents | $\mathcal{I}^*$ β intents the memory should emerge (with grounding_concepts) |
state_tracking | entities whose state should be tracked over time |
belief_tracking | belief transitions the substrate should record |
distractor_ratio | fraction of distractor events injected (default ~0.12) |
total_events, temporal_span_days | stream-level statistics |
generated/<scenario>_<scale>.jsonA self-contained generated stream + QA bundle:
| Field | Description |
|---|---|
scenario_id, name, description, scale | Identification |
generation_timestamp | when this stream was synthesised |
statistics | counts (total_events, concept_events, chain_events, distractor_events, total_questions, questions_by_type) |
gold_graph | embedded copy of the corresponding gold_graphs/<scenario>.json (for self-contained loading) |
events | the event stream β each event has event_id, timestamp, source, event_type, title, description, data, context |
questions | QA pairs derived from the gold graph (state-tracking, multi-hop chain, intent-emergence, etc.) |
| Track | What it measures | Example metrics |
|---|---|---|
| A β Concept quality | Are the concepts the substrate forms semantically aligned to $\mathcal{C}^*$? | concept purity, recall, label coherence, event-anchoring |
| B β Topology | Is the inter-concept graph $\mathcal{R}^* \cup \mathcal{H}^*$ correctly recovered? Can it traverse planted chains? | hierarchy F1, relationship recall, chain traversal |
| C β Compression Γ Proactivity | Does the substrate compress redundant events into stable concepts? Does it crystallise intents from converging evidence? | compression ratio, intent emergence rate |
Standalone Python evaluators are bundled in this dataset under scripts/ β concept_evaluator.py (Track A + B) and compression_evaluator.py (Track C). The same scripts plus the LLM-assisted generator generate_dataset.py let you reproduce or extend the dataset; see scripts/README.md. Full evaluation harness lives in the CogniFold repo at benchmarks/cogeval/.
from datasets import load_dataset
import json
from huggingface_hub import hf_hub_download
# Load one generated stream
path = hf_hub_download(
repo_id="OpenNorve/CogEval-Bench",
repo_type="dataset",
filename="generated/academic_research_small.json",
)
stream = json.loads(open(path).read())
print(f"{stream['statistics']['total_events']} events, "
f"{stream['statistics']['total_questions']} questions")
# Load the matching gold graph
path = hf_hub_download(
repo_id="OpenNorve/CogEval-Bench",
repo_type="dataset",
filename="gold_graphs/academic_research.json",
)
gold = json.loads(open(path).read())
print(f"{len(gold['concepts'])} gold concepts, "
f"{len(gold['relationships'])} relationships, "
f"{len(gold['expected_intents'])} expected intents")
To run the full benchmark on the CogniFold substrate:
git clone https://github.com/OpenNorve/CogniFold.git && cd CogniFold
bash scripts/reproduce.sh cogeval
@article{wang2026cognifold,
title = {CogniFold: Always-On Proactive Memory via Cognitive Folding},
author = {Wang, Suli and Duan, Yiqun and Deng, Yu and Zhao, Rundong and Shi, Dai and Zhou, Xinliang},
journal = {arXiv preprint arXiv:2605.13438},
year = {2026},
url = {https://arxiv.org/abs/2605.13438}
}
Apache-2.0 β see LICENSE.
6 commits