应用生态

Knodo 应用模板机制介绍:把工作空间的「形态」沉淀为可复用的模板,快速复制到团队其他成员

应用生态

Knodo 应用生态(App Ecosystem)让你把一个工作空间的「形态」 —— 包括侧边栏布局、自定义面板、业务视图 —— 沉淀成可复用的模板,然后一键分发给团队其他人。

比起从零搭建一个新空间,基于 App 模板创建的空间开箱即用:侧边栏已经按业务流程排好,自定义面板(比如"客户列表"、"销售漏斗")直接显示业务数据,团队成员打开即用。

核心概念

什么是 App(应用模板)

App = 工作空间的形态。它描述了:

  • 侧边栏布局:显示/隐藏哪些内置面板(任务、知识、变更等),追加哪些自定义面板
  • 面板组件:自定义面板的 UI 是什么样、放哪些数据
  • 文案重命名:把「知识」改为「代码」、把「任务」改为「跟进」之类
  • 元数据:名称、版本、图标、作者、分类

一个 App 可被多个工作空间同时绑定,每个空间独立拥有自己的数据,但 UI 形态完全一致。

App vs Plugin 的区别

Knodo 平台现有两个扩展机制,分工清晰:

维度Plugin(插件)App(应用模板)
解决什么AI 能做什么空间长什么样
组成Agent 角色、Skill 技能、命令、Hook面板、侧边栏、布局
绑定关系多对多(一个空间装多个插件)一对一(一个空间用一个 App)
运行时AI 对话期间调用打开空间就生效

两者独立运作:一个基于「销售 CRM」App 创建的空间,可以同时装 Javis 插件跟 AI 对话、装 Pagecraft 插件生成页面。

内置 App

平台预置两个 App 模板:

  • 通用(general):默认布局——知识库 + 任务 + 对话三栏,大多数场景开箱即用。老工作空间自动绑定此 App
  • 应用模板开发(app-dev):平台内 AI 辅助开发应用模板的专用模板。点击即可进入,一句话描述需求就能生成面板 → 实时预览 → 发布到应用模板库。详见 AI 辅助应用模板开发

使用流程

1. 发现和使用

空间列表页右上角 → 「应用模板」按钮 打开管理弹窗。这里能看到:

  • 内置 App(如「通用」)
  • 组织内其他成员发布的 App(INTERNAL 可见性)
  • 自己发布的 App(PRIVATE 可见性)
  • 公开的 App(PUBLIC 可见性,跨组织可见)

点击任一 App 进入详情,可以看:

  • 面板定义:这个 App 有哪些自定义面板
  • 布局配置:隐藏了哪些内置面板、面板顺序
  • 原始 Manifest:完整的 app.yaml 内容

2. 基于 App 模板创建工作空间

「新建工作空间」 弹窗(AI 创建 / 从模板创建两种路径都支持),新增了 「应用模板」 区域。

  • 不选 → 默认使用「通用」
  • 选中某个 App → 新空间的侧边栏、面板会按该 App 的 manifest 渲染

3. 为现有空间切换 App

进入空间 → 设置 → 应用模板 Tab:

  • 看到当前绑定的 App 信息
  • 「切换模板」 展开选择器
  • 确认后侧边栏立即按新 App 配置重新渲染
  • 空间内容(知识库、任务、对话记录)不受影响,只是「外壳」变了

4. 发布新的 App 模板

两种路径:

A. 平台内 AI 辅助开发(推荐)

使用内置 「应用模板开发」 应用模板创建一个空间,在里面跟 AI 对话描述需求(比如「做一个电影收藏应用,包含列表和评分面板」),AI 会生成 app.yaml + 面板代码,自动实时预览。满意后点 「发布」 → AI 自动打包上传到组织的应用模板库。

完整介绍:AI 辅助开发应用

B. 外部开发 + 手动上传

如果你有现成的应用包 ZIP(含 app.yaml + panels/*.js),在 应用模板管理弹窗 → 「上传应用」 上传即可。

参考示例:apps/app-plugins/customer-management/(源码结构 + 打包脚本)。

可见性管理

可见性谁能看到典型用途
私有(PRIVATE)仅创建者自用的个人工具、开发中未稳定的版本
组织内(INTERNAL)同组织成员团队内部复用的标准应用
公开(PUBLIC)所有组织平台级模板、合作伙伴开放的公共应用

上传后可在 应用模板管理 → 某个 App → 编辑信息 里修改可见性。

覆盖发布(迭代已有 App)

同一个 slug 的 App 再次发布时,系统会判断:

  • 你是原创建者 → 弹出确认对话框,提示会覆盖当前版本,所有绑定此 App 的工作空间会立即使用新版。你点「覆盖」后完成更新
  • 你不是原创建者 → 拒绝覆盖,必须修改 slug 后重新发布(或联系原作者)

⚠️ 覆盖发布会立即影响所有绑定此 App 的工作空间 —— 如果跨团队共用,建议版本号同步升级,并提前告知相关成员

删除 App

在应用模板管理 → [⋯] → 删除 后:

  • 如果当前没有空间使用此 App → 直接删除
  • 如果有空间使用此 App → 弹出确认对话框,列出受影响的空间。确认后:
    • App 被删除
    • 这些空间的 appId 自动降级为「通用」App
    • 空间内容完全保留(只是失去了自定义面板,回到默认布局)

技术背景

对 manifest 结构、发布流程的完整技术细节感兴趣的开发者,可参考如下的设计文档。App 的 manifest 遵循结构化的 YAML 规范:

name: 客户管理 slug: crm version: 1.0.0 description: CRM 客户关系管理 category: CRM views: customers: title: 客户列表 type: component entry: ./panels/customers.js layout: sidebar: hide: [tasks, changes] # 隐藏的内置面板 rename: files: 资料 # 把"知识"重命名为"资料" panels: - key: customers title: 客户列表 icon: Users

发布后,这份 manifest + 编译好的面板 JS 会被平台注册到应用模板库,供组织内/外成员复用。