fit → guard → snap → vet → cast
Five small, focused libraries that fix the boring problems every long-running AI agent eventually hits. Pure JavaScript or pure Python. Zero runtime dependencies. BYO LLM.
Each library solves a single concrete reliability problem. Pick the ones you need — they share no state and are deliberately uncoupled.
Token-aware message truncation. Fit a chat history into the model's context budget with drop-oldest, drop-middle, or priority strategies.
Network-egress firewall for agent tools. A declarative allowlist of domains your tools can fetch. Throws on violation.
Snapshot tests for tool-call traces. Catch silent regressions in LLM tool use the way you catch UI regressions today.
Validate tool args before execution. Wrap any tool function. On bad args, throws a typed error with an LLM-friendly retry hint.
Bring your own LLM. Zero runtime dependencies. TypeScript types ship in the box on npm.
npm install @mukundakatta/agentkit
Or pick what you need:
npm install @mukundakatta/agentfit
npm install @mukundakatta/agentguard
npm install @mukundakatta/agentsnap
npm install @mukundakatta/agentvet
npm install @mukundakatta/agentcast
pip install mk-agentkit
Or pick what you need:
pip install agentfit-py
pip install agentguard-firewall
pip install agentsnap-py
pip install agentvet-py
pip install agentcast-py
Each library also ships as an MCP server, listed in the official MCP Registry:
npx -y @mukundakatta/agentfit-mcp # token counting + history fitting
npx -y @mukundakatta/agentguard-mcp # URL-allowlist checks
npx -y @mukundakatta/agentsnap-mcp # diff tool-call traces
npx -y @mukundakatta/agentvet-mcp # validate tool args
npx -y @mukundakatta/agentcast-mcp # extract + validate JSON from LLM text
Every long-running agent eventually hits the same problems. They get hand-rolled in a hundred codebases. Each library here is the one I wished existed.
Each package does one thing. No framework lock-in. Zero runtime dependencies. You compose them like Unix pipes.
Works with OpenAI, Anthropic, Google, Llama, vLLM, Ollama, anything else. The libraries don't care which model you use.
Pick TypeScript or Python. Move between them without re-learning the surface. Every primitive ports across.
The 117-package ecosystem ships across four registries.