修复一些已知问题
本项目面向多 Agent 协作系统中的基础设施问题,实现了一套可运行、可评测、可复现的原型系统。系统重点不是简单工作流编排,而是围绕 Agent 间通信协议、非文本状态传递、共享记忆复用和运行效率验证,构建一套系统层机制。
--ipc-demo
StructuredMessage
ActionType
AgentCapability
msgpack
fastembed
bge-small-zh-v1.5
StatePacket
scripts/openeuler_setup.sh
scripts/openeuler_verify.sh
Multi-Agent Runtime ├── Planner Agent ├── Retriever Agent ├── Executor Agent │ └── CodeActSandbox ├── Summarizer Agent ├── ProtocolHandler │ ├── StructuredMessage │ ├── msgpack codec │ └── action shortcodes ├── VectorBridge (fastembed ONNX 真实语义向量 / 哈希降级) │ ├── StatePacket │ └── SharedStateStore (multiprocessing.shared_memory 数据面) ├── MemoryStore (混合检索: 稠密召回 + 区分性术语精排) │ ├── FAISS │ └── SQLite └── Eval ├── benchmark ├── quality evaluation └── ablation IPC Demo Runtime ├── planner process ├── retriever process ├── executor process ├── summarizer process ├── control plane: multiprocessing.connection over localhost └── data plane: multiprocessing.shared_memory
text
text-fair
structured
full
另有消融模式:
full-no-memory
full-no-vector
full-no-memory-no-vector
pip install -r requirements.txt mkdir -p data/memory output/eval
当前默认使用 DeepSeek OpenAI-compatible API。
Linux / openEuler:
export DEEPSEEK_API_KEY="your-api-key"
Windows PowerShell:
$env:DEEPSEEK_API_KEY="your-api-key"
也可以在 config.yaml 中临时填写:
config.yaml
llm: provider: "deepseek" model: "deepseek-chat" base_url: "https://api.deepseek.com" api_key_env: "DEEPSEEK_API_KEY" api_key: "" temperature: 0.7 max_tokens: 4096 timeout_seconds: 120 max_retries: 4 retry_backoff_max_seconds: 8
正式交付前建议清空 api_key,改用环境变量。
api_key
python src/main.py --single python src/main.py --mode text --single python src/main.py --mode structured --single python src/main.py --mode full --single
自定义任务:
python src/main.py --mode full --single --prompt "调研Linux主流调度器的核心设计思路,给出对比分析。"
python src/main.py --benchmark --trials 1 python src/main.py --quality-eval python src/main.py --ipc-demo
输出:
output/eval/benchmark_results.json output/eval/report.md output/eval/quality_scores.json output/eval/quality_report.md output/eval/ipc_demo_report.json output/eval/ipc_demo_report.md
为了避免手工整理文档和实验结果,项目支持一条命令自动生成提交包:
python src/main.py --submission-pack
输出目录:
output/submission/
其中包含:
docs/
eval/
README_SUBMISSION.md
manifest.json
建议正式提交前按以下顺序执行:
python src/main.py --benchmark --trials 1 python src/main.py --quality-eval python src/main.py --perf-baseline --rounds 10 python src/main.py --publish python src/main.py --submission-pack
bash scripts/openeuler_setup.sh bash scripts/openeuler_verify.sh
已生成的验证日志:
output/eval/openeuler_setup.log output/eval/openeuler_verify.log output/eval/openeuler_env.log output/eval/openeuler_verify_report.md
命令:python src/main.py --benchmark --trials 3 && python src/main.py --error-bars
python src/main.py --benchmark --trials 3 && python src/main.py --error-bars
结果摘要(真实 LLM + 本地语义向量 + 共享内存数据面;每任务重复 3 次、跨 4 任务、每模式 12 样本):
结论:
68.7%
0.67
混合检索使 A→B、C→D 均正确命中前序记忆(各 3.0 命中);相比旧版(纯哈希向量+硬编码过滤),C→D 从 0 命中提升到 3.0(详见 system_design 第 6 节 A-C>A-B 分析)。命中记忆的任务耗时下降 49–62%,正是系统的核心价值场景。
A→B
C→D
命令:python src/main.py --benchmark --trials 3 --ablation(详见 docs/ablation_summary.md)
python src/main.py --benchmark --trials 3 --ablation
docs/ablation_summary.md
消融结论(隔离各机制贡献,回答“收益从哪来”):
151.4s
84.8s
44%
12864
7524
41%
2.75
63.4
命令:python src/main.py --perf-baseline --rounds 10
python src/main.py --perf-baseline --rounds 10
任务:
请计算 text 模式耗时88.8秒、full模式耗时37.4秒时的耗时下降百分比,并给出简短结论。
结果:
codeact_executions: 2 codeact_successes: 2 计算结果: 57.88%
系统自动统计:
structured_messages
text_messages
total_tokens_structured
total_tokens_text
total_json_bytes_structured
total_binary_bytes_structured
avg_binary_compression_ratio
non_text_state_transfers
non_text_state_bytes
state_packets
state_packet_bytes
memory_reuse_hits
skipped_agent_calls
compressed_results
compressed_text_chars_saved
codeact_executions
codeact_successes
agent_Match/ ├── config.yaml ├── requirements.txt ├── README.md ├── docs/ │ ├── system_design.md │ ├── experiment_report.md # 由 --publish 自动生成 │ ├── ablation_summary.md │ ├── latest_run_summary.md # 由 --publish 自动生成 │ └── deployment_openeuler.md ├── scripts/ │ ├── install.sh │ ├── run.sh │ ├── benchmark.sh │ ├── openeuler_setup.sh │ ├── openeuler_verify.sh │ └── package_submission.ps1 ├── src/ │ ├── main.py │ ├── config.py │ ├── agent/ │ │ ├── base_agent.py │ │ ├── planner.py │ │ ├── retriever.py │ │ ├── executor.py │ │ ├── summarizer.py │ │ └── llm.py │ ├── protocol/ │ │ ├── types.py │ │ ├── protocol_handler.py │ │ └── codec.py │ ├── embedding/ │ │ └── embedder.py # fastembed ONNX 真实语义向量 / 哈希降级 │ ├── state_transfer/ │ │ ├── vector_bridge.py │ │ ├── state_packet.py │ │ └── shared_store.py # multiprocessing.shared_memory 数据面 │ ├── memory/ │ │ └── store.py │ ├── sandbox/ │ │ └── codeact.py │ ├── runtime/ │ │ ├── orchestrator.py │ │ ├── trace.py │ │ └── ipc_demo.py # 真多进程 IPC demo │ └── eval/ │ ├── benchmark.py │ ├── quality.py │ ├── error_bars.py # trials≥3 均值/标准差/95%CI │ ├── perf_baseline.py │ ├── report.py │ ├── publish.py │ ├── submission_pack.py │ └── tasks.py ├── tests/ │ ├── test_memory_store.py │ ├── test_orchestrator_integration.py │ ├── test_state_transfer.py │ └── test_ipc_demo.py └── output/eval/ # 全部产物均可由脚本重新生成,不入库
需要自行配置llm.api_key
面向多智能体协作的低开销通信、状态传递与共享记忆机制
本项目面向多 Agent 协作系统中的基础设施问题,实现了一套可运行、可评测、可复现的原型系统。系统重点不是简单工作流编排,而是围绕 Agent 间通信协议、非文本状态传递、共享记忆复用和运行效率验证,构建一套系统层机制。
核心能力
--ipc-demo启动 4 个独立 Agent 进程,控制面 socket/connection 握手,数据面 shared_memoryStructuredMessage+ActionType+AgentCapabilitymsgpack编码 + action shortcode + JSON/binary bytes 统计fastembed+bge-small-zh-v1.5(512维, 无 torch),离线降级哈希StatePacket(句柄+向量+摘要) + 共享内存数据面 + 消费端向量门控 deref/skipscripts/openeuler_setup.sh+scripts/openeuler_verify.sh系统架构
三种协作模式
texttext-fairstructuredfull另有消融模式:
full-no-memoryfull-no-vectorfull-no-memory-no-vector快速开始
1. 安装依赖
2. 配置 API Key
当前默认使用 DeepSeek OpenAI-compatible API。
Linux / openEuler:
Windows PowerShell:
也可以在
config.yaml中临时填写:正式交付前建议清空
api_key,改用环境变量。3. 运行单任务
自定义任务:
4. 运行正式评测
输出:
5. 一键验证包
为了避免手工整理文档和实验结果,项目支持一条命令自动生成提交包:
输出目录:
其中包含:
docs/:技术报告、答辩稿、一页图、评分映射、部署说明eval/:benchmark、质量评估、性能基线、openEuler 验证结果README_SUBMISSION.md:建议阅读顺序与核心结论manifest.json:提交包文件清单与缺失项建议正式提交前按以下顺序执行:
6. openEuler 验证
已生成的验证日志:
关键实验结果表
三模式 benchmark(trials=3,均值 ± 95%CI)
命令:
python src/main.py --benchmark --trials 3 && python src/main.py --error-bars结果摘要(真实 LLM + 本地语义向量 + 共享内存数据面;每任务重复 3 次、跨 4 任务、每模式 12 样本):
结论:
68.7%(7524 vs 24004),CI 仅 ±512,跨重复实验高度稳定,是系统最大、最稳的收益(对应通信效率 25 分)。0.67(消息字节压缩,与 LLM token 节省是两个独立口径)。连续任务记忆复用(trials=3,per-task)
混合检索使
A→B、C→D均正确命中前序记忆(各 3.0 命中);相比旧版(纯哈希向量+硬编码过滤),C→D从 0 命中提升到 3.0(详见 system_design 第 6 节 A-C>A-B 分析)。命中记忆的任务耗时下降 49–62%,正是系统的核心价值场景。关键机制消融(与 full 同冷启动口径,4 任务平均)
命令:
python src/main.py --benchmark --trials 3 --ablation(详见docs/ablation_summary.md)消融结论(隔离各机制贡献,回答“收益从哪来”):
151.4s→ 开启84.8s,下降约44%。12864→ 开启7524,下降约41%;无记忆冷路径每任务约2.75次 shm 写入/deref,完整状态走共享内存数据面而非消息总线。63.4)。性能基线(P50/P95/P99,固定任务 10 轮)
命令:
python src/main.py --perf-baseline --rounds 10full(52.6s)最快;即便对比精简的text-fair(P50 56.1s),full 在 token 与质量上仍明显占优(见上表),latency 差距则较小。full 的核心优势在 token 效率与记忆复用,而非单纯耗时。text-fair的 P95=597.7s 是单轮 API 超时重试造成的离群点(10 轮中其余 9 轮均为 42–78s),非模式本身特性。CodeAct 验证
任务:
结果:
评测指标
系统自动统计:
structured_messages/text_messagestotal_tokens_structured/total_tokens_texttotal_json_bytes_structuredtotal_binary_bytes_structuredavg_binary_compression_rationon_text_state_transfersnon_text_state_bytesstate_packetsstate_packet_bytesmemory_reuse_hitsskipped_agent_callscompressed_resultscompressed_text_chars_savedcodeact_executions/codeact_successes项目结构
注意
需要自行配置llm.api_key