Agent classes / Personal assistant / Realtime agent↔user channel
Realtime agent↔user channel for a personal assistant
Updated 2026-10-27 (newest stored date on this page) · score asOf 2026-09-14 (stale)
The class: Acts for one person across sessions, keeps that person's memory separate, and waits before sending or booking.
- Confirmation before a message or a calendar write
- A memory store scoped to one user
Depot Pick: Ably
When not to use it: Need full chat UX (channels, moderation, reactions) — Stream; only server-side job fanout — QStash/SQS/EventBridge; Cloudflare Durable Objects already hold your edge state.
Runner-up: Stream (GetStream).
No single-unit sourced price comparison for this job (no_comparable_unit_for_job).
Failure modes this class and job share (6)
- Confirmation skip: Gate those tool names on an approval id recorded before the call. A missing approval is a failure even if the downstream tool returns success.
- Context overflow: If the input exceeds the window, say so and retrieve a narrower slice. Do not answer from a truncated head as if it were the whole source.
- Identity confusion: Bind every tool call to a user or tenant id. Refuse the call if that id changed mid-task. For a public bot, the operator owns the words the bot shows.
- Instruction drift: Restate the stop condition in the trace. End the run when it is met. Review long traces for steps that do not serve the original task.
- Prompt injection: Compare each tool call to the original user task. If the call only makes sense given text that arrived from a fetched page, file, or message, stop and ask. Record which source the instruction came from. This catalog does not store payloads or attack steps.
- Stale retrieval: Store the source URL and the time it was fetched. If a newer canonical page exists, or two stored sources disagree, do not answer from the older one.
Free options this class uses (0)
No free row lists this job with a kind this class needs.