freshcrate
Skin:/
Home > AI Agents > openbrep

openbrep

OpenBrep: 用自然语言驱动 ArchiCAD GDL 库对象的创建、修改与编译

Why this rank:Recent releaseStrong adoptionHealthy release cadence

Description

OpenBrep: 用自然语言驱动 ArchiCAD GDL 库对象的创建、修改与编译

README

logo

OpenBrep

快速开始

  1. 克隆项目
  2. 运行 bash install.sh 安装依赖
  3. 双击 start.command 启动

简体中文 | English

用自然语言驱动 ArchiCAD GDL 库对象的创建、修改与编译。

OpenBrep: Code Your Boundaries

正式发布版本 v0.6.1 — 在 v0.6.0 基础上完成 CLI 安装体验、静态检查与 chat / vision 链路补强,代码、UI、说明文档与发布说明继续保持统一。


问题与解法

你用 AI 写了一段 GDL 代码,想在 ArchiCAD 里测试。传统路径:

打开库对象编辑器 → 手动填参数 → 切 5 个 Script 窗口 → 粘代码 → 编译

openbrep 把这个流程压缩到:

描述需求(中文/英文皆可)→ AI 生成并填入脚本框 → 一键编译 → .gsm 拖入 ArchiCAD

或者导入已有 .gsm 文件,让 AI 帮你 debug、重构、加参数。


安装与启动

首次安装

git clone https://github.com/byewind1/gdl-agent.git
cd gdl-agent
bash install.sh
obr

如果 obr 不可用,重开终端或运行 source ~/.zshrc

obr 默认仅在本机 http://localhost:8501 启动 UI,不会自动打开浏览器;请用你的常用浏览器手动访问或直接使用已收藏地址。

升级

cd gdl-agent
git pull origin main
bash install.sh   # 有新依赖时重跑,无害
obr

个人配置(config.toml / API Key)升级后保持不变,无需重新配置。

需要 Python 3.10+。真实编译(.gsm 输出)需要安装 ArchiCAD 28/29。


CLI 模式

面向 GDL 开发者的终端工作流。

pip install -e "."

# 创建对象
openbrep create "做一个宽600mm深400mm的书架,4个层板" --output ./my_shelf

# 修改对象(基于磁盘上的 HSF 项目目录)
openbrep modify ./my_shelf "把层板改成6个,间距均匀分布"

# 查看帮助
openbrep --help

每次修改都读取完整项目状态,精确修改而非重写,自动编译验证。

开发者说明:如果你当前使用的是 pip install -e "." / pip install -e ".[ui]" 的 editable install,修改仓库源码后通常会立即生效,不需要重新安装;只有在变更 pyproject.toml、依赖、命令入口(如 obr / obrcli)或打包规则时,才建议重新安装一次。


功能一览

编辑器栏(左侧)

功能 说明
📂 导入 拖入 .gdl / .txt / .gsm 文件;.gsm 经 LP_XMLConverter 解包为 HSF
🔧 编译 GSM HSF → .gsm,支持 Mock 模式(无需 ArchiCAD)和真实 LP_XMLConverter 编译
📥 提取 从 AI 对话中扫描代码块,自动识别脚本类型(3D/2D/Param...)并写入编辑器
脚本标签页 6 个独立脚本框(3D / 2D / Master / Param / UI / Properties),每个均支持 streamlit-ace 语法高亮和全屏编辑
参数表 查看、手动添加参数;AI 生成的 paramlist.xml 可一键写入
🔍 语法检查 IF/ENDIF、FOR/NEXT、ADD/DEL 匹配,3D 末尾 END,2D 必须有 PROJECT2

AI 对话栏(右侧)

功能 说明
🖼️ 图片即意图 上传建筑构件图片 → AI 识别几何、提取参数化维度 → 直接生成 GDL 脚本,无需文字描述
自然语言创建 "做一个宽 600mm 深 400mm 的书架,4 个层板" → 自动生成全部脚本和参数
自然语言修改 已有项目时:"把层板改成 5 个,材质加一个 shelfMat 参数" → AI 理解上下文按需修改
Debug 模式 包含 "为什么"/"检查"/"修复" 等词时,自动注入全部脚本上下文;AI 可以给出分析文字 + 代码修复
确认写入 已有项目的 AI 修改不会自动覆盖,消息下方出现 [✅ 写入] [❌ 忽略] 按钮
对话操作栏 每条 AI 消息下方:👍 👎 📋 🔄(好评/差评/复制/重新生成)
多模型支持 Claude / GLM / GPT / DeepSeek / Gemini / Ollama 本地,侧边栏切换

