Tools and Extensions
Use the built-in KeyRing tool catalog in chat and agents, and understand how the desktop runtime translates tool definitions per provider.
Overview
KeyRing AI has a built-in local tool registry that the runtime can expose to supported models. Tool definitions are not hardcoded separately for each provider. Instead, the runtime normalizes the catalog into provider-native tool payloads before a request is sent.
What matters operationally
Where Tools Appear in the Product
- Chatroom / Request Options: tool calling can be enabled for normal interactive queries.
- Agent Builder: the Tools tab lets you whitelist the tools an agent can use.
- Model Config: the Tools & Routing tab exposes lower-level routing and tool-related fields.
Built-in Tool Categories
| Category | Representative tools |
|---|---|
| Web & Internet | web_search, web_fetch, download_file |
| File System | write_file, read_file, list_directory, create_directory, delete_file, move_file, copy_file, file_exists |
| Code Execution | execute_python, execute_shell, install_package |
| Image Generation | generate_image, openai_image, openai_responses_image, openai_edit_image, xai_image, google_image |
| System | get_system_info, get_datetime, open_url, open_file, clipboard_read, clipboard_write |
| Data Processing | json_parse, json_format, csv_read, csv_write, text_to_speech, echo_text |
These are the built-in catalog groupings used by the runtime and by the Agent Builder tool picker.
Using Tools in Chat
Enable Tool Calling in Request Options
In the main workspace, tool access is controlled from the Request Options surface.
Submit a prompt that actually requires a tool
Find the latest FastAPI release notes, summarize any breaking changes,
and give me a migration checklist for an existing app.Review the result with tool-assisted context
The runtime executes the tool, injects the result back into model context, and then the model continues the response.
Using Tools in Agents
Agent Builder exposes a Tools tab where you can select which tools the saved agent is allowed to use. That tool list is persisted with the agent profile and later passed into the runtime when the agent executes.
Agent tool controls
Provider-native Translation
The runtime does not send one universal tool schema to every vendor. Instead, it uses a native translation layer before dispatch:
- OpenAI can receive built-in native descriptors such as native web search payloads.
- Anthropic receives its own provider-specific tool format for supported built-ins.
- Gemini uses Google-native search grounding where applicable.
- Groq handles web search differently and can strip that tool from the explicit payload for compound routing.
- Other providers can fall back to standard function-style tool definitions when native built-ins are not available.
Tool Call Lifecycle
1) User prompt enters Chatroom or agent execution
2) Runtime builds provider-native tools from the shared registry
3) Model decides whether to call a tool
4) KeyRing validates and executes the local tool handler
5) Tool output is injected back into model context
6) Model returns its next or final responseCapability Variations by Provider
Not every provider supports the same tool-related controls. The capability layer tracks items such as:
- whether parallel tool calls are supported
- whether explicit tool choice modes are supported
- whether a provider exposes native built-in tools such as search or code execution
Practical implication
Safety and Control
- Tool availability is explicit, not implicitly always-on.
- Agents can be restricted to selected tool subsets instead of full catalog access.
- Iteration limits and runtime controls reduce runaway tool loops.
- Agent execution traces help operators diagnose tool failures during agent runs.
Troubleshooting
Common tool issues
- Tool is never used: confirm Tool Calling is enabled or the agent actually has that tool whitelisted.
- Agent ignores tool preferences: check tool_choice and provider capability support.
- Search behaves differently across providers: native search support varies by vendor and model path.
- Execution fails mid-run: review the Agent Execution timeline and current provider/model status.
If tool behavior is tied to saved models or provider access, review Model Config and API Settings.