目錄
使用 AI 整理海外新聞,再將摘要、分類與來源寫入 Notion 資料庫,原本是很適合自動化的工作。然而,當流程需要每天處理數十篇文章時,即使 Claude 已經正確理解新聞內容,仍可能因為 JSON 格式錯誤、必要欄位缺漏,或資料型別不符合 API 要求,讓整個流程停在最後的寫入階段。
2026 年 10 月 19 日,AWS 發布技術文章,宣布擴展 Amazon Bedrock 對 Anthropic Claude 結構化輸出(Structured Outputs) 的支援,讓模型可以依照開發者指定的 JSON Schema 產生資料。隔日的官方公告也確認,這項能力涵蓋 Bedrock Runtime 與 Bedrock Mantle 兩種端點,提供需要穩定處理模型輸出的應用程式更多選擇。
這項更新對內容自動化的實際影響,在於減少 AI 與外部系統交換資料時的格式問題。過去需要依賴提示詞、程式驗證及反覆重試才能完成的欄位整理,如今可以在模型生成內容的過程中受到限制,讓後續系統更容易取得符合預期結構的資料。
不過,結構化輸出能降低格式錯誤,不代表模型提供的資料一定正確,也不表示 Notion API 可以直接接收 Claude 回傳的所有內容。從模型產生 JSON,到資料真正進入 Notion 資料庫,中間仍涉及欄位轉換、內容查證、權限管理與錯誤處理,這些工作並不會因為模型支援 JSON Schema 就自動消失。
Claude 結構化輸出是什麼?和一般 JSON 輸出有何不同?
Claude 結構化輸出是一種讓模型按照預先指定格式回傳資料的功能,開發者可以透過 JSON Schema 定義欄位名稱、資料型別、必填項目與允許的選項,讓 AI 產生的結果符合應用程式需要的結構。
例如,一套新聞整理系統要求每篇文章包含摘要、主題分類和人工審核狀態。摘要必須是字串,分類只能從指定選項中選擇,人工審核則必須使用 true 或 false 表示,這些規則都可以事先寫進 Schema,避免模型依照自身的文字習慣自由產生欄位內容。
為什麼要求 AI 輸出 JSON,仍然可能發生格式錯誤?
過去常見的做法,是直接在提示詞要求模型「只輸出 JSON,不要加入其他說明」,有時還會附上完整範例,讓模型模仿指定格式。這種方式通常有效,但提示詞本身並不具有強制約束力,尤其當輸入內容複雜、欄位數量增加,或模型需要處理多個任務時,仍可能產生與預期不同的結果。
假設系統要求新聞分類固定為「AI 模型」「AI 產業」「開發工具」,模型卻自行輸出「生成式 AI 技術」;另一個欄位原本要求布林值,結果卻填入「需要人工審核」。這些回答在語意上可能沒有問題,甚至符合人類閱讀習慣,但對需要依照固定型別處理資料的程式而言,就可能造成解析或驗證失敗。
問題還不只發生在欄位內容。模型有時會在 JSON 前面加入一句說明,或者使用 Markdown 程式碼區塊包住結果,使原本預期直接解析 JSON 的程式必須先清除多餘文字。即使這些問題可以透過後處理修正,當資料量增加後,額外的驗證、修補與重試仍會影響執行效率。
Constrained Decoding 如何讓 Claude 遵守 JSON Schema?
AWS 這次強調的技術是 Constrained Decoding(受限解碼),它會在模型生成內容的過程中限制不符合 Schema 的輸出,而非等到整份回答完成後,再交由另一段程式修正格式。
一般語言模型會根據上下文預測下一個 token,而受限解碼會將格式規則納入生成過程,使模型只能在符合目前結構限制的選項中繼續產生內容。例如,當某個欄位只能接受布林值時,生成機制就會限制不符合該型別的輸出,避免模型自行改成一般文字敘述。
依照 AWS 官方說明,服務收到結構化輸出請求後,會先檢查 Schema 是否符合支援規格,再將其編譯為生成時使用的語法限制。完成編譯的結果可以快取,之後使用相同結構的請求便不需要每次重新處理,模型也能在這套限制下產生符合指定格式的內容。
這種方法可以減少格式異常,卻無法驗證欄位內的事實。例如,Schema 可以要求日期符合指定格式,但如果原始新聞沒有提供發表時間,模型仍可能填入沒有來源依據的日期。JSON 結構合法與資訊真實,是兩個必須分開處理的問題。
Amazon Bedrock 2026 年 10 月更新了哪些 Claude 功能?
Amazon Bedrock 並非直到 2026 年 10 月才開始提供結構化輸出。AWS 早在同年 2 月 4 日就已宣布相關能力,當時支援 Claude 4.5 系列與部分開放權重模型,並可透過 Converse、ConverseStream、InvokeModel 等介面使用。
10 月 19 日的技術文章與 20 日的正式公告,則將焦點放在 Claude 模型支援範圍的擴展,以及不同 Bedrock 端點的使用方式。AWS 宣布在模型可用的環境中,透過 Bedrock Runtime 或 Bedrock Mantle 呼叫 Claude,都能使用結構化輸出功能。
這次更新主要包含 JSON Schema Output Format 與 Strict Tool Use,兩者都與資料格式有關,但處理的是不同階段。
JSON Schema Output Format 與 Strict Tool Use 有什麼差別?
JSON Schema Output Format 用來限制模型最後回傳的資料,適合內容摘要、文件資訊擷取、分類結果及報告整理等工作。Strict Tool Use 則著重於模型呼叫工具時所提供的參數,透過工具定義中的 strict: true,要求輸入符合預先指定的 Schema。
以 Notion 自動化為例,Claude 可以先使用 JSON Schema Output Format 整理新聞摘要與分類,再透過符合 Strict Tool Use 規則的工具參數,要求外部程式建立 Notion 頁面。不過,工具參數正確仍不代表操作一定成功,因為實際執行時還需要確認 API 權限、目標資料來源及服務回應。
| 比較項目 | JSON Schema Output Format | Strict Tool Use |
| 主要用途 | 限制模型回傳的資料結構 | 限制模型呼叫工具時的參數 |
| 適用情境 | 摘要、分類、資料擷取、報告整理 | API 呼叫、AI Agent、多步驟自動化 |
| 限制內容 | 欄位名稱、型別、必填項目、允許值 | 工具名稱與輸入參數結構 |
| 常見應用 | 產生符合規格的新聞資料 | 呼叫建立頁面或更新資料的工具 |
| 無法保證的事項 | 資料內容一定真實 | 工具執行成功、權限合法或動作符合業務需求 |
對需要跨系統處理資料的應用而言,可以依照工作流程使用其中一種機制,也可以將兩者搭配。至於是否真的需要同時使用,仍取決於 AI 是單純產生資料,還是已經被授權操作外部系統。
Claude 結構化輸出如何改善 Notion 新聞資料庫的自動化流程?
如果每天都需要整理海外科技新聞,理想的流程通常是先取得來源內容,再交由 AI 產生摘要、判斷主題,最後把結果寫入 Notion,供後續編輯、研究與分類管理使用。
這類流程最麻煩的地方,經常發生在資料交接階段。模型可能將原本規定的分類改成意思相近的詞,也可能遺漏必要欄位;即使摘要本身寫得很好,下游程式仍得額外處理這些差異。結構化輸出可以減少其中一部分問題,讓 AI 提供的資料更接近資料庫所需的固定格式。
JSON Schema 可以限制哪些新聞資料欄位?
假設新聞整理系統只需要 Claude 產生四項資訊,包括繁體中文摘要、文章分類、是否需要人工審核,以及審核原因,可以使用以下 JSON Schema:
{
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "根據來源內容撰寫繁體中文摘要"
},
"category": {
"type": "string",
"enum": [
"AI 模型",
"AI 產業",
"開發工具",
"資安隱私",
"其他"
]
},
"requires_review": {
"type": "boolean"
},
"review_note": {
"type": "string",
"description": "需要審核的原因,沒有疑慮時使用空字串"
}
},
"required": [
"summary",
"category",
"requires_review",
"review_note"
],
"additionalProperties": false
}
這份 Schema 規定四個欄位都必須出現,其中 category 只能使用五個既定分類,requires_review 則必須是布林值,不能改成「需要」或「不需要」等自由文字。additionalProperties: false 用來禁止未定義的額外欄位,也是 AWS 結構化輸出對物件 Schema 的要求。
分類中保留「其他」,是為了處理無法合理歸入現有類別的文章。若只有幾個固定選項,又要求模型每次都必須選出其中一個,容易讓原本不適合分類的內容被勉強歸入錯誤主題。
至於新聞原始網址、擷取時間及來源識別碼,若資料取得系統已經提供,就沒有必要要求模型重新產生。這些欄位直接保留原始資料通常更可靠,也能減少 AI 自行補充不存在資訊的風險。
為什麼 Claude 的 JSON 不能直接寫入 Notion?
雖然 Claude 和 Notion API 都使用 JSON 傳遞資料,但兩者的結構並不相同。Claude 的 JSON Schema 用來描述模型應該產生哪些欄位,而 Notion Data Source Schema 則定義資料來源真正擁有哪些屬性,以及每個屬性接受什麼型別的資料。
例如,Claude 可能回傳一個名為 summary 的字串欄位,但 Notion 需要依照目標資料來源的設定,將摘要轉換為對應的 rich_text 屬性;文章分類也必須轉換成 Notion select 屬性所需的結構。即使模型已經正確產生 JSON,這段欄位映射工作仍然需要由程式負責。
另一個需要確認的地方,是 Notion API 的資料來源架構。Notion 在 2025 年 9 月的 API 更新中,進一步區分 Database 與 Data Source,現行文件也使用 data_source_id 指定建立資料頁面的目標。因此,如果既有自動化仍依賴舊版資料庫識別方式,正式導入前就需要檢查目前使用的 API 版本與資料來源設定。
Notion Select 欄位可能讓 AI 意外新增分類
Notion 的分類欄位還有一個容易被忽略的行為。根據官方文件,當連線具備相應的資料來源寫入權限時,使用 select 或 multi_select 屬性寫入不存在的選項名稱,系統可能直接將新選項加入資料來源的 Schema。
這意味著分類名稱不一致時,流程未必會回傳錯誤。有些情況下,文章反而會順利寫入,但資料庫逐漸出現「AI 技術」「人工智慧技術」「生成式 AI 工具」等意義相近的標籤,讓原本整齊的分類架構變得混亂。
使用 JSON Schema 的 enum 可以減少模型自行創造分類的機會,但應用程式仍應在寫入前檢查選項是否符合 Notion 現有設定,尤其當資料庫分類可能被人工修改時,更不能只依賴建立 Schema 當下的選項清單。
如果審核流程使用的是 Notion status 屬性,情況又有所不同。官方文件指出,頁面寫入只能指定既有狀態,不能透過新增頁面的請求建立新的 Status 選項,因此也需要事先確認「待審核」等狀態已存在。
Amazon Bedrock API 支援哪些結構化輸出方式?
使用 Claude 結構化輸出時,需要留意實際選擇的 API,因為 Amazon Bedrock 不同介面的請求格式並不完全相同。
例如,透過 Converse API 呼叫模型時,結構化輸出的設定使用 outputConfig.textFormat;若透過 InvokeModel API 傳送 Anthropic 格式的請求,則使用 output_config.format。Mantle 的 Anthropic Messages API 也採用後者,但端點支援狀況需要特別確認。
Bedrock Runtime 與 Mantle 的支援文件為什麼不一致?
截至 2026 年 10 月 22 日,AWS 對 Mantle 的結構化輸出支援存在官方文件記載不一致的情況。
AWS 10 月 19 日的技術文章、20 日公告,以及主要的 Bedrock Structured Outputs 使用者指南,都已將 bedrock-runtime 和 bedrock-mantle 列入支援範圍。然而,另一份 Claude Messages Structured Outputs 專用文件仍指出,Mantle 的 Anthropic Messages API 路徑不支援 output_config.format,使用時可能回傳 HTTP 400。
由於這些資料都來自 AWS 官方,較合理的處理方式是將其視為文件尚未完全同步的問題,而非直接判定 Mantle 一定無法使用。實際部署時仍應確認目標 AWS Region、Claude Model ID、SDK 版本及端點設定,並使用簡單的 Schema 測試請求是否成功。
若需要先建立穩定的概念驗證環境,可以優先評估 Bedrock Runtime 的 Converse 或 InvokeModel 路徑,再依實際測試結果決定是否擴展到 Mantle。
Claude 結構化輸出有哪些限制與成本考量?
結構化輸出可以改善格式穩定性,但在正式使用前,仍需要確認 JSON Schema 的支援範圍、模型完成狀態,以及首次使用新 Schema 時可能增加的延遲。
JSON Schema 並不是所有規則都能強制執行
依據 AWS 文件,Bedrock 支援 JSON Schema Draft 2020-12 的部分功能,包括基本資料型別、enum、const、部分組合規則及內部參照等,但對遞迴 Schema、外部 $ref、數值範圍及字串長度限制仍有明確限制。
例如,minimum、maximum、minLength 和 maxLength 不能直接假定會受到生成機制強制執行。AWS 的不同文件對不支援規則的處理方式也有描述差異,部分情況可能在請求驗證階段被拒絕,部分規則則可能被接受,但不會在生成時真正限制結果。
因此,如果新聞摘要必須控制字數,或某個數值欄位必須落在指定範圍內,仍應由應用程式另外驗證。Schema 可以作為第一層格式限制,但不適合承擔所有資料驗證工作。
模型拒答或輸出中斷,仍可能產生不完整結果
在正常完成的情況下,結構化輸出可以讓結果符合指定 Schema,但這項能力仍存在例外。
當模型因安全政策拒絕回答,或輸出達到 max_tokens 上限而提前停止時,可能無法取得完整的 JSON。AWS 也在最佳實務中提醒,應用程式需要檢查每次請求的停止原因,不能只因 API 回傳成功狀態,就直接假定模型已完整產生所有資料。
此外,Anthropic 模型的結構化輸出與 Citations 功能在 Bedrock 中存在相容性限制,兩者同時啟用可能導致 HTTP 400。若工作流程必須保留新聞原文的可追溯證據,應由資料取得系統保存來源連結與原始內容,必要時再建立獨立的引用核對程序。
第一次使用新 Schema,為什麼可能比較慢?
AWS 的結構化輸出需要先將 Schema 編譯成生成時使用的 Grammar,因此首次使用新結構時,可能比一般請求花費更多時間。完成編譯後,系統會在相同帳戶範圍內快取結果,快取期間為首次存取後的 24 小時,後續使用相同 Schema 的請求就能減少編譯成本。
如果自動化程式每次執行都動態修改欄位結構,便可能反覆觸發新的編譯流程。對每天處理大量新聞、工單或產品資訊的系統而言,使用固定且經過版本管理的 Schema,通常比持續產生新結構更容易控制效能與維運成本。
至於整體費用,仍需要根據實際模型、區域及 Token 用量估算。結構化輸出可能減少格式錯誤造成的重試,也可能透過限制不必要的欄位降低輸出量,但第一次編譯的延遲、外部 API 呼叫、內容驗證及人工審核,都應納入整體成本。
如果每天只有幾篇文章需要整理,原本又有人負責編輯與發布,導入完整 Bedrock 自動化架構未必比手動處理划算。
如何將 Claude 結構化輸出導入 Notion 新聞資料庫?
實際設計工作流程時,建議先將新聞取得、模型處理、資料驗證與 Notion 寫入分開。每個階段都應保留自己的輸入、輸出及錯誤紀錄,這樣即使某篇文章沒有成功建立頁面,也能判斷問題出在來源資料、模型輸出,還是外部 API。
新聞來源應先清洗,再交給 Claude 處理
海外新聞可能來自 RSS、官方公告、媒體 API 或其他合法取得的來源,取得的內容有時會包含 HTML 標籤、網頁轉義字元、重複段落,甚至只有部分截斷文字。如果直接把這些內容交給模型,可能影響摘要品質,也會增加模型誤解原文的機會。
因此,較穩定的做法是在呼叫 Claude 前先清洗資料,並保留來源網址、原始標題、發表日期及擷取時間。尤其是新聞發表日期與資料匯入日期,應分成不同欄位,避免系統把重新取得的舊新聞當成新事件。
清洗完成後,再讓 Claude 負責摘要、分類與審核判斷。對於來源沒有明確提供的日期、數字或人物資訊,應允許標記為未知或需要複核,不應要求模型自行填補缺漏。
Notion API 寫入前,還需要完成欄位映射
當 Claude 產生符合 Schema 的結果後,程式需要根據 Notion 資料來源的實際屬性進行轉換,再呼叫建立頁面的 API。
以下是示意性的請求主體,假設目標資料來源已有 Name、Category 和 Review 三個屬性:
{
"parent": {
"data_source_id": "YOUR_DATA_SOURCE_ID"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "AWS 擴展 Claude 結構化輸出支援"
}
}
]
},
"Category": {
"select": {
"name": "開發工具"
}
},
"Review": {
"status": {
"name": "待審核"
}
}
}
}
這份範例主要用來呈現 Notion 的欄位結構,並非完整的 API 呼叫程式。實際使用時,需要將屬性名稱替換成資料來源中的設定,確認連線具備新增內容的權限,並在請求標頭提供有效憑證與適用的 Notion API 版本。
如果新聞摘要需要存入頁面內容,也可以另外建立 rich_text 屬性,或依需求使用頁面區塊儲存完整文字。模型的輸出格式與 Notion 的最終儲存方式可以分開設計,不需要讓 Claude 直接生成整份 Notion API 請求。
API 回傳錯誤時,應避免重試造成重複文章
自動化流程除了處理成功回應,也需要考慮權限不足、資料驗證失敗、請求限流,以及網路逾時等情況。
依照 Notion 官方文件,API 具有依工作區方案區分的連線請求額度,部分端點也有獨立的限制。如果請求過於頻繁,可能收到 HTTP 429,程式應依照 Retry-After 指示安排後續重試。
但建立頁面的操作不能單純在失敗時立即重送。假設 Notion 已成功建立文章,只是網路連線在回傳結果前中斷,程式若再次執行相同請求,就可能產生兩篇內容完全相同的頁面。
這類問題可以透過來源識別碼、標準化網址及去重檢查降低風險。成功建立頁面後,也應保存 Notion 回傳的頁面 ID,讓後續流程可以更新既有文章,而非每次重新新增。
Claude 結構化輸出值得導入嗎?應該如何評估成效?
Claude 結構化輸出比較適合需要大量處理固定欄位資料,且模型結果會直接交給另一套系統使用的工作。例如新聞分類、客服工單整理、文件欄位擷取或產品資料處理,只要其中一個欄位型別錯誤就可能影響後續程序,格式穩定性便具有實際價值。
不過,導入效果不應只根據 JSON 是否成功解析判斷。假設原本每天有大量文章因格式錯誤而無法寫入 Notion,使用結構化輸出後,這類問題確實可能減少;但如果摘要仍經常產生錯誤數字、分類不符合編輯需求,整體工作效率就未必改善。
比較合理的評估方式,是挑選一批具有代表性的新聞,使用相同輸入測試原本的提示詞流程與結構化輸出流程,再觀察格式錯誤、分類準確度、人工修正時間及總處理成本的差異。
| 評估項目 | 應觀察的問題 |
| 格式失敗率 | 模型是否產生不符合指定 Schema 的結果 |
| 分類準確率 | AI 選擇的分類是否符合編輯判斷 |
| 內容事實錯誤率 | 摘要是否出現原文沒有支持的資訊 |
| Notion 寫入成功率 | 通過驗證的資料是否能順利建立頁面 |
| 平均處理時間 | 從取得新聞到完成草稿需要多久 |
| 人工修正時間 | 編輯每篇文章仍需投入多少時間 |
| 每篇處理成本 | 模型費用、API 使用與人工成本是否合理 |
如果測試結果顯示,格式錯誤明顯減少,人工修正時間也跟著下降,就有進一步擴大使用的理由。反過來說,若只有格式變得整齊,內容品質與整體處理時間卻沒有改善,就需要重新檢查問題是否真的出在模型輸出格式,而非原始資料品質或工作流程設計。
結論:Claude 結構化輸出能改善資料交接,但仍需要完整的驗證流程
Amazon Bedrock 在 2026 年 10 月擴展 Claude 結構化輸出的支援,讓需要固定資料格式的 AI 應用更容易處理模型回應,也減少了部分依賴提示詞與格式修補程式的工作。對於已經使用 Notion 管理新聞、研究資料或專案內容的團隊,這項功能適合用來改善摘要、分類與資料庫寫入之間的交接問題。
不過,JSON Schema 無法確認資料是否真實,Strict Tool Use 也無法保證外部工具一定執行成功。新聞來源核對、欄位映射、權限設定、重複資料處理,以及人工審核,仍然需要由整套自動化流程負責。
如果準備將 Claude 結構化輸出導入 Notion,較適合的起點是先使用固定 Schema 處理少量文章,將結果寫入待審核資料庫,再觀察實際的錯誤率與處理成本。確認格式、內容與 API 操作都能穩定運作後,再逐步增加自動化程度,比一開始就讓 AI 直接建立並公開所有文章更容易維護。
常見FAQs
Claude 結構化輸出(Structured Outputs)讓模型依照指定 JSON Schema 回傳欄位、資料型別與固定選項,減少因 JSON 格式不符造成的自動化錯誤。
一般提示詞只是要求模型遵守格式;結構化輸出透過 Constrained Decoding 在生成過程限制不符合 Schema 的內容,降低欄位缺漏或型別錯誤的機率。
前者規範模型最終回傳的資料結構,後者規範 AI 呼叫外部工具時的輸入參數。兩者可以依工作流程需要分別使用或搭配。
不能。Schema 著重格式,無法判斷內容是否符合原文,也不能防止虛構日期、數字或人物資訊;仍須保留來源核對與人工審核。
通常不能直接送入 Notion API。應用程式仍須將模型欄位映射至資料來源的 title、rich_text、select、status 等屬性,並處理 API 權限及回應。
在連線具備相應寫入權限的情況下,Notion 可能自動新增 select 或 multi_select 選項。因此應在模型端用 enum 限制分類,寫入前再核對現有選項。
AWS 2026 年 10 月公告將兩者列為支援,但部分 Claude 專用文件仍保留 Mantle 限制的說法;正式導入前應依模型、區域與實際端點測試。
沒有。AWS 僅支援部分 JSON Schema 功能,遞迴結構、外部 $ref、部分字串長度與數值範圍限制不能直接假定可用,仍須在程式端驗證。
首次使用新 Schema 時,Bedrock 需要編譯 Grammar;編譯結果可快取約 24 小時。若頻繁變更 Schema,可能反覆增加首次編譯延遲。
不一定。格式錯誤與重試可能減少,但模型用量、Schema 編譯、API 呼叫及人工複核仍有成本,需以實際格式失敗率、處理時間與每篇成本評估。
應保留來源識別碼與標準化網址,在建立頁面前執行去重檢查;成功後保存 Notion 頁面 ID,避免請求逾時後直接重試而建立重複紀錄。