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

# 應用（App）總覽

> DataGen 應用（App）是什麼、兩種 App 類型，以及 App 如何與 Agent、知識庫、資料和基礎設定串接

**應用（App）** 是團隊在 DataGen 內直接開啟的網頁介面：儀表板、內部工具、審核佇列、分析筆記本都可以是 App。每個 App 都是一個資料夾的檔案，加上啟動它的指令。DataGen 在沙盒中執行這個指令，並把結果顯示在工作區裡，因此不需要另外架站、部署或登入任何服務。

App 位於左側導覽列的 **應用程式**（`/signalgen/apps`），頁面會依類型分組。

<Frame>
  <img src="https://mintcdn.com/datagen/rusBmwP8bd_Srmdm/images/browser-guide/zh/apps-list.jpg?fit=max&auto=format&n=rusBmwP8bd_Srmdm&q=85&s=8e13bf5d82ac667aaa02d2521aef4363" alt="應用程式總覽：筆記本與自訂應用程式" width="838" height="863" data-path="images/browser-guide/zh/apps-list.jpg" />
</Frame>

## App 如何執行

* **共用一份檔案，每位成員各自一個執行個體。** App 的檔案（已發布的版本）在整個工作區共用。每位開啟 App 的成員都會得到自己的沙盒與自己的執行程序，彼此的工作階段互不干擾。
* **開啟即啟動。** 開啟 App 時，系統會檢查權限、準備沙盒、載入已發布的檔案，並等待伺服器回應。已停止的 App 會在下次有人開啟時重新啟動。
* **憑證以檢視者身分解析。** 當 App 綁定了 [連線保險庫](/zh/foundation/vault)，每位成員的執行個體都會以環境變數取得該成員自己的憑證值。

## 兩種 App 類型

| | 筆記本 | 自訂應用程式 |
| - | - | - |
| 是什麼 | [marimo](https://marimo.io) 筆記本：具反應性的 Python 儲存格與輸出 | 任何在連接埠上提供服務的網頁程式：Python、Node 或靜態網站 |
| 檔案位置 | 整個工作區共用一個筆記本資料夾，每個筆記本是一個 `.py` 檔 | App 自己的資料夾 |
| 編輯方式 | 開啟後直接在 marimo 編輯器中編輯，或在對話中請 Agent 處理 | 在 **App 建置器** 中：AI 對話、即時預覽與檔案編輯器 |
| 版本 | 直接編輯筆記本檔案 | 儲存不可變的版本，再發布其中一個 |
| 建立方式 | 筆記本頁面上的 **新增筆記本**，或 Agent 的 `create_notebook` 工具 | 自訂應用程式頁面上的 **新增應用程式** 或 **匯入資料夾**，或 Agent 的 `create_app` 工具 |

### 什麼時候用筆記本

探索式分析，以及分析師會持續修改的報表，適合用筆記本：查詢來源、畫圖、調整儲存格、重新執行。同一個工作區的筆記本共用一個資料夾，因此一個筆記本可以讀取另一個筆記本寫出的檔案。每個筆記本仍在自己的沙盒、以自己的核心執行，所以一個吃重的筆記本不會拖慢其他筆記本。

### 什麼時候用自訂應用程式

當大家要「使用」成果而不是修改它時，例如有篩選條件的儀表板、以表單操作的內部工具、入口網站，就適合用自訂應用程式。自訂應用程式採用「儲存、發布」流程，所以團隊看到的版本只會在有人發布時改變。

建立自訂應用程式時，還要選擇它的類型：

* **一般 App**：提供使用者介面，依需求加入 API。
* **MCP App**：提供使用者介面，同時提供 Agent 可呼叫的工具。工作區中的 Agent 可以探索並呼叫這個 App 的工具。

## App 與 DataGen 其他部分的關係

<CardGroup cols={2}>
  <Card title="Agent" icon="robot">
    Agent 透過內建的 `apps` 工具（`list_apps`、`create_app`、`create_notebook`、`open_app`、`request` 等）建立、開啟與呼叫 App。App 建置器的對話本身就是在 App 建置用沙盒中執行的一次 Agent 回合。
  </Card>

  <Card title="知識庫" icon="book">
    將已發布的知識庫連結到自訂應用程式的建置器，作為撰寫 App 的 AI 可唯讀參考的資料。
  </Card>

  <Card title="資料與檔案" icon="database">
    將工作區檔案選為 App 的 **來源**，App 啟動時會把它們複製到 App 的 `.sources/` 資料夾。若要直接查詢資料庫，請綁定連線保險庫中的憑證並從程式碼連線。
  </Card>

  <Card title="基礎設定" icon="layer-group">
    每個 App 都會指定一個 **沙箱環境**（啟動用的映像檔）、一個 **連線保險庫**（執行中的 App 取得的憑證），以及一個 **Harness**（建置器對話所使用的執行環境）。
  </Card>
</CardGroup>

<Note>
  Harness 只驅動 App 建置器的對話。執行中的 App 只跑它自己的程序，不會載入 Harness。請參閱 [Harness](/zh/foundation/harness)。
</Note>

## 自訂應用程式的生命週期

<Steps>
  <Step title="建置">
    在 App 建置器的對話中描述你要的 App。AI 會在建置用沙盒中編輯 **草稿**，你可以同步看到即時預覽。
  </Step>

  <Step title="儲存版本">
    **儲存** 會把草稿保存為不可變的版本，並為該版本把相依套件安裝進映像檔。
  </Step>

  <Step title="發布">
    在 **版本** 中 **發布** 一個已儲存的版本。所有成員開啟 App 時看到的就是這個版本。發布較舊的版本即可回溯。
  </Step>

  <Step title="使用與自動化">
    成員在 `/signalgen/apps/<appId>/view` 開啟 App。自動化可以依排程執行建置器，更新草稿。
  </Step>
</Steps>

## 下一步

<CardGroup cols={2}>
  <Card title="建立 App" icon="hammer" href="/zh/apps/build">
    建立筆記本或自訂應用程式，並設定它的執行方式。
  </Card>

  <Card title="發布與分享" icon="share-nodes" href="/zh/apps/publish-and-share">
    儲存與發布版本、控管存取權限，並排程自動化。
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.