Creating an AI Agent
In the Handit.AI Dashboard, go to Agents
Add Model Nodes and Tool Nodes
Understanding AI Agents
Handit.AI uses a wrapper-based approach to track AI agents. Each agent can have multiple nodes that represent different processing steps.
Agent Structure
Model Nodes: AI models like GPT-4, BERT, etc.
Tool Nodes: External services, APIs, databases
Basic Agent Setup
import { startAgentTracing, traceAgentNode } from '@handit.ai/node';
// Define a simple agent
async function simpleAgent(input) {
const processNode = traceAgentNode({
agentNodeId: agentsTrackingConfig.mariaManager.documentCompressor,
callback: async (data) => {
// Your processing logic here
return processedData;
}
});
return await processNode(input);
}
// Wrap with tracing
const tracedAgent = startAgentTracing(simpleAgent);
from handit import start_agent_tracing, trace_agent_node
class SimpleAgent:
@start_agent_tracing
async def process(self, input_data):
process_node = trace_agent_node({
"agent_node_id": agent_config["mar_i_a_manager"]["document_compressor"],
"callback": self.process_data
})
return await process_node(input_data)
Advanced Configuration
Error Handling
The wrappers automatically handle errors without breaking your application:
const errorHandlingNode = traceAgentNode({
agentNodeId: agentsTrackingConfig.mariaManager.taskAssigner,
callback: async (data) => {
try {
return await riskyOperation(data);
} catch (error) {
// Error will be tracked but won't break your app
return fallbackResponse;
}
}
});
error_handling_node = trace_agent_node({
"agent_node_id": agent_config["mar_i_a_manager"]["task_assigner"],
"callback": async_error_handler
})
async def async_error_handler(data):
try:
return await risky_operation(data)
except Exception as e:
# Error will be tracked but won't break your app
return fallback_response
Setting Up AI Tracking
Each AI Agent has a tracking slug used to monitor interactions.
const { captureAIEntry } = require('@handit.ai/node');
captureAIEntry({
ai_tracking_slug: "my-agent",
request_body: { query: "What's the weather?" },
response_body: { answer: "It's sunny in Bogotá!" }
});
tracker.capture_ai_entry(
ai_tracking_slug="my-agent",
request_body={"query": "What's the weather?"},
response_body={"answer": "It's sunny in Bogotá!"}
)