Performance budgets
Bundle size ceilings per package, enforced in CI via size-limit. Measured values injected when available.
Every @agentskit/ package has a gzipped size budget enforced on every PR via size-limit. Exceed the limit and CI fails — no surprise bundle bloat.
| Package | Format | Limit (gzip) |
|---|---|---|
@agentskit/adapters | ESM | 20 KB |
@agentskit/cli | ESM | 20 KB |
@agentskit/core | CJS | 10 KB |
@agentskit/core | ESM | 10 KB |
@agentskit/eval | ESM | 10 KB |
@agentskit/ink | ESM | 15 KB |
@agentskit/memory | ESM | 15 KB |
@agentskit/observability | ESM | 10 KB |
@agentskit/rag | ESM | 10 KB |
@agentskit/react | ESM | 15 KB |
@agentskit/runtime | ESM | 15 KB |
@agentskit/sandbox | ESM | 10 KB |
@agentskit/skills | ESM | 10 KB |
@agentskit/templates | ESM | 15 KB |
@agentskit/tools | ESM | 15 KB |
Budgets only. Run
pnpm measure:sizes && pnpm gen:performanceto include real measurements. CI does this on every merge to main.
#Runtime budgets
| Concern | Target |
|---|---|
| First token latency (streaming) | < 400 ms p95 |
| Chunk render rate | 60 fps (batched on requestAnimationFrame) |
| Memory read (in-memory adapter) | < 1 ms |
| Memory read (SQLite adapter) | < 5 ms |
| Tool call overhead | < 2 ms per call |
#How bundle budgets are chosen
- core: must stay < 10 KB gzipped — it ships in every install.
- react/ink/vue: aim for < 15 KB — UI layer only, zero adapter bundled.
- adapters: sum of individual provider imports; tree-shakable.
- runtime: includes ReAct loop + planner primitives — aim for < 20 KB.
- cli: no budget — terminal tool, size is not on the critical path.
Tip
The limits are not aspirational. Every PR runs
pnpm size in CI and will fail if it regresses.