docs: 更新五分钟内演示视频
CoRA 是一个面向多 Agent 协作的轻量级运行时原型,用于比较 Text、Protocol、StateRef 与 Memory 四种模式在任务成功率、通信负载、非文本状态交换和跨任务记忆复用方面的表现。
本项目当前聚焦于 OS 开源大赛赛题中的多 Agent 通信、状态传递与共享记忆优化问题。
面对长文档,CoRA 不把全文反复传给多个 Agent,而是先切成 SourceChunk,检索后生成 SourceRef 和 StateRef。下游 Agent 只读取当前任务真正需要的证据片段,减少重复文本、Token 消耗和上下文干扰。
SourceChunk
SourceRef
StateRef
关键词检索负责查找路径、命令、错误码等精确信息;本地 Embedding 负责发现“表述不同但含义相近”的内容。两者结合后,只将少量高相关证据送入后续 Agent,而不是把整篇资料直接放进 Prompt。
系统在 Agent 执行前完成最小握手与能力检查:确认协议版本、可执行动作和对应 Agent。运行时通过结构化动作、参数、结果和引用进行协作,而不是只依赖自然语言长文本透传。
较长中间结果和语义向量写入 StateStore,Agent 之间主要传递轻量引用,而不是复制完整正文。接收方需要细节时再按引用读取,实现“控制面传引用、数据面存状态”的协作方式。
StateStore
M4 将跨任务经验保存为“记忆存储单元(MemoryRecord)”和更细的“记忆块(MemoryChunk)”。后续任务先查找相关记忆,再按需读取必要块;如果记忆不足,系统再补充当前 Corpus 中确实有新增价值的证据,避免重复读取,也避免盲目信任旧记忆。
项目使用三类任务集分别验证不同能力:Mini 验证基础通信优化,Heavy 验证长文档与大状态处理,Memory 验证跨任务写入、复用、组合和 no-hit 安全回退。不同模式在相同任务与固定语料条件下比较,保证实验结论可解释、可复现。
Mock 用于检查工程链路,Live 用于获得真实模型结果,Replay 用于离线复现和回归测试。系统同时输出 JSON、HTML、Agent 消息数、文本负载、Token、状态传递、耗时和记忆命中等指标。openEuler 已完成 M1~M4 的编译、测试、Mock 与 Replay 验证;当前一键演示版本仍需在目标机补跑最终 Live。
M1~M4 均使用四 Agent 串行链路;M4 在运行时外增加可跨任务持久化的 Memory Store:
PlannerAgent → RetrieverAgent → ExecutorAgent → SummarizerAgent
每轮 Benchmark 都保存 benchmark_result.json、逐任务 trace 和 benchmark_report.html。正式对比使用相同任务、相同模型与同一语料包(Heavy)或同一任务顺序(Memory),避免把不同输入条件混在一起比较。
benchmark_result.json
benchmark_report.html
total_message_count
avg_payload_chars
memory_query_hit_rate
说明:payload_chars 只统计进入 Agent prompt 的文本,不把二进制语义向量字节混入文本负载;共享语料预处理向量与四 Agent Runtime 向量也分开统计。旧兼容字段 avg_memory_hit_rate 不作为 M4 正式命中率,正式口径为 memory_query_hit_rate。
payload_chars
avg_memory_hit_rate
CoRA-Bench-mini 是项目内置的小型 benchmark,位置为 benchmarks/cora_bench_mini/。
CoRA-Bench-mini
benchmarks/cora_bench_mini/
Mini 中的 memory_reuse 是早期关联场景;正式 M4 跨任务写入、检索、组合与 no-hit 回退由独立的 CoRA-Bench-Memory 六任务集验证。
memory_reuse
CoRA-Bench-Memory
CoRA-Bench-Heavy 位于 benchmarks/cora_bench_heavy/,用于补足 Mini 文档短、状态轻、难以体现 StateRef 优势的问题。
CoRA-Bench-Heavy
benchmarks/cora_bench_heavy/
CorpusStore → SourceChunk / SourceRef → StateRef
BAAI/bge-small-zh-v1.5
shared_corpus_packet
CoRA-Bench-Memory 位于 benchmarks/cora_bench_memory/,用于验证 M4 Shared Memory 能否在一组有关联的任务中写入经验、正确复用经验,并在没有合适记忆时回退到当前资料。
benchmarks/cora_bench_memory/
memory_store_001
memory_retrieve_001
memory_apply_001
memory_apply_002
memory_compose_001
memory_nohit_001
M1 使用 TextRuntime 作为基线模式:
TextRuntime
Text Mode 的主要问题是上下文滚雪球:随着流程推进,payload_chars 和真实 LLM input tokens 会持续增长,重复上下文也会被反复传递。
M2 使用 ProtocolRuntime 引入结构化通信:
ProtocolRuntime
ProtocolMessage
task_state
INPUT_POLICY
summary / detail / raw_output
raw_output
detail
details_from
Required outputs
SummarizerAgent
HELLO → CAPABILITIES → ACCEPT / REJECT
summary
plan.summary
retrieval.summary + retrieval.detail
execution.summary + execution.detail
M3 在 M2 的结构化通信基础上引入任务内 StateStore 和 StateRef:较长 DETAIL 不再默认内联传递,而是写入状态仓库;下游 Agent 接收稳定 SUMMARY、引用和 Resolver 选出的必要 chunks。raw_output 继续只用于本地 trace、报告和调试。
通俗地说,M1 是反复传整叠历史材料,M2 是传摘要加必要细节,M3 则把较长细节放进任务内“资料柜”,下游只在需要时取用相关片段。该状态仓库只服务当前任务或 benchmark session,不等同于 M4 的跨会话长期记忆。
图中的 ProtocolRuntime / 控制面 表示 M3 继承自 M2 的握手、能力映射和结构化任务状态;M3 实际运行时为 StateRefRuntime,负责 StateStore、StateRef、SourceRef 与按需读取的数据面。
ProtocolRuntime / 控制面
StateRefRuntime
summary + selected chunks
M3 Lite 已在 Mini 完成 12/12 答案成功与 12/12 StateRef 机制成功。M3 Heavy 扩展进一步增加 CorpusStore、SourceChunk、SourceRef、本地 Embedding 与混合检索,使长文档先切块并保留来源,再由下游 Agent 按需读取必要状态。2026-07-28 的 Heavy 严格同证据 Live 中,M3 以 3/3 成功保持完整检索证据,平均输入 Token 较 M2 下降 36.67%、总 Token 下降 25.72%。设计细节见 docs/m3_state_ref_design.md。
CorpusStore
M4 将 M3 的“任务内状态柜”扩展为可跨任务使用的“经验卡片库”:成功任务可以把可追溯的结论、证据、策略、验证与回滚信息写入 SQLite;后续任务先检索短摘要,再按 MemoryRef 读取必要 Detail Chunk。
M4 不使用 Mini 中早期的 memory_reuse 小场景作为正式证明,而是通过独立的 CoRA-Bench-Memory 连续任务集验证跨任务写入、检索、组合复用和安全回退。该任务集复用 Heavy 的固定服务诊断资料,使 M3-off 与 M4-on 在相同任务顺序和同一资料条件下比较。
图中左侧是跨任务 Memory 的检索与受控写入,中部是继承 M3 的四 Agent 与 StateStore,底部是当前任务 Corpus 通道。运行时先核验并按需读取相关 MemoryChunk,再通过 Coverage Gain 判断是否需要补充新的 Corpus Chunk,从而减少重复读取,同时保留当前证据核验能力。
当前实现中,任务主题和标签来自任务元数据,主题缺省时可回退到 Planner 目标;正式 Memory Benchmark 的写入还要求任务允许写入且最终成功。Coverage Gain 是 Retriever 调用前的 Corpus 选块步骤,图中为便于展示进行了简化。
成功任务输出 → 生成 MemoryRecord + MemoryChunk → SQLite 持久化并保存本地 BGE 向量 → 后续任务按关键词、标签和语义召回 Record → SourceRef 核验来源 → Retriever 只读取必要 Memory Chunk → 覆盖不足时再补当前 Corpus
M4 的主要边界:
以下是同一模型、同一组 6 个连续 MemoryTask 的本机最终 Live 对比。M3-off 不使用长期记忆,M4-on 开启 Shared Memory;两者均成功完成 6/6 任务。
M4 记忆复用统计(六任务合计):
no-hit
3 / 4
本轮所有预期命中任务均复用了正确来源,no-hit 任务没有误用 worker 或 api 记忆。对应 Live 的缓存 Replay 为 6/6;随后十轮离线 Replay 为 10/10。详细口径见 docs/m4_shared_memory_live_comparison.md 与 docs/final_local_live_replay_verification_20260727.md。
以下为同一 qwen-plus 模型、当前代码版本下的全链路 Live 结果。Runtime 指标只统计 Planner、Retriever、Executor、Summarizer 四个 Agent 的真实 API usage;端到端指标会额外包含实际触发的 Judge 调用。各模式只在同一任务集内比较。
qwen-plus
Mini 是系统级端到端对比:M3 相比 M1 保持成功率,同时使文本 Payload 下降 61.32%、Runtime 输入 Token 下降 69.89%、Runtime 总 Token 下降 65.75%、耗时下降 48.74%。相对 M2,M3 的 Payload、Runtime 输入 Token、Runtime 总 Token 分别下降 25.01%、31.00%、23.31%;M3 的局部状态读取使耗时上升 3.83%,因此不把时延宣传为全面下降。
Heavy 使用 9 篇人工构造的日志、配置参考和运维手册,共 118,264 字符、120 个 Chunk。三种模式共用冻结的 Corpus Packet、任务顺序、文档哈希、Chunk 集合和 Embedding 身份,比较器已验证 strict_ab_verified=true。
strict_ab_verified=true
下表为 2026-07-28 的严格同证据 Live:三种模式共用同一冻结证据包后才渲染各自 Prompt。M3 的通信与 Token 均低于 M2;局部解析与状态读取仍使其墙钟耗时高于 M2,不能宣传为所有指标都领先。
在本轮严格 Heavy 对比中,M3 相比 M1 的 Payload 下降 **61.30%**、Runtime 输入 Token 下降 **66.51%**、Runtime 总 Token 下降 **58.32%**,并保持 3/3 成功;相对 M2,Payload 下降 **29.62%**、输入 Token 下降 **36.67%**、总 Token 下降 **25.72%**。M3 比 M2 耗时上升 **24.70%**,主要来自本地解析与状态读取,属于当前可见边界。
完整实验口径、限制、指标解释和结果路径见 docs/m1_m2_m3_live_comparison.md。
M3 的通信与 Token 均更低,检索证据覆盖率保持 100%,但局部解析与状态读取使耗时没有同步下降;本轮 Live 与其新缓存 Replay 的成功数、Payload 和 Token 均逐项一致。详细结果见 docs/final_local_live_replay_verification_20260727.md。
主要示例入口:
examples/run_benchmark_text_mode.py
examples/run_benchmark_protocol_mode.py
examples/run_benchmark_state_ref_mode.py
examples/run_benchmark_heavy.py
examples/run_benchmark_memory_mode.py
examples/run_m3_m4_memory_live_comparison.py
examples/run_benchmark_unified.py
examples/run_competition_demo.py
scripts/run_final_demo.sh
常用配置字段:
llm_backend
model
base_url
max_tasks
benchmark_dir
output_root
enable_llm_judge
cache_write_path
replay_path
API Key 可通过环境变量或被 Git 忽略的 configs/final_demo.local.json 提供;不要将真实 Key 写入源码、示例配置、文档或 Git 提交。
configs/final_demo.local.json
推荐 Python 3.10+。项目当前最小依赖见 requirements.txt。
requirements.txt
pip install -r requirements.txt python -m pytest -q python examples\run_benchmark_text_mode.py --llm-backend mock --max-tasks 1 python examples\run_benchmark_protocol_mode.py --llm-backend mock --max-tasks 1 python examples\run_benchmark_state_ref_mode.py --llm-backend mock --max-tasks 1 python examples\run_benchmark_memory_mode.py --llm-backend mock --max-tasks 1 python examples\run_benchmark_unified.py --dry-run
requirements.txt 已包含 Heavy/M4 本地 Embedding 检索的运行依赖;模型权重放在 Git 忽略的 models/embedding/。Live 凭证必须保存在环境变量或 Git 忽略的本地配置中,不能写入源码、示例配置、文档或提交记录。
models/embedding/
最终演示固定覆盖 Mini 的 M1/M2/M3、Heavy 的 M1/M2/M3,以及连续 MemoryTask 的 M3-off/M4-on,共 57 次任务运行;只允许选择 live 或 replay 后端,避免遗漏比较组。
live
replay
# 使用当前本地配置的默认后端运行全部对比;建议日常使用 replay bash scripts/run_final_demo.sh # 明确运行全部阶段的 Replay 或 Live bash scripts/run_final_demo.sh replay bash scripts/run_final_demo.sh live
Replay 需要已有完整 Live 缓存。完整的依赖安装、Embedding 模型准备、Live/Replay 一键复现、产物验收与常见问题见 部署文档(参考本文件安装依赖复现);最终演示使用说明保留为配置字段速查。
cora/ agents/ # Planner / Retriever / Executor / Summarizer 等 Agent benchmark/ # benchmark loader、runner 与报告生成 corpus/ # CorpusStore、SourceChunk、SourceRef 与长文档资料管理 retrieval/ # 关键词/语义混合检索、Embedding Provider 与 Replay runtime/ # TextRuntime、ProtocolRuntime、StateRefRuntime 与 MemoryRuntime state/ # StateStore、StateRef、Resolver 与动态查询词 memory/ # MemoryRecord、MemoryChunk、MemoryRef、SQLite Store 与两级检索 eval/ # 成功判定、StateRef 机制校验与指标汇总 protocol/ # ProtocolMessage 等协议结构 benchmarks/ cora_bench_mini/ # 12 任务小型评测集与固定输入文档 cora_bench_heavy/ # 3 任务长语料服务诊断评测集 cora_bench_memory/# 6 任务跨任务写入、复用、组合与 no-hit 评测集 docs/ # 阶段文档、实验记录与验证说明 examples/ # benchmark 与 baseline 运行入口 tests/ # 单元测试与回归测试
results/
比赛材料收口:
官方赛题原始 README 已备份至 docs/official_problem.md。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
CoRA:从文本管道到状态驱动的多智能体协作系统
CoRA 是一个面向多 Agent 协作的轻量级运行时原型,用于比较 Text、Protocol、StateRef 与 Memory 四种模式在任务成功率、通信负载、非文本状态交换和跨任务记忆复用方面的表现。
本项目当前聚焦于 OS 开源大赛赛题中的多 Agent 通信、状态传递与共享记忆优化问题。
项目亮点
1. 长文档切块与按需状态读取
面对长文档,CoRA 不把全文反复传给多个 Agent,而是先切成
SourceChunk,检索后生成SourceRef和StateRef。下游 Agent 只读取当前任务真正需要的证据片段,减少重复文本、Token 消耗和上下文干扰。2. 关键词与语义向量混合检索
关键词检索负责查找路径、命令、错误码等精确信息;本地 Embedding 负责发现“表述不同但含义相近”的内容。两者结合后,只将少量高相关证据送入后续 Agent,而不是把整篇资料直接放进 Prompt。
3. 结构化通信、握手与能力发现
系统在 Agent 执行前完成最小握手与能力检查:确认协议版本、可执行动作和对应 Agent。运行时通过结构化动作、参数、结果和引用进行协作,而不是只依赖自然语言长文本透传。
4. 非文本状态传递与 StateRef
较长中间结果和语义向量写入
StateStore,Agent 之间主要传递轻量引用,而不是复制完整正文。接收方需要细节时再按引用读取,实现“控制面传引用、数据面存状态”的协作方式。5. 共享记忆的两级检索与双通道核验
M4 将跨任务经验保存为“记忆存储单元(MemoryRecord)”和更细的“记忆块(MemoryChunk)”。后续任务先查找相关记忆,再按需读取必要块;如果记忆不足,系统再补充当前 Corpus 中确实有新增价值的证据,避免重复读取,也避免盲目信任旧记忆。
6. 面向通信、状态与记忆机制的分层任务设计
项目使用三类任务集分别验证不同能力:Mini 验证基础通信优化,Heavy 验证长文档与大状态处理,Memory 验证跨任务写入、复用、组合和 no-hit 安全回退。不同模式在相同任务与固定语料条件下比较,保证实验结论可解释、可复现。
7. 从 Mock、Live 到 Replay 的完整验证闭环
Mock 用于检查工程链路,Live 用于获得真实模型结果,Replay 用于离线复现和回归测试。系统同时输出 JSON、HTML、Agent 消息数、文本负载、Token、状态传递、耗时和记忆命中等指标。openEuler 已完成 M1~M4 的编译、测试、Mock 与 Replay 验证;当前一键演示版本仍需在目标机补跑最终 Live。
系统整体流程
M1~M4 均使用四 Agent 串行链路;M4 在运行时外增加可跨任务持久化的 Memory Store:
赛题指标统计与展示
每轮 Benchmark 都保存
benchmark_result.json、逐任务 trace 和benchmark_report.html。正式对比使用相同任务、相同模型与同一语料包(Heavy)或同一任务顺序(Memory),避免把不同输入条件混在一起比较。total_message_count;四 Agent 串行任务通常为每任务 4 条运行时消息avg_payload_chars、Runtime 输入 / 输出 / 总 Token;真实 Token 只取 API 返回 usagememory_query_hit_rate、Record 复用数与成功写入数说明:
payload_chars只统计进入 Agent prompt 的文本,不把二进制语义向量字节混入文本负载;共享语料预处理向量与四 Agent Runtime 向量也分开统计。旧兼容字段avg_memory_hit_rate不作为 M4 正式命中率,正式口径为memory_query_hit_rate。CoRA-Bench-mini
CoRA-Bench-mini是项目内置的小型 benchmark,位置为benchmarks/cora_bench_mini/。CoRA-Bench-Heavy
CoRA-Bench-Heavy位于benchmarks/cora_bench_heavy/,用于补足 Mini 文档短、状态轻、难以体现 StateRef 优势的问题。CorpusStore → SourceChunk / SourceRef → StateRef;BAAI/bge-small-zh-v1.5(512 维)语义向量混合检索;shared_corpus_packet冻结三种 Runtime 的共同语料和证据包,用于严格通信 A/B;CoRA-Bench-Memory
CoRA-Bench-Memory位于benchmarks/cora_bench_memory/,用于验证 M4 Shared Memory 能否在一组有关联的任务中写入经验、正确复用经验,并在没有合适记忆时回退到当前资料。memory_store_001、memory_retrieve_001memory_apply_001、memory_apply_002memory_compose_001memory_nohit_001M1 Text Mode
M1 使用
TextRuntime作为基线模式:Text Mode 的主要问题是上下文滚雪球:随着流程推进,
payload_chars和真实 LLM input tokens 会持续增长,重复上下文也会被反复传递。M2 Protocol Mode
M2 使用
ProtocolRuntime引入结构化通信:ProtocolMessage:Agent 间结构化消息;task_state:保存任务状态与阶段输出;INPUT_POLICY:控制下游 Agent 能看到哪些字段;summary / detail / raw_output:三层输出状态;raw_output本地保存,不默认下传;detail通过details_from受控传递;Required outputs,避免评测关键词泄漏;SummarizerAgent使用 final-answer 输出约束,不再被中间 Agent 的 3 条短摘要限制。HELLO → CAPABILITIES → ACCEPT / REJECT握手,验证协议版本、必需 action 与 Agent 能力映射;握手失败时不调用 LLM。summarydetailINPUT_POLICY传raw_outputplan.summaryretrieval.summary + retrieval.detailexecution.summary + execution.detailtask_state/ trace / report,不进入下游 promptM3 StateRef Lite
M3 在 M2 的结构化通信基础上引入任务内
StateStore和StateRef:较长 DETAIL 不再默认内联传递,而是写入状态仓库;下游 Agent 接收稳定 SUMMARY、引用和 Resolver 选出的必要 chunks。raw_output继续只用于本地 trace、报告和调试。通俗地说,M1 是反复传整叠历史材料,M2 是传摘要加必要细节,M3 则把较长细节放进任务内“资料柜”,下游只在需要时取用相关片段。该状态仓库只服务当前任务或 benchmark session,不等同于 M4 的跨会话长期记忆。
StateStore,形成 2 个 StateRef / 任务;StateRefvalidator 校验写入、引用、读取、预算与非法读边,任务质量和机制正确性分别统计;summary + selected chunks是稳定交接合同,避免局部证据替代全局结论。M3 Lite 已在 Mini 完成 12/12 答案成功与 12/12 StateRef 机制成功。M3 Heavy 扩展进一步增加
CorpusStore、SourceChunk、SourceRef、本地 Embedding 与混合检索,使长文档先切块并保留来源,再由下游 Agent 按需读取必要状态。2026-07-28 的 Heavy 严格同证据 Live 中,M3 以 3/3 成功保持完整检索证据,平均输入 Token 较 M2 下降 36.67%、总 Token 下降 25.72%。设计细节见 docs/m3_state_ref_design.md。M4 Shared Memory
M4 将 M3 的“任务内状态柜”扩展为可跨任务使用的“经验卡片库”:成功任务可以把可追溯的结论、证据、策略、验证与回滚信息写入 SQLite;后续任务先检索短摘要,再按 MemoryRef 读取必要 Detail Chunk。
CoRA-Bench-Memory:6 个连续记忆任务
M4 不使用 Mini 中早期的
memory_reuse小场景作为正式证明,而是通过独立的CoRA-Bench-Memory连续任务集验证跨任务写入、检索、组合复用和安全回退。该任务集复用 Heavy 的固定服务诊断资料,使 M3-off 与 M4-on 在相同任务顺序和同一资料条件下比较。memory_store_001、memory_retrieve_001memory_apply_001、memory_apply_002memory_compose_001memory_nohit_001图中左侧是跨任务 Memory 的检索与受控写入,中部是继承 M3 的四 Agent 与 StateStore,底部是当前任务 Corpus 通道。运行时先核验并按需读取相关 MemoryChunk,再通过 Coverage Gain 判断是否需要补充新的 Corpus Chunk,从而减少重复读取,同时保留当前证据核验能力。
M4 的主要边界:
CoRA-Bench-Memory六任务连续验证。M4:M3-off / M4-on 全链路 Live 对比与记忆复用结果
以下是同一模型、同一组 6 个连续 MemoryTask 的本机最终 Live 对比。M3-off 不使用长期记忆,M4-on 开启 Shared Memory;两者均成功完成 6/6 任务。
M4 记忆复用统计(六任务合计):
no-hit回退任务,正确结果应是不命中并读取当前 Corpus,因此命中率为 75% 而非 100%。3 / 4;剩余任务是刻意验证安全回退的 no-hit,不应强行命中。本轮所有预期命中任务均复用了正确来源,no-hit 任务没有误用 worker 或 api 记忆。对应 Live 的缓存 Replay 为 6/6;随后十轮离线 Replay 为 10/10。详细口径见 docs/m4_shared_memory_live_comparison.md 与 docs/final_local_live_replay_verification_20260727.md。
M1 / M2 / M3 本机最终全链路 Live 对比
以下为同一
qwen-plus模型、当前代码版本下的全链路 Live 结果。Runtime 指标只统计 Planner、Retriever、Executor、Summarizer 四个 Agent 的真实 API usage;端到端指标会额外包含实际触发的 Judge 调用。各模式只在同一任务集内比较。CoRA-Bench-mini:12 个常规任务
avg_payload_charsMini 是系统级端到端对比:M3 相比 M1 保持成功率,同时使文本 Payload 下降 61.32%、Runtime 输入 Token 下降 69.89%、Runtime 总 Token 下降 65.75%、耗时下降 48.74%。相对 M2,M3 的 Payload、Runtime 输入 Token、Runtime 总 Token 分别下降 25.01%、31.00%、23.31%;M3 的局部状态读取使耗时上升 3.83%,因此不把时延宣传为全面下降。
CoRA-Bench-Heavy:3 个长语料诊断任务(本机最终全链路 Live)
Heavy 使用 9 篇人工构造的日志、配置参考和运维手册,共 118,264 字符、120 个 Chunk。三种模式共用冻结的 Corpus Packet、任务顺序、文档哈希、Chunk 集合和 Embedding 身份,比较器已验证
strict_ab_verified=true。avg_payload_chars在本轮严格 Heavy 对比中,M3 相比 M1 的 Payload 下降 **61.30%**、Runtime 输入 Token 下降 **66.51%**、Runtime 总 Token 下降 **58.32%**,并保持 3/3 成功;相对 M2,Payload 下降 **29.62%**、输入 Token 下降 **36.67%**、总 Token 下降 **25.72%**。M3 比 M2 耗时上升 **24.70%**,主要来自本地解析与状态读取,属于当前可见边界。
完整实验口径、限制、指标解释和结果路径见 docs/m1_m2_m3_live_comparison.md。
当前 M2 / M3 严格成对验证(2026-07-28)
M3 的通信与 Token 均更低,检索证据覆盖率保持 100%,但局部解析与状态读取使耗时没有同步下降;本轮 Live 与其新缓存 Replay 的成功数、Payload 和 Token 均逐项一致。详细结果见 docs/final_local_live_replay_verification_20260727.md。
运行模式与关键配置
主要示例入口:
examples/run_benchmark_text_mode.pyexamples/run_benchmark_protocol_mode.pyexamples/run_benchmark_state_ref_mode.pyexamples/run_benchmark_heavy.pyexamples/run_benchmark_memory_mode.pyexamples/run_m3_m4_memory_live_comparison.pyexamples/run_benchmark_unified.py(统一配置入口,默认 Mock)examples/run_competition_demo.py(固定运行 Mini、Heavy、Memory 的 M1~M4 全量对比)scripts/run_final_demo.sh(openEuler 上的最终演示入口)常用配置字段:
llm_backendmodelbase_urlmax_tasksbenchmark_diroutput_rootenable_llm_judgecache_write_pathreplay_pathAPI Key 可通过环境变量或被 Git 忽略的
configs/final_demo.local.json提供;不要将真实 Key 写入源码、示例配置、文档或 Git 提交。快速验证
推荐 Python 3.10+。项目当前最小依赖见
requirements.txt。requirements.txt已包含 Heavy/M4 本地 Embedding 检索的运行依赖;模型权重放在 Git 忽略的models/embedding/。Live 凭证必须保存在环境变量或 Git 忽略的本地配置中,不能写入源码、示例配置、文档或提交记录。最终一键演示
最终演示固定覆盖 Mini 的 M1/M2/M3、Heavy 的 M1/M2/M3,以及连续 MemoryTask 的 M3-off/M4-on,共 57 次任务运行;只允许选择
live或replay后端,避免遗漏比较组。Replay 需要已有完整 Live 缓存。完整的依赖安装、Embedding 模型准备、Live/Replay 一键复现、产物验收与常见问题见 部署文档(参考本文件安装依赖复现);最终演示使用说明保留为配置字段速查。
项目目录说明
更多文档
results/;最新跨阶段对比见 docs/m2_m4_live_comparison_20260725.md,目标系统验收见 docs/openeuler_m1_m4_verification_20260725.md。results/、models/embedding/与本地缓存默认不建议提交到 Git。下一步计划
比赛材料收口:
赛题说明
官方赛题原始 README 已备份至 docs/official_problem.md。