Documentation
¶
Overview ¶
Package remoteagent allows to use a remote ADK agents.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type A2AConfig ¶
type A2AConfig struct {
Name string
Description string
// AgentCardSource can be either an http(s) URL or a local file path. If a2a.AgentCard
// is not provided, the source is used to resolve the card during the first agent invocation.
AgentCard *a2a.AgentCard
AgentCardSource string
// CardResolveOptions can be used to provide a set of agencard.Resolver configurations.
CardResolveOptions []agentcard.ResolveOption
// BeforeAgentCallbacks is a list of callbacks that are called sequentially
// before the agent starts its run.
//
// If any callback returns non-nil content or error, then the agent run and
// the remaining callbacks will be skipped, and a new event will be created
// from the content or error of that callback.
BeforeAgentCallbacks []agent.BeforeAgentCallback
// BeforeRequestCallbacks will be called in the order they are provided until
// there's a callback that returns a non-nil result or error. Then the
// actual request is skipped, and the returned response/error is used.
//
// This provides an opportunity to inspect, log, or modify the request object.
// It can also be used to implement caching by returning a cached
// response, which would skip the actual remote agent call.
BeforeRequestCallbacks []BeforeA2ARequestCallback
// Converter is used to convert a2a.Event to session.Event. If not provided, adka2a.ToSessionEvent
// is used as the default implementation and errors are converted to events with error payload.
Converter A2AEventConverter
// AfterRequestCallbacks will be called in the order they are provided until
// there's a callback that returns a non-nil result or error. Then
// the actual remote agent event is replaced with the returned result/error.
//
// This is the ideal place to log agent responses, collect metrics on token or perform
// pre-processing of events before a mapper is invoked.
AfterRequestCallbacks []AfterA2ARequestCallback
// AfterAgentCallbacks is a list of callbacks that are called sequentially
// after the agent has completed its run.
//
// If any callback returns non-nil content or error, then a new event will be
// created from the content or error of that callback and the remaining
// callbacks will be skipped.
AfterAgentCallbacks []agent.AfterAgentCallback
// ClientFactory can be used to provide a set of a2aclient.Client configurations.
ClientFactory *a2aclient.Factory
// MessageSendConfig is attached to a2a.MessageSendParams sent on every agent invocation.
MessageSendConfig *a2a.MessageSendConfig
}
A2AConfig is used to describe and configure a remote agent.
type A2AEventConverter ¶
type A2AEventConverter func(ctx agent.ReadonlyContext, req *a2a.MessageSendParams, event a2a.Event, err error) (*session.Event, error)
A2AEventConverter can be used to provide a custom implementation of A2A event transformation logic.
type AfterA2ARequestCallback ¶
type AfterA2ARequestCallback func(ctx agent.CallbackContext, req *a2a.MessageSendParams, resp *session.Event, err error) (*session.Event, error)
AfterA2ARequestCallback is called after receiving a response from the remote agent and converting it to a session.Event. In streaming responses the callback is invoked for every request. Session event parameter might be nil if conversion logic decides to not emit an A2A event.
If it returns non-nil result or error, it gets emitted instead of the original result.
type BeforeA2ARequestCallback ¶
type BeforeA2ARequestCallback func(ctx agent.CallbackContext, req *a2a.MessageSendParams) (*session.Event, error)
BeforeA2ARequestCallback is called before sending a request to the remote agent.
If it returns non-nil result or error, the actual call is skipped and the returned value is used as the agent invocation result.