The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →To keep an AI assistant’s tool schemas from crowding every request, I built a small discovery step: the model starts with a limited set of tools, calls find_tools when it needs more, and receives matching tool schemas for use in the same session. In my account of the design, curated categories and keywords—not embeddings—power that lookup. This is an explanation of the approach Krish Verma describes for Ankita, an open-source Electron desktop assistant and terminal CLI; it is not a claim about the current state of its code.
Why defer tool schemas?
A model needs the parameter schema for a tool to call it. If an assistant exposes dozens of tools on every request, their schemas take up context before the model has started the user’s task. Verma describes this as the problem behind Ankita’s design: keep the default toolset small, then reveal other capabilities only when they are relevant.
As an Amazon Associate I earn from qualifying purchases.
The described catalog spans web search and fetching, Git, filesystem operations, process management, scheduling, page watches, project management, memory, GitHub notifications, MCP servers, image generation, and voice. Each tool is an ES module under tools/ exporting name, description, parameters, and run(). The article does not provide a measured token reduction, so the benefit is a design rationale rather than a quantified result.
How Ankita’s discovery flow works
1. Keep the always-available set small
Instead of putting every tool schema in the model’s initial context, the design reserves a small set of tools for routine use and discovery. Which tools belong in that set is an ongoing design choice: each always-on schema has a context cost, so categories that are rarely useful deserve periodic review.
#1 Best Overall
- Built for Local AI Development: AMD Ryzen AI Halo is designed for local AI development and inference, featuring 128GB unified memory and support for up to 200B parameter models to build and run intensive AI workloads locally.
- 128GB Unified Memory: Features 128GB LPDDR5x unified memory at 8000 MT/s with 256 GB/s memory bandwidth, providing a shared memory pool across the CPU, GPU, and NPU to support larger AI models.
- AMD Ryzen AI Max+ 395 Processor: Features 16 cores, 32 threads, and Zen 5 architecture, paired with AMD Radeon 8060S integrated graphics featuring 40 RDNA 3.5 compute units and an AMD XDNA 2 NPU with up to 50 TOPS.
- Linux AI Developer Platform: Purpose-built for Linux-based AI development with full AMD ROCm software support and preloaded tools, models, and workflows optimized for local AI development.
- Compact, Connected Design: Includes a 2TB M.2 SSD, 10GbE LAN, Wi-Fi 7, Bluetooth 5.4, USB-C connectivity, and HDMI 2.1b.
2. Let the model search with find_tools
The assistant exposes one discovery tool, find_tools, which accepts a plain-language request. Verma’s examples include “search the web,” “remind me daily,” and “where does this project stand.” The tool returns schemas judged relevant to the query; the article says those tools can then be called in the same session, while unrelated tools remain unloaded.
3. Match categories using curated terms
Tools are organized into categories with a short summary and a keyword list. The article’s process example includes port, process, pid, address in use, eaddrinuse, kill, listener, and taskkill. The described matchCategories() checks category IDs, keywords, and tool names with word-boundary regular expressions. That helps avoid a naive substring match—for example, matching “port” inside “transport.”
This makes the index legible to the people maintaining it: they can inspect the terms and see why a category matched. It also means matching depends on the terms the team chose. A user’s paraphrase may not match if the relevant words are absent.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
4. Resolve known collisions explicitly
Keywords can point to more than one category. Verma’s example is “github notifications,” which should select the built-in GitHub inbox category rather than a connectors category. The design uses an explicit disambiguation rule for that case instead of relying on an opaque, more elaborate matcher. As the catalog grows, these rules need to be maintained alongside category terms.
Keep procedural skills separate from tools
A tool definition describes an action the assistant can call; a skill provides procedural guidance for carrying out a kind of task. In the described design, skills are Markdown procedures with frontmatter fields for name, description, and suggested-tools. A skill tool loads a skill by name, and its rendered body is capped at 8,000 characters, according to Verma’s article.
The suggested tools are hints, not compulsory calls. This separation lets the assistant load a procedure when a task warrants it without placing every instruction in the system prompt, while tool discovery independently supplies the relevant callable schemas.
Rank #2
- Intel Core Ultra 9 285 Processor: Newly developed cores deliver ultra-smooth and responsive gameplay. AI accelerators prepare users for the next era of gaming on an AI PC.
- Simplistic Design: Enjoy the latest generation of Windows 11 Home for your everyday needs. *MSI recommends Windows 11 Pro for business use.
- NVIDIA GeForce RTX 5070 Ti GPU
- Cool While Gaming: In conjunction with an RGB CPU Air Cooler, the Aegis RS features four system cooling fans; three in the front and one in the rear to pull in cool air and push heat out of the PC.
- Turn on the Bright Lights: With the built-in RGB lighting, take your gaming experience to the next level by pressing the MSI LED button to cycle through lighting options. Customize lighting even further with MSI Center software.
Why use keywords instead of embeddings?
Verma’s stated case for curated matching is that it is predictable, synchronous, and easy to debug, with no embeddings, vector index, or extra runtime dependency. The article also says the CLI has zero runtime npm dependencies and that the matching function is easy to test with Node’s built-in test runner; it does not establish that those tests were run or provide a published match-quality benchmark.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThe trade-off is coverage. Embeddings could handle more paraphrases, while hand-maintained terms can drift as tools are added or their descriptions change. Verma describes a possible improvement: generate candidate keywords from tool descriptions at build time, then review the changes rather than accepting them automatically. That retains human oversight while reducing the burden of inventing every term manually.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How this pattern compares with platform tool search
Deferred discovery is not one standardized feature. The following systems assign different responsibilities to the model, application, and runtime; their features should not be assumed interchangeable or attributed to Ankita.
| System | Discovery and activation | Practical distinction |
|---|---|---|
| Ankita, as described by Verma | A plain-language find_tools query returns matched schemas. Categories, keywords, names, and word-boundary matching drive selection; the tools can be used in the same session. |
Curated and inspectable matching, with human-maintained terms and disambiguation rules. |
| OpenAI Responses API | OpenAI documents deferred functions, namespaces, and MCP servers. Search may be hosted or client-executed; client lookup can depend on application state such as project or tenant context. | OpenAI recommends clear, high-level namespace descriptions and says fewer than ten functions per namespace is a best practice. Hosted search and application-owned lookup have different retrieval responsibilities. |
| Microsoft Foundry | Microsoft documents deferred functions, namespaces, MCP servers, and hosted or client-executed search. For client search, the application returns complete trusted tool definitions for the tools to become callable. | The application must validate the definitions it returns. The documentation page states it was last updated July 23, 2026. |
| Docker Agent | Docker documents deferring an entire toolset or selected tools. With a fully deferred toolset, search_tool discovers tools by keyword and add_tool activates them. |
Docker describes fuzzy matching in which query characters occur in order in a tool name or description, without necessarily being adjacent; discovery and activation are separate steps. |
OpenAI characterizes its feature this way: “Tool search allows the model to dynamically search for and load tools into the model’s context as needed.” Docker describes the goal of deferred loading as: “Load tools on-demand to speed up agent startup.” Those statements describe their respective documented systems, not Ankita’s implementation.
Sources: OpenAI tool search documentation; Microsoft Foundry tool search documentation; Docker deferred tool loading documentation.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteA practical checklist for designing deferred discovery
- Decide which tools truly need to be available on every request; keep the initial set deliberately small.
- Write category summaries and terms around the ways users ask for capabilities, not only internal tool names.
- Use matching rules that are easy to inspect, and add explicit resolution for predictable category collisions.
- Test both positive matches and near-misses, including substring traps such as
portversustransport. - Review keyword coverage when tools or descriptions change. Treat generated candidate terms as proposals if human review matters.
- Check whether activation requires another round trip, what schemas remain visible before discovery, and how the application validates returned definitions.
- Review the always-on set over time; deferred tools save context only if they are not quietly reintroduced elsewhere.
The account of Ankita’s design is a software architecture explanation rather than a repository-verified implementation report. It does not establish the current code, a release version, measured savings, or the article’s publication year; treat its implementation details as Verma’s description.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




