---
title: Stream Session Thread Events
url: https://platform.claude.com/docs/en/api/go/beta/sessions/threads/events/stream
---

# Stream Session Thread Events

`client.Beta.Sessions.Threads.Events.StreamEvents(ctx, threadID, params) *ssestream.Stream[BetaManagedAgentsStreamSessionThreadEventsUnion]`

**GET** `/v1/sessions/{session_id}/threads/{thread_id}/stream`

Stream Session Thread Events

## Parameters

- `threadID string` (path parameter)

- `params BetaSessionThreadEventStreamParams`

  - `SessionID string` (path parameter)

  - `EventDeltas []BetaManagedAgentsDeltaType Optional` (query parameter)

    When set, this connection also receives streaming deltas (`event_start`, `event_delta`) while an event is being produced, before the event itself arrives. Deltas are best-effort; when the final event is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no final event — its terminal `span.model_request_end` closes the preview. Accepts one or more event types to preview and may be repeated: `agent.message` streams `content_delta` fragments; `agent.thinking` is start-only — a signal that the agent has begun extended thinking, concluded by the `agent.thinking` event itself. Only previews of the requested event types are sent.

    - `const BetaManagedAgentsDeltaTypeAgentMessage BetaManagedAgentsDeltaType = "agent.message"`

    - `const BetaManagedAgentsDeltaTypeAgentThinking BetaManagedAgentsDeltaType = "agent.thinking"`

  - `Betas []AnthropicBeta Optional` (header parameter)

    This endpoint is in beta: requests must send `managed-agents-2026-04-01` in this header.

    - `const AnthropicBetaMessageBatches2024_09_24 AnthropicBeta = "message-batches-2024-09-24"`

    - `const AnthropicBetaPromptCaching2024_07_31 AnthropicBeta = "prompt-caching-2024-07-31"`

    - `const AnthropicBetaComputerUse2024_10_22 AnthropicBeta = "computer-use-2024-10-22"`

    - `const AnthropicBetaComputerUse2025_01_24 AnthropicBeta = "computer-use-2025-01-24"`

    - `const AnthropicBetaPDFs2024_09_25 AnthropicBeta = "pdfs-2024-09-25"`

    - `const AnthropicBetaTokenCounting2024_11_01 AnthropicBeta = "token-counting-2024-11-01"`

    - `const AnthropicBetaTokenEfficientTools2025_02_19 AnthropicBeta = "token-efficient-tools-2025-02-19"`

    - `const AnthropicBetaOutput128k2025_02_19 AnthropicBeta = "output-128k-2025-02-19"`

    - `const AnthropicBetaFilesAPI2025_04_14 AnthropicBeta = "files-api-2025-04-14"`

    - `const AnthropicBetaMCPClient2025_04_04 AnthropicBeta = "mcp-client-2025-04-04"`

    - `const AnthropicBetaMCPClient2025_11_20 AnthropicBeta = "mcp-client-2025-11-20"`

    - `const AnthropicBetaDevFullThinking2025_05_14 AnthropicBeta = "dev-full-thinking-2025-05-14"`

    - `const AnthropicBetaInterleavedThinking2025_05_14 AnthropicBeta = "interleaved-thinking-2025-05-14"`

    - `const AnthropicBetaCodeExecution2025_05_22 AnthropicBeta = "code-execution-2025-05-22"`

    - `const AnthropicBetaExtendedCacheTTL2025_04_11 AnthropicBeta = "extended-cache-ttl-2025-04-11"`

    - `const AnthropicBetaContext1m2025_08_07 AnthropicBeta = "context-1m-2025-08-07"`

    - `const AnthropicBetaContextManagement2025_06_27 AnthropicBeta = "context-management-2025-06-27"`

    - `const AnthropicBetaModelContextWindowExceeded2025_08_26 AnthropicBeta = "model-context-window-exceeded-2025-08-26"`

    - `const AnthropicBetaSkills2025_10_02 AnthropicBeta = "skills-2025-10-02"`

    - `const AnthropicBetaFastMode2026_02_01 AnthropicBeta = "fast-mode-2026-02-01"`

    - `const AnthropicBetaOutput300k2026_03_24 AnthropicBeta = "output-300k-2026-03-24"`

    - `const AnthropicBetaUserProfiles2026_03_24 AnthropicBeta = "user-profiles-2026-03-24"`

    - `const AnthropicBetaUserProfiles2026_08_18 AnthropicBeta = "user-profiles-2026-08-18"`

    - `const AnthropicBetaUserProfiles2026_09_04 AnthropicBeta = "user-profiles-2026-09-04"`

    - `const AnthropicBetaAdvisorTool2026_03_01 AnthropicBeta = "advisor-tool-2026-03-01"`

    - `const AnthropicBetaManagedAgents2026_04_01 AnthropicBeta = "managed-agents-2026-04-01"`

    - `const AnthropicBetaCacheDiagnosis2026_04_07 AnthropicBeta = "cache-diagnosis-2026-04-07"`

    - `const AnthropicBetaDreaming2026_04_21 AnthropicBeta = "dreaming-2026-04-21"`

    - `const AnthropicBetaThinkingTokenCount2026_05_13 AnthropicBeta = "thinking-token-count-2026-05-13"`

    - `const AnthropicBetaServerSideFallback2026_06_01 AnthropicBeta = "server-side-fallback-2026-06-01"`

    - `const AnthropicBetaServerSideFallback2026_07_01 AnthropicBeta = "server-side-fallback-2026-07-01"`

    - `const AnthropicBetaFallbackCredit2026_06_01 AnthropicBeta = "fallback-credit-2026-06-01"`

    - `const AnthropicBetaFallbackCredit2026_07_01 AnthropicBeta = "fallback-credit-2026-07-01"`

    - `const AnthropicBetaAgentMemory2026_07_22 AnthropicBeta = "agent-memory-2026-07-22"`

    - `const AnthropicBetaMidConversationToolChanges2026_07_01 AnthropicBeta = "mid-conversation-tool-changes-2026-07-01"`

    - `const AnthropicBetaCompact2026_01_12 AnthropicBeta = "compact-2026-01-12"`

    - `const AnthropicBetaComputerUse2025_11_24 AnthropicBeta = "computer-use-2025-11-24"`

    - `const AnthropicBetaMCPTunnels2026_06_22 AnthropicBeta = "mcp-tunnels-2026-06-22"`

    - `const AnthropicBetaStructuredOutputs2025_11_13 AnthropicBeta = "structured-outputs-2025-11-13"`

    - `const AnthropicBetaTaskBudgets2026_03_13 AnthropicBeta = "task-budgets-2026-03-13"`

    - `const AnthropicBetaThinkingDisplayUpdates2026_08_18 AnthropicBeta = "thinking-display-updates-2026-08-18"`

    - `const AnthropicBetaCEUserManagement2026_07_13 AnthropicBeta = "ce-user-management-2026-07-13"`

    - `const AnthropicBetaMidConversationOutputConfig2026_07_01 AnthropicBeta = "mid-conversation-output-config-2026-07-01"`

    - `const AnthropicBetaThinkingBindingControls2026_08_01 AnthropicBeta = "thinking-binding-controls-2026-08-01"`

    - `const AnthropicBetaMidConversationSystemClearAt2026_08_21 AnthropicBeta = "mid-conversation-system-clear-at-2026-08-21"`

    - `const AnthropicBetaCompact2026_09_04 AnthropicBeta = "compact-2026-09-04"`

    - `const AnthropicBetaInlineTools2026_09_15 AnthropicBeta = "inline-tools-2026-09-15"`

    - `const AnthropicBetaMCPClient2026_09_15 AnthropicBeta = "mcp-client-2026-09-15"`

    - `const AnthropicBetaCEPlugins2026_09_01 AnthropicBeta = "ce-plugins-2026-09-01"`

    - `const AnthropicBetaSpendLimitReads2026_09_26 AnthropicBeta = "spend-limit-reads-2026-09-26"`

    - `const AnthropicBetaTelemetryDestinations2026_08_11 AnthropicBeta = "telemetry-destinations-2026-08-11"`

  - `WorkspaceID param.Opt[string] Optional` (header parameter)

    Optional header to select the Workspace for this request. The value is a Workspace ID (for example, `wrkspc_011CZkZaBF1tNoB5wlCeusgy`).

    Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

## Returns

