Skip to main content
Vizra ADK is in maintenance mode. It continues to work and receives compatibility fixes, but no new features are planned. For evaluating AI agents — now built on the official Laravel AI SDK — check out Vizra Evals, its successor for the evaluation use-case. Coming from ADK? See the migration guide.

Exception Types

The framework includes three specialized exception classes that extend PHP’s base \Exception class:

AgentNotFoundException

Thrown when attempting to access or execute an agent that doesn’t exist in the registry.
AgentRegistry.php

AgentConfigurationException

Thrown when there are issues with agent configuration, such as invalid settings or missing required parameters.
Configuration Validation

ToolExecutionException

Thrown when errors occur during tool execution, including invalid parameters or runtime failures.
Tool Execution

Handling Exceptions in Controllers

The AgentApiController demonstrates comprehensive exception handling:
AgentApiController.php

Error Handling in Commands

Artisan commands handle errors gracefully to provide helpful feedback:
RunEvalCommand.php

Error Handling in Services

Services like AgentRegistry validate configuration and throw appropriate exceptions:
AgentRegistry.php

Best Practices

1. Use Specific Exception Types

Always throw the most specific exception type for the error scenario:
Exception Best Practices

2. Provide Meaningful Error Messages

Include context in error messages to help with debugging:
Descriptive Error Messages

3. Log Errors with Context

Always log errors with relevant context for debugging:
Error Logging

4. Handle Errors at the Right Level

Let exceptions bubble up to where they can be handled appropriately:
Error Handling Layers

Creating Custom Exceptions

You can create custom exceptions for your specific use cases:
app/Exceptions/ApiRateLimitException.php

Error Recovery Strategies

Graceful Degradation

Provide fallback behavior when non-critical operations fail:
Fallback Pattern

Retry Logic

Implement retry logic for transient failures:
Retry with Exponential Backoff

Testing Error Handling

Always test your error handling paths:
tests/Feature/ErrorHandlingTest.php

Next Steps

Agent Class Reference

Agent class documentation

Tool Development

Build custom tools

Testing Strategies

Test your agents