local

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentLoopInput

type AgentLoopInput struct {
	UserPrompt       string
	ConversationID   string
	StreamingEnabled bool
	// Tools is the resolved tool list for this run.
	Tools []interfaces.Tool
	// ChannelName is the eventbus channel events are published to during this run.
	// Sub-agents receive the parent's ChannelName so their events go directly to the parent stream.
	// Empty = no event fanout.
	ChannelName string
	// EventTypes filters which events are published to ChannelName (same semantics as Temporal).
	// Empty = publish nothing; ["*"] = all types; a specific list = only those types.
	EventTypes []events.AgentEventType
	// ApprovalHandler is called when a tool requires human approval. May be nil (approval → unavailable).
	ApprovalHandler types.ApprovalHandler
	// SubAgentRoutes maps sub-agent tool name → local route. Built by the local runtime from
	// ExecuteRequest.SubAgents before RunAgentLoop is called. Mirrors AgentWorkflowInput.SubAgentRoutes.
	SubAgentRoutes map[string]subAgentRoute
	// SubAgentDepth is the current nesting depth (0 = top-level, 1 = direct sub-agent, etc.).
	SubAgentDepth int
	// MaxSubAgentDepth caps recursive delegation. Mirrors AgentWorkflowInput.MaxSubAgentDepth.
	MaxSubAgentDepth int
	// MemoryScope is resolved before the run and used for recall/store.
	MemoryScope interfaces.MemoryScope
	// RunID is the stable identifier for this agent run; passed to LLM hooks via [RunMeta].
	RunID string
}

AgentLoopInput holds per-run execution inputs for one local agent run. Mirrors AgentWorkflowInput (Temporal) for in-process execution — same fields, same semantics. Static agent wiring lives on the runtime base.Runtime.AgentConfig; resolved tools are per-run on Tools.

type AgentLoopResult

type AgentLoopResult struct {
	Content   string
	LLMUsage  *interfaces.LLMUsage
	Telemetry *types.AgentTelemetry
}

AgentLoopResult is the outcome of a completed local agent run.

type LocalRuntime

type LocalRuntime struct {
	base.Runtime
	// contains filtered or unexported fields
}

LocalRuntime executes the agent loop in-process, embedding base.Runtime for shared core methods and holding local-specific fields (logger, eventbus).

func NewLocalRuntime

func NewLocalRuntime(opts ...Option) (*LocalRuntime, error)

NewLocalRuntime constructs a LocalRuntime from functional options.

func (*LocalRuntime) Close

func (rt *LocalRuntime) Close()

Close releases runtime resources. When this runtime owns the event bus ([ownsEventBus]), the bus is closed; shared buses from [setEventBus] are left alone.

func (*LocalRuntime) GetRunHandle added in v0.3.0

func (rt *LocalRuntime) GetRunHandle(_ context.Context, _ string) (sdkruntime.RunHandle, error)

GetRunHandle always returns types.ErrRunNotFound. LocalRuntime does not track runs durably; same-process live handles are managed by the agent run registry. After a process crash there is nothing to reconnect to. Never returns types.ErrRunAlreadyCompleted — Local cannot distinguish finished vs unknown; the agent run registry handles in-process terminal checks.

func (*LocalRuntime) GetStreamHandle added in v0.3.0

func (rt *LocalRuntime) GetStreamHandle(_ context.Context, _ string) (sdkruntime.StreamHandle, error)

GetStreamHandle always returns types.ErrStreamNotFound. LocalRuntime does not track streams durably; same-process live handles are managed by the agent stream registry. After a process crash there is nothing to reconnect to. Never returns types.ErrRunAlreadyCompleted — Local cannot distinguish finished vs unknown; the agent stream registry handles in-process terminal checks.

func (*LocalRuntime) OnApproval added in v0.3.1

func (rt *LocalRuntime) OnApproval(ctx context.Context, approvalToken string, status types.ApprovalStatus) error

OnApproval is a deprecated Runtime-interface wrapper around [LocalRuntime.approve]. Prefer sdkruntime.StreamHandle.Approve. Removed in v0.4.0.

func (*LocalRuntime) Run added in v0.3.0

Run starts the agent loop in a background goroutine and returns a sdkruntime.RunHandle immediately. Approval is handled inline via rt.approvalHandler (no out-of-band tokens). Use sdkruntime.RunHandle.Get or sdkruntime.RunHandle.Done to wait for completion.

func (*LocalRuntime) RunAgentLoop

func (rt *LocalRuntime) RunAgentLoop(ctx context.Context, input AgentLoopInput) (*AgentLoopResult, error)

RunAgentLoop executes the full agent loop in-process using base.Runtime core methods. It mirrors the orchestration logic of AgentWorkflow but calls base methods directly instead of dispatching to Temporal activities. Events are published to rt.eventbus on input.ChannelName; callers subscribe to that channel.

func (*LocalRuntime) Stream added in v0.3.0

Stream starts the agent loop in a background goroutine and returns a sdkruntime.StreamHandle immediately. Subscribe via sdkruntime.StreamHandle.Events (offset 0 only on LocalRuntime). RUN_STARTED is emitted before the loop begins; RUN_FINISHED or RUN_ERROR closes the channel.

Cancelling ctx cancels the agent run. The context passed to sdkruntime.StreamHandle.Events is independent on Temporal; on LocalRuntime Events ignores that ctx (channel already open). Agent Limits.Timeout applies when ctx has no deadline.

type Option

type Option func(*LocalRuntime)

func WithAgentConfig added in v0.2.2

func WithAgentConfig(cfg sdkruntime.AgentConfig) Option

func WithAgentSpec

func WithAgentSpec(spec sdkruntime.AgentSpec) Option

func WithApprovalHandler added in v0.3.0

func WithApprovalHandler(fn types.ApprovalHandler) Option

WithApprovalHandler sets the Run-path approval callback (from agent WithApprovalHandler). Stream uses CUSTOM events + Approve instead.

func WithLogger

func WithLogger(l logger.Logger) Option

func WithMetrics

func WithMetrics(metrics interfaces.Metrics) Option

func WithToolExecutionMode

func WithToolExecutionMode(mode types.AgentToolExecutionMode) Option

func WithTracer

func WithTracer(tracer interfaces.Tracer) Option

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL