# 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)
[](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** 在 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)。