Tools
Add powerful capabilities to your Magma agents
Overview
Tools are the primary way to extend your Magma agent’s capabilities. They allow your agent to interact with external systems, process data, and perform specific tasks.
Tools are asynchronous methods that MUST return a string response.
Basic Implementation
Here’s a simple example of implementing a tool:
Tool Decorators
@tool Decorator
The @tool
decorator defines the tool itself and accepts the following options:
name
: The name of the tool.description
: A description of the tool.
@toolparam Decorator
The @toolparam
decorator defines parameters for your tool:
key
: The name of the parameter.type
: The type of the parameter.description
: A description of the parameter.required
: Whether the parameter is required to run the tool. Defaults to false.
Primitive-specific options:
enum
: Possible values for the parameter.
Object-specific options:
properties
: An array ofMagmaToolParam
objects which define the properties of the object.
Array-specific options:
items
: AMagmaToolParam
object which defines the type of the items in the array.
You should get intellisense for what properties are available for a given parameter type.
Advanced Tool Parameters
Tools can accept complex parameter types:
Best Practices
-
Return Values
- Tools must always return a string
- Return meaningful success/error messages
- Keep responses concise and informative
-
Error Handling
-
Type Safety
- Use proper TypeScript types
- Avoid using
any
type - Validate input parameters
Common Use Cases
API Integration
File Operations
Remember that tool responses are used as context for the agent’s next action. Keep responses clear and structured to help the agent make better decisions.
For more examples and advanced usage, check out some of our Templates