class CohereProvider extends Provider implements EmbeddingProvider, RerankingProvider, TextProvider

Traits

Properties

protected EmbeddingGateway $embeddingGateway from  HasEmbeddingGateway
protected RerankingGateway $rerankingGateway from  HasRerankingGateway
protected StepTextGateway $textGateway from  HasTextGateway
protected TextGenerationLoop|null $textGenerationLoop from  HasTextGateway
protected CohereGateway|null $cohereGateway

Methods

__construct(array $config, Dispatcher $events)

Create a Cohere provider instance.

string
name()

Get the name of the underlying AI provider.

from  Provider
string
driver()

Get the name of the underlying AI driver.

from  Provider
array
providerCredentials()

Get the credentials for the underlying AI provider.

from  Provider
array
additionalConfiguration()

Get the provider connection configuration other than the driver, key, and name.

from  Provider
withHeaders(array $headers)

Get a provider instance that sends the given HTTP headers with each request.

from  Provider
mixed
dispatchingFailure(Closure $call, Closure $failed)

Run the given gateway call, dispatching the event built from its exception before rethrowing.

from  Provider
static array
formatProviderAndModelList(Provider|Lab|array|string $providers, string|null $model = null)

Format the given provider / model list.

from  Provider
static array
providerAndModelPairs(Provider|Lab|array|string $providers, string|null $model = null)

Get provider and model pairs without discarding on-demand instances.

from  Provider
array
__serialize()

Get the serializable representation of the provider.

from  Provider
void
__unserialize(array $data)

Restore the provider from its serialized representation.

from  Provider
string
__toString()

Convert the provider to its string representation.

from  Provider
embeddings(array $inputs, int|null $dimensions = null, string|null $model = null, int $timeout = 30, array $providerOptions = [])

Get embedding vectors representing the given inputs.

bool
supportsNativeEmbeddingDimensions()

Determine if the provider may omit dimensions and use a model's native embedding dimensions.

void
validateEmbeddingInputs(array $inputs, string $model)

Validate embeddings inputs against the provider's supported media types.

array|null
resumableApprovalFor(AgentPrompt $prompt, array $messages, array $tools)

Get the tool approval to resume with, unless a faked agent has no paused approval to resume.

array
withoutForeignReplayBlocks(array $messages)

Replace another provider's raw paused-turn replay state with its generic mapping, since raw blocks are only valid verbatim on the provider that produced them.

bool
resumesApproval(AgentPrompt $prompt, array $messages, array $tools)

Determine whether the prompt is a resume that runs the approved tools.

Closure|null
approvalResultRecorderFor(AgentPrompt $prompt, array|null $approval, Collection|null $resolvedApprovalResults)

Get a callback that captures a resume's resolved approval results for its completion event.

prompt(AgentPrompt $prompt)

Invoke the given agent.

array
gatherMiddlewareFor(Agent $agent)

Gather the internal run middleware for the given agent.

array
resolveTools(AgentPrompt $prompt)

Resolve the tools for the given prompt, wrapping any agent instances as tools.

array
declaredTools(Agent $agent)

Get the tools the agent declares, including the tool that loads its skills.

mixed
resolveTool(mixed $tool)

Resolve a tool returned by the agent into a native tool instance when needed.

prepareRunContext(string $invocationId, AgentPrompt $prompt, array|null $approval)

Build the run's context, letting a remembered conversation claim and record the approval decisions the run resumes.

runContextFor(string $invocationId, AgentPrompt $prompt)

Build the context that identifies this run and reports its step and tool events.

void
recordAgentFailure(string $invocationId, AgentPrompt $prompt, Throwable $exception, bool $retryable = true)

Dispatch the terminal failure event for a run, unless the caller may still retry it against another provider.

void
throwIfNotResumable(AgentPrompt $prompt)

Throw when a pause has surfaced on a prompt that cannot be resumed from persisted or replayed history.

embeddingGateway()

Get the provider's embedding gateway.

useEmbeddingGateway(EmbeddingGateway $gateway)

Set the provider's embedding gateway.

rerankingGateway()

Get the provider's reranking gateway.

useRerankingGateway(RerankingGateway $gateway)

Set the provider's reranking gateway.

textGateway()

Get the provider's text gateway.

useTextGateway(StepTextGateway $gateway)

Set the provider's text gateway.

textGenerationLoop()

Get the multi-step text generation loop wrapping the provider's text gateway.

