# The capability diet: tool pruning for agents (P8) — TextForAgents LLC Compiles cross-session usage telemetry OFFLINE into per-task-type load manifests for MCP tool stacks: manifests keep the tools a task type actually uses and demote the rest; demotion is reversible in-session via diet_fetch_tool (JIT recovery). Includes exposure accounting (description tokens loaded vs full catalog). Compilation is poisoning-resistant: distinct-session scoring, per-agent contribution capped at 25% of a task type's sessions, promotion floor of >=2 distinct agents (or >=50% of sessions). Manifests are integrity-signed and versioned (version 1). Price: $9 per fleet / month flat. Trial: first month free, once per operator account AND per wallet. Bundle: Agent Trust Stack $9/mo per operator (P13 Caplock + capability diet + canary watch on <=10 servers); bundle consumes the trial grant for all three. Limits: Manifests are compiled offline from usage telemetry only — no per-prompt LLM semantic filtering and no per-input embedding retrieval. Token-saving figures beyond the lab stack (28 tools; -50.9% description tokens/session at equal task success, 360/360) are not claimed: a real large-stack measurement is a packet item. Start: POST /register -> POST /trial or POST /subscribe (x402, $9 USDC on Base, payTo 0xAc2E243a075fEe442e4c6864DcF880eb4e3A3862). Telemetry: POST /telemetry (Bearer token) with body {"events": [...]} — at most 500 events per call, one event per actual tool call. Each event has EXACTLY these four string fields, no others: "agent": stable id of the agent that used the tool (max 80 chars) "session": session id — one session is one run of one task type (max 80 chars) "task_type": task type the use belongs to, matching ^[a-z0-9_-]{1,40}$ (e.g. "research", "coding") "tool": a tool name from the catalog enum in /openapi.json (e.g. "search_nodes", "read_file", "calculate") Example: {"events": [{"agent": "agent-a", "session": "research-0", "task_type": "research", "tool": "search_nodes"}, {"agent": "agent-a", "session": "research-0", "task_type": "research", "tool": "fetch_url"}, {"agent": "agent-b", "session": "research-1", "task_type": "research", "tool": "search_nodes"}]} Compile: POST /compile {"task_type": "research"} compiles ONLY your own account's submitted events for that task type — manifests are per-customer, never shared. A tool is kept only with >=3 distinct sessions and (>=2 distinct agents or >=50% of the task type's sessions); any single agent is capped at 25% of sessions per tool (poisoning resistance). With no telemetry for a task type, the manifest keeps nothing: all tools are demoted but remain reachable in-session via diet_fetch_tool. MCP: POST /mcp (JSON-RPC initialize/tools/list/tools/call). Support: support@textforagents.com