支持的 LLM

提供商 模型 说明
Anthropic claude-haiku / sonnet / opus 推荐首选
智谱 glm-5 / glm-4-flash 国内可用,性价比高
OpenAI gpt-4o / gpt-4o-mini / o3-mini
DeepSeek deepseek-chat / deepseek-reasoner
Google gemini-2.5-flash / pro
Ollama qwen2.5 / qwen3 / deepseek-coder 本地,无需 API Key

GSM 导入(AC29 支持)

侧边栏选择 LP_XMLConverter 模式,配置路径后可导入 .gsm 文件进行修改:

# ArchiCAD 29 路径(LP_XMLConverter 内嵌于 app bundle)
/Applications/GRAPHISOFT/Archicad 29/Archicad 29.app/Contents/MacOS/
  LP_XMLConverter.app/Contents/MacOS/LP_XMLConverter

也可直接在 config.toml 中写入,启动后自动读取。


HSF 格式简介

.gsm 文件解压后是这样的目录结构(HSF):

MyBookshelf/
├── libpartdata.xml     ← 对象身份(GUID、版本)
├── paramlist.xml       ← 参数定义(强类型)
├── ancestry.xml        ← 对象分类
└── scripts/
    ├── 1d.gdl          ← Master Script
    ├── 2d.gdl          ← 2D 平面符号
    ├── 3d.gdl          ← 3D 几何模型
    ├── vl.gdl          ← 参数逻辑(VALUES/LOCK)
    └── ui.gdl          ← 自定义界面

openbrep 以 HSF 为原生格式,每个脚本独立处理,AI 只读取与当前任务相关的脚本(减少 context 占用)。


项目结构

openbrep/
├── openbrep/
│   ├── hsf_project.py       # HSF 数据模型
│   ├── paramlist_builder.py # paramlist.xml 强类型生成
│   ├── gdl_parser.py        # .gdl → HSFProject
│   ├── compiler.py          # LP_XMLConverter 封装
│   ├── core.py              # Agent 主循环 + generate_only
│   ├── llm.py               # 多模型统一接口
│   ├── knowledge.py         # 知识库加载
│   └── skills_loader.py     # 任务策略加载
├── ui/
│   └── app.py               # Streamlit Web 界面
├── knowledge/               # GDL 参考文档(可自行扩充)
├── skills/                  # 任务策略(可自行扩充)
├── docs/
│   └── manual.md            # 详细用户手册
├── tests/                   # 单元测试
├── config.example.toml
└── pyproject.toml

配置

复制 config.example.tomlconfig.toml(已 .gitignore),按需填写。

1) 官方 provider(provider_keys

[llm]
model = "glm-4-flash"
temperature = 0.2
max_tokens = 4096

[llm.provider_keys]
zhipu     = "your-zhipu-key"
anthropic = "your-claude-key"
openai    = "your-openai-key"
deepseek  = "your-deepseek-key"
google    = "your-gemini-key"
aliyun    = "your-qwen-key"
kimi      = "your-kimi-key"

前缀匹配规则:

  • glm-zhipu
  • deepseek-deepseek
  • claude-anthropic
  • gemini-google
  • qwen- / qwq-aliyun
  • moonshot-kimi
  • gpt- / o1 / o3 / o4openai
  • ollama/ → 本地模式,不需要 API Key

2) 自定义 provider(推荐对象写法)

[llm]
model = "ymg-gpt-5.3-codex"
api_key = "YOUR_YMG_KEY"
api_base = "https://api.ymg.com/v1"

[[llm.custom_providers]]
name = "ymg"
protocol = "openai"  # openai | anthropic
base_url = "https://api.ymg.com/v1"
api_key = "YOUR_YMG_KEY"