rerank(array $documents, string $query, int|null $limit = null, string|null $model = null, int $timeout = 30, array $providerOptions = [])

Rerank the given documents based on their relevance to the query.

from  Reranks
stream(AgentPrompt $prompt)

Stream the response from the given agent.

cohereGateway()

Get the shared Cohere gateway instance.

string
defaultTextModel()

Get the name of the default text model.

string
cheapestTextModel()

Get the name of the cheapest text model.

string
smartestTextModel()

Get the name of the smartest text model.

string
defaultEmbeddingsModel()

Get the name of the default embeddings model.

int
defaultEmbeddingsDimensions()

Get the default dimensions of the default embeddings model.

string
defaultRerankingModel()

Get the name of the default reranking model.

Details

at line 38
__construct(array $config, Dispatcher $events)

Create a Cohere provider instance.

Parameters

array $config
Dispatcher $events

in Provider at line 34
string name()

Get the name of the underlying AI provider.

Return Value

string

in Provider at line 42
string driver()

Get the name of the underlying AI driver.

Return Value

string

in Provider at line 50
array providerCredentials()

Get the credentials for the underlying AI provider.

Return Value

array

in Provider at line 60
array additionalConfiguration()

Get the provider connection configuration other than the driver, key, and name.

Return Value

array

in Provider at line 72
Provider withHeaders(array $headers)

internal  
 

Get a provider instance that sends the given HTTP headers with each request.

Parameters

array $headers

Return Value

Provider

in Provider at line 92
protected mixed dispatchingFailure(Closure $call, Closure $failed)

Run the given gateway call, dispatching the event built from its exception before rethrowing.

Parameters

Closure $call
Closure $failed

Return Value

mixed

in Provider at line 114
static array formatProviderAndModelList(Provider|Lab|array|string $providers, string|null $model = null)

Format the given provider / model list.

Parameters

Provider|Lab|array|string $providers
string|null $model

Return Value

array

in Provider at line 132
static array providerAndModelPairs(Provider|Lab|array|string $providers, string|null $model = null)

internal  
 

Get provider and model pairs without discarding on-demand instances.

Parameters

Provider|Lab|array|string $providers
string|null $model

Return Value

array

in Provider at line 164
array __serialize()

Get the serializable representation of the provider.

Return Value

array

in Provider at line 174
void __unserialize(array $data)

Restore the provider from its serialized representation.

Parameters

array $data

Return Value

void

in Provider at line 190
string __toString()

Convert the provider to its string representation.

Return Value

string

EmbeddingsResponse embeddings(array $inputs, int|null $dimensions = null, string|null $model = null, int $timeout = 30, array $providerOptions = [])

Get embedding vectors representing the given inputs.

Parameters

array $inputs
int|null $dimensions
string|null $model
int $timeout
array $providerOptions

Return Value

EmbeddingsResponse

protected bool supportsNativeEmbeddingDimensions()

Determine if the provider may omit dimensions and use a model's native embedding dimensions.

Return Value

bool

protected void validateEmbeddingInputs(array $inputs, string $model)

Validate embeddings inputs against the provider's supported media types.

Parameters

array $inputs
string $model

Return Value

void

protected array|null resumableApprovalFor(AgentPrompt $prompt, array $messages, array $tools)

Get the tool approval to resume with, unless a faked agent has no paused approval to resume.

Parameters

AgentPrompt $prompt
array $messages
array $tools

Return Value

array|null

protected array withoutForeignReplayBlocks(array $messages)

Replace another provider's raw paused-turn replay state with its generic mapping, since raw blocks are only valid verbatim on the provider that produced them.

Parameters

array $messages

Return Value

array

protected bool resumesApproval(AgentPrompt $prompt, array $messages, array $tools)

Determine whether the prompt is a resume that runs the approved tools.

Parameters

AgentPrompt $prompt
array $messages
array $tools

Return Value

bool

protected Closure|null approvalResultRecorderFor(AgentPrompt $prompt, array|null $approval, Collection|null $resolvedApprovalResults)

Get a callback that captures a resume's resolved approval results for its completion event.

Parameters

AgentPrompt $prompt
array|null $approval
Collection|null $resolvedApprovalResults

Return Value

Closure|null

in GeneratesText at line 53
AgentResponse prompt(AgentPrompt $prompt)

Invoke the given agent.

Parameters

AgentPrompt $prompt

Return Value

AgentResponse

in GeneratesText at line 175
protected array gatherMiddlewareFor(Agent $agent)

