Agent 工作流
CadFlow 为编码智能体提供确定性的执行和反馈层,同时不把 SDK 绑定到特定模型供应商或编排框架。
任务 → Python 建模程序 → 原生几何 → 结构化证据
↑ ↓
└────────── 有针对性的源码修复 ────┘
优先使用显式公共边界
Agent 编写的程序应:
- 使用
import cadflow as cad; - 从
cad.Model或cad.Graph开始; - 通过公共领域模块完成高层工作流;
- 避免
cadflow._engine、OCP/OpenCascade 对象、私有句柄和直接加载动态库; - 显式写出参数、单位、假设和输出路径。
这样生成的程序便于审查,也能适应原生迁移。
操作前发现能力
with cad.Model() as model:
capabilities = model.capabilities()
print(capabilities)
报告会列出前端领域、原生操作、选择支持和单位策略。Agent 无需探查私有实现即可调整计划。
预检并执行操作
with cad.Model() as model:
base = model.box(80, 50, 8)
outcome = model.apply("shell", base, thickness=-2.0, faces=[1])
if not outcome.report.ok:
print(outcome.report.to_dict())
else:
print(outcome.shape.describe())
OperationReport 包含稳定字段:operation、status、ok、output、parameters 和 diagnostics。每条 Diagnostic 包含 severity、code、message、可选 hint 和可选结构化 data。
修复逻辑应根据 Diagnostic Code 分支,而不是匹配异常字符串。
为每项交付主张提供证据
有效的 Agent 循环会在关键构造步骤后记录证据:
evidence = part.describe()
validation = part.validate().to_dict()
assert validation["ok"]
assert evidence["topology"]["solids"] == 1
assert evidence["volume"] > 0
最终输出还应验证文件存在、对关键交换格式执行往返测试、渲染视图,并把报告保存在 CAD 产物旁。
只加载当前需要的工作流 Skill
CadFlow 仓库提供按任务划分的 CAD Skills:
| Skill | 适用场景 |
|---|---|
cadflow-model-part | 刚性机械零件 |
cadflow-flexible-model | 静态布料、薄片、膜、服装和薄壳 |
cadflow-step-brep | STEP/BREP 检查、对比和重建 |
cadflow-validate-export | 最终几何、重放与产物验证 |
cadflow-contact-simulation | Face 属性、接触定律、FEA 交接与交接包 |
这些 Skill 采用渐进式披露:先加载工作流,只有在需要确切操作签名或文件契约时才读取对应 API 参考。
CadFlow 与 CadFlowAgent
CadFlowAgent 是独立上层应用,提供 LLM Harness、项目工作区、执行与修复循环、浏览器 Viewer 和运行记录。CadFlow 仍负责确定性几何、测量、交换和 Scene 编译。
CadFlow 仓库中的实验性 agent_dsl/ 是紧凑的有状态指令封装,不随核心发行版安装,也不会改变公共 API。