Class: OpenAI::Resources::Beta::Agents::Sessions
- Inherits:
-
Object
- Object
- OpenAI::Resources::Beta::Agents::Sessions
- Defined in:
- lib/openai/resources/beta/agents/sessions.rb,
lib/openai/resources/beta/agents/sessions/items.rb,
lib/openai/resources/beta/agents/sessions/turns.rb,
lib/openai/resources/beta/agents/sessions/events.rb,
lib/openai/resources/beta/agents/sessions/artifacts.rb,
lib/openai/resources/beta/agents/sessions/subagents.rb,
lib/openai/resources/beta/agents/sessions/subagents/items.rb,
lib/openai/resources/beta/agents/sessions/subagents/turns.rb,
lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb,
sig/openai/helpers/agents.rbs,
sig/openai/resources/beta/agents/sessions.rbs,
sig/openai/resources/beta/agents/sessions/items.rbs,
sig/openai/resources/beta/agents/sessions/turns.rbs,
sig/openai/resources/beta/agents/sessions/events.rbs,
sig/openai/resources/beta/agents/sessions/artifacts.rbs,
sig/openai/resources/beta/agents/sessions/subagents.rbs,
sig/openai/resources/beta/agents/sessions/subagents/items.rbs,
sig/openai/resources/beta/agents/sessions/subagents/turns.rbs,
sig/openai/resources/beta/agents/sessions/subagents/turns/items.rbs
Defined Under Namespace
Classes: Artifacts, Events, Items, Subagents, Turns
Instance Attribute Summary collapse
- #artifacts ⇒ OpenAI::Resources::Beta::Agents::Sessions::Artifacts readonly
- #events ⇒ OpenAI::Resources::Beta::Agents::Sessions::Events readonly
- #items ⇒ OpenAI::Resources::Beta::Agents::Sessions::Items readonly
- #subagents ⇒ OpenAI::Resources::Beta::Agents::Sessions::Subagents readonly
- #turns ⇒ OpenAI::Resources::Beta::Agents::Sessions::Turns readonly
Instance Method Summary collapse
-
#create(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
See OpenAI::Resources::Beta::Agents::Sessions#create_streaming for streaming counterpart.
-
#create_streaming(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {}) ⇒ OpenAI::Internal::Stream<OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent>
See OpenAI::Resources::Beta::Agents::Sessions#create for non-streaming counterpart.
-
#delete(session_id, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSessionDeleted
Removes a managed agent session from the public API and returns a deletion confirmation.
-
#initialize(client:) ⇒ Sessions
constructor
private
A new instance of Sessions.
-
#list(after: nil, agent_id: nil, limit: nil, order: nil, request_options: {}) ⇒ OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSession>
Lists managed agent sessions using ID-based pagination and the requested sort order.
-
#retrieve(session_id, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
Retrieves the current state of a managed agent session.
-
#stream(session_id, input:, tool_handlers: {}, idempotency_key: nil, request_options: {}) {|stream| ... } ⇒ OpenAI::Helpers::Agents::SessionStream
Submit input to an idle session and stream one turn through idle or failure.
-
#update(session_id, metadata: nil, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
Updates session metadata.
Constructor Details
#initialize(client:) ⇒ Sessions
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Sessions.
282 283 284 285 286 287 288 289 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 282 def initialize(client:) @client = client @subagents = OpenAI::Resources::Beta::Agents::Sessions::Subagents.new(client: client) @artifacts = OpenAI::Resources::Beta::Agents::Sessions::Artifacts.new(client: client) @items = OpenAI::Resources::Beta::Agents::Sessions::Items.new(client: client) @events = OpenAI::Resources::Beta::Agents::Sessions::Events.new(client: client) @turns = OpenAI::Resources::Beta::Agents::Sessions::Turns.new(client: client) end |
Instance Attribute Details
#artifacts ⇒ OpenAI::Resources::Beta::Agents::Sessions::Artifacts (readonly)
12 13 14 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 12 def artifacts @artifacts end |
#events ⇒ OpenAI::Resources::Beta::Agents::Sessions::Events (readonly)
18 19 20 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 18 def events @events end |
#items ⇒ OpenAI::Resources::Beta::Agents::Sessions::Items (readonly)
15 16 17 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 15 def items @items end |
#subagents ⇒ OpenAI::Resources::Beta::Agents::Sessions::Subagents (readonly)
9 10 11 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 9 def subagents @subagents end |
#turns ⇒ OpenAI::Resources::Beta::Agents::Sessions::Turns (readonly)
21 22 23 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 21 def turns @turns end |
Instance Method Details
#create(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
See OpenAI::Resources::Beta::Agents::Sessions#create_streaming for streaming counterpart.
Creates a managed agent session, optionally submits initial input, and returns the session or streams its events when stream is true. See running sessions.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 58 def create(params) parsed, = OpenAI::Beta::Agents::SessionCreateParams.dump_request(params) if parsed[:stream] = "Please use `#create_streaming` for the streaming use case." raise ArgumentError.new() end @client.request( method: :post, path: "agents/sessions", body: parsed, model: OpenAI::Beta::AgentSession, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **} ) end |
#create_streaming(environment:, agent: nil, agent_id: nil, input: nil, metadata: nil, vault_ids: nil, request_options: {}) ⇒ OpenAI::Internal::Stream<OpenAI::Models::Beta::AgentSessionErrorEvent, OpenAI::Models::Beta::AgentSessionEnvironmentReadyEvent, OpenAI::Models::Beta::AgentOutputCommandExecutionOutputDeltaEvent, OpenAI::Models::Beta::AgentSessionCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnCreatedEvent, OpenAI::Models::Beta::AgentSessionTurnInProgressEvent, OpenAI::Models::Beta::AgentSessionTurnCompletedEvent, OpenAI::Models::Beta::AgentSessionTurnFailedEvent, OpenAI::Models::Beta::AgentSessionTurnCancelledEvent, OpenAI::Models::Beta::AgentSessionTurnItemAddedEvent, OpenAI::Models::Beta::AgentSessionIdleEvent, OpenAI::Models::Beta::AgentSessionInProgressEvent, OpenAI::Models::Beta::AgentSessionRequiresActionEvent, OpenAI::Models::Beta::AgentSessionFailedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentPendingEvent, OpenAI::Models::Beta::AgentSessionEnvironmentConnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentDisconnectedEvent, OpenAI::Models::Beta::AgentSessionEnvironmentFailedEvent, OpenAI::Models::Beta::AgentSessionSubagentCreatedEvent, OpenAI::Models::Beta::AgentSessionSubagentActiveEvent, OpenAI::Models::Beta::AgentSessionSubagentClosedEvent, OpenAI::Models::Beta::AgentSessionTurnItemDoneEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnContentPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnOutputTextDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartAddedEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryPartDoneEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDeltaEvent, OpenAI::Models::Beta::AgentSessionTurnReasoningSummaryTextDoneEvent>
See OpenAI::Resources::Beta::Agents::Sessions#create for non-streaming counterpart.
Creates a managed agent session, optionally submits initial input, and returns the session or streams its events when stream is true. See running sessions.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 110 def create_streaming(params) parsed, = OpenAI::Beta::Agents::SessionCreateParams.dump_request(params) unless parsed.fetch(:stream, true) = "Please use `#create` for the non-streaming use case." raise ArgumentError.new() end parsed.store(:stream, true) @client.request( method: :post, path: "agents/sessions", headers: {"accept" => "text/event-stream", "accept-encoding" => "identity"}, body: parsed, stream: OpenAI::Internal::Stream, model: OpenAI::Beta::AgentSessionEvent, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **} ) end |
#delete(session_id, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSessionDeleted
Removes a managed agent session from the public API and returns a deletion confirmation. Physical cleanup may continue asynchronously. See managing sessions.
236 237 238 239 240 241 242 243 244 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 236 def delete(session_id, params = {}) @client.request( method: :delete, path: ["agents/sessions/%1$s", session_id], model: OpenAI::Beta::AgentSessionDeleted, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **params[:request_options].to_h} ) end |
#list(after: nil, agent_id: nil, limit: nil, order: nil, request_options: {}) ⇒ OpenAI::Internal::CursorPage<OpenAI::Models::Beta::AgentSession>
Lists managed agent sessions using ID-based pagination and the requested sort order. See managing sessions.
208 209 210 211 212 213 214 215 216 217 218 219 220 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 208 def list(params = {}) parsed, = OpenAI::Beta::Agents::SessionListParams.dump_request(params) query = OpenAI::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "agents/sessions", query: query, page: OpenAI::Internal::CursorPage, model: OpenAI::Beta::AgentSession, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **} ) end |
#retrieve(session_id, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
Retrieves the current state of a managed agent session. See managing sessions.
143 144 145 146 147 148 149 150 151 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 143 def retrieve(session_id, params = {}) @client.request( method: :get, path: ["agents/sessions/%1$s", session_id], model: OpenAI::Beta::AgentSession, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **params[:request_options].to_h} ) end |
#stream(session_id, input:, tool_handlers: {}, idempotency_key: nil, request_options: {}) {|stream| ... } ⇒ OpenAI::Helpers::Agents::SessionStream
Submit input to an idle session and stream one turn through idle or failure. The caller must be the session's only input writer during iteration. Handlers run sequentially; failures submit a generic error without exception text. Input and each tool result use distinct retry-safe idempotency keys. A block closes the connection on every exit path without cancelling the turn.
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 259 def stream(session_id, input:, tool_handlers: {}, idempotency_key: nil, request_options: {}) stream = OpenAI::Helpers::Agents::SessionStream.new( sessions: self, session_id: session_id, input: input, tool_handlers: tool_handlers, idempotency_key: idempotency_key, request_options: ) return stream unless block_given? begin yield stream ensure stream.close end stream end |
#update(session_id, metadata: nil, request_options: {}) ⇒ OpenAI::Models::Beta::AgentSession
Updates session metadata. Omitted fields are unchanged. See managing sessions.
171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/openai/resources/beta/agents/sessions.rb', line 171 def update(session_id, params = {}) parsed, = OpenAI::Beta::Agents::SessionUpdateParams.dump_request(params) @client.request( method: :post, path: ["agents/sessions/%1$s", session_id], body: parsed, model: OpenAI::Beta::AgentSession, security: {bearer_auth: true}, options: {extra_headers: {"OpenAI-Beta" => "agents=v1"}, **} ) end |