easy.sh 产品家族 · AI 建应用平台

任何 Agent,
一句话生成可交付的应用

在你已经在用的 Agent 里接入 Easy Code,一句需求拉起应用管理平台,生成带字段级权限的 React + FastAPI 前后端源码与 PostgreSQL schema,随时导出、私有化部署。

内置 DSH AI 工作台 · Agent 无关 · 源码 100% 交付 · 四层权限

easy-code · session
  1. $客户要一个带审批的采购台账,销售只能看自己客户
  2. 01平台启动 · 分配 appKey / schema
  3. 02生成 web/ + api/ 源码
  4. 03建 schema · 写菜单 / 按钮 / 字段 / 角色
  5. 04拉起容器运行中
  6. 05切到 AI 工作台 · 继续改页面DSH
1 句需求拉起应用并生成全栈源码
4 层权限菜单 → 按钮 → 字段 → 角色
3 端同步前端 / 后端 / 库表一致
100% 源码交付可独立运行、二开、私有化

核心能力

不是配置一个平台,是交付一套工程

六件事决定它能不能进企业内网、能不能被团队接手。

Agent 无关

CodeBuddy、Claude Code、Cursor、Windsurf 或网页端,一句话开工,不绑定某一家模型与工具链。

源码全量交付

web/ + api/ + deploy/ + database/,可独立运行、二次开发、离线私有化。

一应用一容器

每个应用独立后端源码与容器,共享一个 PostgreSQL,按 schema 隔离,互不影响。

通用 CRUD 零后端代码

表名即 resource,/api/erp/{resource} 走列名白名单 + information_schema,新增资源只建表。

四层权限

菜单 → 按钮 → 字段 → 角色,字段级规则在服务端生效,前端拿到的就是裁剪后的数据。

dev / release 双轨

dev 热更新,release 版本化;dev 轨可一键切到内置 AI 工作台继续改,出问题换指针回滚。

权限深挖

字段级权限,写在服务端

以「客户表」为例,同一条记录发给不同角色,字段不同、可编辑性不同。前端拿到的就是裁剪后的数据,随分页首屏一并返回,不需要二次请求补齐。

  • L1
    菜单

    决定这个人进不进得来这个模块。

  • L2
    按钮

    新增 / 编辑 / 删除 / 导出逐个授权。

  • L3
    字段

    显示 · 必填 / 显示 · 可编辑 / 显示 · 只读 / 隐藏 / 禁用。

  • L4
    角色

    角色绑定菜单、按钮、字段的组合,可复用。

客户表 · 字段权限矩阵
字段管理员销售财务(只读)
客户名称显示 · 必填显示 · 必填显示 · 只读
联系方式显示 · 可编辑显示 · 可编辑隐藏
成交金额显示 · 可编辑隐藏显示 · 只读
成本价显示 · 可编辑禁用隐藏

同一套规则约束前端渲染与后端接口,越权请求在服务端被拒绝。

工作原理

四步,从一句话到运行中的容器

  1. 01

    说需求

    先算雪花 id,得到 appKey=app-<id>、schema=app_<id>,后续命名都从这里来。

  2. 02

    生成源码

    MCP generate_backend 返回 zip;同参数产物逐字节一致,方便比对与复审。

  3. 03

    建库灌种子

    CREATE SCHEMA、幂等 DDL,写入角色、菜单、按钮与 admin 账号。

  4. 04

    容器上线

    docker compose build/up,nginx 按 /<appKey> 反向代理到对应服务。

架构与双轨

dev 造脏数据,不落 release

浏览器
nginx 网关
release 轨 · 常驻
<appKey>-fe <appKey>-be
dev 轨 · 按需启动
fe-dev be-dev 源码挂载 · 热更新

HMR ≤ 2s / reload ≤ 3s

PostgreSQL · 单实例
app_<id> app_<id>_dev

事务内 SET LOCAL search_path 隔离;连接池复用也不会串应用。

AI 工作台 · DeepSeek Harness

改页面不用离开平台,切个视图继续聊

平台内置 DeepSeek Harness(DSH)工作台:顶栏正中一个胶囊,在「应用视图 ⇄ AI 工作台」之间切换;只换内容区,顶栏常驻。切回来时,筛选、页签与滚动位置都还在。

