# 擴充能力總覽

Cowork 不用發新版本也能加新能力。能加的東西有四種：**Skill**、**Extension**、**Injection** 和 **Mini App**。這四種都可以一起打包進一個 **Cowork package**，讓一項工作用到的技能、程式碼、網頁腳本和介面作為一個整體交付。

```mermaid
flowchart LR
  cowork(("Cowork"))

  subgraph pkg["Cowork package"]
    direction TB
    skill["Skill<br/>SKILL.md + 腳本"]
    subgraph ext["Extension · package.json"]
      direction TB
      entry["入口檔案<br/>activate()"]
      conn["Connector"]
      inj["Injection<br/>網頁裡執行的腳本"]
    end
    mini["Mini App<br/>有自己的介面"]
  end

  gw["Gateway<br/>外部訊息唯一的進出口"]
  web["網站"]
  chan["外部渠道<br/>WhatsApp …"]

  cowork -- AI 讀取 --> skill
  cowork -- 你批准後執行 --> ext
  cowork -- 在標籤頁開啟 --> mini
  entry -- 放進網頁 --> inj
  inj -- 在網頁裡執行 --> web
  cowork <-- 訊息 --> gw
  gw <-- 接入 --> conn
  conn <-- 收發 --> chan

  style pkg fill:#efe8dc,stroke:#d3c6b1,stroke-width:1px,color:#5c5145
  style ext fill:#e4dacb,stroke:#c4b49b,stroke-width:1px,color:#5c5145
  classDef core fill:#8a7660,stroke:#8a7660,color:#ffffff,stroke-width:1px
  classDef part fill:#fbf8f3,stroke:#c4b49b,color:#3f362b,stroke-width:1px
  classDef outer fill:#f6f2eb,stroke:#cdbfa9,color:#6b6052,stroke-dasharray:4 3
  classDef gateway fill:#6e5d4b,stroke:#6e5d4b,color:#ffffff,stroke-width:1px
  linkStyle default stroke:#a8957a,stroke-width:1.2px
  class cowork core
  class skill,entry,conn,inj,mini part
  class web,chan outer
  class gw gateway
```

## Cowork package

Cowork package 是一個資料夾，裝著一項工作需要的東西：一個 Mini App 和它的介面、它帶的 Extension、AI 要用的 Skill，以及寫給 AI 的安裝步驟 `INSTALL.md`。Injection 是 Extension 裡的腳本。

```text
<package>/
  miniapp.json     appId、name、version、entry、extension: "extension"
  index.html …     Mini App 的介面
  extension/       Extension：package.json + index.mjs
  skills/<name>/   Skill，可選
  INSTALL.md       AI 照著做的安裝步驟
```

0.1.41 還不能一步裝好整個包。每個部分依各自的方式安裝，見下面各節。

## Skill

Skill 教 AI 怎麼做一類工作。它是一個帶 `SKILL.md` 的資料夾，工作需要時再帶上腳本。

- 請求對得上時 AI 會讀它；腳本用 Cowork 自帶的 Bun 執行。
- 放進技能資料夾就啟用，見 [Skill](https://docs.micromeet.ai/zh-tw/extend/skills.md)。
- 誰都可以寫。

## Extension

Extension 是一個在自己的後臺程序裡執行的程式碼包：一個 `package.json` 加一個入口檔案。

- 0.1.41 裡它註冊 **Connector**。外部渠道（比如 WhatsApp）的訊息經 **Gateway** 進出 Cowork；Connector 是把一個渠道接到 Gateway 上的那一端。
- 有瀏覽器權限時，它還能把 Injection 放進它宣告的網站。
- 放在 `<Cowork 主目錄>/extensions/packages/<name>/`，你在 **設定 › 擴充套件** 裡批准後才執行。見 [Extension](https://docs.micromeet.ai/zh-tw/extend/extensions.md)。

## Injection

Injection 是在網頁裡執行的一段腳本，和網頁自己的腳本隔開。用它讀取網站的網頁或在網頁裡操作。

- 由 Extension 執行，或在 **設定 › 注入按鈕** 裡給網站加一個按鈕。
- 只在它針對的網頁上起作用，見 [Injection](https://docs.micromeet.ai/zh-tw/extend/injections.md)。

## Mini App

Mini App 是有自己介面的應用，在 Cowork 的標籤頁裡開啟，給你用。

- 0.1.41 裡只有 Cowork 自帶的 Mini App，暫時不能自己做，見 [Mini App](https://docs.micromeet.ai/zh-tw/extend/mini-apps.md)。

`<Cowork 主目錄>` 正式版是 `~/.micromeet-cowork`，Preview 是 `~/.micromeet-cowork_preview`。

## 該做哪一種

1. 要教 AI 怎麼做一類工作，寫 **Skill**。
2. 要把一個外部訊息渠道接進 Cowork，寫帶 Connector 的 **Extension**。
3. 要在某個網站的網頁裡做事，寫 **Injection**：Extension 裡的腳本，或網站按鈕。
4. 有自己介面的應用是 **Mini App**。0.1.41 裡只有 Cowork 自帶的 Mini App。

## 相關

- [Skill](https://docs.micromeet.ai/zh-tw/extend/skills.md): 技能的資料夾、來源與規則
- [Extension](https://docs.micromeet.ai/zh-tw/extend/extensions.md): 包的結構、Connector 與批准
- [Injection](https://docs.micromeet.ai/zh-tw/extend/injections.md): 網頁裡的腳本與按鈕
- [Mini App](https://docs.micromeet.ai/zh-tw/extend/mini-apps.md): 標籤頁裡的應用與現狀