- `type BetaManagedAgentsStreamSessionThreadEventsUnion interface{…}`

  Server-sent event in a single thread's stream.

  - `type BetaManagedAgentsUserMessageEvent`

    A user message event in the session conversation.

    - `Type BetaManagedAgentsUserMessageEventType`

    - `ID string`

      Unique identifier for this event.

    - `Content []BetaManagedAgentsUserMessageEventContentUnion`

      Array of content blocks comprising the user message.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

        - `Type BetaManagedAgentsTextBlockType`

        - `Text string`

          The text content.

          minLength: 1

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

        - `Type BetaManagedAgentsImageBlockType`

        - `Source BetaManagedAgentsImageBlockSourceUnion`

          The source of the image data.

          - `type BetaManagedAgentsBase64ImageSource`

            Base64-encoded image data.

            - `Type BetaManagedAgentsBase64ImageSourceType`

            - `Data string`

              Base64-encoded image data.

              minLength: 1

            - `MediaType string`

              MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", "image/webp").

              minLength: 1

          - `type BetaManagedAgentsURLImageSource`

            Image referenced by URL.

            - `Type BetaManagedAgentsURLImageSourceType`

            - `URL string`

              URL of the image to fetch.

              minLength: 1

          - `type BetaManagedAgentsFileImageSource`

            Image referenced by file ID.

            - `Type BetaManagedAgentsFileImageSourceType`

            - `FileID string`

              ID of a previously uploaded file.

              minLength: 1

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

        - `Type BetaManagedAgentsDocumentBlockType`

        - `Source BetaManagedAgentsDocumentBlockSourceUnion`

          The source of the document data.

          - `type BetaManagedAgentsBase64DocumentSource`

            Base64-encoded document data.

            - `Type BetaManagedAgentsBase64DocumentSourceType`

            - `Data string`

              Base64-encoded document data.

              minLength: 1

            - `MediaType string`

              MIME type of the document (e.g., "application/pdf").

              minLength: 1

          - `type BetaManagedAgentsPlainTextDocumentSource`

            Plain text document content.

            - `Type BetaManagedAgentsPlainTextDocumentSourceType`

            - `Data string`

              The plain text content.

              minLength: 1

            - `MediaType BetaManagedAgentsPlainTextDocumentSourceMediaType`

              MIME type of the text content. Must be "text/plain".

          - `type BetaManagedAgentsURLDocumentSource`

            Document referenced by URL.

            - `Type BetaManagedAgentsURLDocumentSourceType`

            - `URL string`

              URL of the document to fetch.

              minLength: 1

          - `type BetaManagedAgentsFileDocumentSource`

            Document referenced by file ID.

            - `Type BetaManagedAgentsFileDocumentSourceType`

            - `FileID string`

              ID of a previously uploaded file.

              minLength: 1

        - `Context string Optional`

          Additional context about the document for the model.

        - `Title string Optional`

          The title of the document.

      - `type BetaManagedAgentsRedactedBlock`

        Placeholder for content withheld by Anthropic model policy.

        - `Type BetaManagedAgentsRedactedBlockType`

    - `ProcessedAt Time Optional`

      Timestamp when the agent finished processing this message.

      format: date-time

  - `type BetaManagedAgentsUserInterruptEvent`

    An interrupt event that pauses agent execution and returns control to the user.

    - `Type BetaManagedAgentsUserInterruptEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time Optional`

      Timestamp when the interrupt was processed.

      format: date-time

    - `SessionThreadID string Optional`

      If absent, interrupts every non-archived thread in a multiagent session (or the primary alone in a single-agent session). If present, interrupts only the named thread.

  - `type BetaManagedAgentsUserToolConfirmationEvent`

    A tool confirmation event that approves or denies a pending tool execution.

    - `Type BetaManagedAgentsUserToolConfirmationEventType`

    - `ID string`

      Unique identifier for this event.

    - `Result BetaManagedAgentsUserToolConfirmationEventResult`

      The confirmation result: 'allow' or 'deny'.

      - `const BetaManagedAgentsUserToolConfirmationEventResultAllow BetaManagedAgentsUserToolConfirmationEventResult = "allow"`

      - `const BetaManagedAgentsUserToolConfirmationEventResultDeny BetaManagedAgentsUserToolConfirmationEventResult = "deny"`

    - `ToolUseID string`

      The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=go#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.

    - `DenyMessage string Optional`

      Optional message providing context for a 'deny' decision. Only allowed when result is 'deny'.

      maxLength: 10000

    - `ProcessedAt Time Optional`

      Timestamp when the confirmation was processed.

      format: date-time

    - `SessionThreadID string Optional`

      Set by the server to the subagent thread this confirmation was routed to. Omitted when it was routed to the primary thread.

  - `type BetaManagedAgentsUserCustomToolResultEvent`

    Event sent by the client providing the result of a custom tool execution.

    - `Type BetaManagedAgentsUserCustomToolResultEventType`

    - `ID string`

      Unique identifier for this event.

    - `CustomToolUseID string`

      The id of the `agent.custom_tool_use` event this result corresponds to. It is also listed in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=go#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.

    - `Content []BetaManagedAgentsUserCustomToolResultEventContentUnion Optional`

      The result content returned by the tool.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsSearchResultBlock`

        A block containing a web search result.

        - `Type BetaManagedAgentsSearchResultBlockType`

        - `Citations BetaManagedAgentsSearchResultCitations`

          Citation settings for this search result.

          - `Enabled bool`

            Whether citations are enabled for this search result.

        - `Content []BetaManagedAgentsSearchResultContent`

          Array of text content blocks from the search result.

          - `Type BetaManagedAgentsSearchResultContentType`

          - `Text string`

            The text content.

            minLength: 1

        - `Source string`

          The URL source of the search result.

          minLength: 1

        - `Title string`

          The title of the search result.

          minLength: 1

    - `IsError bool Optional`

      Whether the tool execution resulted in an error.

    - `ProcessedAt Time Optional`

      Timestamp when this result was processed.

      format: date-time

    - `SessionThreadID string Optional`

      Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.

  - `type BetaManagedAgentsAgentCustomToolUseEvent`

    Event emitted when the agent calls a custom tool. The session goes idle until the client sends a `user.custom_tool_result` event with the result. The client can send it as soon as this event arrives, without waiting for `session.status_idle`.

    - `Type BetaManagedAgentsAgentCustomToolUseEventType`

    - `ID string`

      Unique identifier for this event.

    - `Input map[string, any]`

      Input parameters for the tool call.

    - `Name string`

      Name of the custom tool being called.

    - `ProcessedAt Time`

      Timestamp when this tool use was processed.

      format: date-time

    - `SessionThreadID string Optional`

      When set, this event was cross-posted from a subagent's thread to surface its custom tool use on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it back.

  - `type BetaManagedAgentsAgentMessageEvent`

    An agent response event in the session conversation.

    - `Type BetaManagedAgentsAgentMessageEventType`

    - `ID string`

      Unique identifier for this event.

    - `Content []BetaManagedAgentsAgentMessageEventContentUnion`

      Array of text blocks comprising the agent response.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsRedactedBlock`

        Placeholder for content withheld by Anthropic model policy.

    - `ProcessedAt Time`

      Timestamp when this response was generated.

      format: date-time

  - `type BetaManagedAgentsAgentThinkingEvent`

    Indicates the agent is making forward progress via extended thinking. A progress signal, not a content carrier.

    - `Type BetaManagedAgentsAgentThinkingEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this thinking was produced.

      format: date-time

  - `type BetaManagedAgentsAgentMCPToolUseEvent`

    Event emitted when the agent invokes a tool provided by an MCP server.

    - `Type BetaManagedAgentsAgentMCPToolUseEventType`

    - `ID string`

      Unique identifier for this event.

    - `Input map[string, any]`

      Input parameters for the tool call.

    - `MCPServerName string`

      Name of the MCP server providing the tool.

    - `Name string`

      Name of the MCP tool being used.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `EvaluatedPermission BetaManagedAgentsAgentEvaluatedPermission Optional`

      The evaluated permission policy for this tool invocation.

      - `const BetaManagedAgentsAgentEvaluatedPermissionAllow BetaManagedAgentsAgentEvaluatedPermission = "allow"`

      - `const BetaManagedAgentsAgentEvaluatedPermissionAsk BetaManagedAgentsAgentEvaluatedPermission = "ask"`

      - `const BetaManagedAgentsAgentEvaluatedPermissionDeny BetaManagedAgentsAgentEvaluatedPermission = "deny"`

    - `Evaluation BetaManagedAgentsAgentToolEvaluationUnion Optional`

      Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask).

      - `type BetaManagedAgentsAgentToolEvaluationAlwaysAllow`

        The resolved permission_policy was always_allow; accompanies evaluated_permission "allow".

        - `Type AlwaysAllow`

      - `type BetaManagedAgentsAgentToolEvaluationAlwaysAsk`

        The resolved permission_policy was always_ask; accompanies evaluated_permission "ask".

        - `Type AlwaysAsk`

      - `type BetaManagedAgentsAgentToolEvaluationAuto`

        The resolved permission_policy was auto: the server judged this invocation individually.

        - `Type Auto`

        - `EvaluatedPermission BetaManagedAgentsAgentAutoEvaluatedPermissionUnion`

          The server's judgement for this invocation.

          - `type BetaManagedAgentsAgentAutoEvaluatedPermissionAllow`

            The server judged the invocation safe to execute without client approval.

            - `Type Allow`

          - `type BetaManagedAgentsAgentAutoEvaluatedPermissionAsk`

            The server reached no judgement; the invocation is held for client approval.

            - `Type Ask`

            - `ReasonCode string`

              The judgement's grounds in registry-bound terms, for client branching and audit rather than end-user display. Open registry; currently "indeterminate" (no judgement was reached). Clients must tolerate values outside this set.

              maxLength: 64

          - `type BetaManagedAgentsAgentAutoEvaluatedPermissionDeny`

            The server judged the invocation high-risk; it does not execute and a synthetic error tool result is appended.

            - `Type Deny`

            - `ReasonCode string`

              The judgement's grounds in registry-bound terms. Open registry; currently "high_risk" (judged high-risk; the call does not run). Clients must tolerate values outside this set.

              maxLength: 64

    - `SessionThreadID string Optional`

      When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` by `tool_use_id`, so clients do not send it back.

  - `type BetaManagedAgentsAgentMCPToolResultEvent`

    Event representing the result of an MCP tool execution.

    - `Type BetaManagedAgentsAgentMCPToolResultEventType`

    - `ID string`

      Unique identifier for this event.

    - `MCPToolUseID string`

      The id of the `agent.mcp_tool_use` event this result corresponds to.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `Content []BetaManagedAgentsAgentMCPToolResultEventContentUnion Optional`

      The result content returned by the tool.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsSearchResultBlock`

        A block containing a web search result.

    - `IsError bool Optional`

      Whether the tool execution resulted in an error.

  - `type BetaManagedAgentsAgentToolUseEvent`

    Event emitted when the agent invokes a built-in agent tool.

    - `Type BetaManagedAgentsAgentToolUseEventType`

    - `ID string`

      Unique identifier for this event.

    - `Input map[string, any]`

      Input parameters for the tool call.

    - `Name string`

      Name of the agent tool being used.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `EvaluatedPermission BetaManagedAgentsAgentEvaluatedPermission Optional`

      The evaluated permission policy for this tool invocation.

    - `Evaluation BetaManagedAgentsAgentToolEvaluationUnion Optional`

      Which resolved permission_policy produced evaluated_permission: always_allow, always_ask, or auto (with the server's per-invocation judgement). Absent only when the server refused the call before any policy applied (for example, the named tool is not enabled in the session); such a refusal has evaluated_permission deny. An event recorded before this field existed reads as the arm its evaluated_permission implies (always_allow for allow, always_ask for ask).

    - `SessionThreadID string Optional`

      When set, this event was cross-posted from a subagent's thread to surface its permission request on the primary thread's stream. Empty on the thread's own events. Informational only: the server routes the matching `user.tool_confirmation` or `user.tool_result` by `tool_use_id`, so clients do not send it back.

  - `type BetaManagedAgentsAgentToolResultEvent`

    Event representing the result of an agent tool execution.

    - `Type BetaManagedAgentsAgentToolResultEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `ToolUseID string`

      The id of the `agent.tool_use` event this result corresponds to.

    - `Content []BetaManagedAgentsAgentToolResultEventContentUnion Optional`

      The result content returned by the tool.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsSearchResultBlock`

        A block containing a web search result.

    - `IsError bool Optional`

      Whether the tool execution resulted in an error.

  - `type BetaManagedAgentsAgentThreadMessageReceivedEvent`

    Delivery event written to the target thread's input stream when an agent-to-agent message arrives.

    - `Type BetaManagedAgentsAgentThreadMessageReceivedEventType`

    - `ID string`

      Unique identifier for this event.

    - `Content []BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion`

      Message content blocks.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsRedactedBlock`

        Placeholder for content withheld by Anthropic model policy.

    - `FromSessionThreadID string`

      Public `sthr_` ID of the thread that sent the message.

    - `ProcessedAt Time`

      Timestamp when the message was received.

      format: date-time

    - `FromAgentName string Optional`

      Name of the callable agent this message came from. Absent when received from the primary agent.

  - `type BetaManagedAgentsAgentThreadMessageSentEvent`

    Observability event emitted to the sender's output stream when an agent-to-agent message is sent.

    - `Type BetaManagedAgentsAgentThreadMessageSentEventType`

    - `ID string`

      Unique identifier for this event.

    - `Content []BetaManagedAgentsAgentThreadMessageSentEventContentUnion`

      Message content blocks.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsRedactedBlock`

        Placeholder for content withheld by Anthropic model policy.

    - `ProcessedAt Time`

      Timestamp when the message was sent.

      format: date-time

    - `ToSessionThreadID string`

      Public `sthr_` ID of the thread the message was sent to.

    - `ToAgentName string Optional`

      Name of the callable agent this message was sent to. Absent when sent to the primary agent.

  - `type BetaManagedAgentsAgentThreadContextCompactedEvent`

    Indicates that context compaction (summarization) occurred during the session.

    - `Type BetaManagedAgentsAgentThreadContextCompactedEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when compaction was processed.

      format: date-time

  - `type BetaManagedAgentsSessionErrorEvent`

    An error event indicating a problem occurred during session execution.

    - `Type BetaManagedAgentsSessionErrorEventType`

    - `ID string`

      Unique identifier for this event.

    - `Error BetaManagedAgentsSessionErrorEventErrorUnion`

      - `type BetaManagedAgentsUnknownError`

        An unknown or unexpected error occurred during session execution. A fallback variant; clients that don't recognize a new error code can match on `retry_status` and `message` alone.

        - `Type BetaManagedAgentsUnknownErrorType`

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsUnknownErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

            - `Type BetaManagedAgentsRetryStatusRetryingType`

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

            - `Type BetaManagedAgentsRetryStatusExhaustedType`

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

            - `Type BetaManagedAgentsRetryStatusTerminalType`

      - `type BetaManagedAgentsModelOverloadedError`

        The model is currently overloaded. Emitted after automatic retries are exhausted.

        - `Type BetaManagedAgentsModelOverloadedErrorType`

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsModelOverloadedErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsModelRateLimitedError`

        The model request was rate-limited.

        - `Type BetaManagedAgentsModelRateLimitedErrorType`

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsModelRequestFailedError`

        A model request failed for a reason other than overload or rate-limiting.

        - `Type BetaManagedAgentsModelRequestFailedErrorType`

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsMCPConnectionFailedError`

        Failed to connect to an MCP server.

        - `Type BetaManagedAgentsMCPConnectionFailedErrorType`

        - `MCPServerName string`

          Name of the MCP server that failed to connect.

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsMCPAuthenticationFailedError`

        Authentication to an MCP server failed.

        - `Type BetaManagedAgentsMCPAuthenticationFailedErrorType`

        - `MCPServerName string`

          Name of the MCP server that failed authentication.

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsBillingError`

        The caller's organization or workspace cannot make model requests — out of credits or spend limit reached. Retrying with the same credentials will not succeed; the caller must resolve the billing state.

        - `Type BetaManagedAgentsBillingErrorType`

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsBillingErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsCredentialHostUnreachableError`

        An `environment_variable` credential's `auth.networking.allowed_hosts` includes a host the environment's network policy does not permit.

        - `Type BetaManagedAgentsCredentialHostUnreachableErrorType`

        - `CredentialID string`

          ID of the affected credential.

        - `Message string`

          Human-readable error description.

        - `RetryStatus BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion`

          What the client should do next.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

        - `VaultID string`

          ID of the vault containing the affected credential.

      - `type BetaManagedAgentsRepositoryAuthenticationError`

        The repository host rejected the credentials, or required credentials and received none.

        - `Type RepositoryAuthenticationError`

        - `Message string`

          Human-readable error description.

        - `RepositoryURL string`

          URL of the repository that could not be cloned. Null when it could not be identified.

        - `RetryStatus BetaManagedAgentsRepositoryAuthenticationErrorRetryStatusUnion`

          What the client should do next. Always `retrying`: the session keeps running without the repository.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsRepositoryForbiddenError`

        The repository host refused access to the repository.

        - `Type RepositoryForbiddenError`

        - `Message string`

          Human-readable error description.

        - `RepositoryURL string`

          URL of the repository that could not be cloned. Null when it could not be identified.

        - `RetryStatus BetaManagedAgentsRepositoryForbiddenErrorRetryStatusUnion`

          What the client should do next. Always `retrying`: the session keeps running without the repository.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsRepositoryNotFoundError`

        The repository host reported the repository as not found.

        - `Type RepositoryNotFoundError`

        - `Message string`

          Human-readable error description.

        - `RepositoryURL string`

          URL of the repository that could not be cloned. Null when it could not be identified.

        - `RetryStatus BetaManagedAgentsRepositoryNotFoundErrorRetryStatusUnion`

          What the client should do next. Always `retrying`: the session keeps running without the repository.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsRepositoryCheckoutError`

        The requested branch or commit does not exist in the repository.

        - `Type RepositoryCheckoutError`

        - `Message string`

          Human-readable error description.

        - `RepositoryURL string`

          URL of the repository that could not be cloned. Null when it could not be identified.

        - `RetryStatus BetaManagedAgentsRepositoryCheckoutErrorRetryStatusUnion`

          What the client should do next. Always `retrying`: the session keeps running without the repository.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

      - `type BetaManagedAgentsRepositoryCloneError`

        The repository could not be cloned.

        - `Type RepositoryCloneError`

        - `Message string`

          Human-readable error description.

        - `RepositoryURL string`

          URL of the repository that could not be cloned. Null when it could not be identified.

        - `RetryStatus BetaManagedAgentsRepositoryCloneErrorRetryStatusUnion`

          What the client should do next. Always `retrying`: the session keeps running without the repository.

          - `type BetaManagedAgentsRetryStatusRetrying`

            The server is retrying automatically. Client should wait; the same error type may fire again as retrying, then once as exhausted when the retry budget runs out.

          - `type BetaManagedAgentsRetryStatusExhausted`

            This turn is dead; queued inputs are flushed and the session returns to idle. Client may send a new prompt.

          - `type BetaManagedAgentsRetryStatusTerminal`

            The session encountered a terminal error and will transition to `terminated` state.

    - `ProcessedAt Time`

      Timestamp when the error occurred.

      format: date-time

  - `type BetaManagedAgentsSessionStatusRescheduledEvent`

    Indicates the session is recovering from an error state and is rescheduled for execution.

    - `Type BetaManagedAgentsSessionStatusRescheduledEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp of status change.

      format: date-time

  - `type BetaManagedAgentsSessionStatusRunningEvent`

    Indicates the session is actively running and the agent is working.

    - `Type BetaManagedAgentsSessionStatusRunningEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp of status change.

      format: date-time

  - `type BetaManagedAgentsSessionStatusIdleEvent`

    Indicates the agent has paused and is awaiting user input.

    - `Type BetaManagedAgentsSessionStatusIdleEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp of status change.

      format: date-time

    - `StopDetails BetaManagedAgentsSessionRefusalStopDetails`

      Structured information about why the session stopped. `null` when there is nothing more to report.

      - `Type Refusal`

      - `Category BetaManagedAgentsSessionRefusalStopDetailsCategory`

        The policy category that triggered the refusal, or `null` when there is no named category. New values can be added over time.

        - `const BetaManagedAgentsSessionRefusalStopDetailsCategoryCyber BetaManagedAgentsSessionRefusalStopDetailsCategory = "cyber"`

        - `const BetaManagedAgentsSessionRefusalStopDetailsCategoryBio BetaManagedAgentsSessionRefusalStopDetailsCategory = "bio"`

        - `const BetaManagedAgentsSessionRefusalStopDetailsCategoryFrontierLLM BetaManagedAgentsSessionRefusalStopDetailsCategory = "frontier_llm"`

        - `const BetaManagedAgentsSessionRefusalStopDetailsCategoryReasoningExtraction BetaManagedAgentsSessionRefusalStopDetailsCategory = "reasoning_extraction"`

        - `const BetaManagedAgentsSessionRefusalStopDetailsCategoryGeneralHarms BetaManagedAgentsSessionRefusalStopDetailsCategory = "general_harms"`

      - `Explanation string`

        Human-readable explanation of the refusal, or `null` when none is available. The wording can change, so do not parse it.

    - `StopReason BetaManagedAgentsSessionStatusIdleEventStopReasonUnion`

      - `type BetaManagedAgentsSessionEndTurn`

        The agent completed its turn naturally and is ready for the next user message.

        - `Type BetaManagedAgentsSessionEndTurnType`

      - `type BetaManagedAgentsSessionRequiresAction`

        The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running.

        - `Type BetaManagedAgentsSessionRequiresActionType`

        - `EventIDs []string`

          The ids of events the agent is blocked on. Resolving fewer than all re-emits `session.status_idle` with the remainder.

      - `type BetaManagedAgentsSessionRetriesExhausted`

        The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`.

        - `Type BetaManagedAgentsSessionRetriesExhaustedType`

      - `type BetaManagedAgentsSessionBudgetReached`

        The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget.

        - `Type BetaManagedAgentsSessionBudgetReachedType`

      - `type BetaManagedAgentsSessionRefusal`

        The turn ended because the model's response was refused, for example by a safety classifier.

        - `Type Refusal`

  - `type BetaManagedAgentsSessionStatusTerminatedEvent`

    Indicates the session has terminated, either due to an error or completion.

    - `Type BetaManagedAgentsSessionStatusTerminatedEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp of status change.

      format: date-time

  - `type BetaManagedAgentsSessionThreadCreatedEvent`

    Emitted when a child thread is created. Written to the parent thread's output stream so clients observing the session see child creation.

    - `Type BetaManagedAgentsSessionThreadCreatedEventType`

    - `ID string`

      Unique identifier for this event.

    - `AgentName string`

      Name of the callable agent the thread runs.

    - `ProcessedAt Time`

      Timestamp when the thread was created.

      format: date-time

    - `SessionThreadID string`

      Public `sthr_` ID of the newly created thread.

    - `WorkflowRunID string`

      Identifier of the workflow run that created the thread, or `null` for any other thread.

  - `type BetaManagedAgentsSpanOutcomeEvaluationStartEvent`

    Emitted when an outcome evaluation cycle begins.

    - `Type BetaManagedAgentsSpanOutcomeEvaluationStartEventType`

    - `ID string`

      Unique identifier for this event.

    - `Iteration int64`

      0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation after the first revision; etc.

      format: int32

    - `OutcomeID string`

      The `outc_` ID of the outcome being evaluated.

    - `ProcessedAt Time`

      Timestamp when outcome evaluation started.

      format: date-time

  - `type BetaManagedAgentsSpanOutcomeEvaluationEndEvent`

    Emitted when an outcome evaluation cycle completes. Carries the verdict and aggregate token usage. A verdict of `needs_revision` means another evaluation cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` are terminal — no further evaluation cycles follow.

    - `Type BetaManagedAgentsSpanOutcomeEvaluationEndEventType`

    - `ID string`

      Unique identifier for this event.

    - `Explanation string`

      Human-readable explanation of the verdict. For `needs_revision`, describes which criteria failed and why.

    - `Iteration int64`

      0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`.

      format: int32

    - `OutcomeEvaluationStartID string`

      The id of the corresponding `span.outcome_evaluation_start` event.

    - `OutcomeID string`

      The `outc_` ID of the outcome being evaluated.

    - `ProcessedAt Time`

      Timestamp when outcome evaluation ended.

      format: date-time

    - `Result string`

      Evaluation verdict. 'satisfied': criteria met, session goes idle. 'needs_revision': criteria not met, another revision cycle follows. 'max_iterations_reached': evaluation budget exhausted with criteria still unmet — one final acknowledgment turn follows before the session goes idle, but no further evaluation runs. 'failed': grader determined the rubric does not apply to the deliverables. 'interrupted': user sent an interrupt while evaluation was in progress.

    - `Usage BetaManagedAgentsSpanModelUsage`

      Aggregate token usage for this evaluation cycle. Sums across all grader model requests within the cycle.

      - `CacheCreationInputTokens int64`

        Tokens used to create prompt cache in this request.

        format: int32

      - `CacheReadInputTokens int64`

        Tokens read from prompt cache in this request.

        format: int32

      - `InputTokens int64`

        Input tokens consumed by this request.

        format: int32

      - `OutputTokens int64`

        Output tokens generated by this request.

        format: int32

      - `Speed BetaManagedAgentsSpanModelUsageSpeed Optional`

        Inference speed tier this request actually ran at. Mirrors `usage.speed` on /v1/messages. Only present when the fast-mode beta is active.

        - `const BetaManagedAgentsSpanModelUsageSpeedStandard BetaManagedAgentsSpanModelUsageSpeed = "standard"`

        - `const BetaManagedAgentsSpanModelUsageSpeedFast BetaManagedAgentsSpanModelUsageSpeed = "fast"`

  - `type BetaManagedAgentsSpanModelRequestStartEvent`

    Emitted when a model request is initiated by the agent.

    - `Type BetaManagedAgentsSpanModelRequestStartEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when the model request started.

      format: date-time

  - `type BetaManagedAgentsSpanModelRequestEndEvent`

    Emitted when a model request completes.

    - `Type BetaManagedAgentsSpanModelRequestEndEventType`

    - `ID string`

      Unique identifier for this event.

    - `IsError bool`

      Whether the model request resulted in an error.

    - `ModelRequestStartID string`

      The id of the corresponding `span.model_request_start` event.

    - `ModelUsage BetaManagedAgentsSpanModelUsage`

      Token usage for this model request.

    - `ProcessedAt Time`

      Timestamp when the model request completed.

      format: date-time

  - `type BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent`

    Periodic heartbeat emitted while an outcome evaluation cycle is in progress. Distinguishes 'evaluation is actively running' from 'evaluation is stuck' between the corresponding `span.outcome_evaluation_start` and `span.outcome_evaluation_end` events.

    - `Type BetaManagedAgentsSpanOutcomeEvaluationOngoingEventType`

    - `ID string`

      Unique identifier for this event.

    - `Iteration int64`

      0-indexed revision cycle, matching the corresponding `span.outcome_evaluation_start`.

      format: int32

    - `OutcomeID string`

      The `outc_` ID of the outcome being evaluated.

    - `ProcessedAt Time`

      Timestamp when this heartbeat was emitted.

      format: date-time

  - `type BetaManagedAgentsUserDefineOutcomeEvent`

    Echo of a `user.define_outcome` input event. Carries the server-generated `outcome_id` that subsequent `span.outcome_evaluation_*` events reference.

    - `Type BetaManagedAgentsUserDefineOutcomeEventType`

    - `ID string`

      Unique identifier for this event.

    - `Description string`

      What the agent should produce. Copied from the input event.

    - `MaxIterations int64`

      Evaluate-then-revise cycles before giving up. Default 3, max 20.

      format: int32

    - `OutcomeID string`

      Server-generated `outc_` ID for this outcome. Referenced by `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list.

    - `ProcessedAt Time`

      Timestamp when the outcome was accepted.

      format: date-time

    - `Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion`

      How to grade the outcome. File rubrics are currently resolved to their text content; clients should handle both variants.

      - `type BetaManagedAgentsFileRubric`

        Rubric referenced by a file uploaded via the Files API.

        - `Type BetaManagedAgentsFileRubricType`

        - `FileID string`

          ID of the rubric file.

      - `type BetaManagedAgentsTextRubric`

        Rubric content provided inline as text.

        - `Type BetaManagedAgentsTextRubricType`

        - `Content string`

          Rubric content. Plain text or markdown — the grader treats it as freeform text.

  - `type BetaManagedAgentsSessionDeletedEvent`

    Emitted when a session has been deleted. Terminates any active event stream — no further events will be emitted for this session.

    - `Type BetaManagedAgentsSessionDeletedEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when the session was deleted.

      format: date-time

  - `type BetaManagedAgentsSessionThreadStatusRunningEvent`

    A session thread has begun executing. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

    - `Type BetaManagedAgentsSessionThreadStatusRunningEventType`

    - `ID string`

      Unique identifier for this event.

    - `AgentName string`

      Name of the agent the thread runs.

    - `ProcessedAt Time`

      Timestamp of the status transition.

      format: date-time

    - `SessionThreadID string`

      Public sthr_ ID of the thread that started running.

  - `type BetaManagedAgentsSessionThreadStatusIdleEvent`

    A session thread has yielded and is awaiting input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

    - `Type BetaManagedAgentsSessionThreadStatusIdleEventType`

    - `ID string`

      Unique identifier for this event.

    - `AgentName string`

      Name of the agent the thread runs.

    - `ProcessedAt Time`

      Timestamp of the status transition.

      format: date-time

    - `SessionThreadID string`

      Public sthr_ ID of the thread that went idle.

    - `StopDetails BetaManagedAgentsSessionRefusalStopDetails`

      Structured information about why the thread stopped. `null` when there is nothing more to report.

    - `StopReason BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion`

      - `type BetaManagedAgentsSessionEndTurn`

        The agent completed its turn naturally and is ready for the next user message.

      - `type BetaManagedAgentsSessionRequiresAction`

        The agent is idle waiting on one or more blocking user-input events (tool confirmation, custom tool result, etc.). Resolving all of them transitions the session back to running.

      - `type BetaManagedAgentsSessionRetriesExhausted`

        The turn ended because repeated errors exhausted the retry budget or an error escalated to `retry_status: 'exhausted'`.

      - `type BetaManagedAgentsSessionBudgetReached`

        The agent stopped because the session's tracked list cost reached its budget, or because its usage includes a model with no list price (which the budget cannot measure). Raise the budget to continue — or, if raising is rejected because a model has no list price, remove the budget.

      - `type BetaManagedAgentsSessionRefusal`

        The turn ended because the model's response was refused, for example by a safety classifier.

  - `type BetaManagedAgentsSessionThreadStatusTerminatedEvent`

    A session thread has terminated and will accept no further input. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

    - `Type BetaManagedAgentsSessionThreadStatusTerminatedEventType`

    - `ID string`

      Unique identifier for this event.

    - `AgentName string`

      Name of the agent the thread runs.

    - `ProcessedAt Time`

      Timestamp of the status transition.

      format: date-time

    - `SessionThreadID string`

      Public sthr_ ID of the thread that terminated.

  - `type BetaManagedAgentsUserToolResultEvent`

    Event sent by the client providing the result of an agent-toolset tool execution. Only valid on `self_hosted` environments, where sandbox-routed tools are executed by the client rather than the server.

    - `Type BetaManagedAgentsUserToolResultEventType`

    - `ID string`

      Unique identifier for this event.

    - `ToolUseID string`

      The id of the `agent.tool_use` event this result corresponds to, which can be found in the last `session.status_idle` [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list?sdk_languages=go#beta_managed_agents_session_requires_action.event_ids) `stop_reason.event_ids` field.

    - `Content []BetaManagedAgentsUserToolResultEventContentUnion Optional`

      The result content returned by the tool.

      - `type BetaManagedAgentsTextBlock`

        Regular text content.

      - `type BetaManagedAgentsImageBlock`

        Image content specified directly as base64 data or as a reference via a URL.

      - `type BetaManagedAgentsDocumentBlock`

        Document content, either specified directly as base64 data, as text, or as a reference via a URL.

      - `type BetaManagedAgentsSearchResultBlock`

        A block containing a web search result.

    - `IsError bool Optional`

      Whether the tool execution resulted in an error.

    - `ProcessedAt Time Optional`

      Timestamp when this result was processed.

      format: date-time

    - `SessionThreadID string Optional`

      Set by the server to the subagent thread this result was routed to. Omitted when it was routed to the primary thread.

  - `type BetaManagedAgentsSessionThreadStatusRescheduledEvent`

    A session thread hit a transient error and is retrying automatically. Emitted on the thread's own stream and cross-posted to the primary stream for child threads.

    - `Type BetaManagedAgentsSessionThreadStatusRescheduledEventType`

    - `ID string`

      Unique identifier for this event.

    - `AgentName string`

      Name of the agent the thread runs.

    - `ProcessedAt Time`

      Timestamp of the status transition.

      format: date-time

    - `SessionThreadID string`

      Public sthr_ ID of the thread that is retrying.

  - `type BetaManagedAgentsSessionUpdatedEvent`

    Emitted when an UpdateSession request changed at least one field. Carries only the fields that changed; absent fields were not part of the update. The new configuration applies from the next turn.

    - `Type BetaManagedAgentsSessionUpdatedEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when the update was applied.

      format: date-time

    - `Agent BetaManagedAgentsSessionAgent Optional`

      The session's effective agent configuration after the update. Present only when the update changed `agent` (tools or mcp_servers); when present it is the full materialised snapshot, not a diff.

      - `Type BetaManagedAgentsSessionAgentType`

      - `ID string`

      - `Description string`

      - `ExecutionIdentity BetaManagedAgentsExecutionIdentityUnion`

        Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal.

        - `type BetaManagedAgentsAWSRoleExecutionIdentity`

          An AWS IAM role principal as returned in API responses.

          - `Type AWSRole`

          - `RoleARN string`

            The IAM role's ARN.

        - `type BetaManagedAgentsServiceAccountExecutionIdentity`

          The Anthropic-managed service account as returned in API responses.

          - `Type ServiceAccount`

      - `MCPServers []BetaManagedAgentsMCPServerURLDefinition`

        - `Type BetaManagedAgentsMCPServerURLDefinitionType`

        - `Name string`

        - `URL string`

      - `Model BetaManagedAgentsModelConfig`

        Model identifier and configuration.

        - `ID BetaManagedAgentsModel`

          The model that will power your agent.

          See [models](https://docs.anthropic.com/en/docs/models-overview) for additional details and options.

          - `const BetaManagedAgentsModelClaudeHaiku5_5 BetaManagedAgentsModel = "claude-haiku-5-5"`

            Fastest model for high-volume, real-time tasks

          - `const BetaManagedAgentsModelClaudeSonnet5_5 BetaManagedAgentsModel = "claude-sonnet-5-5"`

            Efficient model for coding and agents

          - `const BetaManagedAgentsModelClaudeOpus5_5 BetaManagedAgentsModel = "claude-opus-5-5"`

            Powerful intelligence for coding, knowledge work, and long-running agents

          - `const BetaManagedAgentsModelClaudeFable5_1 BetaManagedAgentsModel = "claude-fable-5-1"`

            Frontier intelligence for ambitious tasks across coding, scientific discovery, and enterprise workflows

          - `const BetaManagedAgentsModelClaudeSonnet5 BetaManagedAgentsModel = "claude-sonnet-5"`

            Efficient model for coding and agents

          - `const BetaManagedAgentsModelClaudeFable5 BetaManagedAgentsModel = "claude-fable-5"`

            Next generation of intelligence for the hardest knowledge work and coding problems

          - `const BetaManagedAgentsModelClaudeOpus5 BetaManagedAgentsModel = "claude-opus-5"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeOpus4_8 BetaManagedAgentsModel = "claude-opus-4-8"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeOpus4_7 BetaManagedAgentsModel = "claude-opus-4-7"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeOpus4_6 BetaManagedAgentsModel = "claude-opus-4-6"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeSonnet4_6 BetaManagedAgentsModel = "claude-sonnet-4-6"`

            Best combination of speed and intelligence

          - `const BetaManagedAgentsModelClaudeHaiku4_5 BetaManagedAgentsModel = "claude-haiku-4-5"`

          - `const BetaManagedAgentsModelClaudeHaiku4_5_20251001 BetaManagedAgentsModel = "claude-haiku-4-5-20251001"`

          - `const BetaManagedAgentsModelClaudeOpus4_5 BetaManagedAgentsModel = "claude-opus-4-5"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeOpus4_5_20251101 BetaManagedAgentsModel = "claude-opus-4-5-20251101"`

            Powerful intelligence for long-running agents and coding

          - `const BetaManagedAgentsModelClaudeSonnet4_5 BetaManagedAgentsModel = "claude-sonnet-4-5"`

            **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.

            High-performance model for agents and coding

          - `const BetaManagedAgentsModelClaudeSonnet4_5_20250929 BetaManagedAgentsModel = "claude-sonnet-4-5-20250929"`

            **Deprecated**: Will reach end-of-life on November 30, 2026. Please migrate to claude-sonnet-5-5. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.

            High-performance model for agents and coding

        - `Effort BetaManagedAgentsModelConfigEffortUnion Optional`

          How hard Claude works on each inference call. One of `low`, `medium`, `high`, `xhigh`, `max`. Always present; resolved to the per-model default at save time when not supplied.

          - `type BetaManagedAgentsEffortLow`

            Low effort. Favors latency over reasoning depth.

            - `Type BetaManagedAgentsEffortLowType`

          - `type BetaManagedAgentsEffortMedium`

            Medium effort. Balances latency and reasoning depth.

            - `Type BetaManagedAgentsEffortMediumType`

          - `type BetaManagedAgentsEffortHigh`

            High effort. Favors reasoning depth.

            - `Type BetaManagedAgentsEffortHighType`

          - `type BetaManagedAgentsEffortXhigh`

            Extra-high effort. Not all models accept this level.

            - `Type BetaManagedAgentsEffortXhighType`

          - `type BetaManagedAgentsEffortMax`

            Maximum effort. Favors reasoning depth over latency.

            - `Type BetaManagedAgentsEffortMaxType`

        - `InferenceGeo string Optional`

          Geographic region for model inference. When unset, requests fall through to the workspace's default_inference_geo.

        - `Speed BetaManagedAgentsModelConfigSpeed Optional`

          Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Defaults to `standard`. Not all models support `fast`; invalid combinations are rejected at create time.

          - `const BetaManagedAgentsModelConfigSpeedStandard BetaManagedAgentsModelConfigSpeed = "standard"`

          - `const BetaManagedAgentsModelConfigSpeedFast BetaManagedAgentsModelConfigSpeed = "fast"`

      - `Multiagent BetaManagedAgentsSessionMultiagentUnion`

        Resolved multiagent orchestration configuration. Null when the agent is single-threaded.

        - `type BetaManagedAgentsSessionMultiagentCoordinator`

          Resolved coordinator topology with full agent definitions for each roster member.

          - `Type BetaManagedAgentsSessionMultiagentCoordinatorType`

          - `Agents []BetaManagedAgentsSessionMultiagentCoordinatorAgentUnion`

            Full `agent` definitions the coordinator may spawn as session threads.

            - `type BetaManagedAgentsSessionThreadAgent`

              Resolved `agent` definition for a single `session_thread`. Snapshot of the agent at thread creation time. The multiagent roster is not repeated here; read it from `Session.agent`.

              - `Type BetaManagedAgentsSessionThreadAgentType`

              - `ID string`

              - `Description string`

              - `ExecutionIdentity BetaManagedAgentsExecutionIdentityUnion`

                Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal.

              - `MCPServers []BetaManagedAgentsMCPServerURLDefinition`

                - `Type BetaManagedAgentsMCPServerURLDefinitionType`

                - `Name string`

                - `URL string`

              - `Model BetaManagedAgentsModelConfig`

                Model identifier and configuration.

              - `Name string`

              - `Skills []BetaManagedAgentsSessionThreadAgentSkillUnion`

                - `type BetaManagedAgentsAnthropicSkill`

                  A resolved Anthropic-managed skill.

                  - `Type BetaManagedAgentsAnthropicSkillType`

                  - `SkillID string`

                  - `Version string`

                - `type BetaManagedAgentsCustomSkill`

                  A resolved user-created custom skill.

                  - `Type BetaManagedAgentsCustomSkillType`

                  - `SkillID string`

                  - `Version string`

              - `System string`

              - `Tools []BetaManagedAgentsSessionThreadAgentToolUnion`

                - `type BetaManagedAgentsAgentToolset20260401`

                  - `Type BetaManagedAgentsAgentToolset20260401Type`

                  - `Configs []BetaManagedAgentsAgentToolConfigUnion`

                    - `type BetaManagedAgentsBashToolConfig`

                      Configuration for the bash tool.

                      - `Type Bash`

                      - `Enabled bool`

                      - `Name Bash`

                      - `PermissionPolicy BetaManagedAgentsBashToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                          - `Type BetaManagedAgentsAlwaysAllowPolicyType`

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                          - `Type BetaManagedAgentsAlwaysAskPolicyType`

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                          - `Type Auto`

                    - `type BetaManagedAgentsEditToolConfig`

                      Configuration for the edit tool.

                      - `Type Edit`

                      - `Enabled bool`

                      - `Name Edit`

                      - `PermissionPolicy BetaManagedAgentsEditToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                    - `type BetaManagedAgentsReadToolConfig`

                      Configuration for the read tool.

                      - `Type Read`

                      - `Enabled bool`

                      - `Name Read`

                      - `PermissionPolicy BetaManagedAgentsReadToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                    - `type BetaManagedAgentsWriteToolConfig`

                      Configuration for the write tool.

                      - `Type Write`

                      - `Enabled bool`

                      - `Name Write`

                      - `PermissionPolicy BetaManagedAgentsWriteToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                    - `type BetaManagedAgentsGlobToolConfig`

                      Configuration for the glob tool.

                      - `Type Glob`

                      - `Enabled bool`

                      - `Name Glob`

                      - `PermissionPolicy BetaManagedAgentsGlobToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                    - `type BetaManagedAgentsGrepToolConfig`

                      Configuration for the grep tool.

                      - `Type Grep`

                      - `Enabled bool`

                      - `Name Grep`

                      - `PermissionPolicy BetaManagedAgentsGrepToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                    - `type BetaManagedAgentsWebFetchToolConfig`

                      Configuration for the web_fetch tool.

                      - `Type WebFetch`

                      - `Enabled bool`

                      - `Name WebFetch`

                      - `PermissionPolicy BetaManagedAgentsWebFetchToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                      - `URLSources BetaManagedAgentsWebFetchURLSources`

                        Which sources contribute URLs the tool may fetch, always in the object form. Null when not set, which allows every source.

                        - `ClientToolResults BetaManagedAgentsWebFetchURLSourceToolFilterUnion`

                          Which custom tools' results contribute URLs that may be fetched. Null when not set, which allows every custom tool's results.

                          - `type BetaManagedAgentsWebFetchURLSourceAll`

                            Every URL from this source may be fetched. This is the default.

                            - `Type All`

                          - `type BetaManagedAgentsWebFetchURLSourceNone`

                            This source contributes no URLs that may be fetched.

                            - `Type None`

                          - `type BetaManagedAgentsWebFetchURLSourceOnly`

                            Only the named tools' results contribute URLs that may be fetched.

                            - `Type Only`

                            - `Tools []BetaManagedAgentsWebFetchURLSourceToolReference`

                              The tools whose results contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "none" to allow no tool's results.

                              - `Type ToolReference`

                                Must be "tool_reference".

                              - `Name string`

                                Name of the tool. Compared exactly, so upper and lower case letters are different.

                                minLength: 1, maxLength: 128

                          - `type BetaManagedAgentsWebFetchURLSourceExcept`

                            Every tool's results contribute URLs that may be fetched, except the named tools' results.

                            - `Type Except`

                            - `Tools []BetaManagedAgentsWebFetchURLSourceToolReference`

                              The tools whose results do not contribute. Between 1 and 128 entries, each with a different name. An empty list is rejected; use "all" to leave out no tool's results.

                              - `Type ToolReference`

                                Must be "tool_reference".

                              - `Name string`

                                Name of the tool. Compared exactly, so upper and lower case letters are different.

                                minLength: 1, maxLength: 128

                        - `ServerToolResults BetaManagedAgentsWebFetchURLSourceToolFilterUnion`

                          Which of the web_search and web_fetch tools' results contribute URLs that may be fetched. Null when not set, which allows both.

                        - `UserInput BetaManagedAgentsWebFetchURLSourceUserInputUnion`

                          Whether URLs in the text of user messages may be fetched. Null when not set, which allows them.

                          - `type BetaManagedAgentsWebFetchURLSourceAll`

                            Every URL from this source may be fetched. This is the default.

                          - `type BetaManagedAgentsWebFetchURLSourceNone`

                            This source contributes no URLs that may be fetched.

                      - `AllowedDomains []string Optional`

                      - `BlockedDomains []string Optional`

                      - `MaxContentTokens int64 Optional`

                        format: int32

                    - `type BetaManagedAgentsWebSearchToolConfig`

                      Configuration for the web_search tool.

                      - `Type WebSearch`

                      - `Enabled bool`

                      - `Name WebSearch`

                      - `PermissionPolicy BetaManagedAgentsWebSearchToolConfigPermissionPolicyUnion`

                        Permission policy for tool execution.

                        - `type BetaManagedAgentsAlwaysAllowPolicy`

                          Tool calls are automatically approved without user confirmation.

                        - `type BetaManagedAgentsAlwaysAskPolicy`

                          Tool calls require user confirmation before execution.

                        - `type BetaManagedAgentsAutoPolicy`

                          The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                      - `AllowedDomains []string Optional`

                      - `BlockedDomains []string Optional`

                      - `UserLocation BetaManagedAgentsUserLocation Optional`

                        Approximate user location for search result localization.

                        - `Type Approximate`

                          Location precision. Only "approximate" is supported.

                        - `City string Optional`

                          City name.

                          minLength: 1, maxLength: 255

                        - `Country string Optional`

                          Two-letter ISO 3166-1 country code, uppercase.

                        - `Region string Optional`

                          Region or state name.

                          minLength: 1, maxLength: 255

                        - `Timezone string Optional`

                          IANA timezone identifier, e.g. "America/Los_Angeles".

                          minLength: 1, maxLength: 255

                  - `DefaultConfig BetaManagedAgentsAgentToolsetDefaultConfig`

                    Resolved default configuration for agent tools.

                    - `Enabled bool`

                    - `PermissionPolicy BetaManagedAgentsAgentToolsetDefaultConfigPermissionPolicyUnion`

                      Permission policy for tool execution.

                      - `type BetaManagedAgentsAlwaysAllowPolicy`

                        Tool calls are automatically approved without user confirmation.

                      - `type BetaManagedAgentsAlwaysAskPolicy`

                        Tool calls require user confirmation before execution.

                      - `type BetaManagedAgentsAutoPolicy`

                        The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                - `type BetaManagedAgentsMCPToolset`

                  - `Type BetaManagedAgentsMCPToolsetType`

                  - `Configs []BetaManagedAgentsMCPToolConfig`

                    - `Enabled bool`

                    - `Name string`

                    - `PermissionPolicy BetaManagedAgentsMCPToolConfigPermissionPolicyUnion`

                      Permission policy for tool execution.

                      - `type BetaManagedAgentsAlwaysAllowPolicy`

                        Tool calls are automatically approved without user confirmation.

                      - `type BetaManagedAgentsAlwaysAskPolicy`

                        Tool calls require user confirmation before execution.

                      - `type BetaManagedAgentsAutoPolicy`

                        The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                  - `DefaultConfig BetaManagedAgentsMCPToolsetDefaultConfig`

                    Resolved default configuration for all tools from an MCP server.

                    - `Enabled bool`

                    - `PermissionPolicy BetaManagedAgentsMCPToolsetDefaultConfigPermissionPolicyUnion`

                      Permission policy for tool execution.

                      - `type BetaManagedAgentsAlwaysAllowPolicy`

                        Tool calls are automatically approved without user confirmation.

                      - `type BetaManagedAgentsAlwaysAskPolicy`

                        Tool calls require user confirmation before execution.

                      - `type BetaManagedAgentsAutoPolicy`

                        The server decides each tool call individually: it judges, from the tool, its input, and the session content so far, whether the call is safe to execute or high-risk, and evaluates it to allow when judged safe and to deny when judged high-risk. A call the server cannot reach a judgement on evaluates to ask.

                  - `MCPServerName string`

                - `type BetaManagedAgentsCustomTool`

                  A custom tool as returned in API responses.

                  - `Type BetaManagedAgentsCustomToolType`

                  - `Description string`

                  - `InputSchema BetaManagedAgentsCustomToolInputSchema`

                    JSON Schema for custom tool input parameters.

                    - `Type Object`

                    - `Properties map[string, any] Optional`

                    - `Required []string Optional`

                  - `Name string`

              - `Version int64`

                format: int32

            - `type BetaManagedAgentsAdvisor`

              Platform advisor roster entry: a model the session's primary thread may consult mid-turn.

              - `Type BetaManagedAgentsAdvisorType`

              - `Model string`

                The advisor model id.

        - `type BetaManagedAgentsSessionMultiagent20261001`

          Resolved multiagent configuration with three members, as copied to the `session` at creation.

          - `Type Multiagent20261001`

          - `Advisor BetaManagedAgentsMultiagentAdvisorUnion`

            Whether the session's primary thread can consult an advisor model.

            - `type BetaManagedAgentsMultiagentAdvisorEnabled`

              The session's primary thread can consult `model` mid-turn.

              - `Type Enabled`

              - `Model string`

                The advisor model id.

            - `type BetaManagedAgentsMultiagentAdvisorDisabled`

              The agent has no advisor.

              - `Type Disabled`

          - `Subagents BetaManagedAgentsSessionMultiagentSubagentsUnion`

            Whether the agent can spawn session threads.

            - `type BetaManagedAgentsSessionMultiagentSubagentsEnabled`

              The agent can spawn session threads.

              - `Type Enabled`

              - `InlineAgents BetaManagedAgentsMultiagentInlineAgentsUnion`

                Whether the agent can define inline agents, which are not saved, when it spawns session threads.

                - `type BetaManagedAgentsMultiagentInlineAgentsEnabled`

                  The agent can define inline agents.

                  - `Type Enabled`

                - `type BetaManagedAgentsMultiagentInlineAgentsDisabled`

                  The agent cannot define inline agents.

                  - `Type Disabled`

              - `PredefinedAgents []BetaManagedAgentsSessionThreadAgent`

                Full `agent` definitions of the predefined agents, which are saved agents that this agent can spawn as session threads.

                - `Type BetaManagedAgentsSessionThreadAgentType`

                - `ID string`

                - `Description string`

                - `ExecutionIdentity BetaManagedAgentsExecutionIdentityUnion`

                  Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal.

                - `MCPServers []BetaManagedAgentsMCPServerURLDefinition`

                - `Model BetaManagedAgentsModelConfig`

                  Model identifier and configuration.

                - `Name string`

                - `Skills []BetaManagedAgentsSessionThreadAgentSkillUnion`

                - `System string`

                - `Tools []BetaManagedAgentsSessionThreadAgentToolUnion`

                - `Version int64`

                  format: int32

            - `type BetaManagedAgentsMultiagentSubagentsDisabled`

              The agent cannot spawn session threads.

              - `Type Disabled`

          - `Workflows BetaManagedAgentsSessionMultiagentWorkflowsUnion`

            Whether the agent can start workflow runs.

            - `type BetaManagedAgentsSessionMultiagentWorkflowsEnabled`

              The agent can start workflow runs.

              - `Type Enabled`

              - `InlineAgents BetaManagedAgentsMultiagentInlineAgentsUnion`

                Whether a run's plan can define inline agents, which are not saved.

              - `PredefinedAgents []BetaManagedAgentsSessionThreadAgent`

                Full `agent` definitions of the predefined agents, which are saved agents that a run's plan can use.

                - `Type BetaManagedAgentsSessionThreadAgentType`

                - `ID string`

                - `Description string`

                - `ExecutionIdentity BetaManagedAgentsExecutionIdentityUnion`

                  Execution principal snapshotted from the agent at session creation. Always present; `{"type": "service_account"}` when runs carry no customer-named principal.

                - `MCPServers []BetaManagedAgentsMCPServerURLDefinition`

                - `Model BetaManagedAgentsModelConfig`

                  Model identifier and configuration.

                - `Name string`

                - `Skills []BetaManagedAgentsSessionThreadAgentSkillUnion`

                - `System string`

                - `Tools []BetaManagedAgentsSessionThreadAgentToolUnion`

                - `Version int64`

                  format: int32

            - `type BetaManagedAgentsMultiagentWorkflowsDisabled`

              The agent cannot start workflow runs.

              - `Type Disabled`

      - `Name string`

      - `Skills []BetaManagedAgentsSessionAgentSkillUnion`

        - `type BetaManagedAgentsAnthropicSkill`

          A resolved Anthropic-managed skill.

        - `type BetaManagedAgentsCustomSkill`

          A resolved user-created custom skill.

      - `System string`

      - `Tools []BetaManagedAgentsSessionAgentToolUnion`

        - `type BetaManagedAgentsAgentToolset20260401`

        - `type BetaManagedAgentsMCPToolset`

        - `type BetaManagedAgentsCustomTool`

          A custom tool as returned in API responses.

      - `Version int64`

        format: int32

    - `Budget BetaManagedAgentsBudgetLimit Optional`

      The session's budget after the update: the new budget when set or replaced, or null when the update removed it. Present only when the update changed the budget.

      - `Type BetaManagedAgentsBudgetLimitType`

      - `MaxListCost BetaMonetaryAmount`

        Maximum list cost the session may accrue. List price is used regardless of any negotiated discount, so the cap fires at or before the actual charge.

        - `Amount string`

          Amount in minor units of the currency, as an integer decimal string with no leading zeros: "2500" is $25.00 and "50" is fifty cents. A string rather than a number so no float rounding is ever applied.

        - `Currency BetaCurrency`

          Uppercase ISO-4217 currency code. `USD` is the only currency currently supported; the accepted set is closed and grows only when a new currency is priced.

    - `Metadata map[string, string] Optional`

      The session's full metadata bag after the update. Present when the update set non-empty metadata; absent when metadata was unchanged or cleared to empty.

    - `Title string Optional`

      The session's new title. Present only when the update changed it.

  - `type BetaManagedAgentsStartEvent`

    Opens a preview of a buffered event. Carries the previewed event's type and id only. Followed by zero or more event_delta events with the same event id, normally concluded by the buffered event carrying that id. If the producing model request ends without that event (an error or interrupt mid-stream), its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history.

    - `Type BetaManagedAgentsStartEventType`

    - `Event BetaManagedAgentsStartEventPreviewUnion`

      The previewed event's type and id. The event type determines which delta types the preview's event_delta events carry: agent.message events stream content_delta fragments; agent.thinking previews are start-only — no deltas follow, and the buffered agent.thinking with the same id concludes them.

      - `type BetaManagedAgentsAgentMessagePreview`

        - `Type BetaManagedAgentsAgentMessagePreviewType`

        - `ID string`

          The id the buffered agent.message will carry if it is emitted. Matches the event_id on this preview's event_delta events.

      - `type BetaManagedAgentsAgentThinkingPreview`

        - `Type BetaManagedAgentsAgentThinkingPreviewType`

        - `ID string`

          The id the buffered agent.thinking will carry if it is emitted. Start-only — no event_delta events follow.

  - `type BetaManagedAgentsDeltaEvent`

    An incremental update to an event that is still being streamed. Deltas are best-effort and may stop early; when the buffered event with id == event_id is produced it carries the complete content. A model request that ends early (an error or interrupt) produces no buffered event — its terminal span.model_request_end closes the preview. Only sent on stream connections that opt in via event_deltas; never appears in event history.

    - `Type BetaManagedAgentsDeltaEventType`

    - `Delta BetaManagedAgentsDeltaContent`

      One fragment of the previewed event. The delta type is named for the previewed event's field it streams into: agent.message events stream content_delta fragments, each a partial element of the content array.

      - `Type BetaManagedAgentsDeltaContentType`

      - `Content BetaManagedAgentsTextBlock`

        A partial element of the content array at index, typed like the element itself — the same shape the buffered agent.message carries in content.

      - `Index int64 Optional`

        Which entry in the previewed event's content array this fragment lands in. Insert content as that entry when the index is new; append to the existing entry otherwise.

    - `EventID string`

      The id of the event being previewed. Matches event.id on the corresponding event_start and the buffered event that reconciles the preview.

  - `type BetaManagedAgentsSystemMessageEvent`

    A mid-conversation system message event. Carries system-role content that is appended to the session as a `role: "system"` turn.

    - `Type BetaManagedAgentsSystemMessageEventType`

    - `ID string`

      Unique identifier for this event.

    - `Content []BetaManagedAgentsSystemContentBlock`

      System content blocks. Text-only.

      - `Type BetaManagedAgentsSystemContentBlockType`

      - `Text string`

        The text content.

        minLength: 1

    - `ProcessedAt Time Optional`

      Timestamp when this system message was processed.

      format: date-time

  - `type BetaManagedAgentsSessionUsageEvent`

    Periodic snapshot of the session's cumulative usage and tracked list cost.

    - `Type BetaManagedAgentsSessionUsageEventType`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when the snapshot was taken.

      format: date-time

    - `Usage BetaManagedAgentsSessionUsageSnapshot`

      The session's cumulative usage at the snapshot time.

      - `ActiveSeconds float64 Optional`

        Cumulative time in seconds during which the session had at least one thread in running status. Overlapping activity from concurrent threads is counted once. This is the duration the session's runtime cost is priced on.

        format: double

      - `CacheCreation BetaManagedAgentsCacheCreationUsage Optional`

        Tokens used to create prompt cache entries, broken down by cache TTL.

        - `Ephemeral1hInputTokens int64 Optional`

          Tokens used to create 1-hour ephemeral cache entries.

          format: int32

        - `Ephemeral5mInputTokens int64 Optional`

          Tokens used to create 5-minute ephemeral cache entries.

          format: int32

      - `CacheReadInputTokens int64 Optional`

        Total tokens read from prompt cache.

        format: int32

      - `InputTokens int64 Optional`

        Total input tokens consumed across all turns.

        format: int32

      - `ListCost BetaMonetaryAmount Optional`

        Cumulative list cost of the session across all turns, priced at public list rates.

      - `OutputTokens int64 Optional`

        Total output tokens generated across all turns.

        format: int32

      - `ServerToolUse BetaManagedAgentsServerToolUsage Optional`

        Cumulative server-executed tool usage across all turns.

        - `WebFetchRequests int64 Optional`

          Number of server-executed web fetch requests.

          format: int32

        - `WebSearchRequests int64 Optional`

          Number of server-executed web search requests.

          format: int32

    - `Budget BetaManagedAgentsBudgetLimit Optional`

      The session's configured budget at the snapshot time, or null when the session has no budget.

  - `type BetaManagedAgentsWorkflowRunCreatedEvent`

    A workflow run was created. A workflow run is background work that the session's agent starts. Emitted once per run, before the run's other `workflow_run.*` events.

    - `Type WorkflowRunCreated`

    - `ID string`

      Unique identifier for this event.

    - `Description string`

      Description that the agent gave the run, passed on as written, or `null` if it gave none.

    - `Name string`

      Name that the agent gave the run, passed on as written, or a name that the server assigned.

    - `Phases []BetaManagedAgentsWorkflowRunPhase`

      The phases that the run's plan declares, in the plan's order. Can be empty.

      - `ID string`

        Unique identifier for the phase.

      - `Description string`

        Description that the agent gave the phase, passed on as written, or `null` if it gave none.

      - `Name string`

        Name that the agent gave the phase, passed on as written.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

  - `type BetaManagedAgentsWorkflowRunStatusEndedEvent`

    A workflow run ended. Emitted once per run, as the last of the run's `workflow_run.*` events.

    - `Type WorkflowRunStatusEnded`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `Result BetaManagedAgentsWorkflowRunResultUnion`

      How the run ended.

      - `type BetaManagedAgentsWorkflowRunResultCompleted`

        The run's plan, a program that the agent wrote, finished. This does not say whether the work succeeded.

        - `Type Completed`

      - `type BetaManagedAgentsWorkflowRunResultError`

        The run failed or reached its time limit.

        - `Type Error`

        - `Error BetaManagedAgentsWorkflowRunErrorUnion`

          Why the run did not finish.

          - `type BetaManagedAgentsTimeoutWorkflowRunError`

            The run reached its time limit.

            - `Type TimeoutError`

            - `Message string`

              Short explanation written by the server. It never contains content from the run or its agents.

          - `type BetaManagedAgentsProgramWorkflowRunError`

            The plan, a program that the agent wrote, failed, or the server refused it.

            - `Type ProgramError`

            - `Message string`

              Short explanation written by the server. It never contains content from the run or its agents.

          - `type BetaManagedAgentsUnknownWorkflowRunError`

            A failure that has no type of its own.

            - `Type UnknownError`

            - `Message string`

              Short explanation written by the server. It never contains content from the run or its agents.

          - `type BetaManagedAgentsThreadLimitWorkflowRunError`

            The run exceeded the limit on the number of threads that a run can create.

            - `Type ThreadLimitError`

            - `Message string`

              Short explanation written by the server. It never contains content from the run or its agents.

          - `type BetaManagedAgentsMaxWorkflowRunsWorkflowRunError`

            No run was created, because the session was at its limit of open workflow runs, which are runs that have not ended. Only `workflow_run.error` carries this type.

            - `Type MaxWorkflowRunsError`

            - `Message string`

              Short explanation written by the server. It never contains content from the run or its agents.

      - `type BetaManagedAgentsWorkflowRunResultStopped`

        The agent stopped the run.

        - `Type Stopped`

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

  - `type BetaManagedAgentsWorkflowRunPhaseStartedEvent`

    A workflow run's plan entered a phase.

    - `Type WorkflowRunPhaseStarted`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

    - `WorkflowRunPhaseID string`

      Identifier of the phase, as in `phases` on the run's `workflow_run.created` event.

  - `type BetaManagedAgentsWorkflowRunPhaseEndedEvent`

    A workflow run's plan left a phase, or the run's end closed it. Emitted once for every `workflow_run.phase_started` event, before the run's `workflow_run.status_ended` event. The event does not say whether the plan finished the phase's work, or why it left.

    - `Type WorkflowRunPhaseEnded`

    - `ID string`

      Unique identifier for this event.

    - `PhaseStartedID string`

      Identifier of the `workflow_run.phase_started` event that opened the phase.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

    - `WorkflowRunPhaseID string`

      Identifier of the phase, as in `phases` on the run's `workflow_run.created` event.

  - `type BetaManagedAgentsWorkflowRunStatusRunningEvent`

    A workflow run is running. Emitted when the run starts to execute, and each time it resumes after being idle. A run that starts idle emits `workflow_run.status_idle` first.

    - `Type WorkflowRunStatusRunning`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

  - `type BetaManagedAgentsWorkflowRunStatusIdleEvent`

    A workflow run is idle. Emitted each time the run goes idle, whatever the cause. If the run ends while idle, no `workflow_run.status_running` comes between this event and its `workflow_run.status_ended`.

    - `Type WorkflowRunStatusIdle`

    - `ID string`

      Unique identifier for this event.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run. The same value is on all of the run's `workflow_run.*` events.

  - `type BetaManagedAgentsWorkflowRunErrorEvent`

    A workflow run met an error, or an error kept a run from being created. A run that ends with a `result.type` of `error` emits this event before its `workflow_run.status_ended`, with the same `error`.

    - `Type WorkflowRunError`

    - `ID string`

      Unique identifier for this event.

    - `Error BetaManagedAgentsWorkflowRunErrorUnion`

      Why the run did not finish, or was not created.

    - `ProcessedAt Time`

      Timestamp when this event was processed.

      format: date-time

    - `WorkflowRunID string`

      Identifier of the run that met the error, or `null` when the error kept a run from being created.

## Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	stream := client.Beta.Sessions.Threads.Events.StreamEvents(
		context.TODO(),
		"sthr_011CZkZVWa6oJjw1rgXZpnBt",
		anthropic.BetaSessionThreadEventStreamParams{
			SessionID: "sesn_011CZkZAtmR3yMPDzynEDxu7",
		},
	)
	for stream.Next() {
		fmt.Printf("%+v\n", stream.Current())
	}
	err := stream.Err()
	if err != nil {
		panic(err.Error())
	}
}
```

### Response (200)

```json
{
  "id": "sevt_011CZkZGPp1iBcp4kaQSihUm",
  "content": [
    {
      "text": "Where is my order #1234?",
      "type": "text"
    }
  ],
  "type": "user.message",
  "processed_at": "2026-03-15T10:00:00Z"
}
```
