MachinaCheck:基于 AMD MI300X 构建 Multi-Agent CNC 可制造性系统
MachinaCheck: Building a Multi-Agent CNC Manufacturability System on AMD MI300X
MachinaCheck 是 Syed Muhammad Sarmad 和 Sabari Doss R 在 2026 年 AMD Developer Hackathon 构建的 CNC 可制造性分析系统。其用 cadquery 解析 STEP 几何,结合 Qwen 2.5 7B、LangChain、FastAPI 和 vLLM,在 AMD MI300X 本地运行多 Agent pipeline,约 25 至 40 秒生成报告,STEP 数据不外传。
](https://huggingface.co/sarmaddev)
构建于 lablab.ai 的 AMD Developer Hackathon — 2026 年 5 月
我们解决的问题
走进任何一家小型 CNC 机加工车间,问经理他们如何决定是否承接客户订单。
答案几乎总是一样:他们打印图纸,手工读取每一个尺寸,在车间里逐一检查有哪些刀具可用,估算自己的设备是否能达到所需公差,然后把备注写在夹板上。整个过程每张图纸需要 30 到 60 分钟。对于每周收到 10 到 20 个 RFQ 的繁忙车间来说,仅可制造性分析就要耗费 5 到 20 小时的熟练管理人员时间。
有时他们会判断失误。接下一个订单,开始生产后,做到一半才发现没有合适的丝锥,或者铣床无法保证某个关键特征的公差。零件报废,客户不满意,机床时间也被浪费。
我们构建 MachinaCheck,就是为了彻底消除这个问题。
MachinaCheck 的功能
MachinaCheck 是一个多 Agent AI 系统。你上传一个 STEP 文件——这是客户发送给机加工车间的标准 CAD 格式——再提供三个简单输入:材料类型、所需公差以及任何螺纹规格。30 秒后,你会得到一份完整的可制造性报告,明确告诉你能否加工该零件、需要哪些刀具、缺少什么,以及在开始生产前应采取哪些行动。
无需手工读图。无需在车间来回检查。无需猜测。
为什么基于 AMD MI300X 构建
在解释架构之前,这一点值得单独说明,因为它不只是技术选择,而是业务要求。
制造业客户会签署 NDA。他们的 STEP 文件包含专有几何数据,代表多年工程工作和数百万美元的研发投入。医疗设备上的孔位图案,或航空航天部件上的型腔几何,都是机密知识产权。
把这些数据发送到 OpenAI、Anthropic 或任何商业 API endpoint,都是对保密义务的违反。没有例外。
AMD Instinct MI300X 完全改变了这一点。凭借 192GB HBM3 VRAM 和 5.3 TB/s 内存带宽,我们可以在本地完整运行 Qwen 2.5 7B Instruct。没有数据离开车间基础设施。没有 STEP 几何数据传输到第三方服务器。客户的 IP 留在它应在的位置。
这才是制造业语境下“privacy by design”的实际含义——不是一个勾选项,而是一项根本性的架构决策,使产品能够服务真实的企业客户。
Agent 架构
MachinaCheck 使用由 LangChain 构建、通过 FastAPI 编排的五组件 pipeline。
组件 1 — STEP 文件解析器(纯 Python,无 LLM)
我们使用 cadquery,这是一个基于 OpenCASCADE 构建的 Python 库,用于直接解析 STEP 文件。这使我们能够进行数学上精确的特征提取:
- 所有圆柱孔及其直径和深度
- 平面及其面积
- 倒角和圆角
- 包围盒尺寸
- 总体积和表面积
这种提取是 100% 准确的,因为它直接读取数学几何数据——没有 vision model,没有 OCR,也没有近似。一个 Ø6.0mm 孔在输出中就是精确的 Ø6.0mm。
def extract_features(step_file_path: str) -> dict:
model = cq.importers.importStep(step_file_path)
shape = model.val()
bb = shape.BoundingBox()
holes = {}
for face in model.faces().vals():
adaptor = BRepAdaptor_Surface(face.wrapped)
if adaptor.GetType() == GeomAbs_Cylinder:
radius = adaptor.Cylinder().Radius()
diameter = round(radius * 2, 3)
holes[diameter] = holes.get(diameter, 0) + 1
return {
"bounding_box_mm": {"length": round(bb.xlen, 3), ...},
"holes": [...],
"flat_surfaces_count": len(flat_surfaces),
}
Agent 1 — 工序分类器(Qwen 2.5 7B)
提取出的几何数据加上用户输入——材料、公差、螺纹——会传递给通过 vLLM 在 AMD MI300X 上运行的 Qwen 2.5 7B。
这个 agent 回答:"制造该零件需要哪些 CNC 工序和刀具?"
它会应用制造领域知识:Steel 304 需要 carbide tooling。圆柱孔需要 drill,而不是 end mill。±0.005mm 的公差需要 precision machine,而不是 standard mill。
Agent 2 — 刀具匹配器(纯 Python)
这个 agent 不使用 LLM。它查询车间的刀具库存数据库,并检查每项所需刀具是否可用。纯确定性逻辑——数据库查找、比较、返回结果。数据库查询不需要 LLM,在这里使用 LLM 只会增加不必要的延迟和 hallucination 风险。
Agent 3 — 可制造性决策 Agent(Qwen 2.5 7B)
匹配结果会返回给 Qwen。该 agent 对整体情况进行推理,并生成结构化决策:
{
"decision": "CONDITIONAL",
"confidence": "HIGH",
"reason": "All tools available except M10x1.5 tap",
"action_items": ["Purchase M10x1.5 tap ($15)"],
"risk_flags": ["Verify spindle speed for Steel 304"],
"estimated_setup_hours": 2.5
}
Agent 4 — 报告生成器(Qwen 2.5 7B)
最后一个 agent 将所有信息综合成一份专业的可制造性报告,包括总体状态、执行摘要、零件分析、刀具状态、机床状态和最终建议。
AMD 技术栈
通过 ROCm 和 vLLM 在 AMD MI300X 上运行 Qwen 2.5 7B 很直接。AMD Developer Cloud 上的 vLLM Quick Start 镜像已经预配置好所有内容。
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--dtype float16 \
--gpu-memory-utilization 0.5
使用 gpu-memory-utilization 0.5 时,我们大约使用可用 192GB 中的 96GB,仍有充足余量。我们的 agent 调用平均 inference 延迟低于 3 秒。
LangChain 通过兼容 OpenAI 的 endpoint 连接到 vLLM:
from langchain_community.llms import VLLMOpenAI
llm = VLLMOpenAI(
openai_api_base="http://localhost:8000/v1",
openai_api_key="EMPTY",
model_name="Qwen/Qwen2.5-7B-Instruct",
temperature=0.1,
max_tokens=1000
)
结果
使用来自 GrabCAD 的真实 STEP 文件进行测试:
- 特征提取:对于最多包含 50 个特征的零件,耗时低于 1 秒
- 完整 pipeline(全部 4 个 agent):端到端 25 到 40 秒
- 决策准确性:所有测试零件的可制造性评估均正确
- 隐私:对外传输的 STEP 几何数据为 0 字节
我们的经验
只在需要推理的地方使用 LLM。 Agent 2(刀具匹配)是纯 Python。把 LLM 放在那里会更慢、更贵,也更不可靠。数据库查找的正确工具就是数据库查询。
面向结构化输出的 prompt engineering 很重要。 让 Qwen 稳定输出有效 JSON,需要在 prompt 中设置仔细的规则——明确说明圆柱孔需要 drill 而不是 end mill,直径必须精确匹配,只有指定螺纹时才会出现 tap。
AMD MI300X 非常适合这个用例。 192GB VRAM 意味着如有需要,我们可以运行大得多的模型。在生产部署中,Qwen 2.5 72B 可以轻松容纳,并提供明显更好的推理质量。
试用
- HF Space:huggingface.co/spaces/lablab-ai-amd-developer-hackathon/MachinaCheck
- GitHub:github.com/SyedMuhammadSarmad/Manufacturing-Agent
上传任意 STEP 文件,查看完整 pipeline 的运行效果。
由 Syed Muhammad Sarmad 和 Sabari Doss R 于 2026 年 5 月在 AMD Developer Hackathon 构建。
技术栈:Qwen 2.5 7B · AMD Instinct MI300X · ROCm · vLLM · LangChain · cadquery · FastAPI · Next.js · Hugging Face Spaces