Documentation
¶
Overview ¶
Package platform provides real implementations of SDK interfaces for the Roobai runtime environment.
Index ¶
- func InjectIdentity(req *http.Request, appName, traceID string)
- func NewLLMClient(cfg Config) sdk.LLMClient
- func NewPersistentSimpleMemory(app core.App, sessionID string) sdk.Memory
- func NewPersistentSummaryBufferMemory(app core.App, llm sdk.LLMClient, sessionID string, ...) sdk.SummaryMemory
- func NewPersistentWindowMemory(app core.App, sessionID string, windowSize int) sdk.Memory
- func NewSDK(pctx sdk.PlatformContext) sdk.SDK
- func NewSimpleMemory() sdk.Memory
- func NewSummaryBufferMemory(llm sdk.LLMClient, config sdk.SummaryBufferConfig) sdk.SummaryMemory
- func NewTaskContext(task sdk.Task, store *TaskStore, eventBus *EventBus, budget *sdk.TaskBudget, ...) *taskContext
- func NewWindowMemory(windowSize int) sdk.Memory
- func RunLoop(ctx context.Context, pctx sdk.PlatformContext, config sdk.LoopConfig, ...) (sdk.LoopResult, error)
- type AgentRouter
- func (r *AgentRouter) Call(ctx context.Context, query string, content string, opts ...sdk.CallOption) (sdk.Response, error)
- func (r *AgentRouter) CallAgent(ctx context.Context, agentName string, msg sdk.Message) (sdk.Response, error)
- func (r *AgentRouter) CallTool(ctx context.Context, toolID string, args map[string]any) (sdk.Response, error)
- func (r *AgentRouter) CallWithTrace(ctx context.Context, query string, content string, opts ...sdk.CallOption) (sdk.CallResult, error)
- func (r *AgentRouter) CancelTask(ctx context.Context, taskID string) error
- func (r *AgentRouter) Delegate(ctx context.Context, req sdk.DelegateRequest) (*sdk.Task, error)
- func (r *AgentRouter) DelegateSync(ctx context.Context, req sdk.DelegateRequest) (*sdk.Task, error)
- func (r *AgentRouter) DelegateToAgent(ctx context.Context, agentName string, req sdk.DelegateRequest) (*sdk.Task, error)
- func (r *AgentRouter) DelegateToAgentStream(ctx context.Context, agentName string, req sdk.DelegateRequest, ...) (*sdk.Task, error)
- func (r *AgentRouter) Discover(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentInfo, error)
- func (r *AgentRouter) ReportToolFeedback(ctx context.Context, toolID string, outcome string)
- func (r *AgentRouter) RespondToTask(ctx context.Context, taskID string, input []sdk.Part) error
- func (r *AgentRouter) Search(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentMatch, error)
- func (r *AgentRouter) SearchAgents(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentMatch, error)
- func (r *AgentRouter) SearchTools(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.ToolMatch, error)
- func (r *AgentRouter) SetNATSConn(nc *nats.Conn)
- type BlobStore
- func (bs *BlobStore) Delete(ctx context.Context, name string) error
- func (bs *BlobStore) Get(ctx context.Context, name string) (io.ReadCloser, *sdk.BlobInfo, error)
- func (bs *BlobStore) List(ctx context.Context) ([]sdk.BlobInfo, error)
- func (bs *BlobStore) Put(ctx context.Context, name string, reader io.Reader, opts ...sdk.BlobOption) (*sdk.BlobInfo, error)
- type Config
- type Context
- func (c *Context) App() any
- func (c *Context) Blobs() sdk.BlobStore
- func (c *Context) Config() map[string]string
- func (c *Context) LLM() sdk.LLMClient
- func (c *Context) Logger() sdk.Logger
- func (c *Context) MessageBus() sdk.MessageBus
- func (c *Context) RAG() sdk.RAGClient
- func (c *Context) Router() sdk.AgentRouter
- func (c *Context) SDK() sdk.SDK
- func (c *Context) SetApp(app any)
- func (c *Context) SetBlobs(bs sdk.BlobStore)
- func (c *Context) SetMessageBus(mb sdk.MessageBus)
- func (c *Context) SetTasks(ts sdk.TaskStore)
- func (c *Context) Tasks() sdk.TaskStore
- type EventBus
- func (eb *EventBus) Close()
- func (eb *EventBus) Publish(_ context.Context, subject string, event sdk.Event) error
- func (eb *EventBus) PublishAgentEvent(eventType sdk.EventType, data any) error
- func (eb *EventBus) PublishTaskEvent(taskID string, eventType sdk.EventType, data any) error
- func (eb *EventBus) PublishTaskEventCore(taskID string, eventType sdk.EventType, data any) error
- func (eb *EventBus) Subscribe(ctx context.Context, subject string, handler EventHandler) (*eventSubscription, error)
- type EventHandler
- type Logger
- type MessageBus
- func (mb *MessageBus) Close()
- func (mb *MessageBus) NC() *nats.Conn
- func (mb *MessageBus) Publish(_ context.Context, subject string, data []byte) error
- func (mb *MessageBus) QueueSubscribe(_ context.Context, subject string, queue string, handler sdk.MsgHandler) (sdk.Subscription, error)
- func (mb *MessageBus) Request(ctx context.Context, subject string, data []byte, timeout time.Duration) ([]byte, error)
- func (mb *MessageBus) Subscribe(_ context.Context, subject string, handler sdk.MsgHandler) (sdk.Subscription, error)
- type PersistentRAGClient
- func (c *PersistentRAGClient) Delete(ctx context.Context, id string) error
- func (c *PersistentRAGClient) List(ctx context.Context) ([]sdk.DocumentMeta, error)
- func (c *PersistentRAGClient) Query(ctx context.Context, query string, opts ...sdk.QueryOption) ([]sdk.SearchResult, error)
- func (c *PersistentRAGClient) Store(ctx context.Context, doc sdk.Document) error
- type PersistentSimpleMemory
- type PersistentSummaryBufferMemory
- func (m *PersistentSummaryBufferMemory) Clear(ctx context.Context) error
- func (m *PersistentSummaryBufferMemory) GetSummary() string
- func (m *PersistentSummaryBufferMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
- func (m *PersistentSummaryBufferMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
- func (m *PersistentSummaryBufferMemory) SetMessages(messages []sdk.ChatMessage)
- func (m *PersistentSummaryBufferMemory) SetSummary(summary string)
- type PersistentWindowMemory
- type RAGClient
- func (c *RAGClient) Delete(ctx context.Context, id string) error
- func (c *RAGClient) List(ctx context.Context) ([]sdk.DocumentMeta, error)
- func (c *RAGClient) Query(ctx context.Context, query string, opts ...sdk.QueryOption) ([]sdk.SearchResult, error)
- func (c *RAGClient) Store(ctx context.Context, doc sdk.Document) error
- type SimpleMemory
- type SummaryBufferMemory
- func (m *SummaryBufferMemory) Clear(ctx context.Context) error
- func (m *SummaryBufferMemory) GetSummary() string
- func (m *SummaryBufferMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
- func (m *SummaryBufferMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
- func (m *SummaryBufferMemory) SetMessages(messages []sdk.ChatMessage)
- func (m *SummaryBufferMemory) SetSummary(summary string)
- type TaskEventCallbacks
- func (c *TaskEventCallbacks) OnLLMEnd(ctx context.Context, response string, usage sdk.TokenUsage)
- func (c *TaskEventCallbacks) OnLLMStart(ctx context.Context, messages []sdk.ChatMessage)
- func (c *TaskEventCallbacks) OnToolEnd(ctx context.Context, action sdk.ToolAction, result string, err error, ...)
- func (c *TaskEventCallbacks) OnToolStart(ctx context.Context, action sdk.ToolAction)
- type TaskStore
- func (s *TaskStore) CreateArtifact(artifact *sdk.Artifact) error
- func (s *TaskStore) CreateTask(task *sdk.Task) error
- func (s *TaskStore) Get(_ context.Context, taskID string) (*sdk.Task, error)
- func (s *TaskStore) GetArtifact(_ context.Context, artifactID string) (*sdk.Artifact, error)
- func (s *TaskStore) GetArtifacts(_ context.Context, taskID string) ([]sdk.Artifact, error)
- func (s *TaskStore) List(_ context.Context, filter sdk.TaskFilter) ([]sdk.Task, error)
- func (s *TaskStore) SetTaskOutput(taskID string, output []sdk.Part) error
- func (s *TaskStore) UpdateTaskStatus(taskID string, status sdk.TaskStatus) error
- type WindowMemory
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InjectIdentity ¶
InjectIdentity sets identity headers on an outgoing HTTP request. If traceID is non-empty (propagated from incoming request), it is reused to maintain a single trace across the full mesh call chain. The request is signed with the app's Ed25519 private key.
func NewLLMClient ¶
NewLLMClient creates an LLM client configured from environment variables.
func NewPersistentSimpleMemory ¶
NewPersistentSimpleMemory creates a PocketBase-backed memory store.
func NewPersistentSummaryBufferMemory ¶
func NewPersistentSummaryBufferMemory(app core.App, llm sdk.LLMClient, sessionID string, config sdk.SummaryBufferConfig) sdk.SummaryMemory
NewPersistentSummaryBufferMemory creates a PocketBase-backed summary buffer memory.
func NewPersistentWindowMemory ¶
NewPersistentWindowMemory creates a PocketBase-backed windowed memory.
func NewSDK ¶
func NewSDK(pctx sdk.PlatformContext) sdk.SDK
NewSDK creates an SDK implementation for the given platform context.
func NewSimpleMemory ¶
NewSimpleMemory creates a new in-memory message store.
func NewSummaryBufferMemory ¶
func NewSummaryBufferMemory(llm sdk.LLMClient, config sdk.SummaryBufferConfig) sdk.SummaryMemory
NewSummaryBufferMemory creates a new summary buffer memory.
func NewTaskContext ¶ added in v0.3.0
func NewTaskContext(task sdk.Task, store *TaskStore, eventBus *EventBus, budget *sdk.TaskBudget, delegationCallbacks sdk.LoopCallbacks) *taskContext
NewTaskContext creates a TaskContext for the given task. eventBus may be nil (events are skipped gracefully). delegationCallbacks may be nil (no external observer).
func NewWindowMemory ¶
NewWindowMemory creates a new windowed memory store.
func RunLoop ¶
func RunLoop(ctx context.Context, pctx sdk.PlatformContext, config sdk.LoopConfig, userPrompt string) (sdk.LoopResult, error)
RunLoop executes an agentic tool-use loop using structured output.
Types ¶
type AgentRouter ¶
type AgentRouter struct {
// contains filtered or unexported fields
}
AgentRouter implements sdk.AgentRouter using NATS for RPC, discovery, and delegation. HTTP is only used as a last-resort fallback for task control (RespondToTask, CancelTask) when NATS is unavailable.
func NewAgentRouter ¶
func NewAgentRouter(cfg Config) *AgentRouter
NewAgentRouter creates a new agent router.
func (*AgentRouter) Call ¶
func (r *AgentRouter) Call(ctx context.Context, query string, content string, opts ...sdk.CallOption) (sdk.Response, error)
Call invokes another agent by capability or name.
func (*AgentRouter) CallAgent ¶
func (r *AgentRouter) CallAgent(ctx context.Context, agentName string, msg sdk.Message) (sdk.Response, error)
CallAgent invokes a specific agent by name.
func (*AgentRouter) CallTool ¶
func (r *AgentRouter) CallTool(ctx context.Context, toolID string, args map[string]any) (sdk.Response, error)
CallTool invokes a specific tool by its ID (format: "agent_name/action_name").
func (*AgentRouter) CallWithTrace ¶
func (r *AgentRouter) CallWithTrace(ctx context.Context, query string, content string, opts ...sdk.CallOption) (sdk.CallResult, error)
CallWithTrace invokes an agent and returns detailed call metadata.
func (*AgentRouter) CancelTask ¶ added in v0.3.0
func (r *AgentRouter) CancelTask(ctx context.Context, taskID string) error
CancelTask requests cancellation of a running task.
func (*AgentRouter) Delegate ¶ added in v0.3.0
func (r *AgentRouter) Delegate(ctx context.Context, req sdk.DelegateRequest) (*sdk.Task, error)
Delegate submits a task to the best matching agent (async).
func (*AgentRouter) DelegateSync ¶ added in v0.3.0
func (r *AgentRouter) DelegateSync(ctx context.Context, req sdk.DelegateRequest) (*sdk.Task, error)
DelegateSync submits a task and blocks until completion.
func (*AgentRouter) DelegateToAgent ¶ added in v0.3.0
func (r *AgentRouter) DelegateToAgent(ctx context.Context, agentName string, req sdk.DelegateRequest) (*sdk.Task, error)
DelegateToAgent submits a task to a specific agent by name.
func (*AgentRouter) DelegateToAgentStream ¶ added in v0.3.0
func (r *AgentRouter) DelegateToAgentStream(ctx context.Context, agentName string, req sdk.DelegateRequest, handler sdk.DelegateEventHandler) (*sdk.Task, error)
DelegateToAgentStream submits a task to a specific agent and streams intermediate events back via the handler. The caller subscribes directly to NATS task events (no SSE proxy needed).
func (*AgentRouter) Discover ¶
func (r *AgentRouter) Discover(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentInfo, error)
Discover finds agents matching a capability query.
func (*AgentRouter) ReportToolFeedback ¶ added in v0.6.0
func (r *AgentRouter) ReportToolFeedback(ctx context.Context, toolID string, outcome string)
ReportToolFeedback sends a tool usage feedback signal (fire-and-forget).
func (*AgentRouter) RespondToTask ¶ added in v0.3.0
RespondToTask sends additional input to a task in "input_needed" state.
func (*AgentRouter) Search ¶
func (r *AgentRouter) Search(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentMatch, error)
Search performs semantic search to find agents matching a natural language query.
func (*AgentRouter) SearchAgents ¶ added in v0.3.0
func (r *AgentRouter) SearchAgents(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.AgentMatch, error)
SearchAgents finds agents available for delegation (AgentMode != nil).
func (*AgentRouter) SearchTools ¶
func (r *AgentRouter) SearchTools(ctx context.Context, query string, opts ...sdk.DiscoverOption) ([]sdk.ToolMatch, error)
SearchTools performs semantic search to find tools matching a query.
func (*AgentRouter) SetNATSConn ¶ added in v0.9.10
func (r *AgentRouter) SetNATSConn(nc *nats.Conn)
SetNATSConn sets the NATS connection for the router. Must be called before any RPC/discovery methods are used.
type BlobStore ¶ added in v0.9.10
type BlobStore struct {
// contains filtered or unexported fields
}
BlobStore implements sdk.BlobStore over NATS JetStream Object Store.
func NewBlobStore ¶ added in v0.9.10
NewBlobStore creates a BlobStore backed by a NATS Object Store bucket. The bucket is created if it doesn't exist.
type Config ¶
type Config struct {
// AgentName is the name of the running agent.
AgentName string
// GatewayURL is the URL of the agent gateway for router/registry.
GatewayURL string
// DataDir is the directory for persistent data.
DataDir string
// LogLevel is the logging level (debug, info, warn, error).
LogLevel string
}
Config contains configuration for the platform context.
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
Context implements sdk.PlatformContext with real service implementations.
func NewContext ¶
NewContext creates a new platform context with the given configuration.
func (*Context) Blobs ¶ added in v0.9.10
Blobs returns the blob store for large binary transfers. Returns nil until the store is initialized during startup.
func (*Context) MessageBus ¶ added in v0.9.10
func (c *Context) MessageBus() sdk.MessageBus
MessageBus returns the NATS message bus for inter-agent communication. Returns nil until the bus is initialized during startup.
func (*Context) Router ¶
func (c *Context) Router() sdk.AgentRouter
Router returns the agent router.
func (*Context) SetApp ¶
SetApp sets the PocketBase app instance. When a core.App is provided, the RAG client is upgraded to persistent storage.
func (*Context) SetBlobs ¶ added in v0.9.10
SetBlobs sets the blob store implementation. Called by the runtime during initialization.
func (*Context) SetMessageBus ¶ added in v0.9.10
func (c *Context) SetMessageBus(mb sdk.MessageBus)
SetMessageBus sets the message bus implementation. Called by the runtime during initialization. Also wires the NATS connection into the AgentRouter for RPC/discovery.
type EventBus ¶ added in v0.3.0
type EventBus struct {
// contains filtered or unexported fields
}
EventBus publishes and subscribes to task/agent lifecycle events using NATS JetStream. It shares the NATS connection owned by MessageBus.
func NewEventBus ¶ added in v0.3.0
NewEventBus creates an EventBus using an existing NATS connection (typically from MessageBus.NC()). Returns nil if nc is nil. The caller retains ownership of the connection — EventBus will not close it.
func (*EventBus) Close ¶ added in v0.3.0
func (eb *EventBus) Close()
Close is a no-op. The NATS connection is owned by MessageBus. Retained for API compatibility during the migration.
func (*EventBus) PublishAgentEvent ¶ added in v0.3.0
PublishAgentEvent is a convenience method for publishing agent lifecycle events.
func (*EventBus) PublishTaskEvent ¶ added in v0.3.0
PublishTaskEvent is a convenience method for publishing task lifecycle events.
func (*EventBus) PublishTaskEventCore ¶ added in v0.6.0
PublishTaskEventCore publishes a task event via NATS core (not JetStream). This ensures the event is broadcast to all core subscribers across the cluster, which is required for the gateway's delegate-stream handler that uses nc.Subscribe. JetStream publish only guarantees delivery to the stream leader node.
type EventHandler ¶ added in v0.9.10
EventHandler processes a single event (internal runtime type).
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger implements sdk.Logger with structured output.
type MessageBus ¶ added in v0.9.10
type MessageBus struct {
// contains filtered or unexported fields
}
MessageBus implements sdk.MessageBus over a NATS connection.
func NewMessageBus ¶ added in v0.9.10
func NewMessageBus(natsURL, agentName, natsUser, natsPass string) (*MessageBus, error)
NewMessageBus creates a MessageBus connected to the given NATS server. natsUser/natsPass are used for per-agent authentication (may be empty).
func (*MessageBus) Close ¶ added in v0.9.10
func (mb *MessageBus) Close()
Close drains the NATS connection.
func (*MessageBus) NC ¶ added in v0.9.10
func (mb *MessageBus) NC() *nats.Conn
NC returns the underlying NATS connection (for internal use by EventBus/BlobStore).
func (*MessageBus) QueueSubscribe ¶ added in v0.9.10
func (mb *MessageBus) QueueSubscribe(_ context.Context, subject string, queue string, handler sdk.MsgHandler) (sdk.Subscription, error)
QueueSubscribe listens with load balancing across a named group.
func (*MessageBus) Request ¶ added in v0.9.10
func (mb *MessageBus) Request(ctx context.Context, subject string, data []byte, timeout time.Duration) ([]byte, error)
Request sends a message and waits for a single reply.
func (*MessageBus) Subscribe ¶ added in v0.9.10
func (mb *MessageBus) Subscribe(_ context.Context, subject string, handler sdk.MsgHandler) (sdk.Subscription, error)
Subscribe listens for messages on a subject pattern.
type PersistentRAGClient ¶
type PersistentRAGClient struct {
// contains filtered or unexported fields
}
PersistentRAGClient implements sdk.RAGClient with PocketBase-backed storage. Documents are stored in the agentic_documents collection. Vector search loads embeddings from PB and computes cosine similarity in-memory.
func NewPersistentRAGClient ¶
func NewPersistentRAGClient(app core.App, cfg Config) *PersistentRAGClient
NewPersistentRAGClient creates a PocketBase-backed RAG client.
func (*PersistentRAGClient) Delete ¶
func (c *PersistentRAGClient) Delete(ctx context.Context, id string) error
Delete removes a document by ID from the collection.
func (*PersistentRAGClient) List ¶
func (c *PersistentRAGClient) List(ctx context.Context) ([]sdk.DocumentMeta, error)
List returns all documents (metadata only).
func (*PersistentRAGClient) Query ¶
func (c *PersistentRAGClient) Query(ctx context.Context, query string, opts ...sdk.QueryOption) ([]sdk.SearchResult, error)
Query performs a search over documents. Currently uses basic matching (no vector similarity) since embeddings are not yet generated. Returns all matching documents with placeholder scores.
type PersistentSimpleMemory ¶
type PersistentSimpleMemory struct {
// contains filtered or unexported fields
}
PersistentSimpleMemory stores messages in PocketBase collections. Messages persist across app restarts via agentic_conversations + agentic_messages.
func (*PersistentSimpleMemory) Clear ¶
func (m *PersistentSimpleMemory) Clear(ctx context.Context) error
func (*PersistentSimpleMemory) LoadMessages ¶
func (m *PersistentSimpleMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*PersistentSimpleMemory) SaveMessages ¶
func (m *PersistentSimpleMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
type PersistentSummaryBufferMemory ¶
type PersistentSummaryBufferMemory struct {
// contains filtered or unexported fields
}
PersistentSummaryBufferMemory persists messages and summary to PocketBase.
func (*PersistentSummaryBufferMemory) Clear ¶
func (m *PersistentSummaryBufferMemory) Clear(ctx context.Context) error
func (*PersistentSummaryBufferMemory) GetSummary ¶
func (m *PersistentSummaryBufferMemory) GetSummary() string
func (*PersistentSummaryBufferMemory) LoadMessages ¶
func (m *PersistentSummaryBufferMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*PersistentSummaryBufferMemory) SaveMessages ¶
func (m *PersistentSummaryBufferMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
func (*PersistentSummaryBufferMemory) SetMessages ¶
func (m *PersistentSummaryBufferMemory) SetMessages(messages []sdk.ChatMessage)
func (*PersistentSummaryBufferMemory) SetSummary ¶
func (m *PersistentSummaryBufferMemory) SetSummary(summary string)
type PersistentWindowMemory ¶
type PersistentWindowMemory struct {
// contains filtered or unexported fields
}
PersistentWindowMemory is a persistent memory that only loads the last N message pairs.
func (*PersistentWindowMemory) Clear ¶
func (m *PersistentWindowMemory) Clear(ctx context.Context) error
func (*PersistentWindowMemory) LoadMessages ¶
func (m *PersistentWindowMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*PersistentWindowMemory) SaveMessages ¶
func (m *PersistentWindowMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
type RAGClient ¶
type RAGClient struct {
// contains filtered or unexported fields
}
RAGClient implements sdk.RAGClient with an in-memory store. TODO: Replace with SQLite + vector embeddings.
type SimpleMemory ¶
type SimpleMemory struct {
// contains filtered or unexported fields
}
SimpleMemory stores messages in-memory.
func (*SimpleMemory) LoadMessages ¶
func (m *SimpleMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*SimpleMemory) SaveMessages ¶
func (m *SimpleMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
type SummaryBufferMemory ¶
type SummaryBufferMemory struct {
// contains filtered or unexported fields
}
SummaryBufferMemory keeps recent messages in full and summarizes older ones.
func (*SummaryBufferMemory) GetSummary ¶
func (m *SummaryBufferMemory) GetSummary() string
GetSummary returns the current conversation summary.
func (*SummaryBufferMemory) LoadMessages ¶
func (m *SummaryBufferMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*SummaryBufferMemory) SaveMessages ¶
func (m *SummaryBufferMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
func (*SummaryBufferMemory) SetMessages ¶
func (m *SummaryBufferMemory) SetMessages(messages []sdk.ChatMessage)
SetMessages replaces all messages.
func (*SummaryBufferMemory) SetSummary ¶
func (m *SummaryBufferMemory) SetSummary(summary string)
SetSummary sets the summary.
type TaskEventCallbacks ¶ added in v0.3.0
type TaskEventCallbacks struct {
sdk.NoopCallbacks
// contains filtered or unexported fields
}
TaskEventCallbacks implements sdk.LoopCallbacks by publishing each callback as a NATS event on the task's subject. This makes a sub-agent's internal loop activity observable by the caller during delegation.
func NewTaskEventCallbacks ¶ added in v0.3.0
func NewTaskEventCallbacks(taskID string, eventBus *EventBus) *TaskEventCallbacks
NewTaskEventCallbacks creates callbacks that publish loop events to NATS for the given task. eventBus must not be nil.
func (*TaskEventCallbacks) OnLLMEnd ¶ added in v0.3.0
func (c *TaskEventCallbacks) OnLLMEnd(ctx context.Context, response string, usage sdk.TokenUsage)
func (*TaskEventCallbacks) OnLLMStart ¶ added in v0.3.0
func (c *TaskEventCallbacks) OnLLMStart(ctx context.Context, messages []sdk.ChatMessage)
func (*TaskEventCallbacks) OnToolEnd ¶ added in v0.3.0
func (c *TaskEventCallbacks) OnToolEnd(ctx context.Context, action sdk.ToolAction, result string, err error, duration time.Duration)
func (*TaskEventCallbacks) OnToolStart ¶ added in v0.3.0
func (c *TaskEventCallbacks) OnToolStart(ctx context.Context, action sdk.ToolAction)
type TaskStore ¶ added in v0.3.0
type TaskStore struct {
// contains filtered or unexported fields
}
TaskStore implements sdk.TaskStore backed by PocketBase collections (agentic_tasks and agentic_artifacts).
func NewTaskStore ¶ added in v0.3.0
NewTaskStore creates a new PocketBase-backed task store.
func (*TaskStore) CreateArtifact ¶ added in v0.3.0
CreateArtifact stores a new artifact record in PocketBase.
func (*TaskStore) CreateTask ¶ added in v0.3.0
CreateTask creates a new task record in PocketBase.
func (*TaskStore) GetArtifact ¶ added in v0.3.0
GetArtifact returns a specific artifact by ID.
func (*TaskStore) GetArtifacts ¶ added in v0.3.0
GetArtifacts returns all artifacts for a task.
func (*TaskStore) SetTaskOutput ¶ added in v0.3.0
SetTaskOutput sets the output on a task.
func (*TaskStore) UpdateTaskStatus ¶ added in v0.3.0
func (s *TaskStore) UpdateTaskStatus(taskID string, status sdk.TaskStatus) error
UpdateTaskStatus updates a task's status in PocketBase.
type WindowMemory ¶
type WindowMemory struct {
// contains filtered or unexported fields
}
WindowMemory keeps only the last N message pairs (user + assistant).
func (*WindowMemory) LoadMessages ¶
func (m *WindowMemory) LoadMessages(ctx context.Context) ([]sdk.ChatMessage, error)
func (*WindowMemory) SaveMessages ¶
func (m *WindowMemory) SaveMessages(ctx context.Context, messages []sdk.ChatMessage) error
func (*WindowMemory) SetMessages ¶
func (m *WindowMemory) SetMessages(messages []sdk.ChatMessage)
SetMessages replaces all messages (useful for initializing from existing conversation).