mingyue3677/agent-tool-drawers — explained in plain English
Analysis updated 2026-05-18
Reduce how many tool schemas an AI model sees each conversation turn by grouping them into drawers.
Use keyword based force rules to instantly route low latency or high risk requests to the right tools.
Add an optional LLM router to pick relevant drawers when keyword rules do not match.
Separate safe read only tools from risky destructive tools that need confirmation.
| mingyue3677/agent-tool-drawers | 0whitedev/detranspiler | 0xluk3/zk-resources | |
|---|---|---|---|
| Stars | 21 | 21 | 21 |
| Language | — | Python | — |
| Setup difficulty | moderate | hard | easy |
| Complexity | 3/5 | 4/5 | 1/5 |
| Audience | developer | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
It is a pattern with example code, not a drop-in library, so you adapt the source to your own agent.
Agent Tool Drawers is a lightweight architecture pattern for AI agents that use many tools. Instead of showing an AI model every single tool it could possibly call in every conversation turn, this project groups related tools into drawers, and only opens the drawers that are likely needed for the current message. The README describes it as an early public release: a clean architecture and example code, not a finished product with private prompts, production tools, or user data included. The problem it addresses shows up once an agent project grows past a handful of tools. Feeding the model every tool schema on every turn makes the context heavier, makes the model more likely to pick the wrong tool among similar options, and mixes risky tools like sending messages or deleting data in with safe ones like searching for information, with no clear boundary between them. Different entry points, such as a web chat, a voice assistant, or a scheduled background job, may also need different sets of tools available. The system works in stages. First, deterministic force rules use keyword patterns to instantly open certain drawers, useful for low latency situations like voice commands or high risk actions. Second, an optional lightweight language model router looks at the message's meaning and picks a small number of additional drawers when the keyword rules do not cover it, always returning structured output rather than free text. The selected drawers determine which tool schemas actually get shown to the main model. A separate gateway layer registers all tools, lists them by drawer, and executes tool calls by name, keeping execution logs free of private data. The author is explicit that this only solves one problem: keeping the tool list an agent sees each turn small and relevant. It does not include a memory database design, prompt management, permission system, user authentication, or a task queue. It suits companion agents, roleplay bots, desktop assistants, MCP servers, and other agents with many tools spread across several entry points. It also recommends treating destructive or external actions as a separate risk category requiring confirmation. The project is released under the MIT license.
An architecture pattern that groups an AI agent's tools into drawers and shows the model only the small subset it likely needs each turn.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice, under the MIT license.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.