first commit
版本 1.1.0 | 运行环境 沐曦 GPU + vLLM | 模式 离线容器化推理
MAS_Metax V1 是一个专为沐曦 GPU 容器环境设计的离线多智能体研究系统。 六个专业 LLM Agent 协同完成深度研究任务——从课题分解到多轮检索、证据分析、报告撰写 和质量审核,最终产出完整的 Markdown 研究报告,并提供全链路审计追踪和可视化。
# 冒烟测试(Mock 后端,无需 GPU) python run.py --demo --print-report # 列出可用模型 python run.py --list-models # 真实运行,逐个指定 Agent 模型 python run.py \ --topic "沐曦容器内基于 vLLM 的离线多智能体推理框架" \ --backend vllm \ --agent-model Orchestrator=Qwen3-4B \ --agent-model Researcher=Qwen3-4B \ --agent-model Analyst=Qwen3.5-9B \ --agent-model Writer=Qwen3.5-27B-W8A8 \ --agent-model Reviewer=Qwen3-30B-A3B-Thinking-2507 \ --agent-model ReviewFeedback=Qwen3-30B-A3B-Thinking-2507 \ --source examples/metax_local_notes.md # 连接已有的 vLLM OpenAI 兼容服务 python run.py \ --topic "国产 GPU 离线 LLM 推理框架评估" \ --backend openai \ --base-url http://127.0.0.1:8000/v1 \ --model-name Qwen3-8B \ --source examples/metax_local_notes.md
用户课题 / Query │ ▼ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ Orchestrator │────▶│ Researcher │────▶│ Analyst │ │ 任务理解与分解 │ │ 多轮检索 + │ │ 证据分析与 │ │ │ │ 知识库沉淀 │ │ 洞察提炼 │ └─────────────────┘ └────────┬─────────┘ └────────┬────────┘ │ │ ┌────────────┴────────┐ │ ▼ ▼ │ ┌──────────────┐ ┌─────────────────┐ │ │ 本地知识库 │ │ Web 搜索 │ │ │ (词法检索) │ │ (DDGS/Bing) │ │ └──────────────┘ └─────────────────┘ │ │ │ ▼ │ ┌─────────────────┐ │ │ 相关性评分 │ │ │ (LLM + 词法 │ │ │ 回退算法) │ │ └────────┬────────┘ │ │ │ ┌────────────┴────────────┐ │ ▼ ▼ │ ┌──────────────┐ ┌──────────────┐ │ │ 精炼知识库 │ │ 证据池 │◀────┘ │ (持久化) │────────▶│ source_hits │ └──────────────┘ └──────┬───────┘ │ ▼ ┌─────────────────┐ │ Writer │ │ Markdown 报告 │ └────────┬────────┘ │ ▼ ┌─────────────────┐ ┌──────────────────┐ │ Reviewer │────▶│ ReviewFeedback │ │ 质量审核 │ │ 修订计划 + │ │ JSON 输出 │ │ 闭环验证 │ └────────┬────────┘ └────────┬─────────┘ │ │ │ ┌──────────────────┘ ▼ ▼ (回退) ┌─────────────────┐ │ 最终报告 │ │ + 可视化 │ └─────────────────┘
架构要点:
model_assignments.json
url
provider
retrieved_at
data/knowledge/refined/
<think>
log/
draft_report
passed=false
analysis_results
max_review_rounds
outputs/
--backend vllm
vllm.LLM()
--backend openai
--backend mock
当 backend=vllm 且 Agent 使用不同模型路径时,_ensure_agent_model_ready() 自动卸载先前的模型再加载新模型,防止 GPU 显存溢出。
backend=vllm
_ensure_agent_model_ready()
模型路径统一为 /mnt/moark-models/。框架内置 9 个模型的目录信息:
/mnt/moark-models/
Agent 模型配置方式:CLI(--agent-model Researcher=Qwen3-4B)、环境变量(METAX_RESEARCHER_MODEL)、JSON 映射(METAX_AGENT_MODEL_MAP)。
--agent-model Researcher=Qwen3-4B
METAX_RESEARCHER_MODEL
METAX_AGENT_MODEL_MAP
Researcher 执行迭代式检索(默认:3 轮 × 4 查询/轮 × 8 条命中/轮):
local_search
web_search
data/knowledge/refined/*.md
# 自定义检索参数 python run.py \ --retrieval-rounds 5 \ --retrieval-queries-per-round 6 \ --retrieval-max-hits-per-round 10 \ --retrieval-relevance-threshold 0.3 \ --knowledge-refine \ --topic "..."
Reviewer(score, passed, required_fixes) │ ▼ ReviewFeedback(should_revise, target_agents, backtrack_plan) │ ├── Researcher ← 证据缺口、来源不足、最新性缺失 ├── Analyst ← 逻辑冲突、置信度不足、推断缺口 └── Writer ← 结构、引用、表达、完整性 │ ▼ validate_closure(closed, final_decision, remaining_risks) │ ├── closed=true 且 should_revise=false → 最终报告 └── 否则 → 下一轮审核
默认:最多 3 轮修订,通过分数线 8。所有回退动作记录在 quality_actions.json 中。
quality_actions.json
每次运行在 outputs/<timestamp>_<topic>/ 下生成:
outputs/<timestamp>_<topic>/
report.md
state.json
config.json
llm_calls.json
agent_llm_usage.json
sources.json
review_feedback.json
validation.json
visual/workflow.svg
visual/timeline.svg
visual/llm_usage.svg
visual/feedback_loop.svg
visual/model_assignment.svg
visual/retrieval_strategy.svg
visual/dashboard.html
复制 .env.example 为 .env 后修改:
.env.example
.env
cp .env.example .env
METAX_BACKEND
vllm
openai
mock
METAX_MODEL_PATH
/mnt/moark-models/Qwen3-8B
METAX_MODEL_NAME
Qwen3-8B
METAX_GPU_MEMORY_UTILIZATION
0.88
METAX_MAX_MODEL_LEN
8192
METAX_TEMPERATURE
0.6
METAX_MAX_TOKENS
2048
METAX_RETRIEVAL_ROUNDS
3
METAX_RETRIEVAL_QUERIES_PER_ROUND
4
METAX_RETRIEVAL_MAX_HITS_PER_ROUND
8
METAX_RETRIEVAL_RELEVANCE_THRESHOLD
0.25
METAX_MAX_REVIEW_ROUNDS
METAX_REVIEW_SCORE_THRESHOLD
METAX_ENABLE_WEB_SEARCH
false
METAX_KNOWLEDGE_DIR
data/knowledge
METAX_KNOWLEDGE_REFINE_DIR
data/knowledge/refined
METAX_OUTPUT_DIR
outputs
METAX_ENABLE_VISUALS
true
METAX_LOG_LEVEL
INFO
各 Agent 独立覆盖变量:METAX_ORCHESTRATOR_MODEL、METAX_RESEARCHER_MODEL、METAX_ANALYST_MODEL、METAX_WRITER_MODEL、METAX_REVIEWER_MODEL、METAX_REVIEW_FEEDBACK_MODEL。
METAX_ORCHESTRATOR_MODEL
METAX_ANALYST_MODEL
METAX_WRITER_MODEL
METAX_REVIEWER_MODEL
METAX_REVIEW_FEEDBACK_MODEL
V1/ ├── run.py # CLI 入口 ├── requirements.txt # 依赖声明 ├── .env.example # 环境变量模板 ├── generate_pptx.py # PPTX 报告生成器 ├── metax_mas/ │ ├── __init__.py │ ├── cli.py # 命令行参数解析与日志设置 │ ├── api.py # FastAPI 服务 │ ├── pipeline.py # 端到端多智能体编排 │ ├── agents/ │ │ ├── base.py # Agent 基类 │ │ ├── orchestrator.py # 任务规划 │ │ ├── researcher.py # 多轮检索 │ │ ├── analyst.py # 证据分析 │ │ ├── writer.py # 报告生成与修订 │ │ ├── reviewer.py # 质量审核 │ │ └── review_feedback.py # 反馈与闭环验证 │ └── core/ │ ├── config.py # RuntimeConfig 配置管理 │ ├── llm.py # 后端适配器(vLLM/OpenAI/Mock) │ ├── model_catalog.py # 模型注册表 │ ├── state.py # ResearchState 与 TaskStatus │ ├── tools.py # 本地语料与 Web 搜索 │ ├── artifacts.py # 输出物持久化 │ └── visualization.py # SVG/HTML 仪表盘 ├── data/ │ └── knowledge/ # 本地知识库与精炼知识 ├── examples/ │ └── metax_local_notes.md # 示例资料文档 ├── log/ # 运行日志(自动生成) └── outputs/ # 运行产物(自动生成)
--demo
--backend vllm --model-path /mnt/moark-models/Qwen3-8B
--agent-model AGENT=MODEL
--review-score-threshold 9 --max-review-rounds 4
--gpu-memory-utilization
0.75
backend=vllm 首次调用包含模型加载、torch.compile 和 CUDA 图捕获的一次性开销。使用 --enforce-eager 可跳过图捕获以加快启动(代价是重复调用吞吐量降低)。
torch.compile
--enforce-eager
通过 --web-search 启用。需要网络连接和 ddgs/duckduckgo_search 包。如果不可用,工具返回空结果,报告会注明限制。
--web-search
ddgs
duckduckgo_search
uvicorn metax_mas.api:app --host 0.0.0.0 --port 8000
FAILED
try/except
_setup_logging()
error_summary_<ts>.txt
tokenizer_mode
LLM()
内部研究用途。MetaX / MAS_Metax。
CCF开源创新大赛 星澜战队 参赛作品
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MAS_Metax V1 — 离线多智能体深度研究框架
版本 1.1.0 | 运行环境 沐曦 GPU + vLLM | 模式 离线容器化推理
概述
MAS_Metax V1 是一个专为沐曦 GPU 容器环境设计的离线多智能体研究系统。 六个专业 LLM Agent 协同完成深度研究任务——从课题分解到多轮检索、证据分析、报告撰写 和质量审核,最终产出完整的 Markdown 研究报告,并提供全链路审计追踪和可视化。
核心能力
快速开始
架构
架构要点:
model_assignments.json中,并在仪表盘中可视化。url、provider和retrieved_at。data/knowledge/refined/并刷新语料索引。<think>泄漏、无来源性能数字、虚构对比表和缺失的 URL 引用。log/目录,失败时自动生成结构化错误摘要。Agent 详解
draft_reportReviewer 红线判定标准
<think>或内部推理过程 → 不通过passed=false流水线(5 阶段)
analysis_results和draft_report存在后再进入审核。max_review_rounds次。outputs/。推理后端
--backend vllmvllm.LLM()加载模型。支持自动模型交换。--backend openai--backend mock模型交换机制(V1.1)
当
backend=vllm且 Agent 使用不同模型路径时,_ensure_agent_model_ready()自动卸载先前的模型再加载新模型,防止 GPU 显存溢出。模型目录
模型路径统一为
/mnt/moark-models/。框架内置 9 个模型的目录信息:Agent 模型配置方式:CLI(
--agent-model Researcher=Qwen3-4B)、环境变量(METAX_RESEARCHER_MODEL)、JSON 映射(METAX_AGENT_MODEL_MAP)。多轮检索与知识沉淀
Researcher 执行迭代式检索(默认:3 轮 × 4 查询/轮 × 8 条命中/轮):
local_search(基于词法、TF)和可选的web_search(DDGS/Bing 回退)。data/knowledge/refined/*.md,刷新语料索引。质量闭环
默认:最多 3 轮修订,通过分数线 8。所有回退动作记录在
quality_actions.json中。输出产物
每次运行在
outputs/<timestamp>_<topic>/下生成:report.mdstate.jsonconfig.jsonmodel_assignments.jsonllm_calls.jsonagent_llm_usage.jsonsources.jsonreview_feedback.jsonvalidation.jsonquality_actions.jsonvisual/workflow.svgvisual/timeline.svgvisual/llm_usage.svgvisual/feedback_loop.svgvisual/model_assignment.svgvisual/retrieval_strategy.svgvisual/dashboard.htmldata/knowledge/refined/*.md配置参考
复制
.env.example为.env后修改:METAX_BACKENDvllmvllm、openai、mockMETAX_MODEL_PATH/mnt/moark-models/Qwen3-8BMETAX_MODEL_NAMEQwen3-8BMETAX_GPU_MEMORY_UTILIZATION0.88METAX_MAX_MODEL_LEN8192METAX_TEMPERATURE0.6METAX_MAX_TOKENS2048METAX_RETRIEVAL_ROUNDS3METAX_RETRIEVAL_QUERIES_PER_ROUND4METAX_RETRIEVAL_MAX_HITS_PER_ROUND8METAX_RETRIEVAL_RELEVANCE_THRESHOLD0.25METAX_MAX_REVIEW_ROUNDS3METAX_REVIEW_SCORE_THRESHOLD8METAX_ENABLE_WEB_SEARCHfalseMETAX_KNOWLEDGE_DIRdata/knowledgeMETAX_KNOWLEDGE_REFINE_DIRdata/knowledge/refinedMETAX_OUTPUT_DIRoutputsMETAX_ENABLE_VISUALStrueMETAX_LOG_LEVELINFO各 Agent 独立覆盖变量:
METAX_ORCHESTRATOR_MODEL、METAX_RESEARCHER_MODEL、METAX_ANALYST_MODEL、METAX_WRITER_MODEL、METAX_REVIEWER_MODEL、METAX_REVIEW_FEEDBACK_MODEL。项目结构
部署指南
推荐工作流
--demo验证代码链路。--backend vllm --model-path /mnt/moark-models/Qwen3-8B。--agent-model AGENT=MODEL逐个指定。--review-score-threshold 9 --max-review-rounds 4。GPU 显存注意
--backend openai连接。--gpu-memory-utilization(如0.75)。首次启动耗时
backend=vllm首次调用包含模型加载、torch.compile和 CUDA 图捕获的一次性开销。使用--enforce-eager可跳过图捕获以加快启动(代价是重复调用吞吐量降低)。Web Search
通过
--web-search启用。需要网络连接和ddgs/duckduckgo_search包。如果不可用,工具返回空结果,报告会注明限制。API 模式
V1.1 鲁棒性改进
_ensure_agent_model_ready()自动卸载先前模型FAILED,继续执行try/except_setup_logging()同时写入 stderr 和log/目录error_summary_<ts>.txt,含完整配置信息tokenizer_mode传递给LLM()许可证
内部研究用途。MetaX / MAS_Metax。