Documentation
¶
Overview ¶
Package agents defines the provider interface SuperPlane uses to talk to managed-agent backends, and a service layer that persists sessions and routes streamed events through the event distributor.
Index ¶
- Variables
- type CreateSessionOptions
- type CreateSessionResult
- type DefineOutcomeOptions
- type FileResource
- type Mode
- type OutcomeEvaluation
- type Provider
- type ProviderEvent
- type ProviderEventType
- type ProviderSessionCleaner
- type SendMessageOptions
- type Service
- func (s *Service) DefineOutcome(ctx context.Context, organizationID, userID, sessionID uuid.UUID, ...) error
- func (s *Service) EnsureSession(ctx context.Context, organizationID, userID, canvasID uuid.UUID) (*models.AgentSession, error)
- func (s *Service) GetSession(organizationID, userID, sessionID uuid.UUID) (*models.AgentSession, error)
- func (s *Service) InterruptSession(ctx context.Context, organizationID, userID, sessionID uuid.UUID) error
- func (s *Service) ListMessages(sessionID, beforeID uuid.UUID, limit int) ([]models.AgentSessionMessage, error)
- func (s *Service) ProviderName() string
- func (s *Service) SendMessage(ctx context.Context, organizationID, userID, sessionID uuid.UUID, ...) (*models.AgentSessionMessage, error)
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrSessionAlreadyTerminated = errors.New("agent session already terminated")
View Source
var ErrSessionForbidden = errors.New("agent session is owned by another user")
Functions ¶
This section is empty.
Types ¶
type CreateSessionOptions ¶
type CreateSessionOptions struct {
InitialContext string
Title string
VaultIDs []string
Resources []FileResource
}
type CreateSessionResult ¶
type CreateSessionResult struct {
ProviderSessionID string
}
type DefineOutcomeOptions ¶ added in v0.22.0
type DefineOutcomeOptions struct {
// Description is the user-visible goal the provider should work toward.
Description string
// Rubric is the grader-facing checklist evaluated after each iteration.
Rubric string
// MaxIterations caps the provider's autonomous build/evaluate loop.
MaxIterations int
// ContextPreamble is prepended to the description so provider-managed
// autonomous loops get the same refreshed session context as normal turns.
ContextPreamble string
}
type FileResource ¶ added in v0.22.0
type OutcomeEvaluation ¶ added in v0.22.0
type Provider ¶
type Provider interface {
Name() string
CreateSession(ctx context.Context, opts CreateSessionOptions) (*CreateSessionResult, error)
SendMessage(ctx context.Context, providerSessionID, message string, opts SendMessageOptions) error
InterruptSession(ctx context.Context, providerSessionID string) error
// DefineOutcome starts a rubric-driven execution loop on the provider side.
DefineOutcome(ctx context.Context, providerSessionID string, opts DefineOutcomeOptions) error
// StreamEvents blocks until the provider closes the stream, ctx is
// cancelled, or onEvent errors. Implementations must not call onEvent
// after returning.
StreamEvents(ctx context.Context, providerSessionID string, onEvent func(ProviderEvent) error) error
}
type ProviderEvent ¶
type ProviderEvent struct {
ProviderEventID string
Type ProviderEventType
Text string
ToolName string
ToolCallID string
// ToolInput is a human-readable rendering of the tool's invocation
// (e.g. the shell command for bash, or compact JSON for other tools).
ToolInput string
ErrorMessage string
OutcomeResult *OutcomeEvaluation
// Multi-agent thread fields
AgentName string
ThreadID string
}
type ProviderEventType ¶
type ProviderEventType string
const ( ProviderEventAssistantMessage ProviderEventType = "assistant_message" ProviderEventToolUseStarted ProviderEventType = "tool_use_started" ProviderEventToolUseFinished ProviderEventType = "tool_use_finished" ProviderEventTurnCompleted ProviderEventType = "turn_completed" ProviderEventSessionFailed ProviderEventType = "session_failed" ProviderEventOutcomeEvaluation ProviderEventType = "outcome_evaluation" ProviderEventOutcomeEvaluationStart ProviderEventType = "outcome_evaluation_start" ProviderEventThreadMessageSent ProviderEventType = "thread_message_sent" ProviderEventThreadMessageReceived ProviderEventType = "thread_message_received" )
type ProviderSessionCleaner ¶
type SendMessageOptions ¶
type SendMessageOptions struct {
ContextPreamble string
}
SendMessageOptions.ContextPreamble is prepended to the user's message so providers that need caller context inline (e.g. a CLI token on first turn) receive it without a separate system message.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(provider Provider, auth authorization.Authorization, jwtSigner *jwt.Signer, baseURL string) *Service
func (*Service) DefineOutcome ¶ added in v0.22.0
func (*Service) EnsureSession ¶
func (s *Service) EnsureSession(ctx context.Context, organizationID, userID, canvasID uuid.UUID) (*models.AgentSession, error)
EnsureSession returns the user's single chat session for the given canvas, provisioning it on the upstream provider on first call.
func (*Service) GetSession ¶
func (*Service) InterruptSession ¶ added in v0.22.0
func (*Service) ListMessages ¶
func (*Service) ProviderName ¶
Click to show internal directories.
Click to hide internal directories.