576 576
577### 標準屬性577### 標準屬性
578 578
579所有指標與事件皆共用以下標準屬性:579所有指標與事件都共用以下標準屬性:
580 580
581| 屬性 | 說明 | 控制方式 |581| 屬性 | 說明 | 控制方式 |
582| - | - | - |582| - | - | - |
583| `session.id` | Claude Code 本身的工作階段 ID,`/clear` 會取代它 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |583| `session.id` | Claude Code 自身的工作階段 ID,`/clear` 會將其替換 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |
584| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |584| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段上 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |
585| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |585| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |
586| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`,或 Claude Tag 工作階段的 `claude-in-slack` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |586| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`,或 Claude Tag 工作階段的 `claude-in-slack` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |
587| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |587| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |
588| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |588| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |
589| `user.account_id` | 符合 Anthropic 管理 API 標記格式的帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |589| `user.account_id` | 符合 Anthropic 管理 API 的標記格式帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |
590| `user.id` | 首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。不包含任何個人資訊,也不是由您的 Claude 帳戶衍生而來。刪除該檔案後,下次執行時會產生一個不相關的新值。 | 一律包含 |590| `user.id` | 首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。它不包含任何個人資訊,也並非衍生自您的 Claude 帳戶。刪除該檔案後,下次執行時會產生一個不相關的新值。 | 一律包含 |
591| `user.email` | 使用者電子郵件地址,來自您的登入資訊,或在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中來自該工作階段本身的憑證 | 可用時一律包含 |591| `user.email` | 使用者電子郵件地址,來自您的登入資訊,或在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中來自該工作階段自身的憑證 | 可用時一律包含 |
592| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時一律包含 |592| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時一律包含 |
593| 來自 `OTEL_RESOURCE_ATTRIBUTES` 的鍵 | 您設定的自訂屬性,例如 `department` 或 `team.id`。請參閱[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |593| 來自 `OTEL_RESOURCE_ATTRIBUTES` 的鍵 | 您設定的自訂屬性,例如 `department` 或 `team.id`。請參閱[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |
594| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 工作階段儲存庫的身分,由其 `origin` 遠端衍生而來。請參閱[儲存庫屬性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(預設:false)。需要 Claude Code v2.1.269 或更新版本 |594| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 工作階段儲存庫的識別資訊,衍生自其 `origin` remote。請參閱[儲存庫屬性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(預設:false)。需要 Claude Code v2.1.269 或更新版本 |
595 595
596在透過 `/login` 登入 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)的工作階段中,CLI 會以經過身分驗證的身分標記匯出資料:`user.id` 為 IdP subject,`user.email` 為登入的電子郵件,而 `user.groups` 則以逗號分隔的字串承載 IdP 群組成員資格。每次匯出也會帶有 `identity.source: gateway-oidc`。閘道身分會最後套用,因此在這些工作階段中,透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 與 `identity.*` 鍵會被忽略。596在透過 `/login` 登入 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)的工作階段中,CLI 會在匯出資料上標記已通過身分驗證的身分:`user.id` 是 IdP subject,`user.email` 是登入的電子郵件,而 `user.groups` 則以逗號分隔字串的形式攜帶 IdP 群組成員資格。每筆匯出也會攜帶 `identity.source: gateway-oidc`。閘道身分最後才套用,因此在這些工作階段中,透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 與 `identity.*` 鍵會被忽略。
597 597
598> [!NOTE]598> [!NOTE]
599>599>
600> Claude Code 在開發人員登入之前記錄的事件不會帶有閘道身分。當 Claude Code 在未登入閘道的狀態下開啟工作階段時(例如在[閘道結束登入](https://code.claude.com/docs/zh-TW/errors.md#cloud-gateway-session-expired)之後),登入前記錄的啟動事件會帶有匿名的 `user.id`,且沒有 `identity.source`。這些事件包括 [`managed_settings_resolved`](#managed-settings-resolved-event)、[`plugin_loaded`](#plugin-loaded-event) 與 [`mcp_server_connection`](#mcp-server-connection-event)。600> Claude Code 在開發人員登入前記錄的事件不會攜帶閘道身分。當 Claude Code 在未登入閘道的狀態下開啟工作階段時,例如在[閘道結束登入](https://code.claude.com/docs/zh-TW/errors.md#cloud-gateway-session-expired)之後,登入前記錄的啟動事件會攜帶匿名的 `user.id`,且沒有 `identity.source`。這些事件包括 [`managed_settings_resolved`](#managed-settings-resolved-event)、[`plugin_loaded`](#plugin-loaded-event) 與 [`mcp_server_connection`](#mcp-server-connection-event)。
601 601
602關於透過閘道連線的 Claude Desktop 與 Cowork 工作階段上的身分屬性,請參閱[閘道 `telemetry` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry)。602關於透過閘道連線的 Claude Desktop 與 Cowork 工作階段上的身分屬性,請參閱[閘道 `telemetry` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry)。
603 603
604事件還會額外包含以下屬性。這些屬性永遠不會附加到指標上,因為它們會導致無上限的基數:604事件還額外包含以下屬性。這些屬性絕不會附加到指標上,因為它們會造成無上限的基數:
605 605
606* `prompt.id`:將使用者提示詞與其後直到下一個提示詞之前的所有事件相關聯的 UUID。請參閱[事件關聯屬性](#event-correlation-attributes)。606* `prompt.id`:將使用者提示詞與其後所有事件(直到下一個提示詞為止)相互關聯的 UUID。請參閱[事件關聯屬性](#event-correlation-attributes)。
607* `workspace.host_paths`:在桌面應用程式中選取的主機工作區目錄,以字串陣列表示607* `workspace.host_paths`:在桌面應用程式中選取的主機工作區目錄,以字串陣列表示
608* `workflow.run_id`:執行識別碼,前綴為 `wf_`,出現在屬於 [Workflow](https://code.claude.com/docs/zh-TW/workflows.md) 工具執行的 agent 所發出的 API 與工具事件上。依單一 `workflow.run_id` 篩選事件,即可重建該次執行的 API 請求與工具結果。此識別碼涵蓋工作流程腳本產生的 agent,以及這些 agent 再產生的任何 agent,例如 skill 呼叫。它與 Workflow 工具結果中回報的執行識別碼相符。608* `workflow.run_id`:執行識別碼,以 `wf_` 為前綴,出現在屬於 [Workflow](https://code.claude.com/docs/zh-TW/workflows.md) 工具執行的 agent 所發出的 API 與工具事件上。依單一 `workflow.run_id` 篩選事件,即可重建該次執行的 API 請求與工具結果。此識別碼涵蓋工作流程指令碼所產生的 agent,以及這些 agent 再產生的任何 agent,例如 skill 呼叫。它與 Workflow 工具結果中回報的執行識別碼相符。
609* `workflow.name`:工作流程的名稱,即其腳本的 `meta.name`,與 `workflow.run_id` 一同發出。當執行的是未經修改的內建腳本時,內建工作流程名稱會原樣顯示。使用者撰寫的名稱(包括內建腳本的編輯副本)會被替換為 `custom`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。609* `workflow.name`:工作流程的名稱,即其指令碼的 `meta.name`,與 `workflow.run_id` 一同發出。當執行的是未經修改的內建指令碼時,內建工作流程名稱會原樣顯示。使用者撰寫的名稱(包括內建指令碼的編輯副本)會被替換為 `custom`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。
610* `agent_id`:引發該事件的 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的識別碼,例如 `a3f2c1b4d5e6f7a80`。攜帶此屬性的事件包括 subagent 的 API 與工具事件、其 [`assistant_response`](#assistant-response-event) 事件,以及已完成 subagent 的 [`subagent_completed`](#subagent-completed-event)。在主工作階段與[程序內隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)的事件上不存在。subagent 的 [span `agent_id`](#span-attributes) 是相同的值,或在開頭的 `a` 後加上標籤,例如 `acompact-3f2c1b4d5e6f7a80`。需要 Claude Code v2.1.310 或更新版本610* `agent_id`:引發事件的 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的識別碼,例如 `a3f2c1b4d5e6f7a80`。攜帶此屬性的事件包括 subagent 的 API 與工具事件、其 [`assistant_response`](#assistant-response-event) 事件,以及已完成之 subagent 的 [`subagent_completed`](#subagent-completed-event)。在主工作階段與[同程序隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)的事件上不存在。subagent 的 [span `agent_id`](#span-attributes) 是相同的值,或是在開頭的 `a` 後面加上標籤,如 `acompact-3f2c1b4d5e6f7a80`。需要 Claude Code v2.1.310 或更新版本
611* `parent_agent_id`:產生或最後一次恢復引發該事件之 subagent 的 agent 的 `agent_id`。當該 agent 是主工作階段時不存在。需要 Claude Code v2.1.310 或更新版本611* `parent_agent_id`:產生或最後一次恢復引發事件之 subagent 的 agent 的 `agent_id`。當該 agent 為主工作階段時不存在。需要 Claude Code v2.1.310 或更新版本
612 612
613#### 儲存庫屬性613#### 儲存庫屬性
614 614
615設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true`,即可以工作階段儲存庫的身分標記指標與事件,讓共用的收集器能按儲存庫歸屬使用量。需要 Claude Code v2.1.269 或更新版本。615設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true`,即可在指標與事件上標記工作階段儲存庫的識別資訊,讓共用的收集器能依儲存庫歸屬用量。需要 Claude Code v2.1.269 或更新版本。
616 616
617Claude Code 會在每個工作階段中從儲存庫的 `origin` 遠端衍生這些屬性一次。當儲存庫的 HTTPS 與 SSH 遠端指向相同的主機與相同的路徑時(如 GitHub、GitLab 與 Bitbucket Cloud),兩者會產生相同的值:617Claude Code 會在每個工作階段中從儲存庫的 `origin` remote 衍生這些屬性一次。當儲存庫的 HTTPS 與 SSH remote 指向相同主機與相同路徑時(如 GitHub、GitLab 與 Bitbucket Cloud),兩者會產生相同的值:
618 618
619| 屬性 | 值 |619| 屬性 | 值 |
620| - | - |620| - | - |
621| `vcs.repository.url.full` | 儲存庫的瀏覽器 URL,不含 `.git`,例如 `https://github.com/example-org/example-repo` |621| `vcs.repository.url.full` | 儲存庫的瀏覽器 URL,不含 `.git`,例如 `https://github.com/example-org/example-repo` |
622| `vcs.owner.name` | 擁有者或群組路徑,例如 `example-org`;當遠端路徑只有單一區段時會省略 |622| `vcs.owner.name` | 擁有者或群組路徑,例如 `example-org`;當 remote 路徑只有單一區段時省略 |
623| `vcs.repository.name` | 純儲存庫名稱,例如 `example-repo` |623| `vcs.repository.name` | 單純的儲存庫名稱,例如 `example-repo` |
624| `vcs.provider.name` | 當 Claude Code 將遠端的主機或 URL 形式辨識為下列提供者之一時,為 `github`、`gitlab`、`bitbucket` 或 `gitea`;否則省略 |624| `vcs.provider.name` | 當 Claude Code 將 remote 的主機或 URL 形式識別為下列提供者之一時,為 `github`、`gitlab`、`bitbucket` 或 `gitea`;否則省略 |
625 625
626值會轉為小寫,且遠端 URL 中的憑證、查詢字串與片段永遠不會出現在其中。當工作階段沒有 `origin` 遠端、遠端不是 URL 形式,或唯一包含的儲存庫是您的家目錄時,這些屬性會被省略。626值會轉為小寫,且 remote URL 中的憑證、查詢字串與片段絕不會出現在其中。當工作階段沒有 `origin` remote、remote 不是 URL 形式,或唯一的上層儲存庫是您的家目錄時,這些屬性會被省略。
627 627
628若要從[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)取得這些屬性,請在其[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)上設定遙測變數,包括 `OTEL_METRICS_INCLUDE_REPOSITORY`。同時也請在該環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)中允許您收集器的網域。628若要從[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)取得這些屬性,請在其[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)上設定遙測變數,包括 `OTEL_METRICS_INCLUDE_REPOSITORY`。另外也要在環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)中允許您收集器的網域。
629 629
630您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 鍵會取代該鍵的衍生值。若您宣告了 `vcs.repository.url.full`,Claude Code 將永遠不會讀取遠端,且只會回報您宣告的鍵。630您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 鍵會取代該鍵的衍生值。如果您宣告了 `vcs.repository.url.full`,Claude Code 就完全不會讀取 remote,只回報您宣告的鍵。
631 631
632若同一儲存庫的 HTTPS 與 SSH 複製回報不同的值(例如在自行託管的安裝中,HTTPS 複製 URL 帶有 SSH URL 所沒有的路徑前綴),請在 `OTEL_RESOURCE_ATTRIBUTES` 中宣告 `vcs.repository.url.full`,以及您希望回報的所有其他 `vcs.*` 鍵。如此一來,每個複製都會回報您宣告的身分。632如果同一儲存庫的 HTTPS 與 SSH clone 回報不同的值,例如在自行架設的安裝中,HTTPS clone URL 帶有 SSH URL 所沒有的路徑前綴,請在 `OTEL_RESOURCE_ATTRIBUTES` 中宣告 `vcs.repository.url.full`,以及您想回報的所有其他 `vcs.*` 鍵。如此一來,每個 clone 都會回報您宣告的識別資訊。
633 633
634這些屬性只會流向您自己的匯出器;Anthropic 的遙測會捨棄所有 `vcs.*` 鍵。634這些屬性只會流向您自己的匯出器;Anthropic 的遙測會捨棄所有 `vcs.*` 鍵。
635 635
636### 指標636### 指標
637 637
638Claude Code 會匯出以下指標。「單位」欄顯示附加到每個指標的 OpenTelemetry 單位字串;計數類指標不帶單位。638Claude Code 會匯出以下指標。「單位」欄顯示附加在每個指標上的 OpenTelemetry 單位字串;計數指標不帶單位。
639 639
640| 指標名稱 | 說明 | 單位 |640| 指標名稱 | 說明 | 單位 |
641| - | - | - |641| - | - | - |
642| `claude_code.session.count` | 已啟動的 CLI 工作階段計數 | 無 |642| `claude_code.session.count` | 已啟動的 CLI 工作階段數量 | 無 |
643| `claude_code.lines_of_code.count` | 已修改的程式碼行數計數 | 無 |643| `claude_code.lines_of_code.count` | 已修改的程式碼行數 | 無 |
644| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |644| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |
645| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |645| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |
646| `claude_code.cost.usage` | Claude Code 工作階段的成本 | USD |646| `claude_code.cost.usage` | Claude Code 工作階段的費用 | USD |
647| `claude_code.token.usage` | 已使用的 token 數量 | tokens |647| `claude_code.token.usage` | 使用的 token 數量 | tokens |
648| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決定的計數 | 無 |648| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決策的數量 | 無 |
649| `claude_code.active_time.total` | 總活躍時間 | s |649| `claude_code.active_time.total` | 總活躍時間 | s |
650 650
651當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 與 `s` 單位,使抓取結果保持為有效的 Prometheus 文字格式。指標名稱不會改變,而結合多個匯出器的設定(例如 `otlp,prometheus`)會保留單位。在 v2.1.216 之前,Prometheus 抓取結果包含僅適用於 OpenMetrics 的 `# UNIT` 行,部分抓取器會拒絕這些行。651當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 與 `s` 單位,讓抓取結果保持有效的 Prometheus 文字格式。指標名稱不會改變,而組合多個匯出器的設定(例如 `otlp,prometheus`)則會保留單位。
652 652
653### 指標詳細資訊653### 指標詳細資訊
654 654
655每個指標都包含上方列出的標準屬性。帶有額外情境特定屬性的指標會在下方註明。655每個指標都包含上述的標準屬性。具有額外情境特定屬性的指標說明如下。
656 656
657#### 工作階段計數器657#### 工作階段計數器
658 658
661**屬性**:661**屬性**:
662 662
663* 所有[標準屬性](#standard-attributes)663* 所有[標準屬性](#standard-attributes)
664* `start_type`:工作階段的啟動方式。為 `"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值代表 `claude agents` 儀表板程序,這是使用者啟動的本機 UI,而非對話工作階段。在您的儀表板中篩選此值,即可將 UI 程序啟動與對話工作階段區分開來。664* `start_type`:工作階段的啟動方式。為 `"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值代表 `claude agents` 儀表板程序,這是由使用者啟動的本機 UI,而非對話式工作階段。在儀表板中篩選此值,即可將 UI 程序啟動與對話式工作階段區分開來。
665 665
666#### 程式碼行數計數器666#### 程式碼行數計數器
667 667
675 675
676#### Pull request 計數器676#### Pull request 計數器
677 677
678當 Claude Code 透過 shell 命令或 MCP 工具建立 pull request 或 merge request 時遞增。678在 Claude Code 透過 shell 命令或 MCP 工具建立 pull request 或 merge request 時遞增。
679 679
680**屬性**:680**屬性**:
681 681
683 683
684#### 提交計數器684#### 提交計數器
685 685
686透過 Claude Code 建立 git 提交時遞增。686在透過 Claude Code 建立 git 提交時遞增。
687 687
688**屬性**:688**屬性**:
689 689
690* 所有[標準屬性](#standard-attributes)690* 所有[標準屬性](#standard-attributes)
691 691
692#### 成本計數器692#### 費用計數器
693 693
694在每次 API 請求之後遞增。694在每次 API 請求後遞增。
695 695
696`agent.name`、`skill.name`、`plugin.name`、`mcp_server.name` 與 `mcp_tool.name` 屬性預設都會將部分名稱遮蔽為 `"custom"` 或 `"third-party"` 預留值。若您設定了 `OTEL_LOG_TOOL_DETAILS=1`,它們會改為帶有實際名稱。在 v2.1.273 之前,即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,成本與 token 計數器以及 `api_request`、`api_error` 與 `api_refusal` 事件仍帶有遮蔽後的值。696`agent.name`、`skill.name`、`plugin.name`、`mcp_server.name` 與 `mcp_tool.name` 屬性預設都會將部分名稱遮蔽為 `"custom"` 或 `"third-party"` 預留值。如果您設定 `OTEL_LOG_TOOL_DETAILS=1`,它們就會改為攜帶真實名稱。在 v2.1.273 之前,即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,費用與 token 計數器以及 `api_request`、`api_error` 與 `api_refusal` 事件仍會攜帶遮蔽後的值。
697 697
698**屬性**:698**屬性**:
699 699
700* 所有[標準屬性](#standard-attributes)700* 所有[標準屬性](#standard-attributes)
701* `model`:模型識別碼(例如 "claude-sonnet-5")701* `model`:模型識別碼(例如 "claude-sonnet-5")
702* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一702* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一
703* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在703* `speed`:請求使用快速模式時為 `"fast"`。否則不存在
704* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。704* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。
705* `agent.name`:發出請求的 subagent 類型。內建 agent 名稱以及來自官方市集外掛的 agent 會原樣出現。其他使用者定義的 agent 名稱會被替換為 `"custom"`。當請求並非由具名的 subagent 類型發出時不存在。705* `agent.name`:發出請求的 subagent 類型。內建 agent 名稱與來自官方市集外掛的 agent 會原樣顯示。其他使用者定義的 agent 名稱會被替換為 `"custom"`。當請求並非由具名的 subagent 類型發出時不存在。
706* `skill.name`:該請求作用中的 skill,由 Skill 工具或 `/` 命令設定,或由產生的 subagent 繼承。內建、隨附、使用者定義及官方市集外掛的 skill 名稱會原樣出現。第三方外掛的 skill 名稱會被替換為 `"third-party"`。當沒有作用中的 skill 時不存在。706* `skill.name`:請求當下啟用的 skill,由 Skill 工具或 `/` 命令設定,或由產生的 subagent 繼承。內建、隨附、使用者定義以及官方市集外掛的 skill 名稱會原樣顯示。第三方外掛的 skill 名稱會被替換為 `"third-party"`。沒有啟用的 skill 時不存在。
707* `plugin.name`:當作用中的 skill 或 subagent 由外掛提供時,為其所屬外掛。官方市集外掛名稱會原樣出現。第三方外掛名稱會被替換為 `"third-party"`。當 skill 與 subagent 皆沒有所屬外掛時不存在。707* `plugin.name`:當啟用的 skill 或 subagent 由外掛提供時,為所屬的外掛。官方市集外掛名稱會原樣顯示。第三方外掛名稱會被替換為 `"third-party"`。當 skill 與 subagent 都沒有所屬外掛時不存在。
708* `marketplace.name`:所屬外掛的安裝來源市集。即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,也只會針對官方市集外掛發出。否則不存在。708* `marketplace.name`:所屬外掛的安裝來源市集。即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,也只會針對官方市集外掛發出。否則不存在。
709* `mcp_server.name`:此請求所使用之工具結果所屬的 MCP 伺服器。內建、經由 claude.ai 代理及官方登錄檔的伺服器名稱會原樣出現。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未使用任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 會在 MCP 工具呼叫之後的每個請求上設定此屬性,而不僅限於使用工具結果的請求,因此彙總此屬性的儀表板在您升級後會出現下降。709* `mcp_server.name`:此請求所使用之工具結果的 MCP 伺服器。內建、claude.ai 代理以及官方登錄中的伺服器名稱會原樣顯示。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未使用任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 會在 MCP 工具呼叫之後的每個請求上設定此屬性,而不只是在使用了工具結果的請求上,因此彙總此屬性的儀表板在您升級後會出現下降。
710* `mcp_tool.name`:此請求所使用之結果所屬的 MCP 工具,其遮蔽與版本行為與 `mcp_server.name` 相同。當請求未使用任何 MCP 工具結果時不存在。710* `mcp_tool.name`:此請求所使用之結果的 MCP 工具,遮蔽與版本行為與 `mcp_server.name` 相同。當請求未使用任何 MCP 工具結果時不存在。
711 711
712#### Token 計數器712#### Token 計數器
713 713
714在每次 API 請求之後遞增。714在每次 API 請求後遞增。
715 715
716**屬性**:716**屬性**:
717 717
718* 所有[標準屬性](#standard-attributes)718* 所有[標準屬性](#standard-attributes)
719* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)。`"input"` 類型不包含從提示快取讀取或寫入提示快取的 token,這些會計入 `"cacheRead"` 與 `"cacheCreation"`。`"cacheCreation"` 類型會將五分鐘與一小時[快取存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)的快取寫入合併計算。719* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)。`"input"` 類型不包含從提示快取讀取或寫入的 token,這些 token 會計入 `"cacheRead"` 與 `"cacheCreation"`。`"cacheCreation"` 類型會將五分鐘與一小時[快取存留時間](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)的快取寫入合併計算。
720* `model`:模型識別碼(例如 "claude-sonnet-5")720* `model`:模型識別碼(例如 "claude-sonnet-5")
721* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一721* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一
722* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在722* `speed`:請求使用快速模式時為 `"fast"`。否則不存在
723* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。詳細資訊請參閱[成本計數器](#cost-counter)。723* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。詳細資訊請參閱[費用計數器](#cost-counter)。
724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。
725 725
726#### 程式碼編輯工具決定計數器726#### 程式碼編輯工具決策計數器
727 727
728當使用者接受或拒絕 Edit、Write 或 NotebookEdit 工具的使用時遞增。728在使用者接受或拒絕 Edit、Write 或 NotebookEdit 工具的使用時遞增。
729 729
730**屬性**:730**屬性**:
731 731
732* 所有[標準屬性](#standard-attributes)732* 所有[標準屬性](#standard-attributes)
733* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)733* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)
734* `decision`:使用者決定(`"accept"`、`"reject"`)734* `decision`:使用者決策(`"accept"`、`"reject"`)
735* `source`:決定的來源。為 `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。各值的意義請參閱[工具決定事件](#tool-decision-event)。735* `source`:決策的來源。為 `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。各值的意義請參閱[工具決策事件](#tool-decision-event)。
736* `language`:所編輯檔案的程式語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法辨識的副檔名會回傳 `"unknown"`。736* `language`:所編輯檔案的程式語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法識別的副檔名會回傳 `"unknown"`。
737 737
738#### 活躍時間計數器738#### 活躍時間計數器
739 739
740追蹤實際主動使用 Claude Code 所花費的時間,不包括閒置時間。此指標會在使用者互動期間(例如輸入與閱讀回應)以及 CLI 處理期間(例如工具執行與 AI 回應產生)遞增。740追蹤實際主動使用 Claude Code 的時間,不含閒置時間。此指標會在使用者互動期間(例如輸入與閱讀回應)以及 CLI 處理期間(例如工具執行與 AI 回應產生)遞增。
741 741
742**屬性**:742**屬性**:
743 743
750 750
751#### 事件關聯屬性751#### 事件關聯屬性
752 752
753當使用者提交提示詞時,Claude Code 可能會進行多次 API 呼叫並執行數個工具。`prompt.id` 屬性可讓您將所有這些事件連結回觸發它們的單一提示詞。753當使用者送出提示詞時,Claude Code 可能會進行多次 API 呼叫並執行數個工具。`prompt.id` 屬性可讓您將所有這些事件連結回觸發它們的單一提示詞。
754 754
755| 屬性 | 說明 |755| 屬性 | 說明 |
756| - | - |756| - | - |
757| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示詞期間產生的所有事件 |757| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示詞時產生的所有事件 |
758| `event.sequence` | 從 0 開始的計數器,用於排序事件,以每個 Claude Code 程序而非每個工作階段計數 |758| `event.sequence` | 用於排序事件的從 0 起算計數器,依每個 Claude Code 程序計算,而非依每個工作階段 |
759| `message.uuid` | 保存在工作階段逐字稿(`~/.claude/projects/*/*.jsonl` 檔案)中之訊息的 UUID。出現在 `assistant_response`、`api_response_body` 以及 `user_prompt` 上,但命令分派除外,因為命令分派可能產生零則或多則訊息。在 `assistant_response` 與 `api_response_body` 上,這是該回應的最終逐字稿項目,下一個回合的 `parentUuid` 會從此項目串接。在 `api_response_body` 上需要 Claude Code v2.1.274 或更新版本 |759| `message.uuid` | 保存在工作階段逐字稿(`~/.claude/projects/*/*.jsonl` 檔案)中之訊息的 UUID。出現在 `assistant_response`、`api_response_body` 上,以及 `user_prompt` 上(命令分派除外,因為命令分派可能產生零則或多則訊息)。在 `assistant_response` 與 `api_response_body` 上,這是回應的最後一筆逐字稿項目,下一個回合的 `parentUuid` 會由此串接。在 `api_response_body` 上需要 Claude Code v2.1.274 或更新版本 |
760| `request_id` | 伺服器指派的 API 請求 ID,從 `request-id` 回應標頭讀取,例如 `req_011...`。對於沒有 `request-id` 標頭的回應(如 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 上),值會改從 `x-amzn-requestid` 標頭取得。當回應攜帶其中任一標頭時,會出現在 `api_request`、`api_error`、`api_refusal`、`assistant_response`、`api_response_body`、[`tool_result`](#tool-result-event) 與 [`tool_decision`](#tool-decision-event) 上。與 `llm_request` 追蹤 span 上的同名屬性相符。`x-amzn-requestid` 來源需要 Claude Code v2.1.282 或更新版本 |760| `request_id` | 伺服器指派給 API 請求的 ID,從 `request-id` 回應標頭讀取,例如 `req_011...`。若回應沒有 `request-id` 標頭(如在 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 上),則改從 `x-amzn-requestid` 標頭取得值。當回應攜帶任一標頭時,出現在 `api_request`、`api_error`、`api_refusal`、`assistant_response`、`api_response_body`、[`tool_result`](#tool-result-event) 與 [`tool_decision`](#tool-decision-event) 上。與 `llm_request` trace span 上的同名屬性相符。`x-amzn-requestid` 來源需要 Claude Code v2.1.282 或更新版本 |
761| `client_request_id` | 用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。在第一方 API 連線上出現於 `api_request` 與 `api_error`;在第三方供應商後端上,以及請求透過非串流備援重試時不會出現。可將請求與其回應配對,且對於逾時等從未產生伺服器 `request_id` 的失敗情況仍然可用。與 `llm_request` 追蹤 span 上的同名屬性相符 |761| `client_request_id` | 用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。在第一方 API 連線上出現在 `api_request` 與 `api_error` 上;在第三方提供者後端,以及請求透過非串流備援重試時不存在。用於將請求與其回應配對,且對於從未產生伺服器 `request_id` 的失敗(例如逾時)仍可使用。與 `llm_request` trace span 上的同名屬性相符 |
762 762
763若要追蹤由單一提示詞觸發的所有活動,請以特定的 `prompt.id` 值篩選您的事件。這會傳回處理該提示詞期間發生的 user\_prompt 事件、任何 api\_request 事件以及任何 tool\_result 事件。763若要追蹤由單一提示詞觸發的所有活動,請依特定的 `prompt.id` 值篩選事件。這會回傳處理該提示詞期間發生的 user\_prompt 事件、所有 api\_request 事件,以及所有 tool\_result 事件。
764 764
765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的整個生命週期中遞增。它在 `/clear`(會指派新的 `session.id`)之後仍會持續計數。若您[在不分叉的情況下繼續工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但其 `event.sequence` 值會取自繼續該工作階段的程序,因此在同一工作階段中,較晚的事件可能帶有比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序具有相同時間戳記的事件。765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的生命週期內遞增。它會跨越 `/clear` 持續計數,而 `/clear` 會指派新的 `session.id`。如果您[不分岔地恢復工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但其 `event.sequence` 值會取自恢復它的程序,因此在同一工作階段中,較晚的事件可能帶有比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序時間戳記相同的事件。
766 766
767為了進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會在版本之間變更,因此依這些欄位進行聯結的管線可能會在任何版本發行時中斷;請將這些聯結視為特定版本的行為,而非穩定的約定:767若要進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中某欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會隨版本變動,因此依這些欄位進行聯結的管線可能在任何版本發布時中斷;請將這些聯結視為特定版本適用,而非穩定的約定:
768 768
769* `user_prompt`、`assistant_response` 與 `api_response_body` 上的 `message.uuid`769* `user_prompt`、`assistant_response` 與 `api_response_body` 上的 `message.uuid`
770* API 事件上的 `request_id`,在逐字稿的助理項目中保存為 `requestId`770* API 事件上的 `request_id`,在逐字稿的 assistant 項目上保存為 `requestId`
771* `tool_result` 與 `tool_decision` 事件上的 `tool_use_id`,以及 `safety_event` 事件上的 `tool_use_id`,但[回合結束](#safety-event)的事件除外771* `tool_result` 與 `tool_decision` 事件上的 `tool_use_id`,以及 `safety_event` 事件上的 `tool_use_id`([回合結束](#safety-event)的事件除外)
772 772
773#### 使用者提示詞事件773#### 使用者提示詞事件
774 774
775在提交提示詞時記錄,包括 Claude Code 自行開始的回合。775在送出提示詞時記錄,包括 Claude Code 自行開始的回合。
776 776
777**事件名稱**:`claude_code.user_prompt`777**事件名稱**:`claude_code.user_prompt`
778 778
781* 所有[標準屬性](#standard-attributes)781* 所有[標準屬性](#standard-attributes)
782* `event.name`:`"user_prompt"`782* `event.name`:`"user_prompt"`
783* `event.timestamp`:ISO 8601 時間戳記783* `event.timestamp`:ISO 8601 時間戳記
784* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)784* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
785* `prompt_length`:提示詞長度785* `prompt_length`:提示詞的長度
786* `prompt`:提示詞內容。預設會遮蔽。設定 `OTEL_LOG_USER_PROMPTS=1` 即可包含786* `prompt`:提示詞內容。預設會遮蔽。設定 `OTEL_LOG_USER_PROMPTS=1` 即可包含
787* `prompt_text`:與 `prompt` 相同的值,並在相同條件下遮蔽。將帶點的屬性名稱儲存為巢狀物件的後端,會將 `prompt.id` 讀取為名為 `prompt` 之物件內的 `id`,因而可能遺失提示詞字串。在這種情況下,請改為讀取 `prompt_text`。需要 Claude Code v2.1.287 或更新版本787* `prompt_text`:與 `prompt` 相同的值,受相同條件遮蔽。將帶點號的屬性名稱儲存為巢狀物件的後端,會將 `prompt.id` 讀取為名為 `prompt` 之物件內的 `id`,因而可能遺失提示詞字串。在這類後端中請改讀取 `prompt_text`。需要 Claude Code v2.1.287 或更新版本
788* `message.uuid`:產生之使用者訊息的 UUID,與保存的逐字稿項目相符。命令分派時不會出現,因為命令分派可能產生零則或多則訊息。788* `message.uuid`:產生的使用者訊息的 UUID,與保存的逐字稿項目相符。在命令分派上不存在,因為命令分派可能產生零則或多則訊息。
789* `command_name`:當提示詞呼叫命令時的命令名稱。內建與隨附的命令名稱(例如 `compact` 或 `debug`)會原樣發出;別名(例如 `reset`)會依輸入的形式發出,而非標準名稱。自訂、外掛與 MCP 命令名稱會收斂為 `custom` 或 `mcp`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`789* `command_name`:提示詞呼叫命令時的命令名稱。內建與隨附的命令名稱(例如 `compact` 或 `debug`)會原樣發出;別名(例如 `reset`)會依輸入內容發出,而非標準名稱。自訂、外掛與 MCP 命令名稱會收斂為 `custom` 或 `mcp`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`
790* `command_source`:存在時為命令的來源:`builtin`、`custom` 或 `mcp`。外掛提供的命令會回報為 `custom`790* `command_source`:存在命令時的命令來源:`builtin`、`custom` 或 `mcp`。由外掛提供的命令會回報為 `custom`
791 791
792#### 助理回應事件792#### Assistant 回應事件
793 793
794在每次從模型傳回文字內容的 API 請求之後記錄。僅包含回應的文字區塊;思考區塊與工具使用區塊會被排除。794在每次從模型傳回文字內容的 API 請求後記錄。只包含回應的文字區塊;思考區塊與工具使用區塊不包含在內。
795 795
796**事件名稱**:`claude_code.assistant_response`796**事件名稱**:`claude_code.assistant_response`
797 797
800* 所有[標準屬性](#standard-attributes)800* 所有[標準屬性](#standard-attributes)
801* `event.name`:`"assistant_response"`801* `event.name`:`"assistant_response"`
802* `event.timestamp`:ISO 8601 時間戳記802* `event.timestamp`:ISO 8601 時間戳記
803* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)803* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
804* `response_length`:回應文字的長度(字元數)804* `response_length`:回應文字的長度(以字元計)
805* `response`:回應文字,在內容上限(預設 60 KB)處截斷。預設會遮蔽為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 即可包含。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,改由 `OTEL_LOG_USER_PROMPTS` 控制,因此若要在開啟提示詞日誌記錄的同時保持回應遮蔽,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=0`805* `response`:回應文字,在內容上限處截斷(預設 60 KB)。預設會遮蔽為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 即可包含。當未設定 `OTEL_LOG_ASSISTANT_RESPONSES` 時,改由 `OTEL_LOG_USER_PROMPTS` 控制,因此若要在開啟提示詞記錄的同時保持回應遮蔽,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=0`
806* `model`:模型識別碼(例如 "claude-sonnet-5")806* `model`:模型識別碼(例如 "claude-sonnet-5")
807* `request_id`:API 請求 ID,說明請參閱[事件關聯屬性](#event-correlation-attributes)807* `request_id`:API 請求 ID,說明請見[事件關聯屬性](#event-correlation-attributes)
808* `message.uuid`:該回應最終逐字稿項目的 UUID。一個 API 回應會依每個內容區塊保存為一個逐字稿項目;這是最後一個項目,下一個回合的 `parentUuid` 會從此項目串接。808* `message.uuid`:回應最後一筆逐字稿項目的 UUID。API 回應會以每個內容區塊一筆逐字稿項目的方式保存;這是最後一筆,下一個回合的 `parentUuid` 會由此串接。
809* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱809* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱
810 810
811#### 工具結果事件811#### 工具結果事件
812 812
813在工具完成執行時記錄。若工具呼叫遭拒絕則不會發出;關於拒絕,請參閱[工具決定事件](#tool-decision-event)。813在工具完成執行時記錄。若工具呼叫遭拒絕則不會發出;關於拒絕,請參閱[工具決策事件](#tool-decision-event)。
814 814
815**事件名稱**:`claude_code.tool_result`815**事件名稱**:`claude_code.tool_result`
816 816
819* 所有[標準屬性](#standard-attributes)819* 所有[標準屬性](#standard-attributes)
820* `event.name`:`"tool_result"`820* `event.name`:`"tool_result"`
821* `event.timestamp`:ISO 8601 時間戳記821* `event.timestamp`:ISO 8601 時間戳記
822* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)822* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
823* `tool_name`:工具名稱823* `tool_name`:工具名稱
824* `tool_use_id`:此次工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。824* `tool_use_id`:此工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。
825* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您能將該呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含該呼叫時不存在。需要 Claude Code v2.1.310 或更新版本825* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您可以將此呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含此呼叫時不存在。需要 Claude Code v2.1.310 或更新版本
826* `success`:`"true"` 或 `"false"`826* `success`:`"true"` 或 `"false"`
827* `duration_ms`:執行時間(毫秒)827* `duration_ms`:執行時間(毫秒)
828* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`828* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`
829* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息829* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息
830* `decision_type`:一律為 `"accept"`,因為此事件只會在工具執行後發出。遭拒絕的呼叫不會產生工具結果830* `decision_type`:一律為 `"accept"`,因為此事件只會在工具執行後發出。遭拒絕的呼叫不會產生工具結果
831* `decision_source`:權限決定的來源。為 `"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。各值的意義請參閱[工具決定事件](#tool-decision-event)。僅適用於拒絕的來源 `"user_abort"` 與 `"user_reject"` 永遠不會出現在此事件上。831* `decision_source`:權限決策的來源。為 `"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。各值的意義請參閱[工具決策事件](#tool-decision-event)。僅用於拒絕的來源 `"user_abort"` 與 `"user_reject"` 絕不會出現在此事件上。
832* `tool_input_size_bytes`:JSON 序列化後之工具輸入的大小(位元組)832* `tool_input_size_bytes`:JSON 序列化後工具輸入的大小(位元組)
833* `tool_result_size_bytes`:工具結果的大小(位元組)833* `tool_result_size_bytes`:工具結果的大小(位元組)
834* `mcp_server_scope`:MCP 伺服器範圍識別碼(適用於 MCP 工具)834* `mcp_server_scope`:MCP 伺服器範圍識別碼(適用於 MCP 工具)
835* `vcs.ref.head.revision`、`vcs.ref.head.name`、`vcs.ref.head.type`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):由 Bash 或 PowerShell 工具執行之成功 `git commit` 的提交身分。`vcs.ref.head.revision` 為提交 SHA,`vcs.ref.head.name` 為提交所在的分支,而 `vcs.ref.head.type` 為 `branch`。當提交是在 detached HEAD 上進行時,名稱與類型會被省略。需要 Claude Code v2.1.269 或更新版本835* `vcs.ref.head.revision`、`vcs.ref.head.name`、`vcs.ref.head.type`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):由 Bash 或 PowerShell 工具執行之成功 `git commit` 的提交識別資訊。`vcs.ref.head.revision` 是提交 SHA,`vcs.ref.head.name` 是提交所在的分支,而 `vcs.ref.head.type` 為 `branch`。當提交是在 detached HEAD 上進行時,會省略名稱與類型。需要 Claude Code v2.1.269 或更新版本
836* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使旗標關閉也會包含 `mcp_server_name`/`mcp_tool_name` 配對,這與[工具決策事件](#tool-decision-event)的主機撰寫例外相同。參數依工具而異:836* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使旗標關閉也會包含 `mcp_server_name`/`mcp_tool_name` 組合,這與[工具決策事件](#tool-decision-event)的主機定義例外相同。參數因工具而異:
837 * Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description` 與 `dangerouslyDisableSandbox`,並在 `git commit` 命令成功時另外包含 `git_commit_id` 與 `git_branch`。當該提交為工作階段工作目錄的 HEAD 時,`git_commit_id` 為完整的提交 SHA,否則為 git 的縮寫 SHA。`git_branch` 為提交所在的分支,在 detached HEAD 上會省略837 * 對於 Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description` 與 `dangerouslyDisableSandbox`,以及 `git commit` 命令成功時的 `git_commit_id` 與 `git_branch`。當提交是工作階段工作目錄的 HEAD 時,`git_commit_id` 是完整的提交 SHA,否則是 git 的縮寫 SHA。`git_branch` 是提交所在的分支,在 detached HEAD 上會省略
838 * 桌面應用程式的工作區 Bash 工具(同樣將 `tool_name` 回報為 `Bash`):僅包含 `bash_command`、`full_command` 與 `timeout`838 * 對於桌面應用程式的工作區 Bash 工具(同樣將 `tool_name` 回報為 `Bash`):只包含 `bash_command`、`full_command` 與 `timeout`
839 * MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`839 * 對於 MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`
840 * Skill 工具:包含 `skill_name`840 * 對於 Skill 工具:包含 `skill_name`
841 * Agent 工具或舊版 Task 工具:包含 `subagent_type`841 * 對於 Agent 工具或舊版 Task 工具:包含 `subagent_type`
842* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化後的工具引數。超過 512 個字元的個別值會被截斷,且完整 payload 的上限約為 4 K 個字元。適用於所有工具,包括 MCP 工具。842* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化的工具引數。超過 512 個字元的個別值會被截斷,而完整 payload 的上限約為 4 K 個字元。適用於所有工具,包括 MCP 工具。
843 843
844#### API 請求事件844#### API 請求事件
845 845
852* 所有[標準屬性](#standard-attributes)852* 所有[標準屬性](#standard-attributes)
853* `event.name`:`"api_request"`853* `event.name`:`"api_request"`
854* `event.timestamp`:ISO 8601 時間戳記854* `event.timestamp`:ISO 8601 時間戳記
855* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)855* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
856* `model`:使用的模型(例如 "claude-sonnet-5")856* `model`:使用的模型(例如 "claude-sonnet-5")
857* `cost_usd`:預估成本(USD)857* `cost_usd`:估計費用(美元)
858* `cost_usd_micros`:以百萬分之一美元為單位的預估成本,以整數發出858* `cost_usd_micros`:估計費用,以百萬分之一美元為單位,以整數發出
859* `duration_ms`:請求持續時間(毫秒)859* `duration_ms`:請求持續時間(毫秒)
860* `input_tokens`:輸入 token 數量,不包括從提示詞快取讀取或寫入的 token860* `input_tokens`:輸入 token 數量,不含從提示快取讀取或寫入的 token
861* `output_tokens`:輸出 token 數量861* `output_tokens`:輸出 token 數量
862* `cache_read_tokens`:從快取讀取的 token 數量862* `cache_read_tokens`:從快取讀取的 token 數量
863* `cache_creation_tokens`:用於建立快取的 token 數量863* `cache_creation_tokens`:用於建立快取的 token 數量
864* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。864* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。
865* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;出現時機請參閱[事件關聯屬性](#event-correlation-attributes)表格865* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格
866* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用866* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用
867* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱867* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱
868* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。868* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。
869* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。869* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。
870 870
871#### API 錯誤事件871#### API 錯誤事件
872 872
873當傳送給 Claude 的 API 請求失敗時記錄。873在傳送給 Claude 的 API 請求失敗時記錄。
874 874
875**事件名稱**:`claude_code.api_error`875**事件名稱**:`claude_code.api_error`
876 876
879* 所有[標準屬性](#standard-attributes)879* 所有[標準屬性](#standard-attributes)
880* `event.name`:`"api_error"`880* `event.name`:`"api_error"`
881* `event.timestamp`:ISO 8601 時間戳記881* `event.timestamp`:ISO 8601 時間戳記
882* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)882* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
883* `model`:使用的模型(例如 "claude-sonnet-5")883* `model`:使用的模型(例如 "claude-sonnet-5")
884* `error`:錯誤訊息884* `error`:錯誤訊息
885* `status_code`:以數字表示的 HTTP 狀態碼。對於非 HTTP 錯誤(例如連線失敗)不存在。885* `status_code`:HTTP 狀態碼(數字)。對於非 HTTP 錯誤(例如連線失敗)不存在。
886* `duration_ms`:請求持續時間(毫秒)886* `duration_ms`:請求持續時間(毫秒)
887* `attempt`:已進行的嘗試次數,包括初始請求。[偵測重試耗盡](#detect-retry-exhaustion)說明計數何時會重新開始887* `attempt`:嘗試次數,包含初始請求。計數何時重新開始,請參閱[偵測重試耗盡](#detect-retry-exhaustion)
888* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。888* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。
889* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。即使逾時或連線錯誤等失敗從未產生伺服器 `request_id`,此值仍然可用;出現時機請參閱[事件關聯屬性](#event-correlation-attributes)表格。889* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。即使逾時或連線錯誤等失敗從未產生伺服器 `request_id` 時仍可使用;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格。
890* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用890* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用
891* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱891* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱
892* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。892* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。
893* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。893* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。
894 894
895#### API 拒絕事件895#### API 拒絕事件
896 896
897當 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕會出現在成功的回應串流中,而非以 HTTP 錯誤的形式出現,因此 `api_error` 事件不會因拒絕而觸發。此事件可讓您追蹤拒絕頻率,並依與 `api_request` 及 `api_error` 相同的屬性將拒絕分組。897在 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕是在成功的回應串流中傳回,而非以 HTTP 錯誤形式傳回,因此 `api_error` 事件不會因拒絕而觸發。此事件可讓您追蹤拒絕頻率,並依照與 `api_request` 和 `api_error` 相同的屬性將拒絕分組。
898 898
899**事件名稱**:`claude_code.api_refusal`899**事件名稱**:`claude_code.api_refusal`
900 900
903* 所有[標準屬性](#standard-attributes)903* 所有[標準屬性](#standard-attributes)
904* `event.name`:`"api_refusal"`904* `event.name`:`"api_refusal"`
905* `event.timestamp`:ISO 8601 時間戳記905* `event.timestamp`:ISO 8601 時間戳記
906* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)906* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
907* `model`:請求中的模型識別碼907* `model`:請求中的模型識別碼
908* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。908* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。
909* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱。定義請參閱 [`api_request`](#api-request-event)。909* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱。定義請參閱 [`api_request`](#api-request-event)。
910* `speed`:當[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)啟用時為 `"fast"`,否則為 `"normal"`910* `speed`:當[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)啟用時為 `"fast"`,否則為 `"normal"`
911* `attempt`:重試嘗試的編號。第一次嘗試為 `1`。911* `attempt`:重試嘗試編號。第一次嘗試為 `1`。
912* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。912* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。
913* `server_fallback_hop`:當 API 的伺服器端模型備援已在不同的模型上重試此拒絕,因此使用者並未看到此特定拒絕時為 `true`。當請求以拒絕結束時為 `false`。當備援模型也拒絕時,單一回合可能會同時發出一個 `true` 的跳轉事件以及之後一個 `false` 的最終事件。913* `server_fallback_hop`:當 API 的伺服器端模型備援已在不同模型上重試此拒絕,因此使用者並未看到這次特定的拒絕時為 `true`。當請求以拒絕結束時為 `false`。當備援模型也拒絕時,單一回合可能會同時發出一個 `true` 的跳轉事件與之後一個 `false` 的最終事件。
914* `has_category`:當 API 回應帶有值為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 的 `stop_details.category` 時為 `true`。當回應未帶有類別或帶有該集合以外的值時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為跳轉區塊不帶有 `stop_details`。914* `has_category`:當 API 回應攜帶的 `stop_details.category` 為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 時為 `true`。當回應未攜帶類別或值不在該集合中時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為跳轉區塊不攜帶 `stop_details`。
915* `has_explanation`:當 API 回應帶有 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。915* `has_explanation`:當 API 回應攜帶 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。
916* `category`:API 回應中的 `stop_details.category` 值。為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。僅在設定了 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時存在。916* `category`:API 回應中的 `stop_details.category` 值。為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。只有在設定了 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時才存在。
917* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。917* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。
918 918
919#### API 請求主體事件919#### API 請求主體事件
920 920
921當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每次 API 請求嘗試記錄。每次嘗試發出一個事件,因此以調整後參數進行的重試各自會產生自己的事件。921當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每次 API 請求嘗試記錄。每次嘗試發出一個事件,因此以調整後參數進行的重試都會各自產生自己的事件。
922 922
923**事件名稱**:`claude_code.api_request_body`923**事件名稱**:`claude_code.api_request_body`
924 924
927* 所有[標準屬性](#standard-attributes)927* 所有[標準屬性](#standard-attributes)
928* `event.name`:`"api_request_body"`928* `event.name`:`"api_request_body"`
929* `event.timestamp`:ISO 8601 時間戳記929* `event.timestamp`:ISO 8601 時間戳記
930* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)930* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
931* `body`:JSON 序列化後的 Messages API 請求參數,例如系統提示詞、訊息與工具,在內容上限(預設 60 KB)處截斷。先前助理回合中的延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。931* `body`:JSON 序列化的 Messages API 請求參數,例如系統提示詞、訊息與工具,在內容上限處截斷(預設 60 KB)。先前 assistant 回合中的延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。
932* `body_ref`:指向包含未截斷主體之 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。932* `body_ref`:包含未截斷主體之 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。
933* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,當 `=1` 時為 UTF-16 程式碼單元933* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組數,當 `=1` 時為 UTF-16 碼元數
934* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。934* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。
935* `model`:請求參數中的模型識別碼935* `model`:請求參數中的模型識別碼
936* `query_source`:發出請求的子系統(例如 `"compact"`)936* `query_source`:發出請求的子系統(例如 `"compact"`)
937* `request_body_id`:識別此嘗試之請求主體的 UUID。成功之嘗試的 [`api_response_body` 事件](#api-response-body-event)帶有相同的值,因此您可以將回應與產生它的確切請求配對。需要 Claude Code v2.1.274 或更新版本937* `request_body_id`:識別此次嘗試之請求主體的 UUID。成功之嘗試的 [`api_response_body` 事件](#api-response-body-event)會攜帶相同的值,因此您可以將回應與產生它的確切請求配對。需要 Claude Code v2.1.274 或更新版本
938 938
939#### API 回應主體事件939#### API 回應主體事件
940 940
941當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個成功的 API 回應記錄。941當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個成功的 API 回應記錄。
942 942
943在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下,Claude Code 也會針對每個成功的回應,將一行 JSON 附加到 `<dir>/index.jsonl`,其欄位為 `timestamp`、`session_id`、`query_source`、`model`、`request_id`、`message_id`、`message_uuid`、`request_file` 與 `response_file`。讀取此檔案即可找出特定逐字稿訊息背後的請求與回應檔案,而無需查詢您的遙測後端。索引檔案需要 Claude Code v2.1.274 或更新版本。943在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下,Claude Code 也會針對每個成功的回應,在 `<dir>/index.jsonl` 中附加一行 JSON,包含欄位 `timestamp`、`session_id`、`query_source`、`model`、`request_id`、`message_id`、`message_uuid`、`request_file` 與 `response_file`。讀取此檔案即可找出特定逐字稿訊息背後的請求與回應檔案,而不需查詢您的遙測後端。索引檔需要 Claude Code v2.1.274 或更新版本。
944 944
945**事件名稱**:`claude_code.api_response_body`945**事件名稱**:`claude_code.api_response_body`
946 946
949* 所有[標準屬性](#standard-attributes)949* 所有[標準屬性](#standard-attributes)
950* `event.name`:`"api_response_body"`950* `event.name`:`"api_response_body"`
951* `event.timestamp`:ISO 8601 時間戳記951* `event.timestamp`:ISO 8601 時間戳記
952* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)952* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
953* `body`:JSON 序列化後的 Messages API 回應,包括 id、內容區塊、使用量與停止原因,在內容上限(預設 60 KB)處截斷。延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。953* `body`:JSON 序列化的 Messages API 回應,包括 id、內容區塊、用量與停止原因,在內容上限處截斷(預設 60 KB)。延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。
954* `body_ref`:指向包含未截斷主體之 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。954* `body_ref`:包含未截斷主體之 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。
955* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,當 `=1` 時為 UTF-16 程式碼單元955* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組數,當 `=1` 時為 UTF-16 碼元數
956* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。956* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。
957* `model`:模型識別碼957* `model`:模型識別碼
958* `query_source`:發出請求的子系統958* `query_source`:發出請求的子系統
959* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。959* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。
960* `request_body_id`:此回應所回覆之 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本960* `request_body_id`:此回應所對應之 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本
961* `message.id`:API 指派給回應的訊息 ID,即回應主體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本961* `message.id`:API 指派給回應的訊息 ID,即回應主體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本
962* `message.uuid`:回應之最後一筆逐字稿項目的 UUID。與 `request_body_id` 搭配,可將逐字稿訊息連結到其背後的請求與回應主體。需要 Claude Code v2.1.274 或更新版本962* `message.uuid`:回應最後一筆逐字稿項目的 UUID。搭配 `request_body_id`,可將逐字稿訊息連結到其背後的請求與回應主體。需要 Claude Code v2.1.274 或更新版本
963 963
964#### 工具決定事件964#### 工具決策事件
965 965
966在做出工具權限決定(接受/拒絕)時記錄。966在做出工具權限決策(接受/拒絕)時記錄。
967 967
968**事件名稱**:`claude_code.tool_decision`968**事件名稱**:`claude_code.tool_decision`
969 969
972* 所有[標準屬性](#standard-attributes)972* 所有[標準屬性](#standard-attributes)
973* `event.name`:`"tool_decision"`973* `event.name`:`"tool_decision"`
974* `event.timestamp`:ISO 8601 時間戳記974* `event.timestamp`:ISO 8601 時間戳記
975* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)975* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
976* `tool_name`:工具名稱(例如 "Read"、"Edit"、"Write"、"NotebookEdit")976* `tool_name`:工具名稱(例如 "Read"、"Edit"、"Write"、"NotebookEdit")
977* `tool_use_id`:此次工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。977* `tool_use_id`:此工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。
978* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您能將該呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含該呼叫時不存在。需要 Claude Code v2.1.310 或更新版本978* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您可以將此呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含此呼叫時不存在。需要 Claude Code v2.1.310 或更新版本
979* `decision`:`"accept"` 或 `"reject"`979* `decision`:`"accept"` 或 `"reject"`
980* `tool_source`:一律出現。工具的來源,為 CLI 撰寫之值的封閉集合:980* `tool_source`:一律存在。工具的來源,為 CLI 定義的封閉值集合:
981 * `"builtin"`:CLI 本身的工具981 * `"builtin"`:CLI 自身的工具
982 * `"mcp"`:一般的 MCP 伺服器982 * `"mcp"`:一般的 MCP 伺服器
983 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的程序內伺服器,位於 Claude Desktop 擁有的工作階段中。當 Claude Desktop 從其自身的進入點(`claude-desktop`、`claude-desktop-3p` 或 `local-agent`)啟動工作階段,且該工作階段不是巢狀子工作階段時,Claude Desktop 即擁有該工作階段;巢狀工作階段(包括 Claude Code 本身產生的工作階段)會將這些伺服器回報為 `"mcp"`983 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的同程序伺服器,位於 Claude Desktop 擁有的工作階段中。當工作階段是 Claude Desktop 從其自身進入點(`claude-desktop`、`claude-desktop-3p` 或 `local-agent`)啟動,且該工作階段不是巢狀子工作階段時,Claude Desktop 即擁有該工作階段;巢狀工作階段(包括 Claude Code 本身產生的工作階段)會將這些伺服器回報為 `"mcp"`
984* `source`:決定的來源:984* `source`:決策的來源:
985 * `"config"`:未經提示即自動決定,來源為下列之一:985 * `"config"`:未經提示即自動決定,由下列來源之一決定:
986 986
987 * 專案設定987 * 專案設定
988 * 使用者個人設定中的允許或拒絕規則988 * 使用者個人設定中的允許或拒絕規則
989 * 企業受管政策989 * 企業受管政策
990 * `--allowedTools` 或 `--disallowedTools` 旗標990 * `--allowedTools` 或 `--disallowedTools` 旗標
991 * 作用中的權限模式991 * 目前的權限模式
992 * 自動模式分類器,其判定會由同一事件記錄在 `classifier_verdict` 中992 * 自動模式分類器,其判定由同一事件記錄於 `classifier_verdict`
993 * 在同一互動式 CLI 工作階段中,於較早的權限提示時授予的剩餘工作階段授權993 * 在同一互動式 CLI 工作階段中,於較早的權限提示時授予的剩餘工作階段授權
994 * 工具本身即屬安全994 * 工具本身即屬安全
995 995
996 `source` 值不會指出是這些來源中的哪一個相符。若要找出是哪一個拒絕了呼叫,請尋找具有相同 `tool_use_id` 的[安全事件](#safety-event),並讀取其 `category` 與 `rule_source` 屬性。部分遭拒絕的呼叫[沒有安全事件](#calls-without-a-safety-event)。996 `source` 值不會指出是哪一個來源相符。若要找出是哪一個來源拒絕了某次呼叫,請尋找具有相同 `tool_use_id` 的[安全事件](#safety-event),並讀取其 `category` 與 `rule_source` 屬性。部分遭拒絕的呼叫[沒有安全事件](#calls-without-a-safety-event)。
997 997
998 當權限提示請求本身失敗時,Claude Code 也會回報 `"config"`。例如,當 Agent SDK 的 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果,或請求擱置時輸入串流關閉,該請求就會失敗。在 v2.1.216 之前,Claude Code 將這些失敗回報為 `"user_reject"`。998 當權限提示請求本身失敗時,Claude Code 也會回報 `"config"`。例如,當 Agent SDK 的 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果,或在請求待處理期間輸入串流關閉時,該請求就會失敗。
999 * `"hook"`:`PreToolUse` 或 `PermissionRequest` hook 傳回了決定。999 * `"hook"`:由 `PreToolUse` 或 `PermissionRequest` hook 傳回決策。
1000 * `"user_permanent"`:當使用者在權限提示中選擇「Yes, and don't ask again for ...」時發出,這會將允許規則儲存到其個人設定中。在互動式 CLI 中,僅針對該選擇本身發出;之後符合已儲存規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,初始選擇和之後的規則比對都會發出 `"user_permanent"`。視為接受。1000 * `"user_permanent"`:當使用者在權限提示中選擇「Yes, and don't ask again for ...」時發出,這會將允許規則儲存到其個人設定中。在互動式 CLI 中,只有該選擇本身會發出此值;之後符合已儲存規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,初次選擇與之後的規則相符都會發出 `"user_permanent"`。視為接受。
1001 * `"user_temporary"`:當使用者在權限提示中選擇「Yes」進行一次性核准,或在檔案編輯或讀取提示中選擇授予剩餘工作階段存取權的選項時發出。在互動式 CLI 中,僅針對該選擇本身發出;之後由該工作階段範圍授權所允許的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,該選擇和之後的比對都會發出 `"user_temporary"`。視為接受。1001 * `"user_temporary"`:當使用者在權限提示中選擇「Yes」進行一次性核准,或在檔案編輯或讀取提示中選擇授予剩餘工作階段存取權的選項時發出。在互動式 CLI 中,只有該選擇本身會發出此值;之後由該工作階段範圍授權所允許的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,該選擇與之後的相符都會發出 `"user_temporary"`。視為接受。
1002 * `"user_abort"`:當使用者未回答即關閉權限提示時發出。在 Agent SDK 和非互動式 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求擱置時中斷回合;在 v2.1.216 之前,Claude Code 將該中斷回報為 `"user_reject"`。視為拒絕。1002 * `"user_abort"`:當使用者未作答即關閉權限提示時發出。在 Agent SDK 與非互動式 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求待處理時中斷回合。視為拒絕。
1003 * `"user_reject"`:當使用者在提示時選擇「No」時發出。在互動式 CLI 中,僅針對該選擇本身發出;符合使用者個人設定中拒絕規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,符合個人設定中拒絕規則的呼叫會發出 `"user_reject"`。視為拒絕。1003 * `"user_reject"`:當使用者在提示時選擇「No」時發出。在互動式 CLI 中,只有該選擇本身會發出此值;符合使用者個人設定中拒絕規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,符合個人設定中拒絕規則的呼叫會發出 `"user_reject"`。視為拒絕。
1004* `classifier_verdict`:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)對該呼叫的判定,或在沒有判定時 Claude Code 拒絕該呼叫的原因。需要 Claude Code v2.1.301 或更新版本1004* `classifier_verdict`:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)對該呼叫的判定,或在沒有判定時 Claude Code 拒絕該呼叫的原因。需要 Claude Code v2.1.301 或更新版本
1005 1005
1006 * `"allow"`:分類器核准了該呼叫1006 * `"allow"`:分類器核准了該呼叫
1007 * `"block"`:分類器封鎖了該呼叫。中途失敗的分類器檢查也可能以 `"block"` 結束,因此部分分類器中斷可能表現為封鎖增加,而非 `"unavailable"`1007 * `"block"`:分類器封鎖了該呼叫。中途失敗的分類器檢查也可能以 `"block"` 結束,因此分類器部分中斷時可能表現為封鎖增加,而非 `"unavailable"`
1008 * `"no_verdict"`:檢查已執行但[沒有可用的判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),因此 Claude Code 拒絕了該呼叫。此拒絕並不代表分類器認為該呼叫不安全1008 * `"no_verdict"`:檢查已執行但未給出[可用的判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),因此 Claude Code 拒絕了該呼叫。此拒絕並不代表分類器認為該呼叫不安全
1009 * `"unavailable"`:傳送給分類器的請求失敗,例如遇到速率限制、逾時或連線錯誤,因此 Claude Code 拒絕了該呼叫。在[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)中,它也標示因[伺服器未傳回安全判定](https://code.claude.com/docs/zh-TW/errors.md#the-server-returned-no-safety-verdict)而被拒絕的呼叫1009 * `"unavailable"`:傳送給分類器的請求失敗,例如遇到速率限制、逾時或連線錯誤,因此 Claude Code 拒絕了該呼叫。在使用[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)時,它也用於標示因[伺服器未傳回安全判定](https://code.claude.com/docs/zh-TW/errors.md#the-server-returned-no-safety-verdict)而遭拒絕的呼叫
1010 1010
1011 當[分類器在 plan mode 中審查命令](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode)時,此屬性也會出現在 plan mode 呼叫上。在以下情況下此屬性不存在:1011 當[分類器在 plan mode 中審查命令](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode)時,此屬性也會出現在 plan mode 的呼叫上。在下列情況中此屬性不存在:
1012 1012
1013 * 允許或拒絕[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)決定了該呼叫1013 * 由允許或拒絕的[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)決定該呼叫
1014 * Claude Code 在自動模式中未詢問分類器即核准了該呼叫1014 * Claude Code 在自動模式中未詢問分類器即核准了該呼叫
1015 * 使用者回答了 Claude Code 在[重複封鎖](https://code.claude.com/docs/zh-TW/permission-modes.md#repeated-block-thresholds)後顯示的提示1015 * 使用者回答了 Claude Code 在[重複封鎖](https://code.claude.com/docs/zh-TW/permission-modes.md#repeated-block-thresholds)後顯示的提示
1016 * 在沒有 `--permission-prompt-tool` 的 `-p` 執行中,Claude Code 在重複封鎖後拒絕了該呼叫,因為沒有人可以回答提示。該事件會將 `decision` 回報為 `"reject"`,並將 `source` 回報為 `"config"`1016 * 在沒有 `--permission-prompt-tool` 的 `-p` 執行中,由於沒有人能回答提示,Claude Code 在重複封鎖後拒絕了該呼叫。該事件會將 `decision` 回報為 `"reject"`,並將 `source` 回報為 `"config"`
1017* `classifier_category`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):分類器封鎖呼叫時所指名之[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config)的名稱,以小寫加底線表示,例如 Data Exfiltration 規則為 `"data_exfiltration"`。需要 Claude Code v2.1.301 或更新版本。當下列兩個條件都成立時,此屬性才會出現:1017* `classifier_category`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):分類器封鎖該呼叫時所指名之[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config)的名稱,以小寫加底線表示,例如 Data Exfiltration 規則的 `"data_exfiltration"`。需要 Claude Code v2.1.301 或更新版本。當下列兩項條件都成立時,此屬性才會存在:
1018 1018
1019 * `classifier_verdict` 為 `"block"`1019 * `classifier_verdict` 為 `"block"`
1020 * 分類器恰好指名一條規則,且該規則是內建規則,而非您撰寫的規則1020 * 分類器恰好指名了一條規則,且該規則是內建規則,而非您撰寫的規則
1021 1021
1022 在 v2.1.302 之前,對於由[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)決定的任何封鎖,此屬性也不存在。1022 在 v2.1.302 之前,由[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)決定的任何封鎖上也不存在此屬性。
1023* `permission_mode`:此呼叫的權限檢查開始時作用中的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`。手動模式顯示為 `"default"`。[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#permission-modes) 呼叫會回報 subagent 的權限模式,而非工作階段的權限模式。需要 Claude Code v2.1.301 或更新版本1023* `permission_mode`:此呼叫的權限檢查開始時所使用的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`。手動模式會顯示為 `"default"`。[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#permission-modes) 的呼叫會回報 subagent 的權限模式,而非工作階段的權限模式。需要 Claude Code v2.1.301 或更新版本
1024* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。形式與[工具結果事件](#tool-result-event)相同,但不含 `git_commit_id` 等執行後欄位。如果權限決策透過 `updatedInput` 改寫了工具輸入,對於已接受的呼叫,其值可能與 `tool_result` 不同。當 `decision` 為 `"reject"` 時,可使用此屬性查看遭拒絕的是哪個命令。1024* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。形式與[工具結果事件](#tool-result-event)相同,但不含 `git_commit_id` 等執行後欄位。對於已接受的呼叫,若權限決策透過 `updatedInput` 改寫了工具輸入,值可能與 `tool_result` 不同。當 `decision` 為 `"reject"` 時,可使用此屬性查看哪個命令遭拒絕。
1025 * `"sdk_host_builtin_mcp"` 工具:即使 `OTEL_LOG_TOOL_DETAILS` 關閉,也會包含 `mcp_server_name` 與 `mcp_tool_name`,因為這些名稱由主機應用程式定義;若缺少它們,在預設串流中將無法歸屬對這些內建伺服器之一的遭拒呼叫。對於使用者設定的 MCP 伺服器,事件的 `tool_name` 一律為字面值 `"mcp_tool"`,而伺服器與工具名稱只會在旗標開啟時出現在 `tool_parameters` 中;引數內容在所有情況下都需要開啟旗標。1025 * 對於 `"sdk_host_builtin_mcp"` 工具:即使 `OTEL_LOG_TOOL_DETAILS` 關閉,也會包含 `mcp_server_name` 與 `mcp_tool_name`,因為這些名稱是由主機應用程式定義的;若沒有它們,對這些內建伺服器之一的遭拒絕呼叫在預設串流中將無法歸屬。對於使用者設定的 MCP 伺服器,事件的 `tool_name` 一律是字面值 `"mcp_tool"`,而伺服器與工具名稱只會在旗標開啟時出現在 `tool_parameters` 中;引數內容在任何情況下都需要該旗標。
1026 * Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具同樣將 `tool_name` 回報為 `Bash`,但僅包含 `bash_command`、`full_command` 與 `timeout`1026 * 對於 Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具也會將 `tool_name` 回報為 `Bash`,但只包含 `bash_command`、`full_command` 與 `timeout`
1027 * MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`1027 * 對於 MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`
1028 * Skill 工具:包含 `skill_name`1028 * 對於 Skill 工具:包含 `skill_name`
1029 * Agent 工具或舊版 Task 工具:包含 `subagent_type`1029 * 對於 Agent 工具或舊版 Task 工具:包含 `subagent_type`
1030 1030
1031如果您將 OpenTelemetry SDK 的 `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT` 調低到低於 `tool_decision` 事件上的屬性數量,SDK 會捨棄 Claude Code 最後設定的屬性。SDK 會在其他任何屬性之前依下列順序捨棄這些屬性,並略過事件未攜帶的屬性:1031如果您將 OpenTelemetry SDK 的 `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT` 調低到少於 `tool_decision` 事件上的屬性數量,SDK 會捨棄 Claude Code 最後設定的屬性。SDK 會在其他任何屬性之前依下列順序捨棄這些屬性,並略過事件未攜帶的屬性:
1032 1032
10331. `parent_agent_id`10331. `parent_agent_id`
10342. `agent_id`10342. `agent_id`
10375. `classifier_category`10375. `classifier_category`
10386. `classifier_verdict`10386. `classifier_verdict`
1039 1039
1040在 Claude Code v2.1.302 或更新版本中,`permission_mode`、`classifier_category` 與 `classifier_verdict` 會依此順序捨棄。`parent_agent_id`、`agent_id` 與 `request_id` 需要 v2.1.310 或更新版本。1040在 Claude Code v2.1.302 或更新版本上,`permission_mode`、`classifier_category` 與 `classifier_verdict` 會依此順序捨棄。`parent_agent_id`、`agent_id` 與 `request_id` 需要 v2.1.310 或更新版本。
1041 1041
1042#### 安全事件1042#### 安全事件
1043 1043
1044當檢查拒絕工具呼叫或要求權限提示時記錄,但[沒有安全事件的呼叫](#calls-without-a-safety-event)除外。當[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕連線或請求時,以及當 hook 封鎖結果時,也會記錄。需要 Claude Code v2.1.307 或更新版本。1044在檢查拒絕工具呼叫或需要權限提示時記錄,[沒有安全事件的呼叫](#calls-without-a-safety-event)除外。當[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕連線或請求,以及 hook 封鎖結果時也會記錄。需要 Claude Code v2.1.307 或更新版本。
1045 1045
1046此事件會與其他事件一同匯出,沒有獨立的設定。事件本身的屬性不包含命令文字、檔案路徑、主機名稱,或 MCP 伺服器與工具名稱。該記錄也會攜帶每個事件都有的[標準屬性](#standard-attributes),其中可能包括 `workspace.host_paths` 與[儲存庫屬性](#repository-attributes)。若要查看事件背後的命令或 MCP 工具,請設定 `OTEL_LOG_TOOL_DETAILS=1`,並讀取相符之 `tool_decision` 事件上的 `tool_parameters`。1046此事件會與其他事件一起匯出,沒有獨立的設定。事件本身的屬性不包含命令文字、檔案路徑、主機名稱,或 MCP 伺服器與工具名稱。該記錄也會攜帶每個事件都有的[標準屬性](#standard-attributes),其中可能包括 `workspace.host_paths` 與[儲存庫屬性](#repository-attributes)。若要查看事件背後的命令或 MCP 工具,請設定 `OTEL_LOG_TOOL_DETAILS=1`,並讀取相符之 `tool_decision` 事件上的 `tool_parameters`。
1047 1047
1048**事件名稱**:`claude_code.safety_event`1048**事件名稱**:`claude_code.safety_event`
1049 1049
1054* `event.timestamp`:ISO 8601 時間戳記1054* `event.timestamp`:ISO 8601 時間戳記
1055* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1055* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1056* `category`:檢查或結果,為一個[類別值](#safety-event-categories)1056* `category`:檢查或結果,為一個[類別值](#safety-event-categories)
1057* `decision`:`"accept"`、`"reject"`,或在 hook 封鎖結果或回合結束時為 `"sent_back"`1057* `decision`:`"accept"`、`"reject"`,或當 hook 封鎖結果或回合結束時為 `"sent_back"`
1058* `decision_source`:由誰或什麼做出決定,為 [`tool_decision`](#tool-decision-event) 的 `source` 值或 `"other"`1058* `decision_source`:做出決定的主體或機制,為 [`tool_decision`](#tool-decision-event) 的 `source` 值或 `"other"`
1059* `reason_code`:檢查的原因,例如 `"rule:policySettings"`、`"mode:dontAsk"`、`"hook:PreToolUse"`、`"classifier:auto-mode"`、`"bashMiss:too-complex"` 或 `"unknown"`1059* `reason_code`:檢查的原因,例如 `"rule:policySettings"`、`"mode:dontAsk"`、`"hook:PreToolUse"`、`"classifier:auto-mode"`、`"bashMiss:too-complex"` 或 `"unknown"`
1060* `reason_type`:檢查的原因類型,例如 `"rule"`、`"subcommandResults"`、`"mode"`、`"hook"`、`"classifier"` 或 `"asyncAgent"`1060* `reason_type`:檢查的原因類型,例如 `"rule"`、`"subcommandResults"`、`"mode"`、`"hook"`、`"classifier"` 或 `"asyncAgent"`
1061* `rule_source`:相關規則的設定來源,例如 `"policySettings"`、`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"cliArg"` 或 `"session"`1061* `rule_source`:所涉規則的設定來源,例如 `"policySettings"`、`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"cliArg"` 或 `"session"`
1062* `grant_scope`:對於未將規則儲存到設定檔即獲核准的提示,為 `"once"` 或 `"session"`1062* `grant_scope`:對於未將規則儲存到設定檔即核准的提示,為 `"once"` 或 `"session"`
1063* `circuit_breaker`:內建的安全檢查,例如 `"dangerousRemoval"`、`"outsideReadsBlocked"` 或 `"claudeSettingsFile"`1063* `circuit_breaker`:內建的安全檢查,例如 `"dangerousRemoval"`、`"outsideReadsBlocked"` 或 `"claudeSettingsFile"`
1064* `classifier_category`:在 `OTEL_LOG_TOOL_DETAILS=1` 時,為自動模式封鎖背後的[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config),例如 `"data_exfiltration"`1064* `classifier_category`:在 `OTEL_LOG_TOOL_DETAILS=1` 時,自動模式封鎖背後的[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config),例如 `"data_exfiltration"`
1065* `hook_event`:`PreToolUse` hook 為 `"pre_tool_use"`,在 `"hook_review"` 事件上則為 `"post_tool_use"`、`"post_tool_use_failure"`、`"stop"` 或 `"subagent_stop"`1065* `hook_event`:`PreToolUse` hook 為 `"pre_tool_use"`,或在 `"hook_review"` 事件上為 `"post_tool_use"`、`"post_tool_use_failure"`、`"stop"` 或 `"subagent_stop"`
1066* `tool_class`:Bash 與 [Monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool) 為 `"bash"`,`"powershell"`,Read、Edit、Write、NotebookEdit、Glob 與 Grep 為 `"file"`,WebFetch 與 WebSearch 為 `"web"`,`"mcp"`,或 `"other"`1066* `tool_class`:Bash 與 [Monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool) 為 `"bash"`,`"powershell"`,Read、Edit、Write、NotebookEdit、Glob 與 Grep 為 `"file"`,WebFetch 與 WebSearch 為 `"web"`,`"mcp"`,或 `"other"`
1067* `tool_name`:工具的名稱,例如內建工具的 `"Bash"`,或 `"mcp_tool"`、`"skill_tool"`、`"dynamic_tool"` 或 `"other_tool"`1067* `tool_name`:工具名稱,例如內建工具的 `"Bash"`,或 `"mcp_tool"`、`"skill_tool"`、`"dynamic_tool"` 或 `"other_tool"`
1068* `tool_source`:`"builtin"`、`"mcp"` 或 `"sdk_host_builtin_mcp"`,與 [`tool_decision`](#tool-decision-event) 上相同1068* `tool_source`:`"builtin"`、`"mcp"` 或 `"sdk_host_builtin_mcp"`,與 [`tool_decision`](#tool-decision-event) 上相同
1069* `permission_mode`:檢查時該呼叫的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`1069* `permission_mode`:檢查時該呼叫的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`
1070* `tool_use_id`:呼叫的 ID,與 `tool_decision` 和 `tool_result` 上相同1070* `tool_use_id`:呼叫的 ID,與 `tool_decision` 和 `tool_result` 上相同
1071* `sandbox_violation_count`:沙箱的網路代理伺服器拒絕了該呼叫之命令多少個不同的連線或請求,以字串表示,為 `"0"` 至 `"20"`。只會計算在前景完成之沙箱化命令的拒絕1071* `sandbox_violation_count`:沙箱的網路代理伺服器拒絕了該呼叫之命令的多少個不同連線或請求,以字串表示,範圍為 `"0"` 到 `"20"`。僅計算在前景完成之沙箱化命令的拒絕
1072* `sandbox_enabled`:若工作階段已開啟[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md)則為 `"true"`,否則為 `"false"`1072* `sandbox_enabled`:若工作階段啟用了[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md)則為 `"true"`,否則為 `"false"`
1073 1073
1074以下是受管設定的拒絕規則拒絕 Bash 命令時,事件本身的屬性:1074以下是受管設定的拒絕規則拒絕 Bash 命令時,事件本身的屬性:
1075 1075
1093 1093
1094##### 安全事件類別1094##### 安全事件類別
1095 1095
1096| 值 | 檢查或結果 | 詳細屬性 |1096| 值 | 檢查或結果 | 詳細資訊屬性 |
1097| - | - | - |1097| - | - | - |
1098| `"permission_rule"` | 受管設定以外的拒絕或詢問[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions) | `rule_source` |1098| `"permission_rule"` | 受管設定以外的拒絕或詢問[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions) | `rule_source` |
1099| `"managed_policy"` | 來自[受管設定](https://code.claude.com/docs/zh-TW/permissions.md#managed-settings)的拒絕或詢問規則 | `rule_source` |1099| `"managed_policy"` | 來自[受管設定](https://code.claude.com/docs/zh-TW/permissions.md#managed-settings)的拒絕或詢問規則 | `rule_source` |
1100| `"permission_mode"` | [`dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 或 [plan](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 模式,或在無法顯示提示的工作階段中(例如使用 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時)出現的[無類別](#prompts-with-no-category)提示 | `reason_code`、`reason_type` |1100| `"permission_mode"` | [`dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 或 [plan](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 模式,或在無法顯示提示的工作階段中(例如使用 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時)出現的[無類別](#prompts-with-no-category)提示 | `reason_code`、`reason_type` |
1101| `"hook"` | hook,例如 [`PreToolUse`](https://code.claude.com/docs/zh-TW/hooks#pretooluse) 或 [`PermissionRequest`](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) | `hook_event`、`reason_code` |1101| `"hook"` | hook,例如 [`PreToolUse`](https://code.claude.com/docs/zh-TW/hooks#pretooluse) 或 [`PermissionRequest`](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) | `hook_event`、`reason_code` |
1102| `"auto_mode_block"` | 自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)封鎖了該呼叫 | `classifier_category` |1102| `"auto_mode_block"` | 自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)封鎖了該呼叫 | `classifier_category` |
1103| `"auto_mode_no_verdict"` | 沒有可用的[分類器判定結果](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),例如在請求失敗之後 | `reason_code` |1103| `"auto_mode_no_verdict"` | 沒有可用的[分類器判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),例如在請求失敗之後 | `reason_code` |
1104| `"safety_check"` | 內建的安全檢查,例如針對在您的[工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)以外進行的 Read、Edit 或 Write | `circuit_breaker` |1104| `"safety_check"` | 內建的安全檢查,例如針對在您的[工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)以外進行的 Read、Edit 或 Write | `circuit_breaker` |
1105| `"static_analysis"` | Bash 或 Monitor 命令的撰寫方式,例如過於複雜而無法分析的命令 | `reason_code` |1105| `"static_analysis"` | Bash 或 Monitor 命令的撰寫方式,例如過於複雜而無法分析的命令 | `reason_code` |
1106| `"sandbox_override"` | [在沙箱外執行命令](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)的提示 | `reason_code` |1106| `"sandbox_override"` | [在沙箱外執行命令](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)的提示 | `reason_code` |
1107| `"user_rejected"` | 有人拒絕或關閉了[無類別](#prompts-with-no-category)或僅由 hook 要求的提示,或 `canUseTool` 回呼或 `--permission-prompt-tool` 工具拒絕了此類提示 | `decision_source` |1107| `"user_rejected"` | 有人拒絕或關閉了[無類別](#prompts-with-no-category)或僅由 hook 要求的提示,或 `canUseTool` 回呼或 `--permission-prompt-tool` 工具拒絕了這類提示 | `decision_source` |
1108| `"sandbox_network"` | 呼叫已執行,且[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕了連線或請求 | `sandbox_violation_count` |1108| `"sandbox_network"` | 呼叫已執行,且[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕了連線或請求 | `sandbox_violation_count` |
1109| `"sandbox_other"` | 類似 `"sandbox_network"`,但沒有任何遭拒絕的目標可解讀為主機名稱或 IP 位址 | `sandbox_violation_count` |1109| `"sandbox_other"` | 與 `"sandbox_network"` 類似,但沒有任何遭拒絕的目標可解讀為主機名稱或 IP 位址 | `sandbox_violation_count` |
1110| `"hook_review"` | hook [封鎖了呼叫的結果](https://code.claude.com/docs/zh-TW/hooks.md#posttooluse-decision-control)或[回合的結束](https://code.claude.com/docs/zh-TW/hooks.md#stop-decision-control) | `hook_event` |1110| `"hook_review"` | hook [封鎖了呼叫的結果](https://code.claude.com/docs/zh-TW/hooks.md#posttooluse-decision-control)或[回合的結束](https://code.claude.com/docs/zh-TW/hooks.md#stop-decision-control) | `hook_event` |
1111| `"other"` | 其他值皆無法描述的拒絕 | `reason_code` |1111| `"other"` | 其他值皆無法描述的拒絕 | `reason_code` |
1112 1112
1113若要在任何 `category` 下找出代理伺服器的拒絕,請篩選存在且不為 `"0"` 的 `sandbox_violation_count`。1113若要找出任何 `category` 下的代理伺服器拒絕,請篩選存在且不為 `"0"` 的 `sandbox_violation_count`。
1114 1114
1115##### 沒有安全事件的呼叫1115##### 沒有安全事件的呼叫
1116 1116
1117若要找出因無人能回答[無類別提示](#prompts-with-no-category)而遭拒絕的呼叫,請尋找回報 `"reject"`、`source` 為 `"config"`,且沒有任何安全事件共用其 `tool_use_id` 的 [`tool_decision`](#tool-decision-event) 事件。這類拒絕發生在既沒有 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 也沒有 `--permission-prompts none` 的 `-p` 執行中。1117若要找出因無人能回答[無類別提示](#prompts-with-no-category)而遭拒絕的呼叫,請尋找回報 `"reject"`、`source` 為 `"config"`,且沒有安全事件共用其 `tool_use_id` 的 [`tool_decision`](#tool-decision-event) 事件。這類拒絕發生在既沒有 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 也沒有 `--permission-prompts none` 的 `-p` 執行中。
1118 1118
1119對於下列這類呼叫,請檢查其 `tool_decision` 事件,因為除了在執行後傳送的 [`"sandbox_network"`、`"sandbox_other"` 或 `"hook_review"` 事件](#safety-event-categories)之外,它們沒有安全事件:1119對於下列這類呼叫,請檢查其 `tool_decision` 事件,因為除了在執行後發送的 [`"sandbox_network"`、`"sandbox_other"` 或 `"hook_review"` 事件](#safety-event-categories)之外,它們沒有安全事件:
1120 1120
1121* 在無類別提示中獲得核准的呼叫1121* 在無類別提示中獲得核准的呼叫
1122* 在僅由 `PreToolUse` hook 要求的提示中,由 `canUseTool` 回呼或 `--permission-prompt-tool` 工具核准的呼叫1122* 在僅由 `PreToolUse` hook 要求的提示中,由 `canUseTool` 回呼或 `--permission-prompt-tool` 工具核准的呼叫
1124 1124
1125##### 無類別的提示1125##### 無類別的提示
1126 1126
1127當沒有任何 [`category` 值](#safety-event-categories)指名提示的檢查時,該提示即為無類別,例如在 `default` 模式中針對工作目錄內編輯的提示。1127當沒有任何 [`category` 值](#safety-event-categories)指名某個提示的檢查時,該提示即為無類別,例如針對工作目錄內編輯的 `default` 模式提示。
1128 1128
1129#### 權限模式變更事件1129#### 權限模式變更事件
1130 1130
1131在權限模式變更時記錄,例如透過 `Shift+Tab` 循環切換、退出 plan mode,或自動模式閘門檢查。1131在權限模式變更時記錄,例如透過 `Shift+Tab` 循環切換、退出 plan mode,或自動模式的閘門檢查。
1132 1132
1133若要依每個工具呼叫受檢查時的權限模式將其分組,請使用[工具決定事件](#tool-decision-event)上的 `permission_mode`。1133若要依每個工具呼叫接受檢查時的權限模式將其分組,請使用[工具決策事件](#tool-decision-event)上的 `permission_mode`。
1134 1134
1135**事件名稱**:`claude_code.permission_mode_changed`1135**事件名稱**:`claude_code.permission_mode_changed`
1136 1136
1139* 所有[標準屬性](#standard-attributes)1139* 所有[標準屬性](#standard-attributes)
1140* `event.name`:`"permission_mode_changed"`1140* `event.name`:`"permission_mode_changed"`
1141* `event.timestamp`:ISO 8601 時間戳記1141* `event.timestamp`:ISO 8601 時間戳記
1142* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1142* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1143* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`1143* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`
1144* `to_mode`:新的權限模式1144* `to_mode`:新的權限模式
1145* `trigger`:造成變更的原因,例如 `"shift_tab"`、`"exit_plan_mode"` 或 `"auto_gate_denied"`。某些變更不具此屬性,例如 SDK 透過 [`setPermissionMode()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 設定權限模式時1145* `trigger`:造成變更的原因,例如 `"shift_tab"`、`"exit_plan_mode"` 或 `"auto_gate_denied"`。某些變更中不存在,例如 SDK 透過 [`setPermissionMode()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 設定權限模式時
1146 1146
1147#### 身分驗證事件1147#### 身分驗證事件
1148 1148
1155* 所有[標準屬性](#standard-attributes)1155* 所有[標準屬性](#standard-attributes)
1156* `event.name`:`"auth"`1156* `event.name`:`"auth"`
1157* `event.timestamp`:ISO 8601 時間戳記1157* `event.timestamp`:ISO 8601 時間戳記
1158* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1158* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1159* `action`:`"login"` 或 `"logout"`1159* `action`:`"login"` 或 `"logout"`
1160* `success`:`"true"` 或 `"false"`1160* `success`:`"true"` 或 `"false"`
1161* `auth_method`:身分驗證方式,例如 `"oauth"`1161* `auth_method`:身分驗證方式,例如 `"oauth"`
1162* `error_category`:動作失敗時的錯誤種類分類。永遠不會包含原始錯誤訊息1162* `error_category`:動作失敗時的錯誤種類分類。絕不包含原始錯誤訊息
1163* `status_code`:當動作因 HTTP 錯誤而失敗時,以字串表示的 HTTP 狀態碼1163* `status_code`:動作因 HTTP 錯誤而失敗時的 HTTP 狀態碼(字串)
1164 1164
1165#### MCP 伺服器連線事件1165#### MCP 伺服器連線事件
1166 1166
1173* 所有[標準屬性](#standard-attributes)1173* 所有[標準屬性](#standard-attributes)
1174* `event.name`:`"mcp_server_connection"`1174* `event.name`:`"mcp_server_connection"`
1175* `event.timestamp`:ISO 8601 時間戳記1175* `event.timestamp`:ISO 8601 時間戳記
1176* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1176* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1177* `status`:`"connected"`、`"failed"` 或 `"disconnected"`1177* `status`:`"connected"`、`"failed"` 或 `"disconnected"`
1178* `transport_type`:伺服器傳輸方式,例如 `"stdio"`、`"sse"` 或 `"http"`1178* `transport_type`:伺服器傳輸方式,例如 `"stdio"`、`"sse"` 或 `"http"`
1179* `server_scope`:伺服器設定所在的範圍,例如 `"user"`、`"project"` 或 `"local"`1179* `server_scope`:伺服器的設定範圍,例如 `"user"`、`"project"` 或 `"local"`
1180* `duration_ms`:連線嘗試的持續時間(毫秒)1180* `duration_ms`:連線嘗試持續時間(毫秒)
1181* `error_code`:連線失敗時的錯誤代碼1181* `error_code`:連線失敗時的錯誤碼
1182* `is_plugin`:當伺服器由外掛提供時為 `true`,否則為 `false`1182* `is_plugin`:伺服器由外掛提供時為 `true`,否則為 `false`
1183* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):外掛名稱與市集的穩定雜湊值,可在不暴露名稱的情況下依外掛將事件分組。Claude Code 的計算方式如[外掛載入事件](#plugin-loaded-event)中所述1183* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):外掛名稱與市集的穩定雜湊值,用於依外掛將事件分組而不暴露名稱。Claude Code 依照[外掛載入事件](#plugin-loaded-event)中所述的方式計算此值
1184* `plugin.name`(當 `is_plugin` 為 `true` 時):提供該伺服器之外掛的名稱。對於第三方外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為字面字串 `"third-party"`;這可預設防止第三方外掛名稱出現在日誌中。來自 Anthropic 官方來源的外掛一律以名稱識別。`plugin_id_hash` 與 `plugin.name` 屬性會流向您自己的監控後端,不會傳送給 Anthropic1184* `plugin.name`(當 `is_plugin` 為 `true` 時):提供該伺服器之外掛的名稱。對於第三方外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則為字面字串 `"third-party"`;這可預設防止第三方外掛名稱出現在日誌中。來自 Anthropic 官方來源的外掛一律以名稱識別。`plugin_id_hash` 與 `plugin.name` 屬性會流向您自己的監控後端,不會傳送給 Anthropic
1185* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):設定的伺服器名稱1185* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):設定的伺服器名稱
1186* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息1186* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息
1187 1187
1188#### 內部錯誤事件1188#### 內部錯誤事件
1189 1189
1190當 Claude Code 捕捉到非預期的內部錯誤時記錄。僅記錄錯誤類別名稱與 errno 風格的代碼。永遠不會包含錯誤訊息與堆疊追蹤。在搭配 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 執行時,或設定了 `DISABLE_ERROR_REPORTING` 時,不會發出此事件。1190在 Claude Code 攔截到非預期的內部錯誤時記錄。只會記錄錯誤類別名稱與 errno 樣式的代碼。絕不包含錯誤訊息與堆疊追蹤。在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上執行時,或設定了 `DISABLE_ERROR_REPORTING` 時,不會發出此事件。
1191 1191
1192**事件名稱**:`claude_code.internal_error`1192**事件名稱**:`claude_code.internal_error`
1193 1193
1196* 所有[標準屬性](#standard-attributes)1196* 所有[標準屬性](#standard-attributes)
1197* `event.name`:`"internal_error"`1197* `event.name`:`"internal_error"`
1198* `event.timestamp`:ISO 8601 時間戳記1198* `event.timestamp`:ISO 8601 時間戳記
1199* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1199* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1200* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`1200* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`
1201* `error_code`:錯誤上存在時的 Node.js errno 代碼,例如 `"ENOENT"`1201* `error_code`:錯誤上存在的 Node.js errno 代碼,例如 `"ENOENT"`
1202 1202
1203#### 外掛安裝事件1203#### 外掛安裝事件
1204 1204
1205在外掛完成安裝時記錄,涵蓋 `claude plugin install` CLI 命令與互動式 `/plugin` UI。1205在外掛完成安裝時記錄,來源包括 `claude plugin install` CLI 命令與互動式 `/plugin` UI。
1206 1206
1207**事件名稱**:`claude_code.plugin_installed`1207**事件名稱**:`claude_code.plugin_installed`
1208 1208
1211* 所有[標準屬性](#standard-attributes)1211* 所有[標準屬性](#standard-attributes)
1212* `event.name`:`"plugin_installed"`1212* `event.name`:`"plugin_installed"`
1213* `event.timestamp`:ISO 8601 時間戳記1213* `event.timestamp`:ISO 8601 時間戳記
1214* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1214* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1215* `marketplace.is_official`:若市集為 Anthropic 官方市集則為 `"true"`,否則為 `"false"`1215* `marketplace.is_official`:若市集是 Anthropic 官方市集則為 `"true"`,否則為 `"false"`
1216* `install.trigger`:`"cli"` 或 `"ui"`1216* `install.trigger`:`"cli"` 或 `"ui"`
1217* `plugin.name`:已安裝外掛的名稱。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1217* `plugin.name`:已安裝外掛的名稱。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含
1218* `plugin.version`:市集項目中宣告的外掛版本。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1218* `plugin.version`:在市集項目中宣告的外掛版本。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含
1219* `marketplace.name`:外掛的安裝來源市集。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1219* `marketplace.name`:外掛的安裝來源市集。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含
1220 1220
1221#### 外掛載入事件1221#### 外掛已載入事件
1222 1222
1223在工作階段開始時,針對每個已啟用的外掛記錄一次。可使用此事件盤點整個裝置群中作用中的外掛,作為記錄安裝動作本身之 `plugin_installed` 的補充。1223在工作階段開始時,針對每個已啟用的外掛記錄一次。使用此事件盤點整個機群中有哪些外掛處於啟用狀態,作為 `plugin_installed`(記錄安裝動作本身)的補充。
1224 1224
1225**事件名稱**:`claude_code.plugin_loaded`1225**事件名稱**:`claude_code.plugin_loaded`
1226 1226
1229* 所有[標準屬性](#standard-attributes)1229* 所有[標準屬性](#standard-attributes)
1230* `event.name`:`"plugin_loaded"`1230* `event.name`:`"plugin_loaded"`
1231* `event.timestamp`:ISO 8601 時間戳記1231* `event.timestamp`:ISO 8601 時間戳記
1232* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1232* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1233* `plugin.name`:外掛名稱。對於官方市集與內建套件以外的外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為 `"third-party"`1233* `plugin.name`:外掛名稱。對於官方市集與內建套件以外的外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`
1234* `marketplace.name`:外掛的安裝來源市集(已知時)。在與 `plugin.name` 相同的條件下遮蔽為 `"third-party"`1234* `marketplace.name`:安裝該外掛的來源市集(若已知)。在與 `plugin.name` 相同的條件下會被遮蔽為 `"third-party"`
1235* `plugin.version`:外掛資訊清單中的版本。僅在名稱未遮蔽且資訊清單宣告了版本時包含1235* `plugin.version`:外掛 manifest 中的版本。僅在名稱未被遮蔽且 manifest 宣告了版本時才會包含
1236* `plugin.scope`:外掛的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`1236* `plugin.scope`:外掛的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`
1237* `enabled_via`:外掛被啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。`"admin-install"` 值表示該外掛在 [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) 中被設定為您組織的必要或自動安裝外掛。在 v2.1.246 之前,Claude Code 會將這些外掛回報為 `"user-install"` 或 `"seed-mount"`1237* `enabled_via`:外掛被啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。`"admin-install"` 值表示該外掛在[**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) 中被設為您組織的必要安裝或自動安裝。在 v2.1.246 之前,Claude Code 會將這些外掛回報為 `"user-install"` 或 `"seed-mount"`
1238* `plugin_id_hash`:外掛名稱與市集的確定性雜湊值,僅傳送給您設定的匯出器。可讓您在不記錄名稱的情況下,計算整個裝置群中載入的不同第三方外掛數量。對於[從 claude.ai 同步的外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins),Claude Code 會以 claude.ai 為該外掛回報的市集名稱(否則為 `synced`)與外掛名稱一起計算雜湊。在 v2.1.246 之前,Claude Code 未在雜湊中使用 claude.ai 回報的市集名稱1238* `plugin_id_hash`:外掛名稱與市集的確定性雜湊值,僅傳送至您設定的匯出器。讓您可以計算整個機群中載入的不同第三方外掛數量,而無需記錄其名稱。對於[從 claude.ai 同步的外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins),Claude Code 會將外掛名稱與 claude.ai 為該外掛回報的市集名稱一起雜湊,若無則使用 `synced`。在 v2.1.246 之前,Claude Code 不會在雜湊中使用 claude.ai 回報的市集名稱
1239* `has_hooks`:外掛是否透過 [hook 設定](https://code.claude.com/docs/zh-TW/plugins/components.md#hooks)或以 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#how-a-mod-works) 形式提供 hook1239* `has_hooks`:外掛是否透過 [hook 設定](https://code.claude.com/docs/zh-TW/plugins/components.md#hooks)或作為 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#how-a-mod-works) 提供 hook
1240* `has_mcp`:外掛是否提供 MCP 伺服器1240* `has_mcp`:外掛是否提供 MCP 伺服器
1241* `host_owned_mcp`:當 SDK 主機管理此外掛的 MCP 連線,且 Claude Code 略過讀取外掛的 MCP 伺服器設定時為 `true`,否則為 `false`1241* `host_owned_mcp`:當 SDK 主機管理此外掛的 MCP 連線且 Claude Code 略過讀取外掛的 MCP 伺服器設定時為 `true`,否則為 `false`
1242* `skill_path_count`:外掛宣告的 skill 目錄數量1242* `skill_path_count`:外掛宣告的 skill 目錄數量
1243* `command_path_count`:外掛宣告的命令目錄數量1243* `command_path_count`:外掛宣告的命令目錄數量
1244* `agent_path_count`:外掛宣告的 agent 目錄數量1244* `agent_path_count`:外掛宣告的 agent 目錄數量
1245* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式下,此事件僅回報已設定的清單;外掛的命令、skill、hook 與 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本1245* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式下,此事件僅回報已設定的清單;外掛的命令、skill、hook 與 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本
1246 1246
1247#### Skill 啟用事件1247#### Skill 已啟動事件
1248 1248
1249在 skill 被呼叫時記錄,無論是 Claude 透過 Skill 工具呼叫,或是您以 `/` 命令執行。1249在 skill 被叫用時記錄,無論是 Claude 透過 Skill 工具呼叫,還是您以 `/` 命令執行。
1250 1250
1251**事件名稱**:`claude_code.skill_activated`1251**事件名稱**:`claude_code.skill_activated`
1252 1252
1255* 所有[標準屬性](#standard-attributes)1255* 所有[標準屬性](#standard-attributes)
1256* `event.name`:`"skill_activated"`1256* `event.name`:`"skill_activated"`
1257* `event.timestamp`:ISO 8601 時間戳記1257* `event.timestamp`:ISO 8601 時間戳記
1258* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1258* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1259* `skill.name`:skill 的名稱。對於使用者定義與第三方外掛的 skill,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為預留值 `"custom_skill"`1259* `skill.name`:skill 的名稱。對於使用者定義及第三方外掛的 skill,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為預留位置 `"custom_skill"`
1260* `invocation_trigger`:skill 的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)1260* `invocation_trigger`:skill 的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)
1261* `skill.source`:skill 的載入來源(例如 `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)1261* `skill.source`:skill 的載入來源(例如 `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)
1262* `skill.kind`:當 skill 為工作流程 skill 時為 `"workflow"`。否則不存在1262* `skill.kind`:當 skill 為工作流程 skill 時為 `"workflow"`,否則不存在
1263* `plugin.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,為其所屬外掛的名稱1263* `plugin.name`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,所屬外掛的名稱
1264* `marketplace.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,為所屬外掛的安裝來源市集1264* `marketplace.name`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,安裝所屬外掛的來源市集
1265 1265
1266#### @ 提及事件1266#### @ 提及事件
1267 1267
1268當 Claude Code 解析提示詞中的 `@` 提及時記錄。並非每個提及都會發出事件:提早結束的路徑(例如權限拒絕、檔案過大、PDF 參考附件與目錄列出失敗)會直接返回而不記錄。1268在 Claude Code 解析提示詞中的 `@` 提及時記錄。並非每個提及都會發出事件:提前結束的路徑(例如權限拒絕、檔案過大、PDF 參照附件,以及目錄列出失敗)會直接返回而不記錄。
1269 1269
1270每次 Claude Code 讀取提示詞時,最多會記錄 100 個 `mention_type` 為 `"agent"` 的事件,以及 100 個為 `"mcp_resource"` 的事件。超過任一上限的提及仍會被解析,但不會發出事件。1270每次 Claude Code 讀取提示詞時,`mention_type` 為 `"agent"` 的事件最多記錄 100 個,`"mcp_resource"` 的事件也最多記錄 100 個。超過任一上限的提及仍會被解析,但不會發出事件。
1271 1271
1272**事件名稱**:`claude_code.at_mention`1272**事件名稱**:`claude_code.at_mention`
1273 1273
1276* 所有[標準屬性](#standard-attributes)1276* 所有[標準屬性](#standard-attributes)
1277* `event.name`:`"at_mention"`1277* `event.name`:`"at_mention"`
1278* `event.timestamp`:ISO 8601 時間戳記1278* `event.timestamp`:ISO 8601 時間戳記
1279* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1279* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1280* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。`"peer"` 值表示您提及了[您的其他 Claude Code 工作階段之一](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。需要 Claude Code v2.1.232 或更新版本1280* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。`"peer"` 值表示您提及了[您的其他 Claude Code 工作階段之一](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。需要 Claude Code v2.1.232 或更新版本
1281* `success`:提及是否成功解析(`"true"` 或 `"false"`)1281* `success`:提及是否成功解析(`"true"` 或 `"false"`)
1282 1282
1283#### API 重試用盡事件1283#### API 重試耗盡事件
1284 1284
1285當 API 請求在多次嘗試後失敗時記錄一次。與最終的 `api_error` 事件一同發出。1285在 API 請求經過多次嘗試後仍失敗時記錄一次。與最終的 `api_error` 事件一起發出。
1286 1286
1287**事件名稱**:`claude_code.api_retries_exhausted`1287**事件名稱**:`claude_code.api_retries_exhausted`
1288 1288
1291* 所有[標準屬性](#standard-attributes)1291* 所有[標準屬性](#standard-attributes)
1292* `event.name`:`"api_retries_exhausted"`1292* `event.name`:`"api_retries_exhausted"`
1293* `event.timestamp`:ISO 8601 時間戳記1293* `event.timestamp`:ISO 8601 時間戳記
1294* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1294* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1295* `model`:使用的模型1295* `model`:使用的模型
1296* `error`:最終錯誤訊息1296* `error`:最終錯誤訊息
1297* `status_code`:以數字表示的 HTTP 狀態碼。對於非 HTTP 錯誤不存在。1297* `status_code`:HTTP 狀態碼(數字)。非 HTTP 錯誤時不存在。
1298* `total_attempts`:嘗試的總次數1298* `total_attempts`:總嘗試次數
1299* `total_retry_duration_ms`:所有嘗試的總實際經過時間1299* `total_retry_duration_ms`:所有嘗試的總實際經過時間
1300* `speed`:`"fast"` 或 `"normal"`1300* `speed`:`"fast"` 或 `"normal"`
1301 1301
1302#### Hook 註冊事件1302#### Hook 已註冊事件
1303 1303
1304在工作階段開始時,針對每個已設定的 hook 記錄一次。可使用此事件盤點整個裝置群中作用中的 hook,作為每次執行之 `hook_execution_start` 與 `hook_execution_complete` 事件的補充。1304在工作階段開始時,針對每個已設定的 hook 記錄一次。使用此事件盤點整個機群中有哪些 hook 處於啟用狀態,作為每次執行的 `hook_execution_start` 與 `hook_execution_complete` 事件的補充。
1305 1305
1306**事件名稱**:`claude_code.hook_registered`1306**事件名稱**:`claude_code.hook_registered`
1307 1307
1310* 所有[標準屬性](#standard-attributes)1310* 所有[標準屬性](#standard-attributes)
1311* `event.name`:`"hook_registered"`1311* `event.name`:`"hook_registered"`
1312* `event.timestamp`:ISO 8601 時間戳記1312* `event.timestamp`:ISO 8601 時間戳記
1313* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1313* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1314* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1314* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`
1315* `hook_type`:hook 實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`1315* `hook_type`:hook 實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`
1316* `hook_source`:hook 的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`1316* `hook_source`:hook 的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`
1317* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1317* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1318* `hook_matcher`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):hook 設定中的 matcher 字串(有設定時)1318* `hook_matcher`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 時):hook 設定中的 matcher 字串(若有設定)
1319* `plugin.name`(當 `hook_source` 為 `"pluginHook"` 時):提供該 hook 之外掛的名稱。對於官方市集與內建套件以外的外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為 `"third-party"`1319* `plugin.name`(當 `hook_source` 為 `"pluginHook"` 時):提供該 hook 的外掛名稱。對於官方市集與內建套件以外的外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`
1320* `plugin_id_hash`(當 `hook_source` 為 `"pluginHook"` 時):外掛名稱與市集的確定性雜湊值,僅傳送給您設定的匯出器。可讓您在不記錄名稱的情況下計算提供 hook 的不同外掛數量。Claude Code 的計算方式如[外掛載入事件](#plugin-loaded-event)中所述1320* `plugin_id_hash`(當 `hook_source` 為 `"pluginHook"` 時):外掛名稱與市集的確定性雜湊值,僅傳送至您設定的匯出器。讓您可以計算提供 hook 的不同外掛數量,而無需記錄其名稱。Claude Code 的計算方式如[外掛已載入事件](#plugin-loaded-event)中所述
1321 1321
1322#### Hook 執行開始事件1322#### Hook 執行開始事件
1323 1323
1324當一個或多個 hook 開始針對某個 hook 事件執行時記錄。1324在某個 hook 事件的一或多個 hook 開始執行時記錄。
1325 1325
1326**事件名稱**:`claude_code.hook_execution_start`1326**事件名稱**:`claude_code.hook_execution_start`
1327 1327
1330* 所有[標準屬性](#standard-attributes)1330* 所有[標準屬性](#standard-attributes)
1331* `event.name`:`"hook_execution_start"`1331* `event.name`:`"hook_execution_start"`
1332* `event.timestamp`:ISO 8601 時間戳記1332* `event.timestamp`:ISO 8601 時間戳記
1333* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1333* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1334* `hook_event`:Hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1334* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`
1335* `hook_name`:包含 matcher 的完整 hook 名稱,例如 `"PreToolUse:Write"`1335* `hook_name`:包含 matcher 的完整 hook 名稱,例如 `"PreToolUse:Write"`
1336* `num_hooks`:相符的 hook 命令數量1336* `num_hooks`:符合的 hook 命令數量
1337* `managed_only`:當僅允許受管政策 hook 時為 `"true"`1337* `managed_only`:當僅允許受管政策 hook 時為 `"true"`
1338* `hook_source`:`"policySettings"` 或 `"merged"`1338* `hook_source`:`"policySettings"` 或 `"merged"`
1339* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1339* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1340* `hook_definitions`:JSON 序列化後的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時包含1340* `hook_definitions`:JSON 序列化的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含
1341 1341
1342#### Hook 執行完成事件1342#### Hook 執行完成事件
1343 1343
1344當某個 hook 事件的所有 hook 都已完成時記錄。1344在某個 hook 事件的所有 hook 都執行完畢時記錄。
1345 1345
1346**事件名稱**:`claude_code.hook_execution_complete`1346**事件名稱**:`claude_code.hook_execution_complete`
1347 1347
1350* 所有[標準屬性](#standard-attributes)1350* 所有[標準屬性](#standard-attributes)
1351* `event.name`:`"hook_execution_complete"`1351* `event.name`:`"hook_execution_complete"`
1352* `event.timestamp`:ISO 8601 時間戳記1352* `event.timestamp`:ISO 8601 時間戳記
1353* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1353* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1354* `hook_event`:Hook 事件類型1354* `hook_event`:hook 事件類型
1355* `hook_name`:包含 matcher 的完整 hook 名稱1355* `hook_name`:包含 matcher 的完整 hook 名稱
1356* `num_hooks`:相符的 hook 命令數量1356* `num_hooks`:符合的 hook 命令數量
1357* `num_success`:成功完成的數量1357* `num_success`:成功完成的數量
1358* `num_blocking`:傳回阻擋決定的數量1358* `num_blocking`:回傳阻擋決定的數量
1359* `num_non_blocking_error`:失敗但未阻擋的數量1359* `num_non_blocking_error`:失敗但未阻擋的數量
1360* `num_cancelled`:完成前被取消的數量1360* `num_cancelled`:在完成前被取消的數量
1361* `total_duration_ms`:所有相符 hook 的實際經過時間1361* `total_duration_ms`:所有符合 hook 的實際經過時間
1362* `stdout_chars`:成功之相符 hook 的 stdout 總字元數。需要 Claude Code v2.1.280 或更新版本1362* `stdout_chars`:成功執行的符合 hook 的 stdout 總字元數。需要 Claude Code v2.1.280 或更新版本
1363* `additional_context_chars`:相符 hook 傳回之 `additionalContext` 的總字元數。需要 Claude Code v2.1.280 或更新版本1363* `additional_context_chars`:符合 hook 所回傳的 `additionalContext` 總字元數。需要 Claude Code v2.1.280 或更新版本
1364* `system_message_chars`:相符 hook 傳回之 `systemMessage` 的總字元數。需要 Claude Code v2.1.280 或更新版本1364* `system_message_chars`:符合 hook 所回傳的 `systemMessage` 總字元數。需要 Claude Code v2.1.280 或更新版本
1365* `initial_user_message_chars`:相符 hook 傳回之 `initialUserMessage` 的總字元數。需要 Claude Code v2.1.280 或更新版本1365* `initial_user_message_chars`:符合 hook 所回傳的 `initialUserMessage` 總字元數。需要 Claude Code v2.1.280 或更新版本
1366* `num_outputs_persisted`:超過 [10,000 字元上限](https://code.claude.com/docs/zh-TW/hooks.md#json-output)而由 Claude Code 儲存至檔案的 hook 輸出數量。需要 Claude Code v2.1.280 或更新版本1366* `num_outputs_persisted`:超過 [10,000 字元上限](https://code.claude.com/docs/zh-TW/hooks.md#json-output)而被 Claude Code 儲存至檔案的 hook 輸出數量。需要 Claude Code v2.1.280 或更新版本
1367* `managed_only`:當僅允許受管政策 hook 時為 `"true"`1367* `managed_only`:當僅允許受管政策 hook 時為 `"true"`
1368* `hook_source`:`"policySettings"` 或 `"merged"`1368* `hook_source`:`"policySettings"` 或 `"merged"`
1369* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1369* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1370* `hook_definitions`:JSON 序列化後的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時包含1370* `hook_definitions`:JSON 序列化的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含
1371 1371
1372#### Hook 外掛指標事件1372#### Hook 外掛指標事件
1373 1373
1374當官方市集外掛的 hook 發出每次呼叫的指標時記錄。只有從 Anthropic 官方市集安裝的外掛才能發出這些指標。第三方市集外掛與使用者設定的 hook 不會發出此事件。可使用此事件從您自己的可觀測性堆疊監控外掛行為,例如發現率、成本與持續時間。1374在官方市集外掛的 hook 發出每次叫用的指標時記錄。只有從官方 Anthropic 市集安裝的外掛才能發出這些指標。第三方市集外掛與使用者設定的 hook 不會發出此事件。使用此事件可從您自己的可觀測性堆疊監控外掛行為,例如發現率、成本與持續時間。
1375 1375
1376**事件名稱**:`claude_code.hook_plugin_metrics`1376**事件名稱**:`claude_code.hook_plugin_metrics`
1377 1377
1380* 所有[標準屬性](#standard-attributes)1380* 所有[標準屬性](#standard-attributes)
1381* `event.name`:`"hook_plugin_metrics"`1381* `event.name`:`"hook_plugin_metrics"`
1382* `event.timestamp`:ISO 8601 時間戳記1382* `event.timestamp`:ISO 8601 時間戳記
1383* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1383* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1384* `plugin_id`:`<name>@<marketplace>` 形式的外掛識別碼1384* `plugin_id`:`<name>@<marketplace>` 格式的外掛識別碼
1385* `hook_event`:發出指標的 hook 事件類型1385* `hook_event`:發出指標的 hook 事件類型
1386* 最多 20 個外掛發出的指標鍵。名稱需符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。1386* 最多 20 個由外掛發出的指標鍵。名稱須符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。
1387 1387
1388#### 壓縮事件1388#### 壓縮事件
1389 1389
1396* 所有[標準屬性](#standard-attributes)1396* 所有[標準屬性](#standard-attributes)
1397* `event.name`:`"compaction"`1397* `event.name`:`"compaction"`
1398* `event.timestamp`:ISO 8601 時間戳記1398* `event.timestamp`:ISO 8601 時間戳記
1399* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1399* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1400* `trigger`:`"auto"` 或 `"manual"`1400* `trigger`:`"auto"` 或 `"manual"`
1401* `success`:`"true"` 或 `"false"`1401* `success`:`"true"` 或 `"false"`
1402* `duration_ms`:壓縮持續時間1402* `duration_ms`:壓縮持續時間
1403* `pre_tokens`:壓縮前的約略 token 數量1403* `pre_tokens`:壓縮前的約略 token 數
1404* `post_tokens`:壓縮後的約略 token 數量1404* `post_tokens`:壓縮後的約略 token 數
1405* `error`:壓縮失敗時的錯誤訊息1405* `error`:壓縮失敗時的錯誤訊息
1406* `precompute_reuse`:僅在 `trigger` 為 `"manual"`,或在互動式終端機工作階段中針對[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)且 `trigger` 為 `"auto"` 時設定。自動壓縮可以在上下文視窗填滿之前於背景準備摘要,此屬性記錄壓縮是否重複使用了該預先準備的摘要。`"hit"` 表示已重複使用;`"miss_custom_instructions"`、`"miss_hook"` 與 `"miss_not_ready"` 則說明改為計算新摘要的原因1406* `precompute_reuse`:僅在 `trigger` 為 `"manual"` 時設定,或在互動式終端機工作階段中針對[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)而 `trigger` 為 `"auto"` 時設定。自動壓縮可在上下文視窗填滿之前於背景準備摘要,此屬性記錄壓縮是否重複使用了該預先準備的摘要。`"hit"` 表示已重複使用;`"miss_custom_instructions"`、`"miss_hook"` 與 `"miss_not_ready"` 則說明改為重新計算摘要的原因
1407 1407
1408#### Subagent 完成事件1408#### Subagent 已完成事件
1409 1409
1410在 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 完成並將結果傳回啟動它的對話時記錄。可用於依 subagent 類型彙總工具使用情況與執行時間;若要彙總 token 或成本,請使用以 `query_source` `"subagent"` 篩選的 [token 計數器](#token-counter)與[成本計數器](#cost-counter),因為此事件的 `total_tokens` 僅涵蓋最後一個請求。`"subagent"` 類別也會計入來自以 agent 為基礎之 hook 的請求,而這些 hook 不會發出 subagent 事件。1410在 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 完成並將結果回傳給啟動它的對話時記錄。可用它依 subagent 類型彙總工具使用與執行時間;若要彙總 token 或成本,請使用篩選 `query_source` 為 `"subagent"` 的 [token 計數器](#token-counter)與[成本計數器](#cost-counter),因為此事件的 `total_tokens` 僅涵蓋最後一次請求。`"subagent"` 類別也會計入來自以 agent 為基礎的 hook 的請求,而這些 hook 不會發出 subagent 事件。
1411 1411
1412**事件名稱**:`claude_code.subagent_completed`1412**事件名稱**:`claude_code.subagent_completed`
1413 1413
1416* 所有[標準屬性](#standard-attributes)1416* 所有[標準屬性](#standard-attributes)
1417* `event.name`:`"subagent_completed"`1417* `event.name`:`"subagent_completed"`
1418* `event.timestamp`:ISO 8601 時間戳記1418* `event.timestamp`:ISO 8601 時間戳記
1419* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1419* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1420* `agent_type`:subagent 類型。內建 agent 名稱及來自官方市集外掛的 agent 會原樣顯示;除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則其他 agent 名稱會以 `"custom"` 取代1420* `agent_type`:subagent 類型。內建 agent 名稱及來自官方市集外掛的 agent 會原樣顯示;除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則其他 agent 名稱會被替換為 `"custom"`
1421* `agent.source`:agent 定義的來源:`built-in`、`plugin`,或定義自訂 agent 的設定來源,例如 `userSettings` 或 `projectSettings`1421* `agent.source`:agent 定義的來源:`built-in`、`plugin`,或定義自訂 agent 的設定來源,例如 `userSettings` 或 `projectSettings`
1422* `is_built_in`:subagent 是否為內建 agent 類型1422* `is_built_in`:subagent 是否為內建 agent 類型
1423* `is_async`:subagent 是否在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行1423* `is_async`:subagent 是否在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行
1424* `total_tokens`:subagent 最後一個 API 請求的 token 用量:該請求的輸入、快取建立、快取讀取與輸出 token,大致等於 subagent 完成時的上下文大小。並非整個執行過程的總和1424* `total_tokens`:subagent 最後一次 API 請求的 token 用量:該次請求的輸入、快取建立、快取讀取與輸出 token,大致相當於 subagent 完成時的上下文大小。並非整個執行過程的總和
1425* `total_tool_uses`:subagent 在整個執行過程中進行的工具呼叫次數1425* `total_tool_uses`:subagent 在整個執行過程中進行的工具呼叫次數
1426* `duration_ms`:執行時間(毫秒)1426* `duration_ms`:執行時間(毫秒)
1427* `model`:subagent 被解析為使用的模型1427* `model`:subagent 被解析要執行的模型
1428* `final_model`:產生 subagent 最終回應的模型;在執行中途切換(例如改用備援模型)後,會與 `model` 不同1428* `final_model`:產生 subagent 最終回應的模型,在執行途中切換(例如改用備援模型)後會與 `model` 不同
1429* `model_swapped`:是否有多個模型處理了 subagent 的請求1429* `model_swapped`:是否有多個模型處理了 subagent 的請求
1430* `plugin_id_hash`、`plugin.name`:由外掛提供的 agent 才會出現。官方市集外掛名稱會原樣顯示;除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則其他外掛名稱會以 `"third-party"` 取代1430* `plugin_id_hash`、`plugin.name`:外掛提供的 agent 才會存在。官方市集外掛名稱會原樣顯示;除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則其他外掛名稱會被替換為 `"third-party"`
1431 1431
1432#### 意見調查事件1432#### 意見回饋調查事件
1433 1433
1434在顯示或回答工作階段品質調查時記錄。關於調查收集的內容及如何控制,請參閱[工作階段品質調查](https://code.claude.com/docs/zh-TW/data-usage.md#session-quality-surveys)。1434在顯示或回答工作階段品質調查時記錄。關於調查收集的內容及控制方式,請參閱[工作階段品質調查](https://code.claude.com/docs/zh-TW/data-usage.md#session-quality-surveys)。
1435 1435
1436**事件名稱**:`claude_code.feedback_survey`1436**事件名稱**:`claude_code.feedback_survey`
1437 1437
1440* 所有[標準屬性](#standard-attributes)1440* 所有[標準屬性](#standard-attributes)
1441* `event.name`:`"feedback_survey"`1441* `event.name`:`"feedback_survey"`
1442* `event.timestamp`:ISO 8601 時間戳記1442* `event.timestamp`:ISO 8601 時間戳記
1443* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1443* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1444* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`1444* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`
1445* `appearance_id`:用於連結同一調查實例所發出之事件的唯一 ID1445* `appearance_id`:連結同一調查實例所發出事件的唯一 ID
1446* `survey_type`:產生此事件的調查。`"session"` 為「How is Claude doing?」評分提示1446* `survey_type`:產生事件的調查。`"session"` 為「How is Claude doing?」評分提示
1447* `response`:使用者在 `responded` 事件中的選擇1447* `response`:`responded` 事件中使用者的選擇
1448* `enabled_via_override`:設定了 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](https://code.claude.com/docs/zh-TW/env-vars) 時為 `true`。以 Boolean 而非字串發出。出現在 `session` 調查事件上。可依此屬性篩選,以確認覆寫已套用至整個裝置群1448* `enabled_via_override`:當設定 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](https://code.claude.com/docs/zh-TW/env-vars) 時為 `true`。以布林值而非字串發出。存在於 `session` 調查事件中。可篩選此屬性以確認覆寫已套用至整個機群
1449 1449
1450#### 保留清理事件1450#### 保留清理事件
1451 1451
1452保留清理作業每執行一次記錄一次,此作業會刪除早於 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays) 設定的[工作階段逐字稿及其他應用程式資料](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)。Claude Code 在每個工作階段中最多於背景執行一次清理作業,即使某次執行未刪除任何內容也會發出此事件。若 Claude Code 在過去 24 小時內已於同一台電腦上的任何工作階段執行過清理作業,則會將此工作階段的清理作業延後至少 10 分鐘,因此較早結束的工作階段不會發出任何內容。使用 `--bare` 執行 `claude -p` 時,Claude Code 不會執行清理作業,也不會發出任何內容。1452在每次執行保留清理時記錄一次,該清理會刪除早於 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays) 設定的[工作階段逐字稿及其他應用程式資料](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)。Claude Code 每個工作階段最多在背景執行一次清理,即使沒有刪除任何項目也仍會發出事件。若 Claude Code 在過去 24 小時內已在同一台機器上的任何工作階段中執行過清理,則會將此工作階段的清理延遲至少 10 分鐘,因此較早結束的工作階段不會發出任何事件。當您以 `--bare` 執行 `claude -p` 時,Claude Code 不會執行清理,也不會發出任何事件。
1453 1453
1454如同本頁上的所有 OTel 事件,此事件只會傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。1454如同本頁上的所有 OTel 事件,此事件僅傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。
1455 1455
1456當 Claude Code 無法安全地判斷保留期間時,會暫停清理作業,並發出 `result` 設為 `"skipped"` 且帶有 `skip_reason` 的事件。當[受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)設定了 `cleanupPeriodDays` 時,受管的值會固定保留期間,即使較低優先順序範圍中的設定檔損毀或無效,清理作業仍會執行。當 `managed-settings.json` 本身無法讀取時,除非[受管層級](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)從其他來源(例如伺服器受管設定或位於損毀檔案旁的 `managed-settings.d/` 附加檔案)提供 `cleanupPeriodDays`,否則 Claude Code 仍會暫停清理作業。刪除計數器屬性只有在 `result` 為 `"complete"` 時才會出現。1456當 Claude Code 無法安全地判斷保留期間時,會暫停清理並發出 `result` 設為 `"skipped"` 且附有 `skip_reason` 的事件。當[受管設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)設定了 `cleanupPeriodDays` 時,受管值會固定保留期間,即使較低優先順序範圍中的設定檔損壞或無效,清理仍會執行。當 `managed-settings.json` 本身無法讀取時,除非[受管層級](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)從其他地方(例如伺服器受管設定或損壞檔案旁的 `managed-settings.d/` drop-in)提供 `cleanupPeriodDays`,否則 Claude Code 仍會暫停清理。刪除計數器屬性僅在 `result` 為 `"complete"` 時存在。
1457 1457
1458**事件名稱**:`claude_code.retention_sweep`1458**事件名稱**:`claude_code.retention_sweep`
1459 1459
1462* 所有[標準屬性](#standard-attributes)1462* 所有[標準屬性](#standard-attributes)
1463* `event.name`:`"retention_sweep"`1463* `event.name`:`"retention_sweep"`
1464* `event.timestamp`:ISO 8601 時間戳記1464* `event.timestamp`:ISO 8601 時間戳記
1465* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1465* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1466* `result`:清理作業已執行時為 `"complete"`,Claude Code 暫停時為 `"skipped"`1466* `result`:清理已執行時為 `"complete"`,Claude Code 暫停清理時為 `"skipped"`
1467* `period_days`:合併設定中的 `cleanupPeriodDays` 值(以天為單位),若沒有任何來源設定則為 `30`。在略過的事件中,此值為清理作業原本會使用的值,根據 Claude Code 能夠讀取的設定來源計算而得1467* `period_days`:合併後設定中的 `cleanupPeriodDays` 值(以天為單位),若無任何來源設定則為 `30`。在 skipped 事件中,為清理原本會使用的值,依 Claude Code 可讀取的設定來源計算
1468* `used_default`:沒有任何可讀取的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在完成的事件中,`"true"` 表示套用了 30 天的預設值1468* `used_default`:當沒有任何可讀取的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在 complete 事件中,`"true"` 表示套用了 30 天的預設值
1469* `skip_reason`:Claude Code 暫停清理作業的原因。僅在 `result` 為 `"skipped"` 時出現:1469* `skip_reason`:Claude Code 暫停清理的原因。僅在 `result` 為 `"skipped"` 時存在:
1470 * `"user_source_disabled"`:使用者設定被排除,例如透過 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項,且沒有任何已啟用的來源提供 `cleanupPeriodDays`1470 * `"user_source_disabled"`:使用者設定被排除(例如透過 [`--setting-sources`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 選項),且沒有任何已啟用的來源提供 `cleanupPeriodDays`
1471 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設為 Claude Code 看不到的值1471 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設為 Claude Code 看不到的值
1472 * `"settings_invalid_key_set"`:設定有驗證錯誤,且明確設定了 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays`,因此改用預設值可能會違反該設定而刪除或保留檔案1472 * `"settings_invalid_key_set"`:設定有驗證錯誤,且明確設定了 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays`,因此改用預設值可能會違背該設定而刪除或保留檔案
1473* `transcripts_deleted`:清理作業刪除的工作階段逐字稿(即頂層的 `~/.claude/projects/*/*.jsonl` 檔案)數量1473* `transcripts_deleted`:清理所刪除的工作階段逐字稿(即最上層的 `~/.claude/projects/*/*.jsonl` 檔案)數量
1474* `transcripts_exempted_desktop`:已超過保留期間、但清理作業依 [Claude Desktop 與 Cowork 規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)保留的逐字稿數量。這些不計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本1474* `transcripts_exempted_desktop`:超過保留期間但依 [Claude Desktop 與 Cowork 規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)被清理保留的逐字稿數量。這些不會計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本
1475* `session_files_deleted`:工作階段檔案清理作業刪除的 artifact 數量:逐字稿加上每個工作階段的附屬檔案,例如 sidecar、錄製內容與工具結果1475* `session_files_deleted`:工作階段檔案清理所刪除的項目數量:逐字稿加上每個工作階段的附屬檔案,例如 sidecar、錄製內容與工具結果
1476* `artifacts_deleted`:清理作業在其涵蓋的資料目錄中刪除的項目總數,包括工作階段檔案。部分清理作業會將整個移除的目錄樹計為一個項目,且少數清理流程不會計入此計數器,因此請將此值視為下限,而非精確的檔案數量1476* `artifacts_deleted`:清理在其涵蓋的資料目錄中刪除的項目總數,包括工作階段檔案。某些清理會將整個被移除的目錄樹計為一個項目,且少數清理流程不會計入此計數器,因此請將此值視為下限,而非精確的檔案數量
1477* `files_retained_fresh`:已檢查但因仍在保留期間內而保留的檔案。只有逐檔案的清理作業會計入這些檔案,因此此值為下限;非零值為正常的穩定狀態1477* `files_retained_fresh`:已檢查但因仍在保留期間內而保留的檔案。僅逐檔清理會計入這些檔案,因此此值為下限;非零值為正常的穩定狀態
1478* `files_past_cutoff`:早於保留期間但清理作業未能刪除的檔案,例如因權限錯誤或檔案被開啟佔用。此計數也包含清理作業在 `skills/synced/` 或 `plugins/synced/` 下找到的每個過時資料夾,無論是否將該資料夾移至垃圾桶。除了這些資料夾之外,大於零的值表示有檔案超過了所設定的保留期間;零並不能證明沒有檔案超過,因為移除整個目錄失敗時會改計入 `error_count`1478* `files_past_cutoff`:早於保留期間但清理未能刪除的檔案,例如因為權限錯誤或檔案仍被開啟。此計數也包括清理在 `skills/synced/` 或 `plugins/synced/` 下找到的每個過期資料夾,無論是否已將該資料夾移至垃圾桶。除了這些資料夾之外,大於零的值表示有檔案超過了設定的保留期間仍存在;零並不代表沒有這種情況,因為整個目錄移除失敗會改為計入 `error_count`
1479* `error_count`:清理作業在列出或刪除檔案時遇到的錯誤數量1479* `error_count`:清理在列出或刪除檔案時遇到的錯誤數量
1480 1480
1481#### 受管設定解析事件1481#### 受管設定已解析事件
1482 1482
1483隨工作階段所解析的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)一併記錄:於工作階段開始時記錄一次,在工作階段期間受管設定或[政策輔助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)的狀態變更時再次記錄,以及當 Claude Code 因 `error.type` 屬性所列的原因之一而拒絕啟動或結束工作階段時記錄。1483記錄工作階段所解析的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md):在工作階段開始時記錄一次,在工作階段期間受管設定或[政策輔助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)的狀態變更時再次記錄,以及在 Claude Code 因 `error.type` 屬性所列的原因之一而拒絕啟動或結束工作階段時記錄。
1484可使用此事件找出在非預期受管來源上執行的電腦、政策輔助程式失敗的電腦,以及電腦拒絕啟動的原因。1484使用此事件可找出在非預期受管來源上執行的機器、政策輔助程式失敗的機器,以及機器拒絕啟動的原因。
1485需要 Claude Code v2.1.274 或更新版本。1485需要 Claude Code v2.1.274 或更新版本。
1486 1486
1487根據預設,此事件會包含受管來源與政策輔助程式的狀態,但不包含設定本身。若要加入經過遮蔽的 `managed_settings.settings` 屬性與 `managed_settings.resolved_sha256` 摘要,請設定 `OTEL_LOG_MANAGED_SETTINGS=1`:1487預設情況下,此事件會攜帶受管來源與政策輔助程式的狀態,但不包含設定本身。若要加入經遮蔽的 `managed_settings.settings` 屬性及 `managed_settings.resolved_sha256` 摘要,請設定 `OTEL_LOG_MANAGED_SETTINGS=1`:
1488 1488
1489* 在受管設定、使用者設定或 `--settings` 的 `env` 區塊中設定,或在啟動 Claude Code 的環境中設定。在專案或本機設定中設定此值不會啟用它,因為複製的儲存庫可以寫入這些設定。1489* 在受管設定、使用者設定或 `--settings` 的 `env` 區塊中設定,或在您啟動 Claude Code 的環境中設定。專案或本機設定中的值不會啟用它,因為複製的儲存庫可以寫入這些設定。
1490* 伺服器受管設定可以設定此值而不顯示[安全性核准對話方塊](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),因為此變數只會將您組織自己經過遮蔽的政策加入您組織已經會收到的事件中。1490* 伺服器受管設定可以設定它而不會顯示[安全核准對話框](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),因為此變數只會將您組織自己經遮蔽的政策加入您組織已經收到的事件中。
1491 1491
1492在您尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)的資料夾中的互動式工作階段,Claude Code 不會匯出拒絕事件。1492在您尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)的資料夾中的互動式工作階段裡,Claude Code 不會匯出拒絕事件。
1493 1493
1494**事件名稱**:`claude_code.managed_settings_resolved`1494**事件名稱**:`claude_code.managed_settings_resolved`
1495 1495
1498* 所有[標準屬性](#standard-attributes)1498* 所有[標準屬性](#standard-attributes)
1499* `event.name`:`"managed_settings_resolved"`1499* `event.name`:`"managed_settings_resolved"`
1500* `event.timestamp`:ISO 8601 時間戳記1500* `event.timestamp`:ISO 8601 時間戳記
1501* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1501* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)
1502* `managed_settings.trigger`:工作階段開始事件為 `"startup"`,在工作階段後續受管設定或政策輔助程式狀態變更時為 `"change"`,受管設定政策停止工作階段時為 `"refused"`。只有當某個屬性與上次傳送的事件不同時,Claude Code 才會傳送 `change` 事件;即使 `OTEL_LOG_MANAGED_SETTINGS` 未開啟,設定值的變更也會計入1502* `managed_settings.trigger`:工作階段開始事件為 `"startup"`,在工作階段稍後受管設定或政策輔助程式狀態變更時為 `"change"`,受管設定政策停止工作階段時為 `"refused"`。Claude Code 僅在某個屬性與上次傳送的事件不同時才傳送 `change` 事件,且即使 `OTEL_LOG_MANAGED_SETTINGS` 關閉,設定值的變更仍會計入
1503* `error.type`:Claude Code 停止工作階段的原因。僅出現在 `refused` 事件上:1503* `error.type`:Claude Code 停止工作階段的原因。僅存在於 `refused` 事件中:
1504 * `"helper_failed"`:[政策輔助程式執行失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)1504 * `"helper_failed"`:[政策輔助程式執行失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)
1505 * `"policy_invalid"`:受管設定包含會阻止 Claude Code 啟動的錯誤,或某個管理來源因讀取被拒以外的原因而載入失敗,導致 Claude Code 無法檢查組織登入或提供者強制規定1505 * `"policy_invalid"`:受管設定包含使 Claude Code 無法啟動的錯誤,或某個管理來源因讀取被拒以外的原因載入失敗,導致 Claude Code 無法檢查組織登入或提供者強制執行
1506 * `"provider_not_allowed"`:工作階段會使用受管 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 清單不允許的 API 提供者,或將某個提供者的流量傳送至不允許的主機。需要 Claude Code v2.1.285 或更新版本1506 * `"provider_not_allowed"`:工作階段將使用受管 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 清單不允許的 API 提供者,或將提供者的流量傳送至不允許的主機。需要 Claude Code v2.1.285 或更新版本
1507 * `"consent_rejected"`:使用者拒絕了伺服器受管設定的[安全性核准對話方塊](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs)1507 * `"consent_rejected"`:使用者拒絕了伺服器受管設定的[安全核准對話框](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs)
1508 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#forceremotesettingsrefresh) 所要求的設定擷取失敗1508 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#forceremotesettingsrefresh) 所要求的設定擷取失敗
1509 * `"gateway_rejected"`:[Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)以 HTTP 403 回應受管設定載入1509 * `"gateway_rejected"`:[Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)以 HTTP 403 回應受管設定載入
1510 * `"version_below_minimum"`:此版本的 Claude Code 低於 [`requiredMinimumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredminimumversion) 或高於 [`requiredMaximumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredmaximumversion)1510 * `"version_below_minimum"`:此版本的 Claude Code 低於 [`requiredMinimumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredminimumversion) 或高於 [`requiredMaximumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredmaximumversion)
1511 * `"_OTHER"`:Claude apps 閘道的受管設定載入因其他原因失敗1511 * `"_OTHER"`:Claude apps 閘道受管設定因其他原因載入失敗
1512* `managed_settings.sources`:所有提供至少一個[政策鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)的受管來源,依優先順序由高至低排列,包括在 `first-wins` 下其鍵未生效的來源。值包括:MDM 或作業系統層級政策的 `"remote"`、`"plist"` 或 `"hklm"`,受管設定檔與附加檔案的 `"file"`,[嵌入主機](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy)提供設定時的 `"parent"`,以及 Claude Code [讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)[Windows HKCU 登錄值](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)時的 `"hkcu"`。僅包含控制鍵的來源,或 Claude Code 無法讀取的來源,不會列出。以字串陣列發出,若沒有任何受管來源提供政策鍵則為空陣列1512* `managed_settings.sources`:每個提供至少一個[政策鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)的受管來源,依優先順序由高至低排列,包括其鍵在 `first-wins` 下未生效的來源。值為 `"remote"`;MDM 或作業系統層級政策為 `"plist"` 或 `"hklm"`;受管設定檔與 drop-in 為 `"file"`;[嵌入主機](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy)提供設定時為 `"parent"`;當 Claude Code [讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources) [Windows HKCU 登錄值](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)時為 `"hkcu"`。僅攜帶控制鍵或 Claude Code 無法讀取的來源不會列出。以字串陣列發出,若沒有任何受管來源提供政策鍵則為空陣列
1513* `managed_settings.source_behavior`:Claude Code 讀取到的 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 值,為 `"first-wins"` 或 `"merge"`。沒有任何來源設定此鍵時為 `"first-wins"`1513* `managed_settings.source_behavior`:Claude Code 讀取到的 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 值,`"first-wins"` 或 `"merge"`。若無任何來源設定此鍵則為 `"first-wins"`
1514* `managed_settings.helper.state`:所選 MDM 或檔案來源所設定之政策輔助程式的狀態:1514* `managed_settings.helper.state`:所選 MDM 或檔案來源所設定的政策輔助程式狀態:
1515 * `"ok"`:輔助程式的輸出作為受管設定使用1515 * `"ok"`:輔助程式的輸出作為受管設定
1516 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:輔助程式最近一次執行失敗。[輔助程式失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)說明了各種情況1516 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:輔助程式的上次執行失敗。[輔助程式失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)說明了各種情況
1517 * `"none"`:未設定輔助程式,或設定它的來源不是 MDM 政策或受管設定檔1517 * `"none"`:未設定輔助程式,或設定它的來源不是 MDM 政策或受管設定檔
1518* `managed_settings.helper.applied`:當輔助程式本身的輸出作為受管設定使用時為 `"output"`,否則為 `"none"`1518* `managed_settings.helper.applied`:當輔助程式本身的輸出作為受管設定時為 `"output"`,否則為 `"none"`
1519* `managed_settings.helper.entry`:Claude Code 選取了 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 時為 `"policyHelper"`。未選取任何輔助程式時不會出現1519* `managed_settings.helper.entry`:當 Claude Code 選擇了 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 時為 `"policyHelper"`。未選擇輔助程式時不存在
1520* `managed_settings.helper.path`:輔助程式所設定的 [`path`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper-path)。只要 Claude Code 選取了輔助程式就會出現,無論是否設定 `OTEL_LOG_MANAGED_SETTINGS`1520* `managed_settings.helper.path`:輔助程式所設定的 [`path`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper-path)。只要 Claude Code 選擇了輔助程式就會存在,無論是否設定 `OTEL_LOG_MANAGED_SETTINGS`
1521* `managed_settings.resolved_sha256`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):遮蔽前已解析受管設定的 SHA-256,以遞迴排序鍵且不含空白的 JSON 序列化後計算。摘要相同的電腦執行相同的政策。Claude Code 僅在選擇啟用時才傳送摘要,因為較短的政策可以透過雜湊猜測值而被還原。沒有解析任何受管設定時不會出現,在 `refused` 事件上也不會出現1521* `managed_settings.resolved_sha256`(當設定 `OTEL_LOG_MANAGED_SETTINGS=1` 時):遮蔽前已解析受管設定的 SHA-256,以 JSON 序列化,鍵遞迴排序且不含空白。摘要相同的機器執行相同的政策。Claude Code 僅在選擇加入時才傳送摘要,因為簡短的政策可透過雜湊猜測值而被還原。若沒有解析任何受管設定,以及在 `refused` 事件中,則不存在
1522* `managed_settings.settings`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):已解析受管設定的名稱與結構,以 JSON 字串表示,值經過遮蔽。在 `refused` 事件上不會出現。Claude Code 依據其設定 schema 建置此值:1522* `managed_settings.settings`(當設定 `OTEL_LOG_MANAGED_SETTINGS=1` 時):已解析受管設定的名稱與結構,以 JSON 字串表示,值已遮蔽。在 `refused` 事件中不存在。Claude Code 依據其設定 schema 建立此值:
1523 1523
1524 * schema 宣告的設定名稱會被匯出,schema 未宣告的鍵則會被省略1524 * schema 宣告的設定名稱會被匯出,未宣告的鍵則會被省略
1525 * Boolean、數字,以及 schema 限制為固定選項集合的字串值(例如 `permissions.defaultMode`)會原樣匯出。`sandbox.network.httpProxyPort` 與 `sandbox.network.socksProxyPort` 會匯出為 `"[REDACTED]"`1525 * 布林值、數字,以及 schema 限制為固定選項集合的字串值(例如 `permissions.defaultMode`)會原樣匯出。`sandbox.network.httpProxyPort` 與 `sandbox.network.socksProxyPort` 會匯出為 `"[REDACTED]"`
1526 * 其他所有字串,例如 `model`、`apiKeyHelper`、每個 `env` 值、每個 URL 與每個命令,都會匯出為 `"[REDACTED]"`1526 * 其他所有字串,例如 `model`、`apiKeyHelper`、每個 `env` 值、每個 URL 及每個命令,都會匯出為 `"[REDACTED]"`
1527 * 對應表的項目名稱,例如 `env` 變數名稱與外掛 ID,會原樣匯出。schema 未定義其項目類型的設定(例如 `vimInsertModeRemaps`)會匯出為單一的 `"[REDACTED]"`,而 `sandbox.ignoreViolations` 會匯出為其路徑清單的清單,不含命令模式1527 * 對應表的項目名稱,例如 `env` 變數名稱與外掛 ID,會原樣匯出。schema 未定義項目型別的設定(例如 `vimInsertModeRemaps`)會匯出為單一的 `"[REDACTED]"`,而 `sandbox.ignoreViolations` 會匯出為其路徑清單的清單,不含命令模式
1528 * 清單會保留其長度,每個項目依相同規則遮蔽1528 * 清單會保留其長度,每個項目依相同規則遮蔽
1529 * 當工具內建於此版本的 Claude Code,或為 `mcp__` 參照(例如 `mcp__jira__create_issue`)時,`permissions.allow`、`permissions.deny` 或 `permissions.ask` 規則會匯出為其工具名稱並遮蔽內容,例如 `Read([REDACTED])`。其他任何規則都會匯出為 `"[REDACTED]"`1529 * 當工具內建於此版本的 Claude Code,或為 `mcp__` 參照(例如 `mcp__jira__create_issue`)時,`permissions.allow`、`permissions.deny` 或 `permissions.ask` 規則會匯出為其工具名稱並遮蔽內容,例如 `Read([REDACTED])`。其他任何規則則匯出為 `"[REDACTED]"`
1530 * hook 遵循相同規則,因此固定選項與數值欄位(例如 `type` 與 `timeout`)會顯示,而每個命令、URL、`matcher` 與 `if` 條件都會匯出為 `"[REDACTED]"`1530 * Hook 遵循相同規則,因此固定選項與數值欄位(例如 `type` 與 `timeout`)會顯示,而每個命令、URL、`matcher` 及 `if` 條件都會匯出為 `"[REDACTED]"`
1531 1531
1532 例如,包含 `apiKeyHelper`、兩個 `env` 變數與一條拒絕規則的受管設定會匯出為 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`。1532 例如,含有 `apiKeyHelper`、兩個 `env` 變數及一條拒絕規則的受管設定會匯出為 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`。
1533 1533
1534 Claude Code 會在 UTF-8 編碼 8 KB 處截斷此值,截斷後的值不是有效的 JSON1534 Claude Code 會在 UTF-8 的 8 KB 處截斷此值,截斷後的值不是有效的 JSON
1535* `managed_settings.settings_truncated`(當 `managed_settings.settings` 存在時):Claude Code 在 8 KB 處截斷 `managed_settings.settings` 時為 `true`,否則為 `false`。以 Boolean 而非字串發出1535* `managed_settings.settings_truncated`(當 `managed_settings.settings` 存在時):當 Claude Code 在 8 KB 處截斷 `managed_settings.settings` 時為 `true`,否則為 `false`。以布林值而非字串發出
1536 1536
1537## 解釋指標和事件資料1537## 解釋指標和事件資料
1538 1538