Toolsets
A toolset is a named collection of tool definitions that can be referenced by signature in resolution requests. Toolsets enable semantic caching, versioning, and efficient tool management.
Why Use Toolsets?
Section titled “Why Use Toolsets?”Instead of passing tool definitions inline with every request, you can:
- Register tools once via the API
- Reference by signature in subsequent requests
- Benefit from semantic caching (inline tools bypass cache)
- Version your tools using signature naming (e.g.,
home-v1,home-v2) - Update tools centrally without changing client code
Toolset Structure
Section titled “Toolset Structure”{ "name": "Home Automation", "signature": "home-v1", "description": "Smart home control tools", "tools": [ { "name": "turn_on_lights", "description": "Turn on lights in a room", "parameters": { "type": "object", "properties": { "room": { "type": "string" } }, "required": ["room"] } } ]}Signatures and Versioning
Section titled “Signatures and Versioning”The signature is a unique identifier for your toolset. Use it to:
- Reference the toolset in
/v1/resolverequests - Version your tools (e.g.,
travel-v1,travel-v2) - Maintain multiple toolsets for different contexts
{ "query": "Turn on kitchen lights", "toolsets": ["home-v1"], "banks": []}Content Hashing
Section titled “Content Hashing”When you create or update a toolset, Intentgine generates a content hash based on the tool definitions. This hash is used for:
- Cache stability: Same tools = same cache keys
- Change detection: Updates invalidate relevant cache entries
- Deduplication: Identical toolsets share cache entries
Managing Toolsets
Section titled “Managing Toolsets”Toolsets are managed via the API. See the API Reference for full documentation.
Create a Toolset
Section titled “Create a Toolset”curl -X POST https://api.intentgine.dev/v1/toolsets \ -H "Authorization: Bearer <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "Home Automation", "signature": "home-v1", "tools": [...] }'List Toolsets
Section titled “List Toolsets”curl https://api.intentgine.dev/v1/toolsets \ -H "Authorization: Bearer <YOUR_API_KEY>"Update a Toolset
Section titled “Update a Toolset”curl -X PUT https://api.intentgine.dev/v1/toolsets/home-v1 \ -H "Authorization: Bearer <YOUR_API_KEY>" \ -H "Content-Type: application/json" \ -d '{ "name": "Home Automation", "tools": [...] }'Delete a Toolset
Section titled “Delete a Toolset”curl -X DELETE https://api.intentgine.dev/v1/toolsets/home-v1 \ -H "Authorization: Bearer <YOUR_API_KEY>"Best Practices
Section titled “Best Practices”Organize by Context
Section titled “Organize by Context”Create separate toolsets for different domains:
home-v1 → Smart home controlstravel-v1 → Flight/hotel bookingfinance-v1 → Banking operationsVersion Strategically
Section titled “Version Strategically”Use versioning when making breaking changes:
- Minor updates (descriptions, new optional params): Update in place
- Breaking changes (renamed tools, removed params): Create new version
Keep Toolsets Focused
Section titled “Keep Toolsets Focused”Smaller, focused toolsets perform better than large, generic ones:
✅ Good: home-lights-v1 (5 tools)
❌ Avoid: everything-v1 (50 tools)
Use with Memory Banks
Section titled “Use with Memory Banks”Combine toolsets with memory banks for learned behavior:
{ "query": "Turn on the lights", "toolsets": ["home-v1"], "banks": ["user-preferences"]}Quick Resolve vs Standard Resolve
Section titled “Quick Resolve vs Standard Resolve”| Feature | /v1/resolve-quick | /v1/resolve |
|---|---|---|
| Tool input | Inline definitions | Toolset signatures |
| Semantic caching | ❌ No | ✅ Yes |
| Best for | Prototyping, testing | Production use |
| Performance | Slower (always compute) | Faster (cache hits) |
Next Steps
Section titled “Next Steps”- See the API Reference for toolset endpoints
- Learn about Memory Banks
- Explore Cache Optimization