150以下環境變數控制指標中包含哪些屬性以管理基數:150以下環境變數控制指標中包含哪些屬性以管理基數:
151 151
152| 環境變數 | 描述 | 預設值 | 停用範例 |152| 環境變數 | 描述 | 預設值 | 停用範例 |
153| ------------------------------------------ | ----------------------------------------------- | ------- | ------- |153| ------------------------------------------ | --------------------------------------------------------------------------------- | ------- | ------- |
154| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指標中包含 session.id 屬性 | `true` | `false` |154| `OTEL_METRICS_INCLUDE_SESSION_ID` | 在指標中包含 session.id 屬性 | `true` | `false` |
155| `OTEL_METRICS_INCLUDE_VERSION` | 在指標中包含 app.version 屬性 | `false` | `true` |155| `OTEL_METRICS_INCLUDE_VERSION` | 在指標中包含 app.version 屬性 | `false` | `true` |
156| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指標中包含 user.account\_uuid 和 user.account\_id 屬性 | `true` | `false` |156| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 在指標中包含 user.account\_uuid 和 user.account\_id 屬性 | `true` | `false` |
157| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 在指標中包含 app.entrypoint 屬性 | `false` | `true` |157| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 在指標中包含 app.entrypoint 屬性 | `false` | `true` |
158| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 將 `OTEL_RESOURCE_ATTRIBUTES` 中的鍵作為屬性包含在指標資料點上 | `true` | `false` |158| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 將 `OTEL_RESOURCE_ATTRIBUTES` 中的鍵作為屬性包含在指標資料點上 | `true` | `false` |
159| `OTEL_METRICS_INCLUDE_REPOSITORY` | 在指標和事件上包含 `vcs.*` [儲存庫身份屬性](#repository-attributes)。需要 Claude Code v2.1.269 或更新版本 | `false` | `true` |
159 160
160較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。161較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。
161 162
390* 建立團隊特定的儀表板391* 建立團隊特定的儀表板
391* 為特定團隊設定警報392* 為特定團隊設定警報
392 393
393Claude Code 將這些值作為屬性附加到每個指標資料點和事件記錄上,除了在 OTLP 資源區塊中傳送它們之外。因為大多數指標後端將資料點屬性公開為可查詢的標籤,您可以直接按自訂鍵分組和篩選指標。自訂鍵永遠不會覆蓋[標準屬性](#standard-attributes),例如 `user.id` 或 `session.id`:當鍵衝突時,Claude Code 保留內建值。394Claude Code 將這些值作為屬性附加到每個指標資料點和事件記錄上,除了在 OTLP 資源區塊中傳送它們之外。因為大多數指標後端將資料點屬性公開為可查詢的標籤,您可以直接按自訂鍵分組和篩選指標。除了 `vcs.*` [儲存庫屬性](#repository-attributes)外,自訂鍵永遠不會覆蓋[標準屬性](#standard-attributes),例如 `user.id` 或 `session.id`:當鍵衝突時,Claude Code 保留內建值。
394 395
395每個自訂鍵都會成為每個指標序列上的標籤,因此高基數值會增加指標後端中的儲存成本。若要僅在資源區塊中傳送自訂屬性並從資料點標籤中省略它們,請設定 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`。請參閱[指標基數控制](#metrics-cardinality-control)。396每個自訂鍵都會成為每個指標序列上的標籤,因此高基數值會增加指標後端中的儲存成本。若要僅在資源區塊中傳送自訂屬性並從資料點標籤中省略它們,請設定 `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`。請參閱[指標基數控制](#metrics-cardinality-control)。
396 397
496 標準屬性497 標準屬性
497</h3>498</h3>
498 499
499所有指標和事件共享這些標準屬性:500所有指標和事件都共享這些標準屬性:
500 501
501| 屬性 | 描述 | 控制者 |502| 屬性 | 描述 | 控制方式 |
502| ------------------------------------ | ------------------------------------------------------------------------------------------- | --------------------------------------------------- |503| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
503| `session.id` | 唯一的工作階段識別碼 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |504| `session.id` | 唯一的工作階段識別碼 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設值:true) |
504| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |505| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設值:false) |
505| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py` 或 `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |506| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py` 或 `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設值:false) |
506| `organization.id` | 組織 UUID(已驗證時) | 可用時始終包含 |507| `organization.id` | 組織 UUID(已驗證時) | 可用時一律包含 |
507| `user.account_uuid` | 帳戶 UUID(已驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |508| `user.account_uuid` | 帳戶 UUID(已驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設值:true) |
508| `user.account_id` | 帳戶 ID(採用標籤格式,符合 Anthropic 管理 API),例如 `user_01BWBeN28...`(已驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |509| `user.account_id` | 帳戶 ID,採用與 Anthropic 管理 API 相符的標籤格式(已驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設值:true) |
509| `user.id` | 在首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。它不包含任何個人資訊,也不是從您的 Claude 帳戶衍生的。刪除該檔案會在下次執行時產生新的無關值。 | 始終包含 |510| `user.id` | 在首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。它不包含任何個人資訊,也不是從您的 Claude 帳戶衍生的。刪除該檔案會在下次執行時產生新的無關值。 | 一律包含 |
510| `user.email` | 使用者電子郵件地址,來自您的登入或在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,來自工作階段本身的認證 | 可用時始終包含 |511| `user.email` | 使用者電子郵件地址,來自您的登入或在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中來自工作階段本身的認證 | 可用時一律包含 |
511| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時始終包含 |512| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時一律包含 |
512| Keys from `OTEL_RESOURCE_ATTRIBUTES` | 您設定的自訂屬性,例如 `department` 或 `team.id`。詳見[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |513| 來自 `OTEL_RESOURCE_ATTRIBUTES` 的金鑰 | 您設定的自訂屬性,例如 `department` 或 `team.id`。請參閱[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設值:true) |
514| `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 或更新版本 |
513 515
514當 Claude Code 登入到 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 時,CLI 會使用來自閘道工作階段的已驗證身份戳記匯出:`user.id` 是 IdP 主體而不是匿名安裝識別碼,`user.email` 是已登入的電子郵件,`user.groups` 以逗號分隔的字串形式帶有 IdP 群組成員資格。每個匯出還帶有 `identity.source: gateway-oidc`。閘道身份最後應用,因此透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 和 `identity.*` 鍵在閘道工作階段上被忽略。516當 Claude Code 登入到[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)時,CLI 會使用來自閘道工作階段的已驗證身分戳記匯出:`user.id` 是 IdP 主體而非匿名安裝識別碼,`user.email` 是已登入的電子郵件,`user.groups` 會以逗號分隔的字串形式攜帶 IdP 群組成員資格。每個匯出也會攜帶 `identity.source: gateway-oidc`。閘道身分最後套用,因此透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 和 `identity.*` 金鑰在閘道工作階段上會被忽略。
515 517
516事件另外包含以下屬性。這些永遠不會附加到指標,因為它們會導致無限制的基數:518事件另外還包括以下屬性。這些永遠不會附加到指標,因為它們會導致無限的基數:
517 519
518* `prompt.id`:UUID 將使用者提示與所有後續事件關聯到下一個提示。請參閱[事件關聯屬性](#event-correlation-attributes)。520* `prompt.id`:UUID,將使用者提示與所有後續事件關聯到下一個提示。請參閱[事件關聯屬性](#event-correlation-attributes)。
519* `workspace.host_paths`:在桌面應用程式中選擇的主機工作區目錄,作為字串陣列521* `workspace.host_paths`:在桌面應用程式中選擇的主機工作區目錄,作為字串陣列
520* `workflow.run_id`:執行識別碼,前綴為 `wf_`,在 API 和工具事件上發出,由屬於 [Workflow](/docs/zh-TW/workflows) 工具執行的代理發出。按一個 `workflow.run_id` 篩選事件會重建該執行的 API 請求和工具結果。識別碼涵蓋工作流程指令碼衍生的代理以及這些代理依次衍生的任何代理,例如 skill 叫用。它符合在 Workflow 工具結果中報告的執行識別碼。在所有其他事件上不存在。需要 Claude Code v2.1.202 或更新版本522* `workflow.run_id`:執行識別碼,前綴為 `wf_`,在屬於[工作流程](/docs/zh-TW/workflows)工具執行的代理程式發出的 API 和工具事件上。按一個 `workflow.run_id` 篩選事件會重建該執行的 API 請求和工具結果。識別碼涵蓋工作流程指令碼產生的代理程式以及這些代理程式依次產生的任何代理程式,例如技能叫用。它與工作流程工具結果中報告的執行識別碼相符。在所有其他事件上不存在。需要 Claude Code v2.1.202 或更新版本
521* `workflow.name`:工作流程的名稱,其指令碼的 `meta.name`,與 `workflow.run_id` 一起發出。內建工作流程名稱在執行未修改的內建指令碼時按原樣出現。使用者撰寫的名稱(包括內建指令碼的編輯副本)被替換為 `custom`,除非設定 `OTEL_LOG_TOOL_DETAILS=1`。需要 Claude Code v2.1.202 或更新版本523* `workflow.name`:工作流程的名稱,其指令碼的 `meta.name`,與 `workflow.run_id` 一起發出。內建工作流程名稱在執行未修改的內建指令碼時逐字出現。使用者撰寫的名稱(包括內建指令碼的編輯副本)會被替換為 `custom`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。需要 Claude Code v2.1.202 或更新版本
524
525<h4 id="repository-attributes">
526 儲存庫屬性
527</h4>
528
529設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true` 以使用工作階段儲存庫的身分標籤指標和事件,以便共用收集器可以按儲存庫歸因使用情況。需要 Claude Code v2.1.269 或更新版本。
530
531Claude Code 每個工作階段從儲存庫的 `origin` 遠端衍生這些屬性一次。一個儲存庫的 HTTPS 和 SSH 遠端會產生相同的值:
532
533| 屬性 | 值 |
534| ------------------------- | ------------------------------------------------------------------------------------- |
535| `vcs.repository.url.full` | 儲存庫的瀏覽器 URL,不含 `.git`,例如 `https://github.com/example-org/example-repo` |
536| `vcs.owner.name` | 擁有者或群組路徑,例如 `example-org`;當遠端路徑只有一個區段時省略 |
537| `vcs.repository.name` | 裸儲存庫名稱,例如 `example-repo` |
538| `vcs.provider.name` | 當 Claude Code 將遠端的主機或 URL 形狀識別為其中一個提供者時為 `github`、`gitlab`、`bitbucket` 或 `gitea`;否則省略 |
539
540值會轉換為小寫,遠端 URL 中的認證、查詢字串和片段永遠不會出現在其中。當工作階段沒有 `origin` 遠端、遠端不是 URL 形狀或唯一的封閉儲存庫是您的主目錄時,屬性會被省略。
541
542您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 金鑰會替換該金鑰的衍生值。如果您宣告 `vcs.repository.url.full`,Claude Code 永遠不會讀取遠端,只會報告您宣告的金鑰。
543
544屬性只流向您自己的匯出器;Anthropic 的遙測會捨棄每個 `vcs.*` 金鑰。
522 545
523<h3 id="metrics">546<h3 id="metrics">
524 指標547 指標
525</h3>548</h3>
526 549
527Claude Code 匯出以下指標。「單位」欄顯示附加到每個指標的 OpenTelemetry 單位字串;計數指標不帶任何單位。550Claude Code 匯出以下指標。「單位」欄顯示附加到每個指標的 OpenTelemetry 單位字串;計數指標不包含任何單位。
528 551
529| 指標名稱 | 描述 | 單位 |552| 指標名稱 | 描述 | 單位 |
530| ------------------------------------- | ------------------- | ------ |553| ------------------------------------- | ------------------- | ------ |
531| `claude_code.session.count` | 啟動的 CLI 工作階段計數 | none |554| `claude_code.session.count` | 啟動的 CLI 工作階段計數 | 無 |
532| `claude_code.lines_of_code.count` | 修改的程式碼行數計數 | none |555| `claude_code.lines_of_code.count` | 修改的程式碼行數計數 | 無 |
533| `claude_code.pull_request.count` | 建立的提取請求數 | none |556| `claude_code.pull_request.count` | 建立的提取請求數 | 無 |
534| `claude_code.commit.count` | 建立的 git 提交數 | none |557| `claude_code.commit.count` | 建立的 git 提交數 | 無 |
535| `claude_code.cost.usage` | Claude Code 工作階段的成本 | USD |558| `claude_code.cost.usage` | Claude Code 工作階段的成本 | USD |
536| `claude_code.token.usage` | 使用的權杖數 | tokens |559| `claude_code.token.usage` | 使用的權杖數 | tokens |
537| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決定的計數 | none |560| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決定的計數 | 無 |
538| `claude_code.active_time.total` | 總活躍時間 | s |561| `claude_code.active_time.total` | 總活躍時間 | s |
539 562
540當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 和 `s` 單位,以便抓取保持有效的 Prometheus 文字格式。指標名稱不會變更,結合匯出器的配置(例如 `otlp,prometheus`)會保留單位。在 v2.1.216 之前,Prometheus 抓取包含一些抓取器拒絕的僅限 OpenMetrics 的 `# UNIT` 行。563當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 和 `s` 單位,以便抓取保持有效的 Prometheus 文字格式。指標名稱不會變更,結合匯出器的設定(例如 `otlp,prometheus`)會保留單位。在 v2.1.216 之前,Prometheus 抓取包含一些抓取器拒絕的僅限 OpenMetrics 的 `# UNIT` 行。
541 564
542<h3 id="metric-details">565<h3 id="metric-details">
543 指標詳情566 指標詳細資訊
544</h3>567</h3>
545 568
546每個指標都包含上面列出的標準屬性。具有額外內容特定屬性的指標如下所述。569每個指標都包括上面列出的標準屬性。具有其他內容特定屬性的指標如下所述。
547 570
548<h4 id="session-counter">571<h4 id="session-counter">
549 工作階段計數器572 工作階段計數器
554**屬性**:577**屬性**:
555 578
556* 所有[標準屬性](#standard-attributes)579* 所有[標準屬性](#standard-attributes)
557* `start_type`:工作階段的啟動方式。`"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值識別 `claude agents` 儀表板程序,這是使用者啟動的本機 UI,而不是對話工作階段。在您的儀表板中篩選此值以將 UI 程序啟動與對話工作階段分開。580* `start_type`:工作階段的啟動方式。`"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值識別 `claude agents` 儀表板程序,這是使用者啟動的本機 UI 而非對話工作階段。在儀表板中篩選此值以將 UI 程序啟動與對話工作階段分開。
558 581
559<h4 id="lines-of-code-counter">582<h4 id="lines-of-code-counter">
560 程式碼行計數器583 程式碼行計數器
566 589
567* 所有[標準屬性](#standard-attributes)590* 所有[標準屬性](#standard-attributes)
568* `type`:(`"added"`、`"removed"`)591* `type`:(`"added"`、`"removed"`)
569* `model`:進行變更的模型識別碼(例如,"claude-sonnet-5")592* `model`:進行變更的模型的模型識別碼(例如 "claude-sonnet-5")
570 593
571<h4 id="pull-request-counter">594<h4 id="pull-request-counter">
572 提取請求計數器595 提取請求計數器
573</h4>596</h4>
574 597
575透過 Claude Code 建立提取請求或合併請求時遞增。598當 Claude Code 透過 shell 命令或 MCP 工具建立提取請求或合併請求時遞增。
576 599
577**屬性**:600**屬性**:
578 601
597**屬性**:620**屬性**:
598 621
599* 所有[標準屬性](#standard-attributes)622* 所有[標準屬性](#standard-attributes)
600* `model`:模型識別碼(例如,"claude-sonnet-5")623* `model`:模型識別碼(例如 "claude-sonnet-5")
601* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一624* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一
602* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在625* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在
603* `effort`:應用於請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。626* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。
604* `agent.name`:發出請求的子代理類型。內建代理名稱和官方市場 plugin 的代理按原樣出現。其他使用者定義的代理名稱被替換為 `"custom"`。當請求不是由命名的子代理類型發出時不存在。627* `agent.name`:發出請求的子代理程式類型。內建代理程式名稱和來自官方市場的外掛程式的代理程式逐字出現。其他使用者定義的代理程式名稱會被替換為 `"custom"`。當請求不是由具名子代理程式類型發出時不存在。
605* `skill.name`:對請求有效的 Skill,由 Skill 工具、`/` 命令設定或由衍生的子代理繼承。內建、捆綁、使用者定義和官方市場 plugin skill 名稱按原樣出現。第三方 plugin skill 名稱被替換為 `"third-party"`。當沒有 skill 有效時不存在。628* `skill.name`:對請求有效的技能,由技能工具、`/` 命令設定或由產生的子代理程式繼承。內建、捆綁、使用者定義和官方市場外掛程式技能名稱逐字出現。第三方外掛程式技能名稱會被替換為 `"third-party"`。當沒有技能有效時不存在。
606* `plugin.name`:當活躍 skill 或子代理由 plugin 提供時的擁有 plugin。官方市場 plugin 名稱按原樣出現。第三方 plugin 名稱被替換為 `"third-party"`。當 skill 和子代理都沒有擁有 plugin 時不存在。629* `plugin.name`:當有效技能或子代理程式由外掛程式提供時的擁有外掛程式。官方市場外掛程式名稱逐字出現。第三方外掛程式名稱會被替換為 `"third-party"`。當技能和子代理程式都沒有擁有外掛程式時不存在。
607* `marketplace.name`:擁有 plugin 的安裝市場。僅針對官方市場 plugin 發出。否則不存在。630* `marketplace.name`:擁有外掛程式的安裝來源市場。僅針對官方市場外掛程式發出。否則不存在。
608* `mcp_server.name`:MCP 伺服器,其工具結果此請求消耗。內建、claude.ai 代理和官方登錄伺服器名稱按原樣出現。使用者配置的伺服器名稱被替換為 `"custom"`。當請求未消耗任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 在每個 MCP 工具呼叫後的請求上設定此屬性,而不僅僅是消耗工具結果的請求,因此聚合它的儀表板在您升級後會顯示下降。631* `mcp_server.name`:此請求消耗其工具結果的 MCP 伺服器。內建、claude.ai 代理和官方登錄伺服器名稱逐字出現。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未消耗任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 在每個 MCP 工具呼叫後的每個請求上設定此屬性,而不僅是在消耗工具結果的請求上,因此聚合它的儀表板在升級後會顯示下降。
609* `mcp_tool.name`:MCP 工具,其結果此請求消耗,與 `mcp_server.name` 具有相同的編輯和版本行為。當請求未消耗任何 MCP 工具結果時不存在。632* `mcp_tool.name`:此請求消耗其結果的 MCP 工具,具有與 `mcp_server.name` 相同的編輯和版本行為。當請求未消耗任何 MCP 工具結果時不存在。
610 633
611<h4 id="token-counter">634<h4 id="token-counter">
612 權杖計數器635 權杖計數器
618 641
619* 所有[標準屬性](#standard-attributes)642* 所有[標準屬性](#standard-attributes)
620* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)643* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)
621* `model`:模型識別碼(例如,"claude-sonnet-5")644* `model`:模型識別碼(例如 "claude-sonnet-5")
622* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一645* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一
623* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在646* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在
624* `effort`:應用於請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。詳見[成本計數器](#cost-counter)以了解詳情。647* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。請參閱[成本計數器](#cost-counter)以取得詳細資訊。
625* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 Skill、plugin、代理和 MCP 歸屬。詳見[成本計數器](#cost-counter)以了解定義和編輯行為。648* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的技能、外掛程式、代理程式和 MCP 歸因。請參閱[成本計數器](#cost-counter)以取得定義和編輯行為。
626 649
627<h4 id="code-edit-tool-decision-counter">650<h4 id="code-edit-tool-decision-counter">
628 程式碼編輯工具決定計數器651 程式碼編輯工具決定計數器
635* 所有[標準屬性](#standard-attributes)658* 所有[標準屬性](#standard-attributes)
636* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)659* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)
637* `decision`:使用者決定(`"accept"`、`"reject"`)660* `decision`:使用者決定(`"accept"`、`"reject"`)
638* `source`:決定來源。`"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。詳見[工具決定事件](#tool-decision-event)以了解每個值的含義。661* `source`:決定的來源。`"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。請參閱[工具決定事件](#tool-decision-event)以瞭解每個值的含義。
639* `language`:編輯檔案的程式設計語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法識別的副檔名,傳回 `"unknown"`。662* `language`:編輯檔案的程式設計語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法識別的副檔名傳回 `"unknown"`。
640 663
641<h4 id="active-time-counter">664<h4 id="active-time-counter">
642 活躍時間計數器665 活躍時間計數器
643</h4>666</h4>
644 667
645追蹤實際花費在主動使用 Claude Code 上的時間,不包括閒置時間。此指標在使用者互動期間遞增,例如輸入和讀取回應,以及在 CLI 處理期間遞增,例如工具執行和 AI 回應產生。668追蹤實際花費在主動使用 Claude Code 上的時間,不包括閒置時間。此指標在使用者互動期間(例如輸入和讀取回應)以及 CLI 處理期間(例如工具執行和 AI 回應產生)遞增。
646 669
647**屬性**:670**屬性**:
648 671
653 事件676 事件
654</h3>677</h3>
655 678
656Claude Code 透過 OpenTelemetry 日誌/事件匯出以下事件(當配置 `OTEL_LOGS_EXPORTER` 時):679Claude Code 透過 OpenTelemetry 日誌/事件匯出以下事件(當設定了 `OTEL_LOGS_EXPORTER` 時):
657 680
658<h4 id="event-correlation-attributes">681<h4 id="event-correlation-attributes">
659 事件關聯屬性682 事件關聯屬性
660</h4>683</h4>
661 684
662當使用者提交提示時,Claude Code 可能會進行多個 API 呼叫並執行多個工具。`prompt.id` 屬性可讓您將所有這些事件與觸發它們的單個提示相關聯。685當使用者提交提示時,Claude Code 可能會進行多個 API 呼叫並執行多個工具。`prompt.id` 屬性可讓您將所有這些事件與觸發它們的單一提示相關聯。
663 686
664| 屬性 | 描述 |687| 屬性 | 描述 |
665| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |688| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
666| `prompt.id` | UUID v4 識別碼,連結處理單個使用者提示時產生的所有事件 |689| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示時產生的所有事件 |
667| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。存在於 `assistant_response` 上,以及 `user_prompt` 上,除了命令分派,可能產生零個或多個訊息。在 `assistant_response` 上,這是回應的最終文字記錄條目,下一個轉換的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本 |690| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。出現在 `assistant_response` 上,以及 `user_prompt` 上,除了命令分派外,它可以產生零個或多個訊息。在 `assistant_response` 上,這是回應的最終文字記錄項目,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本 |
668| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。存在於 `api_request` 和 `api_error` 上,用於第一方 API 連線;在第三方提供者後端上不存在,以及當請求透過非串流後備重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的失敗(例如逾時)保持可用。符合 `llm_request` 追蹤跨度上的相同屬性。需要 Claude Code v2.1.214 或更新版本 |691| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。出現在第一方 API 連線上的 `api_request` 和 `api_error` 上;在第三方提供者後端上不存在,以及當請求透過非串流回退重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的逾時等失敗仍然可用。與 `llm_request` 追蹤跨度上的相同屬性相符。需要 Claude Code v2.1.214 或更新版本 |
669 692
670若要追蹤由單個提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回使用者提示事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。693若要追蹤由單一提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回 user\_prompt 事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。
671 694
672對於訊息級別重建,每個事件類別帶有與工作階段文字記錄中欄位相符的鍵。文字記錄條目格式是[內部於 Claude Code](/docs/zh-TW/sessions#where-transcripts-are-stored),並在版本之間變更,因此在這些欄位上聯接的管道可能在任何版本上中斷;將聯接視為版本特定而不是穩定合約:695對於訊息層級重建,每個事件類別都攜帶與工作階段文字記錄中的欄位相符的金鑰。文字記錄項目格式是[Claude Code 內部的](/docs/zh-TW/sessions#where-transcripts-are-stored),在版本之間變更,因此在這些欄位上聯接的管道可能會在任何版本上中斷;將聯接視為版本特定的而非穩定的合約:
673 696
674* `message.uuid` 在 `user_prompt` 和 `assistant_response` 上697* `message.uuid` 在 `user_prompt` 和 `assistant_response` 上
675* `request_id` 在 API 事件上,在文字記錄的助手條目上保存為 `requestId`698* `request_id` 在 API 事件上,在文字記錄的助理項目上保存為 `requestId`
676* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上699* `tool_use_id` 在 `tool_result` 和 `tool_decision` 事件上
677 700
678<h4 id="user-prompt-event">701<h4 id="user-prompt-event">
687 710
688* 所有[標準屬性](#standard-attributes)711* 所有[標準屬性](#standard-attributes)
689* `event.name`:`"user_prompt"`712* `event.name`:`"user_prompt"`
690* `event.timestamp`:ISO 8601 時間戳713* `event.timestamp`:ISO 8601 時間戳記
691* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件714* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
692* `prompt_length`:提示的長度715* `prompt_length`:提示的長度
693* `prompt`:提示內容。預設為編輯。設定 `OTEL_LOG_USER_PROMPTS=1` 以包含它716* `prompt`:提示內容。預設情況下編輯。設定 `OTEL_LOG_USER_PROMPTS=1` 以包含它
694* `message.uuid`:產生的使用者訊息的 UUID,符合保存的文字記錄條目。在命令分派上不存在,可能產生零個或多個訊息。需要 Claude Code v2.1.214 或更新版本717* `message.uuid`:產生的使用者訊息的 UUID,與保存的文字記錄項目相符。在命令分派上不存在,它可以產生零個或多個訊息。需要 Claude Code v2.1.214 或更新版本
695* `command_name`:當提示叫用命令時的命令名稱。內建和捆綁的命令名稱(例如 `compact` 或 `debug`)按原樣發出;別名(例如 `reset`)按輸入方式發出而不是規範名稱。自訂、plugin 和 MCP 命令名稱除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則會摺疊為 `custom` 或 `mcp`718* `command_name`:當提示叫用命令時的命令名稱。內建和捆綁的命令名稱(例如 `compact` 或 `debug`)按原樣發出;別名(例如 `reset`)按輸入的方式發出而非規範名稱。自訂、外掛程式和 MCP 命令名稱會摺疊為 `custom` 或 `mcp`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`
696* `command_source`:命令的來源(如果存在):`builtin`、`custom` 或 `mcp`。Plugin 提供的命令報告為 `custom`719* `command_source`:命令存在時的來源:`builtin`、`custom` 或 `mcp`。外掛程式提供的命令報告為 `custom`
697 720
698<h4 id="assistant-response-event">721<h4 id="assistant-response-event">
699 助手回應事件722 助理回應事件
700</h4>723</h4>
701 724
702在每個 API 請求傳回來自模型的文字內容後記錄。僅包含回應的文字區塊;思考區塊和工具使用區塊被排除。需要 Claude Code v2.1.193 或更新版本。725在每個傳回來自模型的文字內容的 API 請求後記錄。僅包含回應的文字區塊;思考區塊和工具使用區塊被排除。需要 Claude Code v2.1.193 或更新版本。
703 726
704**事件名稱**:`claude_code.assistant_response`727**事件名稱**:`claude_code.assistant_response`
705 728
707 730
708* 所有[標準屬性](#standard-attributes)731* 所有[標準屬性](#standard-attributes)
709* `event.name`:`"assistant_response"`732* `event.name`:`"assistant_response"`
710* `event.timestamp`:ISO 8601 時間戳733* `event.timestamp`:ISO 8601 時間戳記
711* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件734* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
712* `response_length`:回應文字的長度(字元數)735* `response_length`:回應文字的長度(以字元為單位)
713* `response`:回應文字,在內容限制處截斷(預設 60 KB)。預設為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 以包含它。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,`OTEL_LOG_USER_PROMPTS` 會控制它,因此設定 `OTEL_LOG_ASSISTANT_RESPONSES=0` 以在啟用提示記錄時保持回應編輯736* `response`:回應文字,在內容限制處截斷(預設為 60 KB)。預設情況下編輯為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 以包含它。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,`OTEL_LOG_USER_PROMPTS` 會控制它,因此設定 `OTEL_LOG_ASSISTANT_RESPONSES=0` 以在啟用提示記錄時保持回應編輯
714* `model`:模型識別碼(例如,"claude-sonnet-5")737* `model`:模型識別碼(例如 "claude-sonnet-5")
715* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID。僅當 API 傳回時才存在738* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID。僅當 API 傳回時才存在
716* `message.uuid`:回應的最終文字記錄條目的 UUID。API 回應被保存為每個內容區塊一個文字記錄條目;這是最後一個,下一個轉換的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本739* `message.uuid`:回應的最終文字記錄項目的 UUID。API 回應會保存為每個內容區塊一個文字記錄項目;這是最後一個,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本
717* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理名稱740* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱
718 741
719<h4 id="tool-result-event">742<h4 id="tool-result-event">
720 工具結果事件743 工具結果事件
721</h4>744</h4>
722 745
723當工具完成執行時記錄。不會在工具呼叫被拒絕時發出;詳見[工具決定事件](#tool-decision-event)以了解拒絕。746當工具完成執行時記錄。如果工具呼叫被拒絕,則不發出;請參閱[工具決定事件](#tool-decision-event)以取得拒絕。
724 747
725**事件名稱**:`claude_code.tool_result`748**事件名稱**:`claude_code.tool_result`
726 749
728 751
729* 所有[標準屬性](#standard-attributes)752* 所有[標準屬性](#standard-attributes)
730* `event.name`:`"tool_result"`753* `event.name`:`"tool_result"`
731* `event.timestamp`:ISO 8601 時間戳754* `event.timestamp`:ISO 8601 時間戳記
732* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件755* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
733* `tool_name`:工具的名稱756* `tool_name`:工具的名稱
734* `tool_use_id`:此工具叫用的唯一識別碼。符合傳遞給 hooks 的 `tool_use_id`,允許 OTel 事件和 hook 擷取資料之間的關聯。757* `tool_use_id`:此工具叫用的唯一識別碼。與傳遞給鉤子的 `tool_use_id` 相符,允許 OTel 事件和鉤子擷取資料之間的關聯。
735* `success`:`"true"` 或 `"false"`758* `success`:`"true"` 或 `"false"`
736* `duration_ms`:執行時間(毫秒)759* `duration_ms`:執行時間(以毫秒為單位)
737* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`760* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`
738* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息761* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息
739* `decision_type`:始終為 `"accept"`,因為此事件僅在工具執行後發出。拒絕的呼叫不會產生工具結果762* `decision_type`:一律為 `"accept"`,因為此事件僅在工具執行後發出。拒絕的呼叫不會產生工具結果
740* `decision_source`:決定來源。`"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。詳見[工具決定事件](#tool-decision-event)以了解每個值的含義。拒絕專用來源 `"user_abort"` 和 `"user_reject"` 永遠不會出現在此事件上。763* `decision_source`:權限決定的來源。`"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。請參閱[工具決定事件](#tool-decision-event)以瞭解每個值的含義。僅拒絕的來源 `"user_abort"` 和 `"user_reject"` 永遠不會出現在此事件上。
741* `tool_input_size_bytes`:JSON 序列化工具輸入的大小(位元組)764* `tool_input_size_bytes`:JSON 序列化工具輸入的大小(以位元組為單位)
742* `tool_result_size_bytes`:工具結果的大小(位元組)765* `tool_result_size_bytes`:工具結果的大小(以位元組為單位)
743* `mcp_server_scope`:MCP 伺服器範圍識別碼(用於 MCP 工具)766* `mcp_server_scope`:MCP 伺服器範圍識別碼(用於 MCP 工具)
744* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使旗標關閉,`mcp_server_name`/`mcp_tool_name` 配對也會包含,與[工具決定事件](#tool-decision-event)相同的主機撰寫例外,需要 Claude Code v2.1.214 或更新版本。參數因工具而異:767* `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`。當提交在分離的 HEAD 上進行時,名稱和類型會被省略。需要 Claude Code v2.1.269 或更新版本
745 * 對於 Bash 工具:包括 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox` 和 `git_commit_id`(git commit 命令成功時的提交 SHA)。桌面應用程式的工作區 bash 工具也將 `tool_name` 報告為 `Bash`,但僅包括 `bash_command`、`full_command` 和 `timeout`768* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使關閉旗標,`mcp_server_name`/`mcp_tool_name` 配對也會包含,與[工具決定事件](#tool-decision-event)相同的主機撰寫例外,需要 Claude Code v2.1.214 或更新版本。參數因工具而異:
769 * 對於 Bash 工具:包括 `bash_command`、`full_command`、`timeout`、`description` 和 `dangerouslyDisableSandbox`,以及當 `git commit` 命令成功時的 `git_commit_id` 和 `git_branch`。當提交是工作階段工作目錄的 HEAD 時,`git_commit_id` 是完整提交 SHA,否則是 git 的縮寫 SHA。`git_branch` 是提交所在的分支,在分離的 HEAD 上省略
770 * 對於桌面應用程式的工作區 Bash 工具,它也將 `tool_name` 報告為 `Bash`:僅包括 `bash_command`、`full_command` 和 `timeout`
746 * 對於 MCP 工具:包括 `mcp_server_name`、`mcp_tool_name`771 * 對於 MCP 工具:包括 `mcp_server_name`、`mcp_tool_name`
747 * 對於 Skill 工具:包括 `skill_name`772 * 對於技能工具:包括 `skill_name`
748 * 對於 Agent 工具或舊版 Task 工具:包括 `subagent_type`773 * 對於代理程式工具或舊版工作工具:包括 `subagent_type`
749* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化的工具引數。超過 512 個字元的個別值會被截斷,整個承載的上限約為 4 K 字元。適用於所有工具,包括 MCP 工具。774* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化工具引數。超過 512 個字元的個別值會被截斷,完整承載限制在約 4 K 個字元。適用於所有工具,包括 MCP 工具。
750 775
751<h4 id="api-request-event">776<h4 id="api-request-event">
752 API 請求事件777 API 請求事件
753</h4>778</h4>
754 779
755為每個 API 請求記錄到 Claude。780針對每個 API 請求記錄到 Claude。
756 781
757**事件名稱**:`claude_code.api_request`782**事件名稱**:`claude_code.api_request`
758 783
760 785
761* 所有[標準屬性](#standard-attributes)786* 所有[標準屬性](#standard-attributes)
762* `event.name`:`"api_request"`787* `event.name`:`"api_request"`
763* `event.timestamp`:ISO 8601 時間戳788* `event.timestamp`:ISO 8601 時間戳記
764* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件789* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
765* `model`:使用的模型(例如,"claude-sonnet-5")790* `model`:使用的模型(例如 "claude-sonnet-5")
766* `cost_usd`:估計成本(美元)791* `cost_usd`:以美元計的估計成本
767* `cost_usd_micros`:估計成本(美元的百萬分之一),作為整數發出792* `cost_usd_micros`:以美元百萬分之一計的估計成本,作為整數發出
768* `duration_ms`:請求持續時間(毫秒)793* `duration_ms`:請求持續時間(以毫秒為單位)
769* `input_tokens`:輸入權杖數794* `input_tokens`:輸入權杖數
770* `output_tokens`:輸出權杖數795* `output_tokens`:輸出權杖數
771* `cache_read_tokens`:從快取讀取的權杖數796* `cache_read_tokens`:從快取讀取的權杖數
772* `cache_creation_tokens`:用於快取建立的權杖數797* `cache_creation_tokens`:用於快取建立的權杖數
773* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。798* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。
774* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送;詳見[事件關聯屬性](#event-correlation-attributes)表以了解何時存在。需要 Claude Code v2.1.214 或更新版本799* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本
775* `speed`:`"fast"` 或 `"normal"`,指示是否啟用了快速模式800* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效
776* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理名稱801* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱
777* `effort`:應用於請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。802* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。
778* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 Skill、plugin、代理和 MCP 歸屬。詳見[成本計數器](#cost-counter)以了解定義和編輯行為。803* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的技能、外掛程式、代理程式和 MCP 歸因。請參閱[成本計數器](#cost-counter)以取得定義和編輯行為。
779 804
780<h4 id="api-error-event">805<h4 id="api-error-event">
781 API 錯誤事件806 API 錯誤事件
789 814
790* 所有[標準屬性](#standard-attributes)815* 所有[標準屬性](#standard-attributes)
791* `event.name`:`"api_error"`816* `event.name`:`"api_error"`
792* `event.timestamp`:ISO 8601 時間戳817* `event.timestamp`:ISO 8601 時間戳記
793* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件818* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
794* `model`:使用的模型(例如,"claude-sonnet-5")819* `model`:使用的模型(例如 "claude-sonnet-5")
795* `error`:錯誤訊息820* `error`:錯誤訊息
796* `status_code`:HTTP 狀態碼(數字形式)。對於非 HTTP 錯誤(例如連線失敗),不存在。821* `status_code`:HTTP 狀態碼作為數字。對於非 HTTP 錯誤(例如連線失敗)不存在。
797* `duration_ms`:請求持續時間(毫秒)822* `duration_ms`:請求持續時間(以毫秒為單位)
798* `attempt`:進行的嘗試總次數,包括初始請求(`1` 表示未發生重試)823* `attempt`:進行的嘗試總數,包括初始請求(`1` 表示未發生重試)
799* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。824* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。
800* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。即使失敗(例如逾時或連線錯誤)永遠不會產生伺服器 `request_id`,也可用;詳見[事件關聯屬性](#event-correlation-attributes)表以了解何時存在。需要 Claude Code v2.1.214 或更新版本825* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。即使失敗(例如逾時或連線錯誤)永遠不會產生伺服器 `request_id` 時也可用;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本
801* `speed`:`"fast"` 或 `"normal"`,指示是否啟用了快速模式826* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效
802* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理名稱827* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱
803* `effort`:應用於請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。當模型不支援努力時不存在。828* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。當模型不支援努力時不存在。
804* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 Skill、plugin、代理和 MCP 歸屬。詳見[成本計數器](#cost-counter)以了解定義和編輯行為。829* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的技能、外掛程式、代理程式和 MCP 歸因。請參閱[成本計數器](#cost-counter)以取得定義和編輯行為。
805 830
806<h4 id="api-refusal-event">831<h4 id="api-refusal-event">
807 API 拒絕事件832 API 拒絕事件
808</h4>833</h4>
809 834
810當 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕會在成功的回應串流上到達,而不是作為 HTTP 錯誤,因此 `api_error` 事件不會為它們觸發。此事件可讓您追蹤拒絕頻率並按與 `api_request` 和 `api_error` 相同的屬性分組拒絕。835當 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕到達成功回應串流上,而非作為 HTTP 錯誤,因此 `api_error` 事件不會針對它們觸發。此事件可讓您追蹤拒絕頻率並按與 `api_request` 和 `api_error` 相同的屬性分組拒絕。
811 836
812**事件名稱**:`claude_code.api_refusal`837**事件名稱**:`claude_code.api_refusal`
813 838
815 840
816* 所有[標準屬性](#standard-attributes)841* 所有[標準屬性](#standard-attributes)
817* `event.name`:`"api_refusal"`842* `event.name`:`"api_refusal"`
818* `event.timestamp`:ISO 8601 時間戳843* `event.timestamp`:ISO 8601 時間戳記
819* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件844* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
820* `model`:來自請求的模型識別碼845* `model`:來自請求的模型識別碼
821* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。846* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。
822* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理名稱。詳見[`api_request`](#api-request-event)以了解定義。847* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱。請參閱 [`api_request`](#api-request-event) 以取得定義。
823* `speed`:當[快速模式](/docs/zh-TW/fast-mode)啟用時為 `"fast"`,或 `"normal"`848* `speed`:當[快速模式](/docs/zh-TW/fast-mode)有效時為 `"fast"`,或 `"normal"`
824* `attempt`:重試嘗試編號。第一次嘗試是 `1`。849* `attempt`:重試嘗試編號。第一次嘗試是 `1`。
825* `effort`:應用於請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。當模型不支援努力時不存在。850* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。當模型不支援努力時不存在。
826* `server_fallback_hop`:當 API 的伺服器端模型後備已在不同模型上重試此拒絕時為 `true`,因此使用者沒有看到此特定拒絕。當請求以拒絕結束時為 `false`。單個轉換可以發出 `true` hop 事件和稍後的 `false` 最終事件,當後備模型也拒絕時。851* `server_fallback_hop`:當 API 的伺服器端模型回退已在不同模型上重試此拒絕時為 `true`,因此使用者未看到此特定拒絕。當請求以拒絕結束時為 `false`。單一回合可以發出 `true` 跳躍事件和稍後的 `false` 最終事件,當回退模型也拒絕時。
827* `has_category`:當 API 回應帶有 `stop_details.category` 為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 時為 `true`。當回應沒有類別或值在該集合之外時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為 hop 區塊不帶 `stop_details`。852* `has_category`:當 API 回應攜帶 `stop_details.category` 為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 時為 `true`。當回應未攜帶類別或值在該集合外時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為跳躍區塊不攜帶 `stop_details`。
828* `has_explanation`:當 API 回應帶有 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。853* `has_explanation`:當 API 回應攜帶 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。
829* `category`:來自 API 回應的 `stop_details.category` 值。`"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。僅當設定 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時才存在。854* `category`:來自 API 回應的 `stop_details.category` 值。`"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。僅當設定了 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時才存在。
830* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 Skill、plugin、代理和 MCP 歸屬。詳見[成本計數器](#cost-counter)以了解定義和編輯行為。855* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的技能、外掛程式、代理程式和 MCP 歸因。請參閱[成本計數器](#cost-counter)以取得定義和編輯行為。
831 856
832<h4 id="api-request-body-event">857<h4 id="api-request-body-event">
833 API 請求主體事件858 API 請求本體事件
834</h4>859</h4>
835 860
836當設定 `OTEL_LOG_RAW_API_BODIES` 時,為每個 API 請求嘗試記錄。每次嘗試發出一個事件,因此使用調整參數的重試各自產生自己的事件。861當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個 API 請求嘗試記錄。每次嘗試發出一個事件,因此使用調整參數的重試各自產生自己的事件。
837 862
838**事件名稱**:`claude_code.api_request_body`863**事件名稱**:`claude_code.api_request_body`
839 864
841 866
842* 所有[標準屬性](#standard-attributes)867* 所有[標準屬性](#standard-attributes)
843* `event.name`:`"api_request_body"`868* `event.name`:`"api_request_body"`
844* `event.timestamp`:ISO 8601 時間戳869* `event.timestamp`:ISO 8601 時間戳記
845* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件870* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
846* `body`:JSON 序列化的 Messages API 請求參數,例如系統提示、訊息和工具,在內容限制處截斷(預設 60 KB)。先前助手轉換中的擴展思考內容被編輯。僅在內聯模式下發出(`OTEL_LOG_RAW_API_BODIES=1`)。871* `body`:JSON 序列化的 Messages API 請求參數,例如系統提示、訊息和工具,在內容限制處截斷(預設為 60 KB)。先前助理回合中的擴展思考內容會被編輯。僅在內聯模式下發出(`OTEL_LOG_RAW_API_BODIES=1`)。
847* `body_ref`:包含未截斷主體的 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式下發出(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)。872* `body_ref`:包含未截斷本體的 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式下發出(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)。
848* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,或當 `=1` 時為 UTF-16 程式碼單位873* `body_length`:未截斷的本體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,或當 `=1` 時為 UTF-16 程式碼單位
849* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下和未發生截斷時不存在。874* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下不存在,未發生截斷時不存在。
850* `model`:來自請求參數的模型識別碼875* `model`:來自請求參數的模型識別碼
851* `query_source`:發出請求的子系統(例如,`"compact"`)876* `query_source`:發出請求的子系統(例如 `"compact"`)
852 877
853<h4 id="api-response-body-event">878<h4 id="api-response-body-event">
854 API 回應主體事件879 API 回應本體事件
855</h4>880</h4>
856 881
857當設定 `OTEL_LOG_RAW_API_BODIES` 時,為每個成功的 API 回應記錄。882當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個成功的 API 回應記錄。
858 883
859**事件名稱**:`claude_code.api_response_body`884**事件名稱**:`claude_code.api_response_body`
860 885
862 887
863* 所有[標準屬性](#standard-attributes)888* 所有[標準屬性](#standard-attributes)
864* `event.name`:`"api_response_body"`889* `event.name`:`"api_response_body"`
865* `event.timestamp`:ISO 8601 時間戳890* `event.timestamp`:ISO 8601 時間戳記
866* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件891* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
867* `body`:JSON 序列化的 Messages API 回應,包括 id、內容區塊、使用情況和停止原因,在內容限制處截斷(預設 60 KB)。擴展思考內容被編輯。僅在內聯模式下發出(`OTEL_LOG_RAW_API_BODIES=1`)。892* `body`:JSON 序列化的 Messages API 回應,包括 id、內容區塊、使用情況和停止原因,在內容限制處截斷(預設為 60 KB)。擴展思考內容會被編輯。僅在內聯模式下發出(`OTEL_LOG_RAW_API_BODIES=1`)。
868* `body_ref`:包含未截斷主體的 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式下發出(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)。893* `body_ref`:包含未截斷本體的 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式下發出(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)。
869* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,或當 `=1` 時為 UTF-16 程式碼單位894* `body_length`:未截斷的本體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,或當 `=1` 時為 UTF-16 程式碼單位
870* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下和未發生截斷時不存在。895* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下不存在,未發生截斷時不存在。
871* `model`:模型識別碼896* `model`:模型識別碼
872* `query_source`:發出請求的子系統897* `query_source`:發出請求的子系統
873* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。898* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。
876 工具決定事件901 工具決定事件
877</h4>902</h4>
878 903
879當做出工具權限決定(接受/拒絕)時記錄。904當進行工具權限決定(接受/拒絕)時記錄。
880 905
881**事件名稱**:`claude_code.tool_decision`906**事件名稱**:`claude_code.tool_decision`
882 907
884 909
885* 所有[標準屬性](#standard-attributes)910* 所有[標準屬性](#standard-attributes)
886* `event.name`:`"tool_decision"`911* `event.name`:`"tool_decision"`
887* `event.timestamp`:ISO 8601 時間戳912* `event.timestamp`:ISO 8601 時間戳記
888* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件913* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
889* `tool_name`:工具的名稱(例如,"Read"、"Edit"、"Write"、"NotebookEdit")914* `tool_name`:工具的名稱(例如 "Read"、"Edit"、"Write"、"NotebookEdit")
890* `tool_use_id`:此工具叫用的唯一識別碼。符合傳遞給 hooks 的 `tool_use_id`,允許 OTel 事件和 hook 擷取資料之間的關聯。915* `tool_use_id`:此工具叫用的唯一識別碼。與傳遞給鉤子的 `tool_use_id` 相符,允許 OTel 事件和鉤子擷取資料之間的關聯。
891* `decision`:`"accept"` 或 `"reject"`916* `decision`:`"accept"` 或 `"reject"`
892* `tool_source`:始終存在。工具的來源,作為 CLI 撰寫值的封閉集合。需要 Claude Code v2.1.214 或更新版本917* `tool_source`:一律存在。工具的來源,作為 CLI 撰寫值的封閉集合。需要 Claude Code v2.1.214 或更新版本
893 * `"builtin"`:CLI 自己的工具918 * `"builtin"`:CLI 自己的工具
894 * `"mcp"`:MCP 伺服器通常919 * `"mcp"`:一般 MCP 伺服器
895 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的進程內伺服器,在 Claude Desktop 擁有的工作階段中。Claude Desktop 擁有它從其自己的進入點之一啟動的工作階段,`claude-desktop`、`claude-desktop-3p` 或 `local-agent`,當該工作階段不是嵌套子項時;嵌套工作階段,包括 Claude Code 本身衍生的工作階段,將這些伺服器報告為 `"mcp"`920 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的進程內伺服器,在 Claude Desktop 擁有的工作階段中。Claude Desktop 擁有它從自己的其中一個進入點 `claude-desktop`、`claude-desktop-3p` 或 `local-agent` 啟動的工作階段,當該工作階段不是嵌套子項時;嵌套工作階段(包括 Claude Code 本身產生的工作階段)將這些伺服器報告為 `"mcp"`
896* `source`:決定來源:921* `source`:決定的來源:
897 * `"config"`:根據專案設定、使用者個人設定中的允許或拒絕規則、企業受管原則、`--allowedTools` 或 `--disallowedTools` 旗標、活躍權限模式、來自同一互動 CLI 工作階段中較早提示的工作階段範圍授予或因為工具本身是安全的,自動決定而不提示。該事件不指示這些來源中的哪一個相符。Claude Code 也在權限提示請求本身失敗時報告 `"config"`,例如當 Agent SDK 的 [`canUseTool`](/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果時,或當輸入串流在請求待處理時關閉時。在 v2.1.216 之前,Claude Code 將這些失敗報告為 `"user_reject"`。922 * `"config"`:自動決定,無需提示,基於專案設定、使用者個人設定中的允許或拒絕規則、企業受管原則、`--allowedTools` 或 `--disallowedTools` 旗標、有效的權限模式、來自同一互動 CLI 工作階段中較早提示的工作階段範圍授予,或因為工具本質上是安全的。事件不指示這些來源中的哪一個相符。Claude Code 也會在權限提示請求本身失敗時報告 `"config"`,例如當代理程式 SDK 的 [`canUseTool`](/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果時,或當輸入串流在請求待處理時關閉時。在 v2.1.216 之前,Claude Code 將這些失敗報告為 `"user_reject"`。
898 * `"hook"`:`PreToolUse` 或 `PermissionRequest` hook 傳回了決定。923 * `"hook"`:`PreToolUse` 或 `PermissionRequest` 鉤子傳回決定。
899 * `"user_permanent"`:當使用者在權限提示時選擇「是,且不再詢問...」時發出,將允許規則儲存到其個人設定。在互動 CLI 中,僅針對該選擇本身發出;稍後符合儲存規則的呼叫發出 `"config"` 代替。在 Agent SDK 或非互動 `-p` 工作階段中,初始選擇和稍後的規則相符都發出 `"user_permanent"`。視為接受。924 * `"user_permanent"`:當使用者在權限提示中選擇「是,不要再問...」時發出,這會將允許規則儲存到其個人設定。在互動 CLI 中,這僅針對該選擇本身發出;稍後與儲存規則相符的呼叫發出 `"config"`。在代理程式 SDK 或非互動 `-p` 工作階段中,初始選擇和稍後的規則相符都發出 `"user_permanent"`。視為接受。
900 * `"user_temporary"`:當使用者在權限提示時選擇「是」或在檔案編輯或讀取提示時選擇授予工作階段其餘部分存取權的選項時發出。在互動 CLI 中,僅針對選擇本身發出;稍後由該工作階段範圍授予允許的呼叫發出 `"config"` 代替。在 Agent SDK 或非互動 `-p` 工作階段中,選擇和稍後的相符都發出 `"user_temporary"`。視為接受。925 * `"user_temporary"`:當使用者在權限提示中選擇「是」進行一次性核准時發出,或在檔案編輯或讀取提示上選擇授予工作階段其餘部分存取權限的選項時發出。在互動 CLI 中,這僅針對選擇本身發出;稍後由該工作階段範圍授予允許的呼叫發出 `"config"`。在代理程式 SDK 或非互動 `-p` 工作階段中,選擇和稍後的相符都發出 `"user_temporary"`。視為接受。
901 * `"user_abort"`:當使用者關閉權限提示而不回答時發出。在 Agent SDK 和非互動 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求待處理時中斷轉換;在 v2.1.216 之前,Claude Code 將該中斷報告為 `"user_reject"`。視為拒絕。926 * `"user_abort"`:當使用者在未回答的情況下關閉權限提示時發出。在代理程式 SDK 和非互動 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求待處理時中斷回合;在 v2.1.216 之前,Claude Code 將該中斷報告為 `"user_reject"`。視為拒絕。
902 * `"user_reject"`:當使用者選擇「否」時發出。在互動 CLI 中,僅針對該選擇本身發出;符合使用者個人設定中拒絕規則的呼叫發出 `"config"` 代替。在 Agent SDK 或非互動 `-p` 工作階段中,符合個人設定中拒絕規則的呼叫發出 `"user_reject"`。視為拒絕。927 * `"user_reject"`:當使用者在提示時選擇「否」時發出。在互動 CLI 中,這僅針對該選擇本身發出;與使用者個人設定中的拒絕規則相符的呼叫發出 `"config"`。在代理程式 SDK 或非互動 `-p` 工作階段中,與個人設定中的拒絕規則相符的呼叫發出 `"user_reject"`。視為拒絕。
903* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。形狀與[工具結果事件](#tool-result-event)相同,除了執行後欄位(例如 `git_commit_id`)。如果權限決定透過 `updatedInput` 重寫工具輸入,值可能與接受呼叫的 `tool_result` 不同。使用此屬性查看當 `decision` 為 `"reject"` 時拒絕了哪個命令。928* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。與[工具結果事件](#tool-result-event)相同的形狀,減去執行後欄位,例如 `git_commit_id`。對於接受的呼叫,如果權限決定透過 `updatedInput` 重寫工具輸入,值可能與 `tool_result` 不同。使用此屬性查看當 `decision` 為 `"reject"` 時拒絕了哪個命令。
904 * 對於 `"sdk_host_builtin_mcp"` 工具:`mcp_server_name` 和 `mcp_tool_name` 即使旗標關閉時也包含,因為主機應用程式定義這些名稱;沒有它們,對這些內建伺服器之一的拒絕呼叫在預設串流上將無法歸屬。對於使用者配置的 MCP 伺服器,事件的 `tool_name` 始終是字面 `"mcp_tool"`,伺服器和工具名稱僅在旗標開啟時出現在 `tool_parameters` 中;引數內容在任何地方都需要旗標。需要 Claude Code v2.1.214 或更新版本929 * 對於 `"sdk_host_builtin_mcp"` 工具:即使關閉 `OTEL_LOG_TOOL_DETAILS`,也會包含 `mcp_server_name` 和 `mcp_tool_name`,因為主應用程式定義這些名稱;沒有它們,對這些內建伺服器之一的拒絕呼叫在預設串流上將無法歸因。對於使用者設定的 MCP 伺服器,事件的 `tool_name` 一律是字面 `"mcp_tool"`,伺服器和工具名稱僅在啟用旗標時出現在 `tool_parameters` 中;引數內容在任何地方都需要旗標。需要 Claude Code v2.1.214 或更新版本
905 * 對於 Bash 工具:包括 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具也將 `tool_name` 報告為 `Bash`,但僅包括 `bash_command`、`full_command` 和 `timeout`930 * 對於 Bash 工具:包括 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具也將 `tool_name` 報告為 `Bash`,但僅包括 `bash_command`、`full_command` 和 `timeout`
906 * 對於 MCP 工具:包括 `mcp_server_name`、`mcp_tool_name`931 * 對於 MCP 工具:包括 `mcp_server_name`、`mcp_tool_name`
907 * 對於 Skill 工具:包括 `skill_name`932 * 對於技能工具:包括 `skill_name`
908 * 對於 Agent 工具或舊版 Task 工具:包括 `subagent_type`933 * 對於代理程式工具或舊版工作工具:包括 `subagent_type`
909 934
910<h4 id="permission-mode-changed-event">935<h4 id="permission-mode-changed-event">
911 權限模式變更事件936 權限模式變更事件
919 944
920* 所有[標準屬性](#standard-attributes)945* 所有[標準屬性](#standard-attributes)
921* `event.name`:`"permission_mode_changed"`946* `event.name`:`"permission_mode_changed"`
922* `event.timestamp`:ISO 8601 時間戳947* `event.timestamp`:ISO 8601 時間戳記
923* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件948* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
924* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`949* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`
925* `to_mode`:新的權限模式950* `to_mode`:新的權限模式
926* `trigger`:導致變更的原因。`"shift_tab"`、`"exit_plan_mode"`、`"auto_gate_denied"` 或 `"auto_opt_in"` 之一。當轉換來自 SDK 或橋接時不存在。951* `trigger`:導致變更的原因。`"shift_tab"`、`"exit_plan_mode"`、`"auto_gate_denied"` 或 `"auto_opt_in"` 之一。當轉換源自 SDK 或橋接時不存在。
927 952
928<h4 id="auth-event">953<h4 id="auth-event">
929 身份驗證事件954 驗證事件
930</h4>955</h4>
931 956
932當 `/login` 或 `/logout` 完成時記錄。957當 `/login` 或 `/logout` 完成時記錄。
937 962
938* 所有[標準屬性](#standard-attributes)963* 所有[標準屬性](#standard-attributes)
939* `event.name`:`"auth"`964* `event.name`:`"auth"`
940* `event.timestamp`:ISO 8601 時間戳965* `event.timestamp`:ISO 8601 時間戳記
941* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件966* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
942* `action`:`"login"` 或 `"logout"`967* `action`:`"login"` 或 `"logout"`
943* `success`:`"true"` 或 `"false"`968* `success`:`"true"` 或 `"false"`
944* `auth_method`:身份驗證方法,例如 `"oauth"`969* `auth_method`:驗證方法,例如 `"oauth"`
945* `error_category`:操作失敗時的分類錯誤類型。永遠不包括原始錯誤訊息970* `error_category`:當動作失敗時的分類錯誤類型。永遠不包含原始錯誤訊息
946* `status_code`:操作因 HTTP 錯誤而失敗時的 HTTP 狀態碼(字串形式)971* `status_code`:當動作因 HTTP 錯誤而失敗時的 HTTP 狀態碼作為字串
947 972
948<h4 id="mcp-server-connection-event">973<h4 id="mcp-server-connection-event">
949 MCP 伺服器連線事件974 MCP 伺服器連線事件
957 982
958* 所有[標準屬性](#standard-attributes)983* 所有[標準屬性](#standard-attributes)
959* `event.name`:`"mcp_server_connection"`984* `event.name`:`"mcp_server_connection"`
960* `event.timestamp`:ISO 8601 時間戳985* `event.timestamp`:ISO 8601 時間戳記
961* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件986* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
962* `status`:`"connected"`、`"failed"` 或 `"disconnected"`987* `status`:`"connected"`、`"failed"` 或 `"disconnected"`
963* `transport_type`:伺服器傳輸,例如 `"stdio"`、`"sse"` 或 `"http"`988* `transport_type`:伺服器傳輸,例如 `"stdio"`、`"sse"` 或 `"http"`
964* `server_scope`:伺服器配置的範圍,例如 `"user"`、`"project"` 或 `"local"`989* `server_scope`:伺服器設定的範圍,例如 `"user"`、`"project"` 或 `"local"`
965* `duration_ms`:連線嘗試持續時間(毫秒)990* `duration_ms`:連線嘗試持續時間(以毫秒為單位)
966* `error_code`:連線失敗時的錯誤碼991* `error_code`:連線失敗時的錯誤碼
967* `is_plugin`:當伺服器由 plugin 提供時為 `true`,否則為 `false`992* `is_plugin`:當伺服器由外掛程式提供時為 `true`,否則為 `false`
968* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):plugin 名稱和市場的穩定雜湊,用於按 plugin 分組事件而不暴露名稱。Claude Code 按[plugin 已載入事件](#plugin-loaded-event)下所述計算它993* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):外掛程式名稱和市場的穩定雜湊,用於按外掛程式分組事件而不暴露名稱。Claude Code 按[外掛程式載入事件](#plugin-loaded-event)下所述計算它
969* `plugin.name`(當 `is_plugin` 為 `true` 時):提供伺服器的 plugin 名稱。對於第三方 plugin,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則這是字面字串 `"third-party"`;這可保護第三方 plugin 名稱預設不出現在日誌中。來自官方 Anthropic 來源的 Plugin 始終按名稱識別。`plugin_id_hash` 和 `plugin.name` 屬性流向您自己的監控後端,不會傳送給 Anthropic994* `plugin.name`(當 `is_plugin` 為 `true` 時):提供伺服器的外掛程式的名稱。對於第三方外掛程式,此值是字面字串 `"third-party"`,除非 `OTEL_LOG_TOOL_DETAILS=1`;這可保護第三方外掛程式名稱預設不出現在日誌中。來自官方 Anthropic 來源的外掛程式一律按名稱識別。`plugin_id_hash` 和 `plugin.name` 屬性流向您自己的監控後端,不會傳送給 Anthropic
970* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):配置的伺服器名稱995* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):設定的伺服器名稱
971* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息996* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息
972 997
973<h4 id="internal-error-event">998<h4 id="internal-error-event">
974 內部錯誤事件999 內部錯誤事件
975</h4>1000</h4>
976 1001
977當 Claude Code 捕捉到意外的內部錯誤時記錄。僅記錄錯誤類別名稱和 errno 樣式碼。永遠不包括錯誤訊息和堆疊追蹤。當針對 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 執行或設定 `DISABLE_ERROR_REPORTING` 時,不會發出此事件。1002當 Claude Code 捕捉到意外的內部錯誤時記錄。僅記錄錯誤類別名稱和 errno 樣式碼。永遠不包含錯誤訊息和堆疊追蹤。針對 Amazon Bedrock、Google Cloud 的代理程式平台或 Microsoft Foundry 執行時,或設定了 `DISABLE_ERROR_REPORTING` 時,不發出此事件。
978 1003
979**事件名稱**:`claude_code.internal_error`1004**事件名稱**:`claude_code.internal_error`
980 1005
982 1007
983* 所有[標準屬性](#standard-attributes)1008* 所有[標準屬性](#standard-attributes)
984* `event.name`:`"internal_error"`1009* `event.name`:`"internal_error"`
985* `event.timestamp`:ISO 8601 時間戳1010* `event.timestamp`:ISO 8601 時間戳記
986* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1011* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
987* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`1012* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`
988* `error_code`:Node.js errno 碼,例如 `"ENOENT"`(如果存在於錯誤上)1013* `error_code`:Node.js errno 碼,例如錯誤上存在時的 `"ENOENT"`
989 1014
990<h4 id="plugin-installed-event">1015<h4 id="plugin-installed-event">
991 Plugin 已安裝事件1016 外掛程式已安裝事件
992</h4>1017</h4>
993 1018
994當 plugin 完成安裝時記錄,來自 `claude plugin install` CLI 命令和互動式 `/plugin` UI。1019當外掛程式完成安裝時記錄,來自 `claude plugin install` CLI 命令和互動 `/plugin` UI。
995 1020
996**事件名稱**:`claude_code.plugin_installed`1021**事件名稱**:`claude_code.plugin_installed`
997 1022
999 1024
1000* 所有[標準屬性](#standard-attributes)1025* 所有[標準屬性](#standard-attributes)
1001* `event.name`:`"plugin_installed"`1026* `event.name`:`"plugin_installed"`
1002* `event.timestamp`:ISO 8601 時間戳1027* `event.timestamp`:ISO 8601 時間戳記
1003* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1028* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1004* `marketplace.is_official`:如果市場是官方 Anthropic 市場,則為 `"true"`,否則為 `"false"`1029* `marketplace.is_official`:如果市場是官方 Anthropic 市場則為 `"true"`,否則為 `"false"`
1005* `install.trigger`:`"cli"` 或 `"ui"`1030* `install.trigger`:`"cli"` 或 `"ui"`
1006* `plugin.name`:已安裝 plugin 的名稱。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含1031* `plugin.name`:已安裝外掛程式的名稱。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含
1007* `plugin.version`:Plugin 版本(如果在市場條目中宣告)。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含1032* `plugin.version`:在市場項目中宣告時的外掛程式版本。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含
1008* `marketplace.name`:安裝 plugin 的市場。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含1033* `marketplace.name`:外掛程式的安裝來源市場。對於第三方市場,僅當 `OTEL_LOG_TOOL_DETAILS=1` 時才包含
1009 1034
1010<h4 id="plugin-loaded-event">1035<h4 id="plugin-loaded-event">
1011 Plugin 已載入事件1036 外掛程式已載入事件
1012</h4>1037</h4>
1013 1038
1014在工作階段開始時為每個啟用的 plugin 記錄一次。使用此事件來清點您的整個環境中哪些 plugin 是活躍的,作為記錄安裝動作本身的 `plugin_installed` 的補充。1039在工作階段開始時針對每個啟用的外掛程式記錄一次。使用此事件來清點您的整個車隊中哪些外掛程式有效,作為記錄安裝動作本身的 `plugin_installed` 的補充。
1015 1040
1016**事件名稱**:`claude_code.plugin_loaded`1041**事件名稱**:`claude_code.plugin_loaded`
1017 1042
1019 1044
1020* 所有[標準屬性](#standard-attributes)1045* 所有[標準屬性](#standard-attributes)
1021* `event.name`:`"plugin_loaded"`1046* `event.name`:`"plugin_loaded"`
1022* `event.timestamp`:ISO 8601 時間戳1047* `event.timestamp`:ISO 8601 時間戳記
1023* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1048* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1024* `plugin.name`:plugin 的名稱。對於官方市場和內建捆綁之外的 plugin,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`1049* `plugin.name`:外掛程式的名稱。對於官方市場和內建捆綁之外的外掛程式,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`
1025* `marketplace.name`:plugin 的安裝市場(如果已知)。在與 `plugin.name` 相同的條件下編輯為 `"third-party"`1050* `marketplace.name`:外掛程式的安裝來源市場(已知時)。在與 `plugin.name` 相同的條件下編輯為 `"third-party"`
1026* `plugin.version`:來自 plugin 清單的版本。僅當名稱未被編輯且清單宣告版本時才包含1051* `plugin.version`:來自外掛程式資訊清單的版本。僅當名稱未編輯且資訊清單宣告版本時才包含
1027* `plugin.scope`:plugin 的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`1052* `plugin.scope`:外掛程式的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`
1028* `enabled_via`:plugin 如何被啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。值 `"admin-install"` 表示 plugin 在[**組織設定 > Plugins**](https://claude.ai/admin-settings/plugins)中為您的組織設定為必需或自動安裝。在 v2.1.246 之前,Claude Code 將這些 plugin 報告為 `"user-install"` 或 `"seed-mount"`1053* `enabled_via`:外掛程式啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。`"admin-install"` 值表示外掛程式在[**組織設定 > 外掛程式**](https://claude.ai/admin-settings/plugins)中設定為您的組織所需或自動安裝。在 v2.1.246 之前,Claude Code 將這些外掛程式報告為 `"user-install"` 或 `"seed-mount"`
1029* `plugin_id_hash`:plugin 名稱和市場的確定性雜湊,僅傳送到您配置的匯出器。讓您計算整個環境中載入了多少個不同的第三方 plugin,而無需記錄其名稱。對於[從 claude.ai 同步的 plugin](/docs/zh-TW/plugins-reference#synced-plugins),Claude Code 使用 claude.ai 為 plugin 報告的市場名稱或 `synced` 否則對 plugin 名稱進行雜湊。在 v2.1.246 之前,Claude Code 在雜湊中沒有使用 claude.ai 報告的市場名稱1054* `plugin_id_hash`:外掛程式名稱和市場的確定性雜湊,僅傳送到您設定的匯出器。可讓您計算整個車隊中載入的不同第三方外掛程式,而無需記錄其名稱。對於[從 claude.ai 同步的外掛程式](/docs/zh-TW/plugins-reference#synced-plugins),Claude Code 使用 claude.ai 為外掛程式報告的市場名稱或 `synced` 雜湊外掛程式名稱。在 v2.1.246 之前,Claude Code 在雜湊中未使用 claude.ai 報告的市場名稱
1030* `has_hooks`:plugin 是否貢獻 hooks1055* `has_hooks`:外掛程式是否貢獻鉤子
1031* `has_mcp`:plugin 是否貢獻 MCP 伺服器1056* `has_mcp`:外掛程式是否貢獻 MCP 伺服器
1032* `host_owned_mcp`:當 SDK 主機管理此 plugin 的 MCP 連線且 Claude Code 跳過讀取 plugin 的 MCP 伺服器配置時為 `true`,否則為 `false`。需要 Claude Code v2.1.172 或更新版本1057* `host_owned_mcp`:當 SDK 主機管理此外掛程式的 MCP 連線且 Claude Code 跳過讀取外掛程式的 MCP 伺服器設定時為 `true`,否則為 `false`。需要 Claude Code v2.1.172 或更新版本
1033* `skill_path_count`:plugin 宣告的 skill 目錄數1058* `skill_path_count`:外掛程式宣告的技能目錄數
1034* `command_path_count`:plugin 宣告的命令目錄數1059* `command_path_count`:外掛程式宣告的命令目錄數
1035* `agent_path_count`:plugin 宣告的代理目錄數1060* `agent_path_count`:外掛程式宣告的代理程式目錄數
1036* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式下,此事件僅報告配置的清單;plugin 的命令、skill、hooks 和 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本1061* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式中,此事件僅報告設定的清單;外掛程式的命令、技能、鉤子和 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本
1037 1062
1038<h4 id="skill-activated-event">1063<h4 id="skill-activated-event">
1039 Skill 已啟動事件1064 技能已啟動事件
1040</h4>1065</h4>
1041 1066
1042當叫用 skill 時記錄,無論 Claude 是透過 Skill 工具呼叫它,還是您將其作為 `/` 命令執行。1067當叫用技能時記錄,無論 Claude 是透過技能工具呼叫它還是您將其作為 `/` 命令執行。
1043 1068
1044**事件名稱**:`claude_code.skill_activated`1069**事件名稱**:`claude_code.skill_activated`
1045 1070
1047 1072
1048* 所有[標準屬性](#standard-attributes)1073* 所有[標準屬性](#standard-attributes)
1049* `event.name`:`"skill_activated"`1074* `event.name`:`"skill_activated"`
1050* `event.timestamp`:ISO 8601 時間戳1075* `event.timestamp`:ISO 8601 時間戳記
1051* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1076* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1052* `skill.name`:Skill 的名稱。對於使用者定義和第三方 plugin skill,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為預留位置 `"custom_skill"`1077* `skill.name`:技能的名稱。對於使用者定義和第三方外掛程式技能,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為佔位符 `"custom_skill"`
1053* `invocation_trigger`:Skill 的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)1078* `invocation_trigger`:技能的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)
1054* `skill.source`:Skill 的載入位置(例如,`"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)1079* `skill.source`:技能的載入來源(例如 `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)
1055* `skill.kind`:當 skill 是工作流程 skill 時為 `"workflow"`。否則不存在1080* `skill.kind`:當技能是工作流程技能時為 `"workflow"`。否則不存在
1056* `plugin.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或 plugin 來自官方市場時):當 skill 由 plugin 提供時的擁有 plugin 名稱1081* `plugin.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛程式來自官方市場時):當技能由外掛程式提供時的擁有外掛程式的名稱
1057* `marketplace.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或 plugin 來自官方市場時):當 skill 由 plugin 提供時,擁有 plugin 的安裝市場1082* `marketplace.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛程式來自官方市場時):當技能由外掛程式提供時,擁有外掛程式的安裝來源市場
1058 1083
1059<h4 id="at-mention-event">1084<h4 id="at-mention-event">
1060 @ 提及事件1085 @ 提及事件
1061</h4>1086</h4>
1062 1087
1063當 Claude Code 解析提示中的 `@` 提及時記錄。並非每個提及都會發出事件:早期退出路徑(例如權限拒絕、超大檔案、PDF 參考附件和目錄列表失敗)會在不記錄的情況下返回。1088當 Claude Code 解析提示中的 `@` 提及時記錄。並非每個提及都發出事件:早期退出路徑,例如權限拒絕、超大檔案、PDF 參考附件和目錄列表失敗,會在不記錄的情況下傳回。
1064 1089
1065**事件名稱**:`claude_code.at_mention`1090**事件名稱**:`claude_code.at_mention`
1066 1091
1068 1093
1069* 所有[標準屬性](#standard-attributes)1094* 所有[標準屬性](#standard-attributes)
1070* `event.name`:`"at_mention"`1095* `event.name`:`"at_mention"`
1071* `event.timestamp`:ISO 8601 時間戳1096* `event.timestamp`:ISO 8601 時間戳記
1072* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1097* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1073* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。值 `"peer"` 表示您提及了[您的其他 Claude Code 工作階段之一](/docs/zh-TW/cross-session-messaging)。需要 Claude Code v2.1.232 或更新版本1098* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。`"peer"` 值表示您提及了[您的其他 Claude Code 工作階段之一](/docs/zh-TW/cross-session-messaging)。需要 Claude Code v2.1.232 或更新版本
1074* `success`:提及是否成功解析(`"true"` 或 `"false"`)1099* `success`:提及是否成功解析(`"true"` 或 `"false"`)
1075 1100
1076<h4 id="api-retries-exhausted-event">1101<h4 id="api-retries-exhausted-event">
1085 1110
1086* 所有[標準屬性](#standard-attributes)1111* 所有[標準屬性](#standard-attributes)
1087* `event.name`:`"api_retries_exhausted"`1112* `event.name`:`"api_retries_exhausted"`
1088* `event.timestamp`:ISO 8601 時間戳1113* `event.timestamp`:ISO 8601 時間戳記
1089* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1114* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1090* `model`:使用的模型1115* `model`:使用的模型
1091* `error`:最終錯誤訊息1116* `error`:最終錯誤訊息
1092* `status_code`:HTTP 狀態碼(數字形式)。對於非 HTTP 錯誤,不存在。1117* `status_code`:HTTP 狀態碼作為數字。對於非 HTTP 錯誤不存在。
1093* `total_attempts`:進行的嘗試總次數1118* `total_attempts`:進行的嘗試總數
1094* `total_retry_duration_ms`:所有嘗試的總牆上時間1119* `total_retry_duration_ms`:所有嘗試的總掛鐘時間
1095* `speed`:`"fast"` 或 `"normal"`1120* `speed`:`"fast"` 或 `"normal"`
1096 1121
1097<h4 id="hook-registered-event">1122<h4 id="hook-registered-event">
1098 Hook 已註冊事件1123 鉤子已註冊事件
1099</h4>1124</h4>
1100 1125
1101在工作階段開始時為每個配置的 hook 記錄一次。使用此事件來清點您的整個環境中哪些 hook 是活躍的,作為每次執行 `hook_execution_start` 和 `hook_execution_complete` 事件的補充。1126在工作階段開始時針對每個設定的鉤子記錄一次。使用此事件來清點您的整個車隊中哪些鉤子有效,作為每次執行 `hook_execution_start` 和 `hook_execution_complete` 事件的補充。
1102 1127
1103**事件名稱**:`claude_code.hook_registered`1128**事件名稱**:`claude_code.hook_registered`
1104 1129
1106 1131
1107* 所有[標準屬性](#standard-attributes)1132* 所有[標準屬性](#standard-attributes)
1108* `event.name`:`"hook_registered"`1133* `event.name`:`"hook_registered"`
1109* `event.timestamp`:ISO 8601 時間戳1134* `event.timestamp`:ISO 8601 時間戳記
1110* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1135* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1111* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1136* `hook_event`:鉤子事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`
1112* `hook_type`:hook 實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`1137* `hook_type`:鉤子實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`
1113* `hook_source`:hook 的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`1138* `hook_source`:鉤子的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`
1114* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1139* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1115* `hook_matcher`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):hook 配置中的匹配器字串(如果已設定)1140* `hook_matcher`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):鉤子設定中的匹配器字串(已設定時)
1116* `plugin.name`(當 `hook_source` 是 `"pluginHook"` 時):貢獻 plugin 的名稱。對於官方市場和內建捆綁之外的 plugin,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`1141* `plugin.name`(當 `hook_source` 為 `"pluginHook"` 時):貢獻外掛程式的名稱。對於官方市場和內建捆綁之外的外掛程式,除非 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`
1117* `plugin_id_hash`(當 `hook_source` 是 `"pluginHook"` 時):plugin 名稱和市場的確定性雜湊,僅傳送到您配置的匯出器。讓您計算不同的貢獻 plugin,而無需記錄其名稱。Claude Code 按[plugin 已載入事件](#plugin-loaded-event)下所述計算它1142* `plugin_id_hash`(當 `hook_source` 為 `"pluginHook"` 時):外掛程式名稱和市場的確定性雜湊,僅傳送到您設定的匯出器。可讓您計算不同的貢獻外掛程式而無需記錄其名稱。Claude Code 按[外掛程式載入事件](#plugin-loaded-event)下所述計算它
1118 1143
1119<h4 id="hook-execution-start-event">1144<h4 id="hook-execution-start-event">
1120 Hook 執行開始事件1145 鉤子執行開始事件
1121</h4>1146</h4>
1122 1147
1123當一個或多個 hook 開始為 hook 事件執行時記錄。1148當一個或多個鉤子開始針對鉤子事件執行時記錄。
1124 1149
1125**事件名稱**:`claude_code.hook_execution_start`1150**事件名稱**:`claude_code.hook_execution_start`
1126 1151
1128 1153
1129* 所有[標準屬性](#standard-attributes)1154* 所有[標準屬性](#standard-attributes)
1130* `event.name`:`"hook_execution_start"`1155* `event.name`:`"hook_execution_start"`
1131* `event.timestamp`:ISO 8601 時間戳1156* `event.timestamp`:ISO 8601 時間戳記
1132* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1157* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1133* `hook_event`:Hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1158* `hook_event`:鉤子事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`
1134* `hook_name`:完整 hook 名稱,包括匹配器,例如 `"PreToolUse:Write"`1159* `hook_name`:完整鉤子名稱,包括匹配器,例如 `"PreToolUse:Write"`
1135* `num_hooks`:匹配 hook 命令的數量1160* `num_hooks`:相符鉤子命令的數量
1136* `managed_only`:當僅允許受管原則 hook 時為 `"true"`1161* `managed_only`:當僅允許受管原則鉤子時為 `"true"`
1137* `hook_source`:`"policySettings"` 或 `"merged"`1162* `hook_source`:`"policySettings"` 或 `"merged"`
1138* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1163* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1139* `hook_definitions`:JSON 序列化的 hook 配置。僅當詳細 beta 追蹤和 `OTEL_LOG_TOOL_DETAILS=1` 都啟用時才包含1164* `hook_definitions`:JSON 序列化的鉤子設定。僅當啟用詳細 Beta 追蹤和 `OTEL_LOG_TOOL_DETAILS=1` 時才包含
1140 1165
1141<h4 id="hook-execution-complete-event">1166<h4 id="hook-execution-complete-event">
1142 Hook 執行完成事件1167 鉤子執行完成事件
1143</h4>1168</h4>
1144 1169
1145當 hook 事件的所有 hook 完成時記錄。1170當鉤子事件的所有鉤子完成時記錄。
1146 1171
1147**事件名稱**:`claude_code.hook_execution_complete`1172**事件名稱**:`claude_code.hook_execution_complete`
1148 1173
1150 1175
1151* 所有[標準屬性](#standard-attributes)1176* 所有[標準屬性](#standard-attributes)
1152* `event.name`:`"hook_execution_complete"`1177* `event.name`:`"hook_execution_complete"`
1153* `event.timestamp`:ISO 8601 時間戳1178* `event.timestamp`:ISO 8601 時間戳記
1154* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1179* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1155* `hook_event`:Hook 事件類型1180* `hook_event`:鉤子事件類型
1156* `hook_name`:完整 hook 名稱,包括匹配器1181* `hook_name`:完整鉤子名稱,包括匹配器
1157* `num_hooks`:匹配 hook 命令的數量1182* `num_hooks`:相符鉤子命令的數量
1158* `num_success`:成功完成的計數1183* `num_success`:成功完成的計數
1159* `num_blocking`:傳回阻止決定的計數1184* `num_blocking`:傳回阻止決定的計數
1160* `num_non_blocking_error`:在不阻止的情況下失敗的計數1185* `num_non_blocking_error`:在不阻止的情況下失敗的計數
1161* `num_cancelled`:在完成前取消的計數1186* `num_cancelled`:在完成前取消的計數
1162* `total_duration_ms`:所有匹配 hook 的牆上時間持續時間1187* `total_duration_ms`:所有相符鉤子的掛鐘持續時間
1163* `managed_only`:當僅允許受管原則 hook 時為 `"true"`1188* `managed_only`:當僅允許受管原則鉤子時為 `"true"`
1164* `hook_source`:`"policySettings"` 或 `"merged"`1189* `hook_source`:`"policySettings"` 或 `"merged"`
1165* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1190* `safe_mode`:當工作階段以 [`--safe-mode`](/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本
1166* `hook_definitions`:JSON 序列化的 hook 配置。僅當詳細 beta 追蹤和 `OTEL_LOG_TOOL_DETAILS=1` 都啟用時才包含1191* `hook_definitions`:JSON 序列化的鉤子設定。僅當啟用詳細 Beta 追蹤和 `OTEL_LOG_TOOL_DETAILS=1` 時才包含
1167 1192
1168<h4 id="hook-plugin-metrics-event">1193<h4 id="hook-plugin-metrics-event">
1169 Hook plugin 指標事件1194 鉤子外掛程式指標事件
1170</h4>1195</h4>
1171 1196
1172當官方市場 plugin hook 發出每次叫用指標時記錄。僅從官方 Anthropic 市場安裝的 plugin 可以發出這些。第三方市場 plugin 和使用者配置的 hook 不會發出到此事件。使用此事件從您自己的可觀測性堆疊監控 plugin 行為,例如尋找速率、成本和持續時間。1197當官方市場外掛程式鉤子發出每次叫用指標時記錄。僅從官方 Anthropic 市場安裝的外掛程式可以發出這些。第三方市場外掛程式和使用者設定的鉤子不會發出到此事件。使用此事件從您自己的可觀測性堆疊監控外掛程式行為,例如尋找率、成本和持續時間。
1173 1198
1174**事件名稱**:`claude_code.hook_plugin_metrics`1199**事件名稱**:`claude_code.hook_plugin_metrics`
1175 1200
1177 1202
1178* 所有[標準屬性](#standard-attributes)1203* 所有[標準屬性](#standard-attributes)
1179* `event.name`:`"hook_plugin_metrics"`1204* `event.name`:`"hook_plugin_metrics"`
1180* `event.timestamp`:ISO 8601 時間戳1205* `event.timestamp`:ISO 8601 時間戳記
1181* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1206* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1182* `plugin_id`:plugin 識別碼,格式為 `<name>@<marketplace>`1207* `plugin_id`:`<name>@<marketplace>` 形式的外掛程式識別碼
1183* `hook_event`:發出指標的 hook 事件類型1208* `hook_event`:發出指標的鉤子事件類型
1184* 最多 20 個 plugin 發出的指標鍵。名稱符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。1209* 最多 20 個外掛程式發出的指標金鑰。名稱符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。
1185 1210
1186<h4 id="compaction-event">1211<h4 id="compaction-event">
1187 壓縮事件1212 壓縮事件
1195 1220
1196* 所有[標準屬性](#standard-attributes)1221* 所有[標準屬性](#standard-attributes)
1197* `event.name`:`"compaction"`1222* `event.name`:`"compaction"`
1198* `event.timestamp`:ISO 8601 時間戳1223* `event.timestamp`:ISO 8601 時間戳記
1199* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1224* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1200* `trigger`:`"auto"` 或 `"manual"`1225* `trigger`:`"auto"` 或 `"manual"`
1201* `success`:`"true"` 或 `"false"`1226* `success`:`"true"` 或 `"false"`
1202* `duration_ms`:壓縮持續時間1227* `duration_ms`:壓縮持續時間
1203* `pre_tokens`:壓縮前的近似權杖計數1228* `pre_tokens`:壓縮前的近似權杖計數
1204* `post_tokens`:壓縮後的近似權杖計數1229* `post_tokens`:壓縮後的近似權杖計數
1205* `error`:壓縮失敗時的錯誤訊息1230* `error`:壓縮失敗時的錯誤訊息
1206* `precompute_reuse`:僅在 `trigger` 為 `"manual"` 時設定。自動壓縮可以在內容視窗填滿之前在背景中準備摘要,此屬性記錄 `/compact` 是否重複使用該準備的摘要。`"hit"` 表示它被重複使用;`"miss_custom_instructions"`、`"miss_hook"` 和 `"miss_not_ready"` 給出改為計算新摘要的原因。需要 Claude Code v2.1.153 或更新版本1231* `precompute_reuse`:僅在 `trigger` 為 `"manual"` 時設定。自動壓縮可以在內容視窗填滿之前在背景中準備摘要,此屬性記錄 `/compact` 是否重用該準備的摘要。`"hit"` 表示它被重用;`"miss_custom_instructions"`、`"miss_hook"` 和 `"miss_not_ready"` 給出改為計算新摘要的原因。需要 Claude Code v2.1.153 或更新版本
1207 1232
1208<h4 id="subagent-completed-event">1233<h4 id="subagent-completed-event">
1209 子代理已完成事件1234 子代理程式已完成事件
1210</h4>1235</h4>
1211 1236
1212當[子代理](/docs/zh-TW/sub-agents)完成並將其結果傳回啟動它的對話時記錄。使用它按子代理類型匯總工具使用和執行時間;對於權杖或成本匯總,使用[權杖計數器](#token-counter)和[成本計數器](#cost-counter)篩選到 `query_source` `"subagent"`,因為此事件的 `total_tokens` 僅涵蓋最終請求。`"subagent"` 類別也計算來自代理型 hooks 的請求,不發出子代理事件。1237當[子代理程式](/docs/zh-TW/sub-agents)完成並將其結果傳回啟動它的對話時記錄。使用它按子代理程式類型匯總工具使用和執行時間;對於權杖或成本匯總,使用[權杖計數器](#token-counter)和[成本計數器](#cost-counter)篩選到 `query_source` `"subagent"`,因為此事件的 `total_tokens` 僅涵蓋最終請求。`"subagent"` 類別也計算來自代理程式型鉤子的請求,它不發出子代理程式事件。
1213 1238
1214**事件名稱**:`claude_code.subagent_completed`1239**事件名稱**:`claude_code.subagent_completed`
1215 1240
1217 1242
1218* 所有[標準屬性](#standard-attributes)1243* 所有[標準屬性](#standard-attributes)
1219* `event.name`:`"subagent_completed"`1244* `event.name`:`"subagent_completed"`
1220* `event.timestamp`:ISO 8601 時間戳1245* `event.timestamp`:ISO 8601 時間戳記
1221* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1246* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1222* `agent_type`:子代理類型。內建代理名稱和官方市場 plugin 的代理按原樣出現;其他代理名稱除非 `OTEL_LOG_TOOL_DETAILS=1` 設定,否則被替換為 `"custom"`1247* `agent_type`:子代理程式類型。內建代理程式名稱和來自官方市場外掛程式的代理程式逐字出現;其他代理程式名稱會被替換為 `"custom"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`
1223* `agent.source`:代理定義的來源:`built-in`、`plugin` 或定義自訂代理的設定來源,例如 `userSettings` 或 `projectSettings`1248* `agent.source`:代理程式定義的來源:`built-in`、`plugin` 或定義自訂代理程式的設定來源,例如 `userSettings` 或 `projectSettings`
1224* `is_built_in`:子代理是否為內建代理類型1249* `is_built_in`:子代理程式是否為內建代理程式類型
1225* `is_async`:子代理是否在[背景](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)中執行1250* `is_async`:子代理程式是否在[背景](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)中執行
1226* `total_tokens`:子代理最終 API 請求的權杖足跡:該單個請求的輸入、快取建立、快取讀取和輸出權杖,大約是子代理在完成時的內容大小。不是整個執行的總和1251* `total_tokens`:子代理程式最終 API 請求的權杖足跡:該一個請求的輸入、快取建立、快取讀取和輸出權杖,大約是子代理程式在完成時的內容大小。不是整個執行的總和
1227* `total_tool_uses`:子代理在整個執行中進行的工具呼叫數1252* `total_tool_uses`:子代理程式在整個執行過程中進行的工具呼叫數
1228* `duration_ms`:執行時間(毫秒)1253* `duration_ms`:執行時間(以毫秒為單位)
1229* `model`:子代理被解析為執行的模型1254* `model`:子代理程式解析為執行的模型
1230* `final_model`:產生子代理最終回應的模型,在中途切換(例如後備)後與 `model` 不同。需要 Claude Code v2.1.212 或更新版本1255* `final_model`:產生子代理程式最終回應的模型,在回退等中途切換後與 `model` 不同。需要 Claude Code v2.1.212 或更新版本
1231* `model_swapped`:是否有多個模型為子代理的請求提供服務。需要 Claude Code v2.1.212 或更新版本1256* `model_swapped`:是否有多個模型為子代理程式的請求提供服務。需要 Claude Code v2.1.212 或更新版本
1232* `plugin_id_hash`、`plugin.name`:存在於 plugin 提供的代理。官方市場 plugin 名稱按原樣出現;其他 plugin 名稱除非 `OTEL_LOG_TOOL_DETAILS=1` 設定,否則被替換為 `"third-party"`1257* `plugin_id_hash`、`plugin.name`:針對外掛程式提供的代理程式存在。官方市場外掛程式名稱逐字出現;其他外掛程式名稱會被替換為 `"third-party"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`
1233 1258
1234<h4 id="feedback-survey-event">1259<h4 id="feedback-survey-event">
1235 回饋調查事件1260 意見反應調查事件
1236</h4>1261</h4>
1237 1262
1238當顯示或回答工作階段品質調查時記錄。詳見[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys)以了解調查收集的內容以及如何控制它們。1263當顯示或回答工作階段品質調查時記錄。請參閱[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys)以瞭解調查收集的內容以及如何控制它們。
1239 1264
1240**事件名稱**:`claude_code.feedback_survey`1265**事件名稱**:`claude_code.feedback_survey`
1241 1266
1243 1268
1244* 所有[標準屬性](#standard-attributes)1269* 所有[標準屬性](#standard-attributes)
1245* `event.name`:`"feedback_survey"`1270* `event.name`:`"feedback_survey"`
1246* `event.timestamp`:ISO 8601 時間戳1271* `event.timestamp`:ISO 8601 時間戳記
1247* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1272* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1248* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`1273* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`
1249* `appearance_id`:唯一 ID,連結為一個調查實例發出的事件1274* `appearance_id`:唯一 ID,連結為一個調查實例發出的事件
1250* `survey_type`:哪個調查產生了事件。`"session"` 是「Claude 表現如何?」評分提示1275* `survey_type`:哪個調查產生事件。`"session"` 是「Claude 做得如何?」評分提示
1251* `response`:使用者在 `responded` 事件上的選擇1276* `response`:使用者在 `responded` 事件上的選擇
1252* `enabled_via_override`:當設定 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/zh-TW/env-vars) 時為 `true`。作為布林值而非字串發出。存在於 `session` 調查事件上。篩選此屬性以確認覆蓋在整個環境中應用1277* `enabled_via_override`:當設定了 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/zh-TW/env-vars) 時為 `true`。作為布林值而非字串發出。出現在 `session` 調查事件上。篩選此屬性以確認整個車隊中套用了覆蓋
1253 1278
1254<h4 id="retention-sweep-event">1279<h4 id="retention-sweep-event">
1255 保留掃描事件1280 保留期掃描事件
1256</h4>1281</h4>
1257 1282
1258在保留清理掃描執行時記錄一次,該掃描刪除[工作階段文字記錄和其他應用程式資料](/docs/zh-TW/claude-directory#cleaned-up-automatically)早於 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 設定的資料。Claude Code 在背景中最多每個工作階段執行一次掃描,刪除任何內容的執行仍會發出事件。如果 Claude Code 在過去 24 小時內在同一機器上的任何工作階段中執行了掃描,它會將此工作階段的掃描延遲至少 10 分鐘,因此更早退出的工作階段不會發出任何內容。當您使用 `--bare` 執行 `claude -p` 時,Claude Code 不會執行掃描且不會發出任何內容。1283在保留期清理掃描執行時記錄一次,該掃描刪除[工作階段文字記錄和其他應用程式資料](/docs/zh-TW/claude-directory#cleaned-up-automatically)早於 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 設定的資料。Claude Code 在背景中最多每個工作階段執行一次掃描,刪除任何內容的執行仍會發出事件。如果 Claude Code 在過去 24 小時內在同一機器上的任何工作階段中執行了掃描,它會將此工作階段的掃描延遲至少 10 分鐘,因此更早退出的工作階段不會發出任何內容。當您使用 `--bare` 執行 `claude -p` 時,Claude Code 不會執行掃描,也不會發出任何內容。
1259 1284
1260與此頁面上的每個 OTel 事件一樣,它僅進入您配置的遙測後端。需要 Claude Code v2.1.227 或更新版本。1285與此頁面上的每個 OTel 事件一樣,它僅流向您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。
1261 1286
1262當 Claude Code 無法安全地確定保留期時,它會暫停掃描並發出事件,`result` 設定為 `"skipped"` 和 `skip_reason`。當[受管設定](/docs/zh-TW/server-managed-settings)設定 `cleanupPeriodDays` 時,受管值會固定保留期,掃描即使在較低優先級範圍中的設定檔案損壞或無效時也會執行。當 `managed-settings.json` 本身無法讀取時,Claude Code 仍會暫停掃描,除非[受管層](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)從其他地方(例如伺服器受管設定或損壞檔案旁的 `managed-settings.d/` 放置)提供 `cleanupPeriodDays`。刪除計數器屬性僅在 `result` 為 `"complete"` 時存在。1287當 Claude Code 無法安全地確定保留期時,它會暫停掃描並發出事件,`result` 設定為 `"skipped"` 和 `skip_reason`。當[受管設定](/docs/zh-TW/server-managed-settings)設定 `cleanupPeriodDays` 時,受管值會固定保留期,即使較低優先順序範圍中的設定檔案損壞或無效,掃描也會執行。當 `managed-settings.json` 本身無法讀取時,Claude Code 仍會暫停掃描,除非[受管層](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)從其他地方(例如伺服器受管設定或損壞檔案旁的 `managed-settings.d/` 放置)提供 `cleanupPeriodDays`。刪除計數器屬性僅在 `result` 為 `"complete"` 時存在。
1263 1288
1264**事件名稱**:`claude_code.retention_sweep`1289**事件名稱**:`claude_code.retention_sweep`
1265 1290
1267 1292
1268* 所有[標準屬性](#standard-attributes)1293* 所有[標準屬性](#standard-attributes)
1269* `event.name`:`"retention_sweep"`1294* `event.name`:`"retention_sweep"`
1270* `event.timestamp`:ISO 8601 時間戳1295* `event.timestamp`:ISO 8601 時間戳記
1271* `event.sequence`:單調遞增計數器,用於排序工作階段內的事件1296* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件
1272* `result`:掃描執行時為 `"complete"`,Claude Code 暫停時為 `"skipped"`1297* `result`:掃描執行時為 `"complete"`,Claude Code 暫停時為 `"skipped"`
1273* `period_days`:合併設定中的 `cleanupPeriodDays` 值(以天為單位),或當沒有來源設定時為 `30`。在跳過的事件上,掃描會使用的值,從 Claude Code 可以讀取的設定來源計算1298* `period_days`:來自合併設定的 `cleanupPeriodDays` 值(以天為單位),或當沒有來源設定時為 `30`。在跳過的事件上,掃描會使用的值,從 Claude Code 可以讀取的設定來源計算
1274* `used_default`:當沒有可讀的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在完成事件上,`"true"` 表示應用了 30 天預設值1299* `used_default`:當沒有可讀的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在完成事件上,`"true"` 表示套用了 30 天預設值
1275* `skip_reason`:Claude Code 暫停掃描的原因。僅當 `result` 為 `"skipped"` 時存在:1300* `skip_reason`:Claude Code 暫停掃描的原因。僅當 `result` 為 `"skipped"` 時存在:
1276 * `"user_source_disabled"`:使用者設定被排除,例如透過 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](/docs/zh-TW/agent-sdk/typescript#options) 選項,且沒有啟用的來源提供 `cleanupPeriodDays`1301 * `"user_source_disabled"`:使用者設定被排除,例如透過 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 旗標或 SDK 的 [`settingSources`](/docs/zh-TW/agent-sdk/typescript#options) 選項,且沒有啟用的來源提供 `cleanupPeriodDays`
1277 * `"settings_unknowable"`:設定檔案無法讀取或解析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能設定為 Claude Code 無法看到的值1302 * `"settings_unknowable"`:設定檔案無法讀取或解析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能設定為 Claude Code 無法看到的值
1278 * `"settings_invalid_key_set"`:設定有驗證錯誤且 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 被明確設定,因此回退到預設值可能會刪除或保留違反該設定的檔案1303 * `"settings_invalid_key_set"`:設定有驗證錯誤且 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 已明確設定,因此回退到預設值可能會刪除或保留針對該設定的檔案
1279* `transcripts_deleted`:掃描刪除的工作階段文字記錄數,頂級 `~/.claude/projects/*/*.jsonl` 檔案1304* `transcripts_deleted`:掃描刪除的工作階段文字記錄(頂層 `~/.claude/projects/*/*.jsonl` 檔案)數
1280* `transcripts_exempted_desktop`:超過保留期的文字記錄數,掃描在[Claude Desktop 和 Cowork 規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)下保留。這些不計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本1305* `transcripts_exempted_desktop`:超過保留期的文字記錄數,掃描在 [Claude Desktop 和 Cowork 規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)下保留。這些不計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本
1281* `session_files_deleted`:工作階段檔案掃描刪除的項目數:文字記錄加每個工作階段的伴隨檔案,例如邊車、錄製和工具結果1306* `session_files_deleted`:工作階段檔案掃描刪除的成品數:文字記錄加上每個工作階段的伴隨檔案,例如邊車、錄製和工具結果
1282* `artifacts_deleted`:掃描跨越其涵蓋的資料目錄刪除的總項目,包括工作階段檔案。某些掃描將整個移除的目錄樹計為一個項目,少數清理通過不貢獻計數器,因此將值視為下限而不是精確檔案計數1307* `artifacts_deleted`:掃描跨越的資料目錄刪除的總項目,包括工作階段檔案。某些掃描將整個移除的目錄樹計為一個項目,少數清理通過不貢獻計數器,因此將值視為下限而非精確檔案計數
1283* `files_retained_fresh`:檢查並保留在原位的檔案,因為它們仍在保留期內。僅每個檔案掃描計算這些,因此值是下限;非零值是正常穩定狀態1308* `files_retained_fresh`:檢查並保留在原位的檔案,因為它們仍在保留期內。僅每個檔案掃描計算這些,因此值是下限;非零值是正常穩定狀態
1284* `files_past_cutoff`:超過保留期的檔案,掃描無法刪除,例如因為權限錯誤或檔案被保持開啟。值高於零表示檔案超過配置的保留期;零不是證明沒有任何檔案,因為整個目錄的失敗移除計入 `error_count` 代替1309* `files_past_cutoff`:早於保留期的檔案,掃描無法刪除,例如因為權限錯誤或檔案被保持開啟。值高於零表示檔案超過了設定的保留期;零不是沒有任何檔案的證明,因為整個目錄的移除失敗計入 `error_count`
1285* `error_count`:掃描在列出或刪除檔案時遇到的錯誤數1310* `error_count`:掃描在列出或刪除檔案時遇到的錯誤數
1286 1311
1287<h2 id="interpret-metrics-and-events-data">1312<h2 id="interpret-metrics-and-events-data">