AI/AX Design principles — Agent Interface / Agent Experience
Reducing total visible tools is a great optimization. To still offer a wide range of capabilities we recommend two strategies:
- Dynamic toolkits — Tools that when called return 3–6 new tools in a toolkit, along with a
bootstrap.mdprompt acting as a sub-skill. - Sub-agent architecture — The main agent has several tools available that commission sub-agents, each with their own
SKILL.mdand toolkits. They take an instruction from the main agent, run their loops, and report back.
Asking for UUIDs or complex tool args is bad AX and prone to failures. It's better to match by index, simple names, or sticky settings that don't require any agent input at all.
Context management is one of the most difficult things to get right with MCPs. As a general rule, a tool shouldn't expect the agent to know something without providing that context in the tool description or clearly explaining where to find the required information. This can also be explained with skill files. For example:
SKILL.md
list_users -> lists all users and their indexes.
...
get_user_info -> retrieves information for a specific user. Requires the user's index which can be found by calling **list_users** first.The agent should never be expected to know something specific to the MCP. The knowledge must always be available or clearly accessible.
Errors
Because of the probabilistic nature of agents, errors are bound to happen. To account for this, errors should never be generic. They should explicitly explain what went wrong, so that the agent knows what to do and can attempt to recover.