> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 应用

> 通过代码扩展 Twenty——将自定义对象、服务器端逻辑、UI 组件和 AI 代理全部构建为 TypeScript 软件包。

大多数 CRM 只给你一个配置面板。 Twenty 给你的是一个平台。 应用是开发者将 Twenty 扩展到超出 UI 所提供能力的方式——将数据模型、服务器端逻辑、UI 组件和 AI 能力定义为代码，然后将它们部署到一个或多个工作区。

## 应用存在的原因

工作流涵盖无代码自动化。 但有些事情需要代码：自定义定价引擎、专有的富化管道、在每次记录更新时运行的合规检查、从内部工具中提取数据的自定义 UI 面板。

应用让你将这些构建为一等扩展——不是从外部与 API 通信的脆弱脚本，而是在平台上运行、可完全访问类型系统、权限模型和 UI 的代码。

## 一个应用可以定义什么

一个应用是使用 `twenty-sdk` 声明 **实体** 的 TypeScript 软件包：

| 实体         | 作用                                            |
| ---------- | --------------------------------------------- |
| **对象与字段**  | 在现有对象上新增数据表和字段——与内置项同等对待                      |
| **逻辑函数**   | 由 HTTP 路由、cron 调度或数据库事件触发的服务端 TypeScript      |
| **前端组件**   | 在 Twenty 的 UI 内渲染的沙盒化 React 组件（侧边面板、小部件、命令菜单） |
| **技能与智能体** | AI 能力——可复用的指令和自主助手                            |
| **视图与导航**  | 预配置的列表视图和侧边栏菜单项                               |

所有内容都会在构建时通过 AST 分析自动检测——无需配置文件，也不需要注册样板代码。 在任意 `.ts` 文件中放入一行 `export default defineObject(...)`，SDK 就会自动识别。

## 它们如何运行

* **逻辑函数** 在隔离的 Node.js 进程中执行，并与宿主环境沙盒隔离。 它们通过限定在应用角色权限范围内的类型化 API 客户端来访问数据。
* **前端组件** 在使用 Remote DOM 的 Web Worker 中运行——与主页面沙盒隔离，但渲染原生 DOM 元素（非 iframe）。
* **权限** 在 API 层面强制执行。 应用只能看到其角色权限所允许的内容。

## 开发者体验

你在本机上以一个 TypeScript 项目的形式编写你的应用。 CLI 监听你的源码文件，并将它们实时同步到正在运行的 Twenty 服务器——编辑文件后，你可以在一秒内在 UI 中看到变更。 当模式发生变化时，会自动重新生成类型化的 API 客户端。 准备就绪后，使用 `yarn twenty app:publish --private` 推送到生产服务器，或者使用 `yarn twenty app:publish` 将你的应用发布到 npm 和 Twenty 应用市场。

<Card title="构建你的第一个应用" icon="arrow-right" href="/l/zh/developers/extend/apps/getting-started">
  三阶段引导——脚手架搭建、本地服务器运行、同步你的更改。
</Card>
