我们放弃了单Agent方案:HiCAD 3.0 用 Harness 做多Agent编排,把3D建模的准确率提升了30%

最近一直在深耕 AI Agent 与大模型应用,比如 JitKnow AI 知识库、JitWord 协同AI文档、Pxcharts 超级表格。

今天和大家分享继续分享一下我做的 AI CAD 建模平台------HiCAD。

之前也和大家分享过它的能力,简言之,就是我们可以通过一句话,让AI帮我们生成 CAD 模型。

GitHub 地址:github.com/MrXujiang/H...

2.0 版本,HiCAD 在模型生成能力和质量上有了质的提升,同时我还引入了 Harness + Langfuse 可观测工程化能力,让AI生成的模型质量和稳定性更高。

话不多说,先上一个 3.0 版本的模型生成能力:

之前的版本中,让AI生成一个跑车,生成的效果是这样的:

两张图一对比,就可以看到 3.0 版本的模型生成能力远远超过了 2.0 版本。

HiCAD 生成模型的核心链路如下:

用户输入 Prompt → 前端发起 SSE 请求 → NestJS AI 服务识别意图 → 单阶段或双阶段生成 JSCAD → WebWorker 执行 → Three.js 渲染 → 自动质量评分 → 用户保存、导出、发布或续改。

自动质量评测模型

在新版本中,我引入了AI质量评测系统,前端生成完成后会调用 /api/ai/evaluation/code,把评分、等级、低分指标和建议显示在编辑器内,并可进一步触发一键优化。比如我让 HiCAD 生成一个 飞机模型:

在生成完毕之后,会自动弹出质量分析可视化面板:

AI会自动对模型进行质量打分,我们还能一键调整参数和效果,并自定义提示词,让AI进行进一步优化,直到我们满意为止。

具体的评测指标如下:

我不仅设计了在模型生成时的质量评测,还设计了全面的AI可视化监控面板:

我在项目源码里有完整的实现方案,大家感兴趣的可以参考研究一下。多模型切换HiCAD 在AI生成3D模型时,我们还能切换不同能力的模型,同时还能接入第三方大模型,比如Deepseek,Kimi,千问等,实现更多复杂效果:

下面是我生成的一个创意建筑的 3D 模型,给大家演示一下完整的生成效果:

我们还能一键切换不同的视图,比如线框图,平面图,透视图等:

HiCAD 技术实现和架构设计

HiCAD 采用前后端分离的 Monorepo 架构,核心目标是把自然语言建模需求转化为可执行、可编辑、可评测的参数化 JSCAD 代码,并在浏览器中通过 Worker 与 Three.js 完成安全渲染。技术选型上,我采用了如下的技术方案:

包含了前端和后端还有可观测监控的全链路闭环,大家在做企业级AI应用的时候也可以参考一下。

前端分层架构设计前端部分由页面、组件、Store、Composables 和 Utils 五层组成。最重要的是 EditorPage,它把 AI 对话、代码编辑、参数化调整、3D 视图、质量评分和导出能力连接起来。具体的目录结构设计如下:

前端的关键设计在于"状态驱动渲染":AI 生成完成之后写入 editorStore.code,useJscad 用来监听代码执行 Worker,ThreeViewer 根据 GeometryGroup 更新场景,QualityPanel 根据评测结果更新建议。后端分层架构设计

后端我使用 NestJS 的模块化组织架构,每个业务域拥有 Controller、Service 和 DTO。AI 模块是核心,它同时包含 Prompt、Adapter、双阶段 codegen、质量评测和观测。下面我分享一下后端的工程化设计:

Skills 技术与多 Agents 实现方案

HiCAD 在运行时我设计了 AI 建模Skills(技能)和 Agent 编排。通过 Prompt Skills、多阶段 Agent 和确定性 Codegen,可以让用户的自然语言需求变成可落地的 3D CAD 模型。下面分享一下我设计的6层 Agent 协作系统:

多 Agent 协作的链路如下:

rust 复制代码
用户需求  -> Intent Detector 判断 general / mechanical_arm / tank / car  -> Design Agent 输出结构化 Spec  -> Spec Normalizer 做范围裁剪和默认值兜底  -> Codegen Agent 生成确定性 JSCAD  -> Worker Runtime 执行代码并返回几何  -> Quality Agent 评分并生成优化建议  -> Modify Agent 基于当前代码续改

