站點工具
站點工具是 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 開發者指南。