@vendoai/agent
v0.6.1
Published
The Vendo agent loop: streaming, tool-calling, context engineering — BYO ai-SDK LanguageModel, guard-bound tools, thread persistence via the store seam.
Readme
@vendoai/agent
Runs Vendo's streaming, tool-calling conversation loop against any AI SDK
LanguageModel, with persisted threads and guard-bound tools.
Threads persist through the composed store; without a configured store the
agent defaults to core's in-memory reference StoreAdapter through the same
single path. agent.evictSubject(subject) list-and-deletes the subject's
thread rows — the umbrella calls it for every subject the store's idle sweep
returns (usually a no-op, since the sweep's erase cascade already removed
those rows).
stream({ signal }) cancels a turn: the in-flight provider call aborts, no
further step starts, and the thread stays consistent and resumable (the
umbrella passes the request's own signal, so client disconnect cancels the
loop). The per-turn step cap is context.maxSteps (default 20); exhausting it
streams a renderable data-vendo-step-limit part instead of ending silently.
Approvals a conversation walks away from resolve guard-side: a fresh user turn
marks undecided asks abandoned in the thread and denies them through
guard.abandonApprovals when the guard provides it. Client upserts are
validated — a new message must be user-role, and an existing assistant message
may change only by answering a pending approval.
Read Prompts and the architecture overview.
