4 協議設計原則

🧭 4. 協議設計原則

每個成功的協議都有一組核心信念指導其技術決策——HTTP 的「無狀態」讓 Web 可以無限擴展,Markdown 的「可讀性優先」讓原始文本即使不渲染也能閱讀。ICP 同樣遵循 6 條核心設計原則,它們共同定義了協議的技術哲學,並約束所有後續的設計選擇。

原則一:註解式增強,而非替代

ICP 不替代自然語言,而是在自然語言之上疊加結構化註解。移除所有註解後,原始文本仍然完整可讀。

這一原則源於章節 3 中「針對表述資訊做標記」的方法論——我們參考 Markdown 使用特殊字元表示特定含義,參考 Java 註解原理解釋和觸發輔助功能。ICP 的註解是對自然語言的「圈點批註」,而非對自然語言的改寫或編碼。

例如,使用者說「幫我 !!今天下班前!! 把 專案週報 發給 @張三」。去掉所有註解標記後,這句話仍然是通順的自然語言:「幫我今天下班前把專案週報發給張三」。但有了註解,系統可以識別出截止時間(優先級標記)、關鍵內容(強調標記)和接收人(人物引用標記),從而生成一個帶有截止時間、附件和傳送按鈕的操作卡片。

這意味著:ICP 文件的最低降級形態就是純文字,任何不支援 ICP 的系統都可以安全地忽略註解,只展示原始文字。

原則二:終端無關性

協議本身不假設任何特定終端的能力。ICP 只描述「是什麼」(語義內容),不規定「怎麼展示」(渲染方式)。

這一原則直接回應章節 3 中「不同終端人機介面差異很大」的問題。既然我們無法預知資訊最終會在什麼裝置上呈現,協議就不應該綁定任何特定的展示形式。終端根據自身能力選擇最佳呈現方式,不支援的註解可以安全忽略。

例如,同一份包含「報銷單審核」語義的 ICP 文件:桌面端渲染為帶有表格和附件預覽的大螢幕介面;手機端只展示關鍵資訊和兩個按鈕(通過/退回);智慧音箱用語音念出摘要並等待語音確認;AR 眼鏡在使用者視野中浮現審批提示。四種終端,四種呈現,但語義完全一致。

原則三:語境顯式化

所有影響理解的語境資訊都應該被顯式地附加到訊息中。協議不依賴 AI 的「察言觀色」能力來推斷隱含意義。

這一原則源於章節 3 中「增加語境資訊」的方法論,以及「中間語言是否必要」論證中的核心觀點——AI 對環境的掌控力有限,AI 跟人可能沒那麼親近。因此,我們選擇穩妥的做法:寧可冗餘,不可遺漏。

例如,使用者說「在附近訂一家 Marry 喜歡的餐廳」。如果只傳遞這句話,AI 不知道「附近」是哪裡、Marry 是誰、預算多少。透過 ICP 的語境顯式化,位置座標、Marry 的用餐偏好、歷史訂單記錄、預算範圍等資訊都被顯式附加到訊息中,AI 無需猜測即可精準理解。

原則四:漸進增強

最簡單的 ICP 文件就是一條純文字訊息。註解、語境、渲染提示都是可選的增強層,實作者可以從最簡單的支援開始,逐步增加能力。

這意味著入門門檻極低,天花板極高。一個只支援純文字的系統已經是一個合法的 ICP 實作;隨著能力增長,它可以逐步支援註解解析、語境管理、動態介面組裝、跨終端協調等進階特性。

例如,一個 ICP 文件的漸進增強過程:

  • 第一層(純文字):"幫我訂明天下午的會議室"
  • 第二層(加註解):"幫我訂 [明天下午] 的 **會議室**" — 系統識別出時間和關鍵物件
  • 第三層(加語境):附加使用者的日曆資訊、常用會議室偏好、參會人數
  • 第四層(加渲染提示):指定以表單卡片形式展示可選會議室列表,按距離排序

原則五:向後相容

新版本的協議必須能夠處理舊版本的文件。未知的註解類型應該被安全忽略而不是導致錯誤。

協議的演進不會破壞已有的生態。這對於一個志在成為基礎設施的協議至關重要——採用者需要確信,今天基於 ICP v1 建構的系統不會因為 v2 的發布而失效。

例如,一個 v2 解析器遇到 v1 文件時:v1 文件中不包含 v2 新增的 rendering_hint 欄位,解析器正常處理,使用預設渲染策略。反過來,一個 v1 解析器遇到 v2 文件時:v2 文件中包含 v1 不認識的 visibility_marker 註解類型,解析器保留原始文字內容,忽略未知註解,不中斷處理流程。

原則六:開放互操作

ICP 不綁定任何特定的 AI 模型、平台或廠商。透過 skills 機制,ICP 與 MCP(Model Context Protocol)、A2A(Agent-to-Agent)、OpenAPI 等現有協議橋接互通。

ICP 是一個連接層,不是一個封閉生態。它的價值在於提供統一的人機互動語義描述,而具體的 AI 推理、工具呼叫、代理間通訊則交給各自擅長的協議處理。

例如,一個 ICP 文件中可以透過 skills 註冊表宣告:呼叫天氣查詢服務(透過 OpenAPI 綁定)、執行檔案操作(透過 MCP 工具綁定)、請求另一個 AI 代理協助(透過 A2A 綁定)。ICP 負責描述互動語義和使用者語境,具體的服務呼叫由對應的協議完成。