@sisu-ai/mw-conversation-buffer
v9.0.3
Published
Keep conversations bounded and relevant with simple, predictable message buffering.
Maintainers
Readme
@sisu-ai/mw-conversation-buffer
Keep conversations bounded and relevant with simple, predictable message buffering.
Setup
npm i @sisu-ai/mw-conversation-bufferExports
inputToMessage— appends{ role:'user', content: ctx.input }when present.conversationBuffer({ window=12 })— keeps the first message and the lastwindowmessages.
What It Does
- Converts
ctx.inputinto a user chat message. - Prunes older messages with a simple, fast sliding window.
This pair is intentionally tiny and deterministic. It never summarizes or alters message contents — it only appends and trims.
How It Works
inputToMessage: Ifctx.inputis set, appends{ role: 'user', content: ctx.input }toctx.messages, then callsnext().conversationBuffer({ window = 12 }): Ifctx.messages.length > window, it keeps the first message (commonly a system prompt) plus the lastwindowmessages, mutatingctx.messagesin place.
Why keep “first + last N”? The first message is usually your system instruction; the tail is the most recent conversational state. This rule is robust for many apps.
Usage
import { inputToMessage, conversationBuffer } from '@sisu-ai/mw-conversation-buffer';
const app = new Agent()
.use(inputToMessage)
.use(conversationBuffer({ window: 12 }));Recommended ordering:
- Place
inputToMessageearly so downstream middleware sees a full message list. - Apply
conversationBufferafter appending new messages (user/tool) and before generation to cap context size.
When To Use
- Chat apps/CLIs where conversation grows and you need bounded context.
- Prototypes and demos that benefit from predictable behavior.
- As a guardrail before providers with strict token limits.
When Not To Use
- Single‑turn flows that don’t keep history.
- Workflows that manage context elsewhere (RAG pipelines or custom budgeting).
- Cases requiring semantic compression/summarization (use a compressor middleware instead).
Notes & Gotchas
- Role‑agnostic trim: trimming is positional, not role‑aware. If you must always keep specific roles/messages, compose your own policy.
- System prompt stability: the first message is preserved; ensure it’s the one you want to keep.
- Message vs token:
windowis in messages, not tokens. For strict token budgets, pair with usage tracking or a tokenizer‑aware compressor. - In‑place mutation:
conversationBuffermutatesctx.messages. Create references after trimming if you pass them elsewhere.
Community & Support
Discover what you can do through examples or documentation. Check it out at https://github.com/finger-gun/sisu. Example projects live under examples/ in the repo.
Documentation
Core — Package docs · Error types
Adapters — OpenAI · Anthropic · Ollama
- @sisu-ai/mw-agent-run-api
- @sisu-ai/mw-context-compressor
- @sisu-ai/mw-control-flow
- @sisu-ai/mw-conversation-buffer
- @sisu-ai/mw-cors
- @sisu-ai/mw-error-boundary
- @sisu-ai/mw-guardrails
- @sisu-ai/mw-invariants
- @sisu-ai/mw-orchestration
- @sisu-ai/mw-rag
- @sisu-ai/mw-react-parser
- @sisu-ai/mw-register-tools
- @sisu-ai/mw-tool-calling
- @sisu-ai/mw-trace-viewer
- @sisu-ai/mw-usage-tracker
- @sisu-ai/tool-aws-s3
- @sisu-ai/tool-azure-blob
- @sisu-ai/tool-extract-urls
- @sisu-ai/tool-github-projects
- @sisu-ai/tool-summarize-text
- @sisu-ai/tool-terminal
- @sisu-ai/tool-vec-chroma
- @sisu-ai/tool-web-fetch
- @sisu-ai/tool-web-search-duckduckgo
- @sisu-ai/tool-web-search-google
- @sisu-ai/tool-web-search-openai
- @sisu-ai/tool-wikipedia
Anthropic — hello · control-flow · stream · weather
Ollama — hello · stream · vision · weather · web-search
OpenAI — hello · weather · stream · vision · reasoning · react · control-flow · branch · parallel · graph · orchestration · orchestration-adaptive · guardrails · error-handling · rag-chroma · web-search · web-fetch · wikipedia · terminal · github-projects · server · aws-s3 · azure-blob
Contributing
We build Sisu in the open. Contributions welcome.
Contributing Guide · Report a Bug · Request a Feature · Code of Conduct
Star on GitHub if Sisu helps you build better agents.
Quiet, determined, relentlessly useful.