[[llm.custom_providers.models]]
alias = "ymg-gpt-5.3-codex"   # UI 里选择的名字
model = "gpt-5.3-codex"       # 实际请求给 provider 的模型名

3) 路由优先级(重要)

请求时模型与凭据的解析顺序:

  1. custom_providers(先按 alias/model 命中)
  2. provider_keys(按模型前缀匹配)
  3. [llm] 顶层 api_key / api_base(兜底)

也就是说:命中 custom provider 时,会优先使用该 provider 的 api_key/base_url/protocol

4) 常见坑

  • 只写 models = ["ymg-gpt-5.3-codex"],不写 {alias, model} 对象,容易造成 alias 与真实模型名混淆。
  • base_url 不是 OpenAI 兼容入口(常见是缺 /v1)。
  • 切换模型后未确认 [llm].model/api_key/api_base 是否与当前 provider 成组一致。

5) 编译器

[compiler]
path = "/Applications/GRAPHISOFT/Archicad 29/.../LP_XMLConverter"

文档

  • 用户手册 → — UI 每个功能的详细说明、工作流、常见问题

版本历史

版本 主要内容
v0.6.1 CLI 可用性与安装体验提升;新增/完善 GDL 静态检查与自动 repair;补强 chat / explainer / 图片链路与参考图生成;修复 obr 在非项目目录无法启动 UI(见 docs/releases/v0.6.1.md)
v0.6.0 Runtime Phase 1 主骨架正式发布收尾:统一 create / modify / repair / chat 主链路;repair 独立 intent 闭合;CLI/UI/runtime 版本与发布口径统一(见 docs/releases/v0.6.0.md)
v0.5.7 CLI 模式正式可用(create/modify 命令);生成过程支持用户取消;pipeline 改进解决越改越差问题;参数路由修复(见 docs/releases/v0.5.7.md)
v0.5.6 图片上传不再卡死;cross-script / static checker 误报减少;AI 助手设置支持长期保存并注入系统提示;自定义代理与官方供应商分层选择,并优先显示代理名(见 docs/releases/v0.5.6.md)
v0.5.5 UI重构为四栏布局:左栏操作+预览、中栏脚本+参数表、右栏AI对话(见 docs/releases/v0.5.5.md)
v0.5.4 validator 分层重构:error/warning 分开,硬错误白名单收紧;跨脚本检查器;debug 最小改动;生成过程实时显示;生成中禁用 widget(见 docs/releases/v0.5.4.md)
v0.5.3 知识库升级与文档品牌增强:整合拆书增量(含 2D 高级与可编译示例)、新增命令索引与命令级精准路由、README 顶部加入 logo(见 docs/releases/v0.5.3.md)。
v0.5.2 版本标注与发布归档规范化:UI 版本号统一读取代码版本;README 标题去版本;新增发布说明文档(见 docs/releases/v0.5.2.md
v0.5.1 安装包发布准备:新增 macOS/Windows 打包脚本与 GitHub Actions 构建流程(PyInstaller)
v0.5 OpenBrep 品牌发布 — 项目更名为 OpenBrep;稳定版本发布;Gitee 镜像支持(国内用户快速访问)
v0.5 pre 统一编辑器 UI;图片即意图(上传图片 → AI 生成 GDL);AI 对话修改脚本;确认写入流程;paramlist.xml 自动注入;GSM 导入(AC29);streamlit-ace 语法高亮;全屏编辑;多模型支持
v0.4.0 HSF-native 架构重构;Streamlit Web UI;强类型 paramlist;44 项单元测试
v0.3.x GDL 解析器;Context surgery;Preflight
v0.2.0 Anti-hallucination;Golden snippets
v0.1.0 Core agent loop

License

MIT — see LICENSE.

Release History

VersionChangesUrgencyDate
v0.7.0**Full Changelog**: https://github.com/byewind1/openbrep/compare/v0.6.12...v0.7.0High5/23/2026
v0.6.12# OpenBrep v0.6.12 Release type: GDL knowledge base calibration and Pro direction planning. ## Compatibility - macOS package: Apple Silicon only (`arm64`, M1/M2/M3/M4). - Minimum macOS: macOS 14 Sonoma or later. - Intel Mac is not covered by the current `OpenBrep-free-macOS.zip` asset. - Windows package: built by GitHub Actions and provided as `OpenBrep-free-Windows.zip`; Windows runtime smoke still needs validation on a real Windows machine or VM. ## Why OpenBrep should generate professionHigh5/6/2026
v0.6.11## Compatibility - macOS package: Apple Silicon only (`arm64`, M1/M2/M3/M4). - Minimum macOS: macOS 14 Sonoma or later. - Intel Mac is not covered by the current `OpenBrep-free-macOS.zip` asset. - Windows package: `OpenBrep-free-Windows.zip`; built by GitHub Actions on `windows-latest`, runtime smoke still needs a real Windows machine or VM. ## v0.6.11 fix This release fixes the macOS frozen Streamlit package by bundling the missing Streamlit frontend assets, streamlit-ace frontend assets, anHigh5/3/2026
v0.6.3# OpenBrep v0.6.3 发布日期:2026-04-28 ## 版本定位 v0.6.3 是基于 `v0.6.2` 的工作台治理与自我提升版本。 本次发布重点不是扩展单点生成能力,而是把 OpenBrep 从“一次性 GDL 生成工具”推进为更可长期使用的 GDL 工作台:项目目录更稳定,版本记录更贴近具体 HSF/GSM 项目,真实 Archicad 错误可以沉淀为个人工作空间记忆,并在后续生成中作为约束注入。 ## 核心变化 - 新增个人工作空间记忆层: - 聊天记录持久化到 `<work_dir>/.openbrep/memory/chats/chat_transcript.jsonl` - 用户真实错误与编译错误沉淀到 `<work_dir>/.openbrep/memory/learnings/error_lessons.jsonl` - 用户主动整理后生成 `<work_dir>/.openbrep/memory/skills/learned_skill.md` - 新增 GDL 错题本自我提升链路: - 支持从用户聊天中的脚本错误片段自High4/28/2026
v0.6.2 在 v0.6.1 基础上,本版本重点升级 knowledge 与 chat 能力:把知识体系扩展为「内置 flat + wiki 概念库 + 用户自定义 flat」,并将 skill creator 对话式创建流程正式接入主链路,同时补齐回归测试并修复关键路由细节。 亮点 - 新增 wiki 知识检索与问答链路 - chat 场景支持 GDL 关键词命中 wiki 上下文 - 歧义问题可二次分类后再检索回答 - 新增 用户自定义 flat 知识库接入 - 支持 user_knowledge/*.md 自动汇入知识上下文 - 与内置 knowledge 联合生效 - 新增 skill creator 对话式路由 - 支持 CREATE_SKILL / LIST_SKILLS 意图 - 支持会话态处理与生成后自动清理 - 补充 GDL wiki 概念页 - 覆盖 2D/3D 常见命令与关键概念(如 GLOBALS、Object Types、DEFINE、GROUP 等)High4/23/2026
main@2026-04-22Latest activity on main branchHigh4/22/2026
v0.6.0Latest release: v0.6.0High4/8/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

openclaw-model-bridgeConnect any LLM to OpenClaw — production-tested middleware for Qwen3-235B and beyondmain@2026-06-03
GENesis-AGIAutonomous AI agent with persistent memory, self-learning, and earned autonomy. Cognitive partner that remembers, learns, and evolves.v3.0b13
claude-ruby-grape-railsClaude Code plugin for Ruby, Rails, Grape, PostgreSQL, Redis, and Sidekiq developmentv1.16.13
openclaw-qaOpenClaw Q&A 社区 — AI Agent 记忆系统、多Agent架构、进化系统、具身AI | 龙虾茶馆 🦞main@2026-05-14
tsunamiautonomous AI agent that builds full-stack apps. local models. no cloud. no API keys. runs on your hardware.main@2026-04-28

More in AI Agents

@blockrun/franklinFranklin — The AI agent with a wallet. Spends USDC autonomously to get real work done. Pay per action, no subscriptions.
hermes-agentThe agent that grows with you
awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.
e2bE2B SDK that give agents cloud environments