
清华大学IEI实验室开源的Multi-Agent CAD(MAC)通过四智能体协作架构,将文本到可打印CAD模型的生成成本降至传统单智能体方案的1/13,Token消耗降至1/116,特征通过率提升至99.3%。

该系统将CAD生成拆解为规划、设计、编码、质检四个阶段,各阶段仅传递结构化JSON状态而非完整对话历史,从根本上解决长上下文导致的Token指数膨胀问题。支持OpenAI兼容端点接入任意LLM提供商,提供终端与Web UI双运行模式,所有中间产物白盒可审计,并内置确定性转换器实现常见CAD操作零Token消耗。
核心架构:四阶段结构化状态传递
MAC的效率革命源于对推理过程的结构性重组,而非模型能力升级:
| 阶段 | 智能体 | 输入 | 输出 | Token优化机制 |
|---|---|---|---|---|
| 1 | Spec Planner | 自然语言需求 | CADBrief JSON(3个验证目标) | 仅解析需求,不读文档/历史 |
| 2 | Geometric Architect | CADBrief | ArchitectPlan JSON(草图/步骤/选择器) | 仅读结构化简报,无上下文重放 |
| 3 | Python Coder | ArchitectPlan | temp_design.py | 确定性转换器处理常规操作,仅边缘case调用LLM |
| 4 | Autonomous Skill Loop | 代码+STEP/STL | 最终模型+QA报告 | Aider修复循环仅注入错误摘要,非全量对话 |
关键创新点:
- 状态隔离:每个智能体只看到角色所需的最小结构化快照,幻觉在阶段边界被切断
- 确定性转换器:
_plan_to_code将extrude/revolve/hole/fillet等12类常规CAD操作转为纯Python执行,零Token消耗 - 缓存复用:
pipeline_cache/存储前两阶段输出,相同提示词重运行时跳过LLM调用,秒级恢复 - 混合路由:四阶段可独立配置模型(如Planner用轻量模型、Architect用qwen3.7-max、Repair用Claude),成本可进一步压缩
基准测试(10提示词/141特征,Qwen3.7-max):
| 指标 | 单智能体基线 | MAC | 提升 |
|---|---|---|---|
| Token | 103.9M | 896k | 116×↓ |
| 成本 | ¥125.69 | ¥9.67 | 13×↓ |
| API调用 | 1,307 | 50 | 26×↓ |
| 通过率 | 97.9% | 99.3% | ↑ |
部署配置与多提供商适配
环境安装
# Conda(推荐,Windows/macOS/Linux通用)
git clone https://github.com/Pan-Chera/Multi-Agent-CAD && cd Multi-Agent-CAD
conda env create -f environment.yml && conda activate multi_agent_cad
# pip变通方案(仅macOS arm64 + Python3.11验证)
python3.11 -m venv .venv && source .venv/bin/activate
pip install aider-chat==0.82.3
pip install --no-deps --force-reinstall "numpy>=2,<3" # 解决numpy版本冲突
pip install "build123d>=0.8" "langgraph>=0.2,<0.3" ... # 其余依赖见requirements.txt
pip install --no-deps -e .
⚠️ Windows用户必须使用Conda,pip安装的trimesh/rtree原生wheel不可靠。
LLM提供商切换
编辑 multi_agent_cad/config.py,修改以下字段即可切换全流程模型:
DS_BASE_URL = "https://api.openai.com/v1" # 或DeepSeek/Gemini/Ollama端点
SPEC_PLANNER_MODEL = ARCHITECT_MODEL = CODER_MODEL = REPAIR_MODEL = "gpt-5.6"
# 非Qwen模型需禁用thinking开关:
SPEC_PLANNER_KWARGS = ARCHITECT_KWARGS = CODER_KWARGS = REPAIR_KWARGS = {}
AIDER_MODEL = "openai/gpt-5.6" # Aider阶段需litellm前缀
环境变量 DASHSCOPE_API_KEY 接受任何OpenAI兼容密钥(名称为历史遗留)。
运行模式选择
| 模式 | 命令 | 适用场景 | 交互特性 |
|---|---|---|---|
| 终端原始流 | python -m multi_agent_cad.graph | 调试/注入变更 | 每轮QA后10秒检查点(1自动/2注入/3停止) |
| 终端修改流 | python -m multi_agent_cad.graph_aider | 迭代现有设计 | 将USER_REQUEST作为修改需求应用 |
| Web UI | python -m multi_agent_cad.web | 可视化预览 | 浏览器内3D预览+一键下载,无运行时干预 |
Web UI默认监听 0.0.0.0:8000,远程访问务必通过SSH隧道(ssh -L 8000:localhost:8000 user@server),生成的.py文件在服务器端执行,严禁暴露于公网。
使用边界与实操注意事项
缓存陷阱
- 缓存仅检查文件存在性,不校验
USER_REQUEST内容。修改提示词后必须手动清除:rm pipeline_cache/cad_brief.json pipeline_cache/architect_plan.json - 或在代码中设置
force_refresh: True绕过缓存
模型选择策略
- Spec Planner:需求解析为简单JSON输出,可用本地小模型(如qwen3-coder:7b)降本
- Geometric Architect:空间推理强依赖大模型,建议保留qwen3.7-max或同级
- Python Coder:常规操作由确定性转换器处理,仅TODO_AIDER占位符触发LLM,可降级
- Aider Repair:代码修复对指令遵循要求高,Claude/GPT优于多数开源模型
安全与合规
- 生成的
.py文件直接执行,需在可信环境运行;生产部署应沙箱化 - Web UI无认证机制,仅限内网或SSH隧道访问
- 输出STEP/STL文件需经人工验证再用于制造,AI生成模型可能存在隐性几何缺陷
已知局限
- 不支持draft/rib/无control_points自定义多边形等高级特征,回退至Aider修复
- Windows未纳入CI测试,虽代码避免Unix-only API,但遇问题需自行排查
- 10倍速度提升为数量级估计,实际受网络延迟/模型响应时间影响
MAC代表了AI辅助工程设计的范式转变:从“用更强模型硬扛复杂度”转向“用更好架构分解复杂度”。当Token成本不再是瓶颈,CAD生成的民主化才真正开始。对于教育、原型验证、小批量定制等场景,这可能是当前最具实用价值的开源文本到制造解决方案。
相关导航


Shots

UXSnaps

VibeFigma

Frontpages

Design Prompts

350 种排版 · 分类图鉴






