# code-agent **Repository Path**: benjamin-gong/code-agent ## Basic Information - **Project Name**: code-agent - **Description**: UBML / Code Agent 是基于UBML实现智能辅助低代码开发的智能体 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 20 - **Created**: 2026-07-03 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # code-agent [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](./LICENSE) [![Bun](https://img.shields.io/badge/Bun-≥1.3.14-black?logo=bun&logoColor=white)](https://bun.sh) 基于 [OpenCode](https://github.com/anomalyco/opencode) 的开源智能体平台,帮助你在 **UBML 低代码** 场景里用 AI 做页面开发——理解 Farris 组件语义、校验 DSL、预览页面,并在 Agent 工作流里完成生成与迭代。 > 当前版本:**v2.0.0-beta.1** · OpenCode vendor 基线 · UBML 知识包 · 页面生成管线 · 可扩展 Web UI

code-agent 工作台界面预览

界面预览 · 跟随系统主题自动切换 · 日间 · 夜间

--- ## 项目简介 **code-agent** 在 OpenCode 智能体引擎之上,为 UBML(Unified Business Modeling Language)做了领域扩展。 - 在 Web UI 里和 Agent 对话,让它在你的本地工作区里帮忙写代码、改配置 - 借助 UBML 知识包,让模型理解低代码组件该怎么用、有哪些约束 - 用 YAML DSL 描述页面,一键编译模型,校验通过后还能预览,必要时也可以反编译回来 OpenCode 的引擎和 Web UI 源码已随本仓库提供(见 `packages/opencode/`、`packages/app/` 等);本项目开发写在 `packages/extension/` 里,和upstream引擎代码分开。 --- ## 参与贡献 欢迎 Issue 和 Pull Request。如果你还不熟悉仓库,可以按下面的路径找入口: | 你想做什么 | 从这里开始 | |------------|------------| | 领任务、修 Bug | [Gitee Issues](https://gitee.com/ubml/code-agent/issues)(可按里程碑筛选,如 `AppGen v1`、`开发活动工作台 v1`) | | 第一次来,想搭环境 | [协作开发指南](./docs/product-design/07-contributing.md) | | 了解产品方向和路线图 | [产品设计文档](./docs/product-design/README.md) | | 改界面、工作台、Mission | [`packages/extension/`](./packages/extension/README.md) — 日常开发最常动的地方 | | 改 DSL 编译、校验逻辑 | `packages/ubml-codegen/` | | 改知识库、MCP 工具 | `packages/knowledge/` | | 功能较大,或要动多个包 | 建议先走 [OpenSpec 流程](./docs/SDD-WORKFLOW.md) | 产品逻辑优先写在 `extension`、`knowledge`、`ubml-codegen` 这些自有包里。若要改 OpenCode 引擎本身,需要走维护者的上游同步流程,见 [docs/VENDOR-SYNC.md](./docs/VENDOR-SYNC.md)。 更细的约定见 [AGENTS.md](./AGENTS.md)。 --- ## 快速开始 需要 [Bun](https://bun.sh) ≥ 1.3.14。 ```bash git clone https://gitee.com/ubml/code-agent.git cd code-agent bun install bun run dev:with-preview # 后端 :4096,前端 :3000,页面预览 :3100 ``` 改完代码需要重启服务再看效果时: ```bash bun run dev:stop && bun run dev:with-preview ``` Windows 可以用 `bun run dev:windows` 一键启动,或双击 `script\start-dev.bat`;停止服务用 `bun run dev:windows:stop`。 启动后: 1. 浏览器访问 http://localhost:3000 2. 选一个本地工作目录 3. 在 **Settings → Providers** 里配置 LLM(凭据存在本地,不会进 git) 4. 新建 Session,发一条消息看看 Agent 是否正常回复 --- ## 主要能力 | | | |---|---| | 🤖 **Agent 对话** | 基于 OpenCode,支持多 LLM Provider,Web 端流式交互 | | 📦 **UBML 知识包** | 低代码模型范例,给 Agent 和编译器共用 | | 🎨 **可扩展 UI** | Extension 通过 module override 定制界面,不必 fork 上游 | | 📐 **规约驱动开发** | 较大变更使用 [OpenSpec](https://github.com/Fission-AI/OpenSpec),proposal → design → tasks 工作流 | --- ## 目录结构 ``` code-agent/ ├── packages/ │ ├── extension/ ★ 产品定制主入口 │ │ ├── src/ UI、Workbench、UBML API │ │ ├── assets/ubml/ Schema、prompt、范例 │ │ └── preview/ Vue 低代码预览 │ ├── ubml-codegen/ DSL 编译、校验、反编译 │ ├── knowledge/ 知识服务与 MCP │ ├── ide-host/ IDE Host 集成 │ ├── desktop/ Electron 桌面壳 │ │ │ ├── opencode/ ┐ │ ├── core/ │ OpenCode 引擎与 Web UI(MIT) │ ├── app/ │ 日常开发改 extension,不要修改这里 │ ├── ui/ │ │ ├── sdk/js/ │ │ └── plugin/ ┘ │ ├── script/ 开发脚本 ├── docs/ 文档 ├── openspec/ OpenSpec 变更记录 ├── assets/ 静态资源(如 README 预览图) └── vendor/ 版本基线与 import 清单 ``` | 代码 | 许可 | 怎么贡献 | |------|------|----------| | `extension/`、`knowledge/`、`ubml-codegen/`、`script/`、`docs/`、`openspec/` | Apache-2.0 | 直接提 PR | | `opencode/`、`app/`、`ui/` 等 OpenCode 包 | MIT | 见 [docs/VENDOR-SYNC.md](./docs/VENDOR-SYNC.md) | --- ## 常用命令 | 命令 | 做什么 | |------|--------| | `bun run dev:with-preview` | **推荐** — 主环境 + UBML 页面预览(:3000 / :4096 / :3100) | | `bun run dev:stop` | 停止上述开发服务 | | `bun run dev` | 仅主环境,不含页面预览 | | `bun run dev:backend` | 只跑 OpenCode API(:4096) | | `bun run dev:web` | 只跑 extension 前端(:3000) | | `bun run dev:preview` | 只跑 UBML 页面预览(:3100) | | `bun run dev:desktop` | Electron 桌面壳 | | `bun run dev:ide-host` | IDE Host(OpenVSCode Server) | | `bun run dev:windows` | Windows 一键启动 | | `bun run typecheck` | 全仓库类型检查 | | `bun run smoke` | API 冒烟(需已配置 Provider) | UBML 相关: ```bash bun run ubml:build-pack # 构建 / 同步知识包 bun run ubml:compile -- path/to/page.yaml bun run ubml:verify -- path/to/page.yaml bun run ubml:decompile -- path/to/page.json bun run ubml:install-agent ``` 更多细节见 [docs/UBML-PAGEGEN.md](./docs/UBML-PAGEGEN.md)。 --- ## 提 PR 的小建议 1. Fork 本仓库,从 `main` 拉一个特性分支 2. 改完跑一遍 `bun run typecheck` 3. 如果动了会话或 Provider 相关逻辑,本地用 `bun run dev:with-preview` 和 `bun run smoke` 确认一下 4. 提 PR 时简单写清楚:为什么改、改了什么、你怎么验证的 Commit message 也尽量说明动机,而不只是列文件名。 **什么时候需要 OpenSpec?** 修文档、小 bug 直接 PR 就行;新 API、跨包重构这类较大改动,建议先在 `openspec/changes//` 里写 proposal 和 tasks。Cursor 里可以用 `/opsx:propose`、`/opsx:apply`;手动开发参考 [docs/SDD-WORKFLOW.md](./docs/SDD-WORKFLOW.md)。 --- ## 文档 | 文档 | 内容 | |------|------| | [docs/product-design/](./docs/product-design/README.md) | 产品背景、路线图、Issue 索引 | | [docs/product-design/07-contributing.md](./docs/product-design/07-contributing.md) | 新贡献者指南 | | [docs/SETUP.md](./docs/SETUP.md) | 环境搭建与故障排查 | | [docs/VENDOR-SYNC.md](./docs/VENDOR-SYNC.md) | 同步 OpenCode 上游(维护者) | | [docs/SDD-WORKFLOW.md](./docs/SDD-WORKFLOW.md) | OpenSpec 工作流 | | [docs/UBML-PAGEGEN.md](./docs/UBML-PAGEGEN.md) | 页面生成管线 | | [docs/UBML-KNOWLEDGE.md](./docs/UBML-KNOWLEDGE.md) | 知识包构建 | | [packages/extension/README.md](./packages/extension/README.md) | Extension 模块覆盖机制 | | [AGENTS.md](./AGENTS.md) | 协作者与 AI 助手约定 | | [openspec/project.md](./openspec/project.md) | 项目架构约束 | --- ## 相关项目 - [OpenCode](https://github.com/anomalyco/opencode) — 上游智能体引擎与 Web UI - [chenshj/opencode](https://github.com/chenshj/opencode) — 本项目的 OpenCode 维护 fork - [OpenSpec](https://github.com/Fission-AI/OpenSpec) — 规约驱动开发工具链 - [UBML 社区](https://gitee.com/ubml/community) — UBML 背景与规范 --- ## 许可 | 部分 | 许可 | |------|------| | 本仓库扩展与自有代码 | [Apache-2.0](./LICENSE) | | OpenCode vendor 代码 | MIT(见 `vendor/opencode/LICENSE`) | 第三方组件声明见 [NOTICE](./NOTICE)。