easy-code 应用视图AI 工作台 admin
工作区 app-1893… app-1894… app-1895…
把采购台账的审批人改成直属主管
已定位 purchase-order 页面,准备修改…
继续描述要改的地方↵
  • 自动就绪平台已配的模型、仓库技能与规则、MCP 工具契约、每个应用的工作区,进入即用;单向同步,没变化不写盘、不重启。
  • 不改源码DSH 零二次开发:技能靠 .agents/skills 原生发现,模型走 cordis.patch.yml + 环境变量 Key,Key 不落 DSH 磁盘。
  • 只在 dev 轨热更新实例才出现入口;发布实例不渲染,也不暴露 /api/dsh/*,线上终端用户看不到也改不了。
  • 可随官方升级固定 @deepseek-ai/dsh 版本 tag,升级前备份 DSH_HOME;明暗主题跟随平台。

源码交付与体检

拿走的是工程,不是一份配置

导出包内容

  • web/前端工程
  • api/后端工程
  • deploy/docker-compose.yml部署编排
  • database/schema-only.sql结构脚本

--offline 额外产出镜像 tar、Python wheels、pnpm store,纯内网可还原。

manifest.json 记录每个文件 sha256 与 kernel / app 分层,后续升级不覆盖客户改动。

每应用自带体检

  • L0静态体检:菜单、表、按钮码齐全
  • L1接口冒烟:逐资源请求,断言 code=0
  • L2页面 E2E:登录、进页面、表格与控件
  • L3业务用例:必填、枚举、精度校验

实时日志、用例树与断言详情、失败截图都进报告;写用例只落 dev,并自动清理。

路线对比

和低代码、外包差在哪

Easy Code、传统低代码与外包定制对比
维度Easy Code传统低代码外包定制
交付物完整源码 + 部署包平台内配置源码
数据主权自有库,可私有化平台侧自有
二次开发直接改源码受平台能力上限依赖原团队
上线周期分钟级小时 ~ 天周 ~ 月
长期成本一次性交付持续订阅持续维护
离线内网支持通常不支持支持
权限四层含字段级视平台需单独实现
环境dev + release通常一套自行搭建

适用场景

三类人,三种交付节奏

企业内部信息化负责人

长尾系统不值得买 SaaS,也排不进三个月的开发计划。需求方自己描述,IT 复核生成结果,代码和数据都留在自己库里。

ISV / 外包交付团队

骨架交给生成,交付周期从月压到周。源码交给客户,规则包约束后续改动,团队精力放在业务差异上。

独立开发者

不用从零搭权限和菜单。dev 随便改,release 一键发布与回滚,客户要源码时直接给导出包。

FAQ

上线前最常被问到的六件事

支持哪些 Agent?有前置条件吗?

CodeBuddy、Claude Code、Cursor、Windsurf 以及网页端都可接入,通过 MCP 调用生成能力。前置条件只有一条:有一台能跑 Docker 的机器(本地或服务器);网页端生成另需自己的模型 Key。

可以用自己的 AI Key 和模型吗?

可以,走 BYOK:在 AI 配置里填入自己的 baseUrl / model / apiKey,额度算你自己的,平台不经手;换模型不影响已生成工程的运行。

权限能细到什么程度?

到字段级:菜单、按钮、字段、角色四层,字段支持显示必填、显示可编辑、显示只读、隐藏、禁用。规则在服务端生效,前端拿到的就是裁剪后的数据。

dev 和 release 会互相影响吗?

不会。dev 与 release 各用独立容器与独立 schema,事务内 SET LOCAL search_path 隔离,连接池复用也不会串应用。dev 造的脏数据不落 release。

AI 会不会自己部署、搞挂线上?

工具集里没有直接部署入口,只生成部署提案;执行需要人工授权并留审计记录。release 版本化,出问题换指针回滚。

生成的是什么技术栈?和低代码有何区别?

React 18 + antd v6 前端,Python 3.12 + FastAPI + SQLAlchemy 2.0 async 后端,PostgreSQL 16,Docker Compose + nginx 网关。产出完整工程源码而非平台内配置,可脱离平台独立运行,也能离线私有化部署。

不换 Agent,把下一个系统交给一句话

从一句业务需求开始,先看它生成什么,再决定要不要交付。