Optimize token usage with filtered tool sets tailored to agent capabilities and use cases
Tool profiles allow AgentOS to reduce prompt overhead by filtering the available tools based on each agent’s role. Instead of sending 60+ tool definitions to every agent, profiles provide only the relevant subset.
Problem: Sending all 60+ tools to every agent wastes tokens and can degrade LLM performance.Solution: Profiles define wildcard patterns that match tool IDs, enabling flexible filtering:
Use Case: General conversation, web research, memory recall.Tools:
tool::web_search — Multi-provider web search
tool::web_fetch — HTTP fetching with SSRF protection
memory::recall — Retrieve stored memories
memory::store — Save memories for later
Example Agent:
# agents/assistant.yamlname: assistantprofile: chatinstructions: | You are a helpful assistant that can search the web and remember information across conversations.
Use Case: Software development, debugging, code review.Tools:
tool::file_* — All file operations (read, write, list, patch)
tool::shell_exec — Execute shell commands
tool::code_* — All code tools (analyze, format, lint, test, explain)
tool::apply_patch — Apply unified diffs
Example Agent:
# agents/coder.yamlname: coderprofile: codeinstructions: | You are a software engineer. You can read/write files, run commands, analyze code, format, lint, and run tests.
Use Case: Deep web research, information gathering, fact-checking.Tools:
tool::web_* — All web tools (search, fetch, screenshot, browser)
tool::browser_* — Browser automation actions
memory::* — All memory tools (store, recall, search)
Example Agent:
# agents/researcher.yamlname: researcherprofile: researchinstructions: | You are a research assistant. Use web search, fetch pages, take screenshots, and remember findings across research sessions.
Use Case: System administration, monitoring, DevOps.Tools:
tool::shell_exec — Execute system commands
tool::system_* — System information (system_info)
tool::process_* — Process monitoring (process_list)
tool::disk_* — Disk usage (disk_usage)
tool::network_* — Network checks (network_check)
Example Agent:
# agents/sysadmin.yamlname: sysadminprofile: opsinstructions: | You are a system administrator. Monitor processes, check disk usage, verify network connectivity, and execute maintenance commands.
tool::file_* — File operations for reading/writing data
Example Agent:
# agents/data-processor.yamlname: data-processorprofile: datainstructions: | You are a data processing specialist. Parse, transform, and convert data between JSON, CSV, and YAML formats.
Use Case: Advanced agents that need access to all capabilities.Tools:
tool::* — All 60+ tools
memory::* — All memory tools
Example Agent:
# agents/advanced.yamlname: advancedprofile: fullinstructions: | You are an advanced agent with access to all system capabilities. Use appropriate tools for any task.
Begin with the smallest profile that meets your agent’s needs:
# Good: Focused profileprofile: chat# Suboptimal: Overprovisioned profileprofile: full
You can always expand to full if the agent needs more capabilities.
Use wildcards for tool families
Group related tools with wildcard patterns:
// Good: Wildcard for all file operations["tool::file_*"]// Verbose: Explicitly listing every tool["tool::file_read", "tool::file_write", "tool::file_list", ...]
Combine profiles for hybrid agents
Create custom profiles by combining patterns:
TOOL_PROFILES.devops = [ ...TOOL_PROFILES.code, // Include all code tools ...TOOL_PROFILES.ops, // Include all ops tools "tool::git_*", // Add git tools];
Monitor token usage
Track token overhead to validate profile effectiveness: