应用生态
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 会被平台注册到应用模板库,供组织内/外成员复用。