其实我们在设计任何AI产品或者建模工具时,都可以参考我设计的架构来实现。在 HiCAD 的技术文档中我有详细的介绍:

Harness 技术思想:让 AI 建模从"摆零件"变成"可装配"

HiCAD 的 Harness 不是单个函数,而是一套约束 AI 输出的建模思想:统一坐标系、底部对齐、锚点公式、轻微嵌入、最终装配、自检评测。它解决的是 AI CAD 最常见的问题:零件悬浮、方向错误、比例失衡、返回散件、材质语义缺失。

下面分享一下 Harness 的"心智"模型:

php 复制代码
// Harness 心智模型const base = cuboid({ size: [100, 10, 60] })
const body = roundedCuboid({ size: [80, 35, 45], roundRadius: 4 })const cover = cuboid({ size: [70, 8, 40] })
// 从下到上堆叠,并让每层有轻微嵌入
return stackOverlap(2, base, body, cover)

HiCAD AI 技术深度剖析

单阶段生成能力

HiCAD 的通用模型走 Prompt → AI → JSCAD 代码的单阶段链路,适合支架、外壳、齿轮、花瓶、文字铭牌等通用建模需求。系统 Prompt 会注入 JSCAD API、坐标系、Harness、材质、参数化注释和反模式约束。

下面分享一个我画的详细的流程:

双阶段精准建模

复杂领域模型走"AI 设计决策 + 确定性代码生成"模式。比如机械臂、坦克、汽车会先由 Design Agent 输出 JSON Spec,再由 jscad-codegen.ts 生成代码,避免大模型直接写复杂定位代码时出现方向错误和零件分离。

代码实现案例如下:

多模型 Adapter

我设计了多模型的适配层,后端通过统一 AiAdapter 接口暴露 generateStream(),MultiAdapter 根据 modelId 路由不同供应商,并支持用户自定义 API Key 优先、环境变量兜底、模型输出窗口差异治理和自动重试。

具体的模型选型和适配策略如下,大家可以参考一下:

Prompt Skills 分层设计

prompt-builder.ts 不是简单提示词,而是一个可复用的技能包,实现流程如下:

模型执行与安全治理

AI 输出代码必须先经过 Worker Runtime 清洗与沙箱执行,不能在主线程直接运行。HiCAD 在 Worker 中完成代码提取、导入清理、截断修复、变量冲突处理、API 注入、几何序列化和零拷贝传输,保障了代码质量和安全性需求。

下面我来分享一下代码执行阶段的4层防护治理设计:

由于考虑到计算性能的问题,我统一在 web worker 中进行处理,流程代码如下:

好啦,今天的分享就到这,当然 HiCAD还有很多能力没有介绍到,大家可以研究参考一下:

GitHub 地址:github.com/MrXujiang/H...

相关推荐
胡萝卜术1 小时前
从零搞懂 AJAX:手把手带你从 XMLHttpRequest 到 fetch,彻底理解前后端数据交互
前端·后端·面试
星河耀银海1 小时前
接口调用:HTML5前端调用AI接口的基础语法与示例
前端·人工智能·html5
HarvestHarvest1 小时前
【Copy Web独立开发者实战:我是如何用 AI 实现网页 UI 1:1 完美复刻的?】
前端·人工智能·ui
洛水水1 小时前
【力扣100题】88.多数元素
数据结构·算法·leetcode
RuoyiOffice1 小时前
从 0 到 1 搭建 RuoyiOffice:30 分钟跑通后端+前端+移动端
前端·spring boot·uni-app·开源·oa·ruoyioffice·hrm
昭昭颂桉a1 小时前
TypeScript 前端的必修课,从 JS 到 TS
开发语言·前端·javascript·typescript
用户938515635071 小时前
从零实现一个 Todos 应用:原生 Ajax + Node 服务,顺便吃透 JSON.stringify
前端·javascript·后端
程序猿阿伟1 小时前
《Chrome扩展:穿透沙箱与签名体系的技术本质》
前端·chrome
Shan12051 小时前
无向图的Hierholzer算法流程(一)
算法