Gather the internal run middleware for the given agent.

Parameters

Agent $agent

Return Value

array

in GeneratesText at line 193
protected array resolveTools(AgentPrompt $prompt)

Resolve the tools for the given prompt, wrapping any agent instances as tools.

Parameters

AgentPrompt $prompt

Return Value

array

in GeneratesText at line 204
protected array declaredTools(Agent $agent)

Get the tools the agent declares, including the tool that loads its skills.

Parameters

Agent $agent

Return Value

array

in GeneratesText at line 214
protected mixed resolveTool(mixed $tool)

Resolve a tool returned by the agent into a native tool instance when needed.

Parameters

mixed $tool

Return Value

mixed

in GeneratesText at line 233
protected RunContext prepareRunContext(string $invocationId, AgentPrompt $prompt, array|null $approval)

Build the run's context, letting a remembered conversation claim and record the approval decisions the run resumes.

Parameters

string $invocationId
AgentPrompt $prompt
array|null $approval

Return Value

RunContext

in GeneratesText at line 257
protected RunContext runContextFor(string $invocationId, AgentPrompt $prompt)

Build the context that identifies this run and reports its step and tool events.

Parameters

string $invocationId
AgentPrompt $prompt

Return Value

RunContext

in GeneratesText at line 268
protected void recordAgentFailure(string $invocationId, AgentPrompt $prompt, Throwable $exception, bool $retryable = true)

Dispatch the terminal failure event for a run, unless the caller may still retry it against another provider.

Parameters

string $invocationId
AgentPrompt $prompt
Throwable $exception
bool $retryable

Return Value

void

in GeneratesText at line 285
protected void throwIfNotResumable(AgentPrompt $prompt)

Throw when a pause has surfaced on a prompt that cannot be resumed from persisted or replayed history.

Parameters

AgentPrompt $prompt

Return Value

void

at line 103
EmbeddingGateway embeddingGateway()

Get the provider's embedding gateway.

Return Value

EmbeddingGateway

HasEmbeddingGateway useEmbeddingGateway(EmbeddingGateway $gateway)

Set the provider's embedding gateway.

Changing a shared provider's gateway affects subsequent operations.

Parameters

EmbeddingGateway $gateway

Return Value

HasEmbeddingGateway

at line 119
RerankingGateway rerankingGateway()

Get the provider's reranking gateway.

Return Value

RerankingGateway

HasRerankingGateway useRerankingGateway(RerankingGateway $gateway)

Set the provider's reranking gateway.

Changing a shared provider's gateway affects subsequent operations.

Parameters

RerankingGateway $gateway

Return Value

HasRerankingGateway

at line 55
StepTextGateway textGateway()

Get the provider's text gateway.

Return Value

StepTextGateway

in HasTextGateway at line 30
HasTextGateway useTextGateway(StepTextGateway $gateway)

Set the provider's text gateway.

Changing a shared provider's gateway affects subsequent operations.

Parameters

StepTextGateway $gateway

Return Value

HasTextGateway

in HasTextGateway at line 42
TextGenerationLoop textGenerationLoop()

Get the multi-step text generation loop wrapping the provider's text gateway.

Return Value

TextGenerationLoop

in Reranks at line 24
RerankingResponse rerank(array $documents, string $query, int|null $limit = null, string|null $model = null, int $timeout = 30, array $providerOptions = [])

Rerank the given documents based on their relevance to the query.

Parameters

array $documents
string $query
int|null $limit
string|null $model
int $timeout
array $providerOptions

Return Value

RerankingResponse

in StreamsText at line 37
StreamableAgentResponse stream(AgentPrompt $prompt)

Stream the response from the given agent.

Parameters

AgentPrompt $prompt

Return Value

StreamableAgentResponse

at line 47
protected CohereGateway cohereGateway()

Get the shared Cohere gateway instance.

Return Value

CohereGateway

at line 63
string defaultTextModel()

Get the name of the default text model.

Return Value

string

at line 71
string cheapestTextModel()

Get the name of the cheapest text model.

Return Value

string

at line 79
string smartestTextModel()

Get the name of the smartest text model.

Return Value

string

at line 87
string defaultEmbeddingsModel()

Get the name of the default embeddings model.

Return Value

string

at line 95
int defaultEmbeddingsDimensions()

Get the default dimensions of the default embeddings model.

Return Value

int

at line 111
string defaultRerankingModel()

Get the name of the default reranking model.

Return Value

string