Tools
NewUpdated
The chaos.tools namespace provides CRUD operations for a tool registry and semantic hybrid search. Tools represent capabilities that AI agents can discover and invoke. Organize tools into categories via the chaos.tools.categories sub-namespace.
import { Chaos } from '@chaoslabs/ai-sdk';
const chaos = new Chaos({ apiKey: process.env.CHAOS_API_KEY! });
// Create a tool
const tool = await chaos.tools.create({
name: 'price-oracle',
description: 'Fetches real-time token prices from DEXes and CEXes',
});
// List tools with filtering
const { data: tools, total } = await chaos.tools.list({ limit: 20, search: 'price' });
// Hybrid semantic + keyword search
const results = await chaos.tools.searchHybrid({
queries: ['fetch token prices', 'check wallet balances'],
});
// Categories
const cat = await chaos.tools.categories.create({ name: 'DeFi Protocols' });
const { data: categories } = await chaos.tools.categories.list();Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Method Reference
Tools
| Method | HTTP | Endpoint | Returns |
|---|---|---|---|
list(params?) | GET | /v1/tools | ToolListResponse |
create(params) | POST | /v1/tools | Tool |
update(toolId, params) | PUT | /v1/tools/{toolId} | { message: string } |
delete(toolId) | DELETE | /v1/tools/{toolId} | void |
searchHybrid(params) | POST | /v1/tools/search/hybrid/batch | QueryToolSearchResult[] |
Categories (chaos.tools.categories)
| Method | HTTP | Endpoint | Returns |
|---|---|---|---|
categories.list(params?) | GET | /v1/tools/categories | ToolCategoryListResponse |
categories.create(params) | POST | /v1/tools/categories | ToolCategory |
categories.update(categoryId, params) | PUT | /v1/tools/categories/{categoryId} | ToolCategory |
categories.delete(categoryId) | DELETE | /v1/tools/categories/{categoryId} | void |
Core Types
interface Tool {
id: string;
name: string;
description?: string | null;
}
interface ToolListParams {
page?: number;
limit?: number;
categoryId?: string;
search?: string;
}
interface ToolListResponse {
total: number;
data: Tool[];
}
interface CreateToolParams {
name: string;
[key: string]: unknown;
}
interface UpdateToolParams {
[key: string]: unknown;
}
interface BatchHybridSearchParams {
queries: string[];
}
interface QueryToolSearchResult {
query: string;
results: Tool[];
}
interface ToolCategory {
id: string;
name: string;
}
interface ToolCategoryListParams {
page?: number;
limit?: number;
search?: string;
}
interface ToolCategoryListResponse {
total: number;
data: ToolCategory[];
}
interface CreateToolCategoryParams {
name: string;
}
interface UpdateToolCategoryParams {
name?: string;
}Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Was this helpful?