beam_worker
beam_worker runs Riverbeam tasks by name and serves them from NATS.
beam_worker = { path = "../riverbeam/crates/beam_worker" }
| Item | Role |
|---|---|
BeamWorker | new(Arc<RiverBeam>), handle_task(task, payload), invoke_agent(request), on_startup(), on_shutdown(), beam(), queue_name() |
WorkerTask | invoke_agent, ingest_knowledge_document, delete_knowledge_document, remember_memory, forget_memory |
NatsWorkerServer | connect(url, worker, tracker), new(client, worker, tracker), with_prefix, with_concurrency, subject(), serve() |
DEFAULT_TASK_PREFIX | "beam"; the server subscribes to beam.task.* |
DEFAULT_CONCURRENCY | 16 tasks at once |
The tracker is a riverbase_task TrackerStore, so every task is recorded as a job.
There are no feature flags.
Task payloads, a full worker process, and the current limitations are in Worker and API.