ApiAgents
Named Agents API
API for interacting with 102 specialized named agents
Named agents are specialized AI agents with unique personalities, expertise areas, and capabilities. The .do platform provides 102 named agents covering roles from software engineering to marketing to finance.
Base URL
Endpoints
List Named Agents
Get a list of all available named agents.
GET /agents/namedQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter by category (engineering, marketing, operations, etc.) |
status | string | No | Filter by status (available, busy, offline) |
capabilities | string[] | No | Filter by capabilities |
limit | number | No | Max results to return (default: 50) |
offset | number | No | Pagination offset (default: 0) |
Example Request
curl -X GET "https://api.do/agents/named?category=engineering&status=available" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"agents": [
{
"id": "tom",
"name": "Tom",
"role": "Software Engineer",
"category": "engineering",
"avatar": "https://avatars.do/tom.png",
"status": "available",
"capabilities": ["full-stack-development", "api-design", "testing", "code-review", "debugging"],
"specialties": ["TypeScript", "React", "Node.js", "PostgreSQL"],
"experience": "Senior",
"availability": {
"nextAvailable": "2024-10-27T18:00:00Z",
"currentLoad": 0.3
}
},
{
"id": "cody",
"name": "Cody",
"role": "Technical Architect",
"category": "engineering",
"avatar": "https://avatars.do/cody.png",
"status": "available",
"capabilities": ["system-design", "architecture-review", "technology-selection", "scalability-planning", "technical-strategy"],
"specialties": ["Microservices", "Cloud Architecture", "Distributed Systems", "API Design"],
"experience": "Principal",
"availability": {
"nextAvailable": "2024-10-27T18:30:00Z",
"currentLoad": 0.5
}
}
],
"total": 102,
"limit": 50,
"offset": 0
},
"metadata": {
"requestId": "req_abc123",
"timestamp": "2024-10-27T18:00:00Z"
}
}Get Agent Details
Get detailed information about a specific named agent.
GET /agents/named/:idPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Agent identifier (e.g., "amy", "tom", "cody") |
Example Request
curl -X GET "https://api.do/agents/named/amy" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"id": "amy",
"name": "Amy",
"role": "Business Analyst",
"category": "operations",
"avatar": "https://avatars.do/amy.png",
"bio": "Amy specializes in market research, data analysis, and business intelligence. She excels at turning complex data into actionable insights.",
"status": "available",
"capabilities": ["market-research", "data-analysis", "competitive-intelligence", "business-reporting", "trend-forecasting"],
"specialties": ["Market Analysis", "Financial Modeling", "Excel", "SQL", "Tableau"],
"tools": ["excel", "sql-database", "data-visualization", "web-research", "presentation"],
"experience": "Senior",
"availability": {
"nextAvailable": "2024-10-27T18:00:00Z",
"currentLoad": 0.2,
"estimatedResponseTime": "15 minutes"
},
"metrics": {
"tasksCompleted": 1247,
"averageRating": 4.8,
"averageCompletionTime": "2.3 hours",
"successRate": 0.96
},
"pricing": {
"hourlyRate": 150,
"currency": "USD",
"minimumEngagement": "1 hour"
}
},
"metadata": {
"requestId": "req_abc124",
"timestamp": "2024-10-27T18:00:00Z"
}
}Invoke Agent
Invoke a named agent to perform a task.
POST /agents/named/:id/invokePath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Agent identifier |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
task | string | Yes | Task description |
context | object | No | Additional context and data |
priority | string | No | Priority level (low, medium, high, urgent) |
deadline | string | No | ISO 8601 deadline |
deliverables | string[] | No | Expected deliverable types |
budget | object | No | Budget constraints |
Example Request
curl -X POST "https://api.do/agents/named/amy/invoke" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": "Analyze Q4 2024 revenue trends and identify growth opportunities",
"context": {
"dataSource": "https://storage.do/data/revenue_q4_2024.csv",
"focusAreas": ["growth", "churn", "expansion revenue"],
"comparisonPeriod": "Q4 2023"
},
"priority": "high",
"deadline": "2024-10-28T17:00:00Z",
"deliverables": ["report", "presentation", "data-analysis"]
}'Example Response
{
"success": true,
"data": {
"taskId": "task_abc123",
"agentId": "amy",
"agentName": "Amy",
"status": "in_progress",
"task": "Analyze Q4 2024 revenue trends and identify growth opportunities",
"priority": "high",
"estimatedCompletion": "2024-10-27T20:30:00Z",
"estimatedDuration": "2.5 hours",
"cost": {
"estimated": 375,
"currency": "USD"
},
"trackingUrl": "https://api.do/agents/tasks/task_abc123",
"createdAt": "2024-10-27T18:00:00Z"
},
"metadata": {
"requestId": "req_abc125",
"timestamp": "2024-10-27T18:00:00Z"
}
}Get Agent Availability
Check when an agent will be available.
GET /agents/named/:id/availabilityQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
duration | number | No | Required duration in minutes |
start | string | No | Earliest start time (ISO 8601) |
end | string | No | Latest end time (ISO 8601) |
Example Request
curl -X GET "https://api.do/agents/named/tom/availability?duration=120" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"agentId": "tom",
"available": true,
"nextSlots": [
{
"start": "2024-10-27T18:00:00Z",
"end": "2024-10-27T20:00:00Z",
"confidence": 0.95
},
{
"start": "2024-10-28T09:00:00Z",
"end": "2024-10-28T11:00:00Z",
"confidence": 1.0
}
],
"currentLoad": 0.3,
"estimatedResponseTime": "10 minutes"
},
"metadata": {
"requestId": "req_abc126",
"timestamp": "2024-10-27T18:00:00Z"
}
}Get Agent Metrics
Get performance metrics for a named agent.
GET /agents/named/:id/metricsQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | No | Time period (day, week, month, year, all) |
startDate | string | No | Start date (ISO 8601) |
endDate | string | No | End date (ISO 8601) |
Example Request
curl -X GET "https://api.do/agents/named/amy/metrics?period=month" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"agentId": "amy",
"period": {
"start": "2024-09-27T00:00:00Z",
"end": "2024-10-27T00:00:00Z"
},
"metrics": {
"tasksCompleted": 87,
"tasksInProgress": 3,
"tasksFailed": 2,
"successRate": 0.978,
"averageRating": 4.8,
"averageCompletionTime": "2.3 hours",
"totalHours": 185.5,
"revenue": 27825,
"customerSatisfaction": 4.7,
"repeatCustomers": 0.68
},
"categoryBreakdown": {
"market-research": 42,
"data-analysis": 28,
"business-reporting": 17
},
"topSkills": [
{ "skill": "market-research", "uses": 42, "rating": 4.9 },
{ "skill": "data-analysis", "uses": 28, "rating": 4.8 },
{ "skill": "business-reporting", "uses": 17, "rating": 4.7 }
]
},
"metadata": {
"requestId": "req_abc127",
"timestamp": "2024-10-27T18:00:00Z"
}
}Popular Named Agents
Engineering
- Tom - Software Engineer (full-stack development, testing)
- Cody - Technical Architect (system design, architecture)
- Quinn - QA Engineer (testing, quality assurance)
- Sam - Security Engineer (security audits, penetration testing)
- Rae - Frontend Developer (UI/UX, React, Vue)
- Dev - Backend Developer (APIs, databases, services)
Product & Design
- Priya - Product Manager (product strategy, roadmaps)
- Luna - UX Designer (user research, wireframes)
- Max - Graphic Designer (branding, visual design)
- Eli - Content Designer (copy, microcopy)
Marketing & Sales
- Mira - Marketing Analyst (campaigns, analytics)
- Clara - Content Writer (blogs, documentation)
- Alex - SDR (lead generation, outreach)
- Jordan - Account Executive (sales, demos)
Operations & Finance
- Amy - Business Analyst (research, analysis)
- Finn - Financial Analyst (modeling, forecasting)
- Taylor - Operations Manager (process optimization)
- Morgan - Data Scientist (ML, analytics)
TypeScript SDK Example
import { $ } from 'sdk.do'
// List agents in a category
const engineers = await $.Agent.list({
type: 'named',
category: 'engineering',
status: 'available',
})
// Get agent details
const amy = await $.Agent.get('amy')
// Invoke agent
const task = await $.Agent.invoke({
agentId: 'amy',
task: 'Analyze Q4 revenue trends',
context: {
dataSource: 'revenue_q4_2024.csv',
focusAreas: ['growth', 'churn'],
},
priority: 'high',
deliverables: ['report', 'presentation'],
})
// Check availability
const availability = await $.Agent.availability('tom', {
duration: 120, // minutes
})
// Get metrics
const metrics = await $.Agent.metrics('amy', {
period: 'month',
})Python SDK Example
from do_sdk import Agent
# List agents in a category
engineers = Agent.list(
type='named',
category='engineering',
status='available'
)
# Get agent details
amy = Agent.get('amy')
# Invoke agent
task = Agent.invoke(
agent_id='amy',
task='Analyze Q4 revenue trends',
context={
'dataSource': 'revenue_q4_2024.csv',
'focusAreas': ['growth', 'churn']
},
priority='high',
deliverables=['report', 'presentation']
)
# Check availability
availability = Agent.availability('tom', duration=120)
# Get metrics
metrics = Agent.metrics('amy', period='month')CLI Example
# List named agents
do agent list --type named --category engineering
# Get agent details
do agent get amy
# Invoke agent
do agent invoke amy "Analyze Q4 revenue trends" \
--data revenue_q4_2024.csv \
--priority high \
--deliverables report,presentation
# Check availability
do agent availability tom --duration 120
# Get metrics
do agent metrics amy --period monthError Responses
Agent Not Found
{
"success": false,
"error": {
"code": "AGENT_NOT_FOUND",
"message": "Agent with ID 'xyz' not found",
"details": {
"agentId": "xyz",
"suggestion": "Use GET /agents/named to list available agents"
}
},
"metadata": {
"requestId": "req_abc128",
"timestamp": "2024-10-27T18:00:00Z"
}
}Agent Unavailable
{
"success": false,
"error": {
"code": "AGENT_UNAVAILABLE",
"message": "Agent 'tom' is currently at capacity",
"details": {
"agentId": "tom",
"status": "busy",
"nextAvailable": "2024-10-28T09:00:00Z",
"currentLoad": 0.95
}
},
"metadata": {
"requestId": "req_abc129",
"timestamp": "2024-10-27T18:00:00Z"
}
}Invalid Task
{
"success": false,
"error": {
"code": "INVALID_TASK",
"message": "Task description is required",
"details": {
"field": "task",
"provided": null,
"expected": "string"
}
},
"metadata": {
"requestId": "req_abc130",
"timestamp": "2024-10-27T18:00:00Z"
}
}Best Practices
1. Check Availability First
Before invoking an agent, check their availability to ensure timely completion:
const availability = await $.Agent.availability('amy', { duration: 120 })
if (availability.available) {
const task = await $.Agent.invoke({ agentId: 'amy', task: '...' })
}2. Provide Clear Context
Include relevant data and context for better results:
const task = await $.Agent.invoke({
agentId: 'amy',
task: 'Analyze Q4 revenue trends',
context: {
dataSource: 'revenue_q4_2024.csv',
focusAreas: ['growth', 'churn', 'expansion'],
comparisonPeriod: 'Q4 2023',
targetAudience: 'executive team',
},
})3. Set Realistic Deadlines
Allow sufficient time for quality work:
// Good: 2-day deadline for comprehensive analysis
const task = await $.Agent.invoke({
agentId: 'amy',
task: 'Market research report',
deadline: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString(),
})
// Bad: 1-hour deadline for complex work
// This may result in rushed or incomplete deliverables4. Match Agent to Task
Choose agents based on their specialties:
// Good: Amy for data analysis
await $.Agent.invoke({ agentId: 'amy', task: 'Analyze sales data' })
// Good: Tom for development
await $.Agent.invoke({ agentId: 'tom', task: 'Build REST API' })
// Bad: Tom for market research (not his specialty)Related Documentation
- Agents API Overview - Complete API overview
- Role-Based Agents - O*NET occupation-based agents
- Teams API - Multi-agent teams
- Tasks API - Task management
- Services API - Services-as-Software
Support
- Documentation - docs.do
- API Status - status.do
- Community - Discord
- Support - support@do