你不用把系統重寫成 Agent。只要幫它掛一張「Agent Card」——一份放在公開網址上的自我介紹卡——它就變成 Agent 世界找得到、用得到的一員。這張卡設計得好不好,決定別人用不用得動你。
flowchart LR
subgraph CALLER["🤖 別的 Agent · 發起方"]
O(["想找人幫忙的 Agent"]):::result
end
subgraph FACE["🪪 對外的門面"]
CARD["Agent Card(放公開網址)
我是誰 · 會哪些 skill
怎麼呼叫 · 怎麼驗證身分"]:::data
end
subgraph SYSTEM["🏢 你的既有系統 · 掛卡後变身成 Agent"]
direction TB
AUTH{"🔐 驗證與授權
是你本人嗎?
你能用這個 skill 嗎?"}
SVC["服務 / 業務邏輯"]:::proc
DB[("資料庫")]:::infra
API["內部 API"]:::infra
SVC --- DB
SVC --- API
end
SVC -. 對外掛上這張卡 .-> CARD
O -->|① 讀卡:你是誰、會什麼、怎麼驗證| CARD
CARD -->|② 依卡呼叫 · 附上身分憑證| AUTH
AUTH -->|③ 通過| SVC
AUTH -.->|✗ 擋下 · 未授權| O
SVC -->|④ 用自己的資料與邏輯處理| DB
SVC -->|⑤ 回結果 / 多輪協作| O
class AUTH decision
classDef data fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f
classDef decision fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#4c1d95
classDef proc fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#17335e
classDef result fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
classDef infra fill:#e5e9f0,stroke:#475569,stroke-width:2px,color:#1e293b
style CALLER fill:#f0fdf4,stroke:#86efac,color:#166534
style FACE fill:#fffbeb,stroke:#fcd34d,color:#92400e
style SYSTEM fill:#f8fafc,stroke:#cbd5e1,color:#475569
重點:別的 Agent 只透過「卡」認識你,碰不到你系統的內部細節。卡上寫什麼、開放哪些 skill,就決定了它能請你做什麼——所以卡本身就是你對外的邊界。
| 卡上宣告 | 白話 | 寫不清楚會怎樣 |
|---|---|---|
| 我是誰 | 這個 Agent 的身分、用途 | 別人不知道你是幹嘛的,不會來找你 |
| 我會哪些 skill | 能被交辦的能力清單 | 能力含糊 → 別人不知道能請你做什麼 |
| 怎麼呼叫我 | 入口位置、要帶什麼、回什麼 | 接不上 → 等於沒對外開口 |
| 怎麼驗證身分 | 誰有權呼叫、怎麼認證 | 沒把關 → 誰都能來用你的系統 |
Agent Card 不是只宣告「我會什麼」,更要宣告「誰、憑什麼、能用哪些」。授權沒設計好,等於把系統對全世界打開。四層把關: