繁體中文

站點工具

站點工具是 ChatGPT 對擬議的 WebMCP 標準的實現。藉助 WebMCP, 網站可以在使用者原本使用的介面之外,直接向 AI 智能體提供實用操作。 你和智能體可以使用同一個即時頁面和已登入會話協同工作。

在 ChatGPT 桌面應用的內建瀏覽器中,ChatGPT Work 和 Codex 可以發現並使用可用的此類工具。

WebMCP 與 MCP 的區別

Model Context Protocol (MCP) 將 AI 應用連線到本機或遠端伺服器。其工具可以獨立於開啟的網頁執行, 例如搜尋服務或通過 API 管理記錄。

WebMCP 允許網站將其 功能作為一組預定義工具提供給智能體。智能體存取網站時即可發現這些工具, 因此使用者無需安裝單獨的 MCP server 或設定其他連線, 便可使用這些功能。

當你和智能體需要檢視相同內容時,這種方式非常有用,例如 編輯畫布或探索儀表板。包含 MCP server 的外掛可以提供 獨立於開啟頁面執行的整合。網站可以同時支援這兩種方式。

在瀏覽器中的工作方式

在內建瀏覽器中開啟網站,然後請 ChatGPT Work 或 Codex 協助 完成任務。如果頁面提供站點工具,智能體可以發現並使用 與你正在檢視的網站相關的操作。例如,文件 編輯器可以讓智能體查詢某個章節,或留下評論供你審閱。

在瀏覽器位址列中選擇 站點工具,即可檢視網站 提供的工具。選擇 可用的站點工具 可檢查各個工具。 瀏覽器會在網站執行每項請求前進行檢查,智能體 也可以檢查頁面以確認發生了哪些變化。如果有近期活動, 請選擇 最近使用 開啟 來源 並檢視這些呼叫。

在此範例中,展開 可用的站點工具,檢查 Margin 提供的工具。

工具歸提供它們的頁面所有。關閉頁面或導航離開 可能會導致其工具不可用。如果沒有合適的工具, 智能體可能仍可使用常規瀏覽器功能。

範例:探索 OpenAI 文件

ChatGPT Learn 和 OpenAI Developers 提供用於查詢和閱讀 文件的站點工具。在編輯器中選擇 在 ChatGPT 中開啟,即可在 桌面應用的瀏覽器中開啟 Learn,並在旁邊新建一個聊天,預先填入以下提示詞供你傳送。

提示詞:

Find the documentation for building reusable skills, open the relevant page, and explain when I should turn a skill into a plugin.

智能體可以使用這些工具搜尋、閱讀並開啟相關頁面:

工具 功能
search_openai_docs 搜尋 OpenAI 文件。
lookup_page 按路徑或 URL 讀取文件頁面。
lookup_context 讀取當前文件路由和選中的文本。
navigate_to_page 在當前文件站點上開啟匹配的頁面。
generate_custom_guide 啟動自定義建置或學習指南,並傳回其狀態和連結。

Docs Agent 會非同步生成自定義指南。收到連結並不 表示生成已經完成。

安全與使用者控制

網站提供的工具定義和結果是不受信任的內容。工具的 名稱或其聲稱只讀取資料,並不能證明它實際執行的操作。網站 指令不會授權智能體分享無關資訊或 執行敏感操作。

在內建瀏覽器中,每次工具呼叫都會在 執行前接受安全審查。常規的網站存取和確認策略仍然適用, 包括傳送訊息、購買、刪除 資料或更改權限等後果重大的操作。瀏覽器會將每次呼叫與其 來源頁面和工具註冊資訊關聯。這些檢查可以降低風險,但並不能 保證網站或其輸出可信。

你可以在 設定 > 瀏覽器 > 權限 中關閉 啟用站點工具。 在分享敏感資訊或依賴某項變更之前,請檢查網站、請求的操作和結果。

請通過 OpenAI 的 安全漏洞賞金計劃報告安全漏洞。有關 AI 安全風險,請參閱 安全風險漏洞賞金計劃。請遵循 各項計劃的範圍和提交說明。

將 WebMCP 新增到你的網站

你可以讓 Codex 為正在開發的 Web 應用或 Site 新增 WebMCP 支援。說明你希望智能體能夠 執行哪些操作,並要求 Codex 複用應用現有的邏輯和權限。

首先選擇應用已支援的一項操作。例如:

  • 儀表板允許智能體設定日期範圍,並檢查 圖表背後的資料。
  • 文件編輯器允許智能體查詢章節、提出修改建議,或 留下評論供你審閱。
  • 旅行規劃器允許智能體比較選項並更新行程, 同時由你檢視地圖。

你也可以自行編寫程式碼。在頁面的 JavaScript 模組中檢查 瀏覽器支援情況並註冊工具。以下只讀範例會傳回 當前頁面的標題:

if (typeof document.modelContext?.registerTool === "function") {
  await document.modelContext.registerTool({
    name: "get_page_title",
    description: "Read the title of the current page.",
    inputSchema: {
      type: "object",
      properties: {},
      additionalProperties: false,
    },
    annotations: { readOnlyHint: true },
    execute: async () => ({ title: document.title }),
  });
}

相容的智能體可以發現 get_page_title 並取得頁面的 當前標題。對於接受參數的工具,請在輸入 schema 中描述參數,並在 execute 處理程序中使用這些參數呼叫應用的 現有邏輯。

保持輸入範圍明確,說明副作用,並傳回足夠的資訊以便 驗證結果。使用應用現有的身份驗證、 授權和輸入驗證。為使用者以及 不支援 WebMCP 的瀏覽器保留常規介面。

有關 API 詳細資訊和範例,請參閱 WebMCP 規範Chrome 開發者指南