Agents
How autonomous agents use all ontologies together to understand context, reason, and act
Agents
Agents are autonomous software entities that use all ontologies together to understand business context, reason about work, and execute actions. This page shows how every ontology rolls up into the agent system.
What are Agents?
Agents are autonomous systems that:
- Understand: Use ontologies to comprehend business context
- Reason: Apply knowledge from all vocabularies to make decisions
- Plan: Create action sequences to achieve goals
- Execute: Perform actions using tools and services
- Learn: Improve through feedback and outcomes
interface Agent extends Thing {
'@type': 'Agent'
digital: true // Always digital
capabilities?: string[]
tools?: Tool[]
model?: string
provider?: Organization
context?: AgentContext
}
interface AgentContext {
ontologies: string[] // Which vocabularies the agent understands
knowledge: string[] // Domain expertise
constraints?: object // Operating boundaries
objectives?: string[] // Goals
}How Agents Use All Ontologies
Schema Foundation
Schema.org.ai provides the base types agents reason about:
const agent = await $.Agent.create({
name: 'Business Intelligence Agent',
context: {
ontologies: ['schema.org.ai'],
types: [
'Person', 'Organization', 'Place', 'Event',
'Product', 'Service', 'CreativeWork'
]
}
})
// Agent understands:
// - What things are (nouns from Schema)
// - How they relate (verbs from Schema)
// - Digital vs physical (digital property)Nouns - What Things Are
Nouns give agents the vocabulary of entities:
agent.context.nouns = [
// People & Roles
'Person', 'Employee', 'Customer', 'User', 'Team',
// Organizations
'Organization', 'Department', 'Project',
// Work
'Task', 'Job', 'Assignment', 'Workflow', 'Process',
// Capabilities
'Skill', 'Competency', 'Knowledge', 'Certification',
// Resources
'Tool', 'Technology', 'Asset', 'Product', 'Service'
]
// Agent can now reason about:
await agent.invoke('findResources', {
query: 'Who (Person) has what Skills to perform which Tasks using what Tools?'
})Verbs - How Things Relate
Verbs give agents the vocabulary of actions and relationships:
agent.context.verbs = {
actions: ['create', 'update', 'delete', 'send', 'assign'],
searches: ['find', 'get', 'search', 'filter', 'list'],
events: ['created', 'updated', 'completed', 'failed'],
relationships: ['worksFor', 'requires', 'uses', 'produces']
}
// Agent can now execute:
await agent.invoke('executeWorkflow', {
steps: [
{ verb: 'create', noun: 'Task' },
{ verb: 'assign', subject: 'Task', object: 'Person' },
{ verb: 'notify', subject: 'Person', method: 'email' }
]
})Occupations - Who Does Work
Occupations help agents match roles to work:
agent.context.occupations = [
'SoftwareEngineer', 'DataScientist', 'ProductManager',
'Designer', 'DevOpsEngineer', 'QAEngineer'
]
// Agent matches people to work:
const assignment = await agent.invoke('assignWork', {
task: 'Build ML Pipeline',
requiredOccupation: 'DataScientist',
requiredSkills: ['MachineLearning', 'Python', 'DataEngineering']
})
// Agent reasons:
// 1. Task requires DataScientist occupation
// 2. DataScientist requires ML, Python, Data Engineering skills
// 3. Find Person with DataScientist occupation AND those skills
// 4. Assign Task to best matchTasks - What Work Gets Done
Tasks help agents decompose and execute work:
agent.context.tasks = true // Enable task ontology
// Agent decomposes work:
const plan = await agent.invoke('planProject', {
goal: 'Launch mobile app',
deadline: '3 months'
})
// Agent's plan (task breakdown):
// {
// tasks: [
// { name: 'DesignUserInterface', occupation: 'Designer', duration: '2 weeks' },
// { name: 'BuildBackendAPI', occupation: 'BackendEngineer', duration: '4 weeks' },
// { name: 'DevelopMobileApp', occupation: 'MobileDeveloper', duration: '6 weeks' },
// { name: 'TestApplication', occupation: 'QAEngineer', duration: '2 weeks' },
// { name: 'DeployToStores', occupation: 'DevOpsEngineer', duration: '1 week' }
// ]
// }Skills - What Capabilities Are Needed
Skills help agents match capabilities to requirements:
agent.context.skills = true
// Agent finds qualified people:
const qualified = await agent.invoke('findQualifiedWorkers', {
task: 'BuildRESTAPI',
requiredSkills: [
{ skill: 'Programming', proficiency: 8 },
{ skill: 'APIDesign', proficiency: 7 },
{ skill: 'DatabaseDesign', proficiency: 6 }
]
})
// Agent reasons:
// 1. Get all People in organization
// 2. Filter by required Skills
// 3. Check proficiency levels meet requirements
// 4. Rank by total skill match
// 5. Return top candidatesTools - What Technologies Enable Work
Tools help agents provision resources:
agent.context.tools = true
// Agent provisions tech stack:
const stack = await agent.invoke('provisionStack', {
project: 'SaaS Application',
requirements: ['scalable', 'cost-effective', 'modern']
})
// Agent's provisioning plan:
// {
// frontend: { tool: 'React + Next.js', reason: 'Modern, scalable, SEO' },
// backend: { tool: 'Node.js + FastAPI', reason: 'Matches team skills' },
// database: { tool: 'PostgreSQL', reason: 'Reliable, feature-rich' },
// hosting: { tool: 'Vercel', reason: 'Easy deploy, auto-scaling' },
// monitoring: { tool: 'Datadog', reason: 'Full observability' }
// }Industries - What Economic Context
Industries help agents understand business domains:
agent.context.industries = true
// Agent analyzes market:
const analysis = await agent.invoke('analyzeMarket', {
industry: 'SoftwarePublishing',
metrics: ['growth', 'employment', 'competition']
})
// Agent understands:
// - Which Industries employ which Occupations
// - Which Products/Services Industries produce
// - Which Processes Industries typically use
// - Market trends and opportunitiesProcesses - How Work Flows
Processes help agents orchestrate workflows:
agent.context.processes = true
// Agent executes business process:
const result = await agent.invoke('executeProcess', {
process: 'CustomerOnboarding',
customer: 'new-customer-123'
})
// Agent's execution:
// 1. Initiate 'CustomerOnboarding' Process
// 2. Execute each Task in sequence:
// - CollectInformation
// - VerifyIdentity
// - SetupAccount
// - ProvisionServices
// - SendWelcomeEmail
// 3. Monitor progress and handle errors
// 4. Complete Process when all Tasks doneProducts & Services - What Gets Delivered
Products/Services help agents understand outputs:
agent.context.products = true
agent.context.services = true
// Agent recommends offering:
const recommendation = await agent.invoke('recommendOffering', {
customerNeeds: ['cloud-infrastructure', '24/7-support', 'managed-updates'],
budget: 50000
})
// Agent's recommendation:
// {
// offering: {
// product: 'Cloud Platform',
// service: 'Managed Hosting',
// features: ['auto-scaling', 'monitoring', 'backups'],
// support: '24/7 phone + email',
// price: 45000
// },
// reasoning: {
// matches: ['Meets infrastructure needs', 'Within budget', 'Includes required support'],
// alternatives: [...]
// }
// }Actions - What Operations to Execute
Actions give agents executable operations:
agent.capabilities = [
'create', 'update', 'delete',
'send', 'receive',
'assign', 'unassign',
'approve', 'reject',
'notify', 'alert'
]
// Agent executes action sequence:
await agent.invoke('handleRequest', {
request: 'Customer wants to upgrade plan'
})
// Agent's actions:
// 1. find Customer by ID
// 2. get current Plan details
// 3. list available Plans (upgrades)
// 4. create Proposal for Customer
// 5. send Email with upgrade options
// 6. notify Sales teamActivities - Monitoring Work in Progress
Activities help agents track ongoing work:
agent.monitors = ['activities']
// Agent observes team activity:
const insights = await agent.invoke('analyzeTeamActivity', {
team: 'engineering',
period: 'today'
})
// Agent tracks:
// {
// activities: [
// { person: 'dev-1', activity: 'coding', task: 'feature-auth', duration: '3h' },
// { person: 'dev-2', activity: 'reviewing', task: 'pr-123', duration: '1h' },
// { person: 'qa-1', activity: 'testing', task: 'integration-tests', duration: '2h' }
// ],
// insights: {
// productive Time: '85%',
// blockers: ['pr-123 waiting for approval'],
// suggestions: ['Assign reviewer to pr-123']
// }
// }Events - Reacting to State Changes
Events enable agents to react autonomously:
import { on } from 'sdk.do'
// Agent listens for events:
on('error.occurred', async (error) => {
await agent.invoke('handleError', { error })
})
on('threshold.exceeded', async (event) => {
await agent.invoke('scaleResources', { metric: event.metric })
})
on('deployment.failed', async (deployment) => {
await agent.invoke('rollback', { deployment })
})
// Agent reacts autonomously:
// - No human intervention needed
// - Uses all ontologies to understand context
// - Executes appropriate actions
// - Learns from outcomesTech - Understanding Technology Stack
Tech helps agents work with modern platforms:
agent.context.tech = true
// Agent debugs infrastructure issue:
const diagnosis = await agent.invoke('diagnoseInfrastructure', {
issue: 'High latency on API',
stack: ['Next.js', 'Vercel', 'PostgreSQL', 'Redis']
})
// Agent's diagnosis:
// 1. Check Vercel logs - no issues
// 2. Check PostgreSQL - slow queries detected
// 3. Check Redis - cache misses high
// 4. Root cause: Missing database indexes
// 5. Recommendation: Add indexes, increase Redis cache TTLComplete Agent Integration Example
Here's how an agent uses ALL ontologies together:
const agent = await $.Agent.create({
name: 'Project Staffing Agent',
context: {
ontologies: [
'schema', // Base types and digital property
'nouns', // All entity types
'verbs', // All predicates
'occupations', // Role definitions
'tasks', // Work activities
'skills', // Competencies
'tools', // Technologies
'tech', // Platforms
'industries', // Business context
'processes', // Workflows
'products', // Deliverables
'services', // Offerings
'actions', // Operations
'activities', // In-progress work
'events' // State changes
]
}
})
// User asks agent to staff a project:
const plan = await agent.invoke('staffProject', {
project: {
name: 'Build AI-powered CRM',
duration: '6 months',
budget: 500000
}
})
// Agent's reasoning (using ALL ontologies):
// 1. PROCESSES: Decompose into business processes
// - SoftwareDevelopment Process
// - ProjectManagement Process
// - QualityAssurance Process
// 2. TASKS: Break processes into tasks
// - DesignArchitecture, BuildBackend, BuildFrontend,
// - BuildAIModels, TestApplication, DeploySystem
// 3. OCCUPATIONS: Identify roles needed
// - SoftwareEngineer, DataScientist, ProductManager,
// - Designer, QAEngineer, DevOpsEngineer
// 4. SKILLS: Determine skill requirements
// - Programming, MachineLearning, APIDesign,
// - UX Design, Testing, CloudInfrastructure
// 5. TOOLS & TECH: Define technology stack
// - React, Next.js, FastAPI, PostgreSQL,
// - TensorFlow, OpenAI, Vercel, AWS
// 6. NOUNS: Identify all entities needed
// - Team (Organization), Tasks (Intangible),
// - Product (SoftwareApplication), Deliverables
// 7. VERBS: Plan action sequence
// - create Team, assign Occupations, allocate Budget,
// - provision Tools, schedule Tasks, monitor Progress
// 8. INDUSTRIES: Understand business context
// - SoftwarePublishing Industry
// - CRM product category
// - Competitive landscape
// 9. PRODUCTS/SERVICES: Define deliverables
// - Product: AI-powered CRM application
// - Services: Training, Support, Customization
// 10. ACTIONS: Generate execution plan
// - create Project, create Team, assign Roles,
// - provision Infrastructure, start Development
// 11. ACTIVITIES: Set up monitoring
// - Track: coding, testing, reviewing, deploying
// - Monitor: progress, blockers, velocity
// 12. EVENTS: Configure reactions
// - On task.completed: Update progress, notify team
// - On blocker.detected: Escalate, reallocate resources
// - On milestone.reached: Generate report, celebrate
// Agent's final staffing plan:
return {
team: {
roles: [
{ occupation: 'ProductManager', count: 1, skills: ['ProductStrategy', 'Agile'] },
{ occupation: 'SoftwareEngineer', count: 3, skills: ['React', 'Node.js', 'APIs'] },
{ occupation: 'DataScientist', count: 2, skills: ['MachineLearning', 'Python', 'NLP'] },
{ occupation: 'Designer', count: 1, skills: ['UX', 'UI', 'Prototyping'] },
{ occupation: 'QAEngineer', count: 1, skills: ['Testing', 'Automation'] },
{ occupation: 'DevOpsEngineer', count: 1, skills: ['AWS', 'Kubernetes', 'CI/CD'] }
],
totalCost: 480000
},
techStack: {
frontend: ['React', 'Next.js', 'Tailwind'],
backend: ['FastAPI', 'PostgreSQL'],
ai: ['OpenAI', 'TensorFlow', 'Pinecone'],
infrastructure: ['Vercel', 'AWS', 'Cloudflare']
},
timeline: {
phases: [
{ name: 'Planning', duration: '2 weeks', tasks: ['ArchitectureDesign', 'TechStackDecisions'] },
{ name: 'Development', duration: '20 weeks', tasks: ['BuildBackend', 'BuildFrontend', 'BuildAI'] },
{ name: 'Testing', duration: '4 weeks', tasks: ['UnitTests', 'IntegrationTests', 'UAT'] },
{ name: 'Launch', duration: '2 weeks', tasks: ['Deploy', 'Training', 'Support'] }
]
},
monitoring: {
activities: ['Track daily progress', 'Identify blockers', 'Optimize velocity'],
events: ['Sprint completed', 'Milestone reached', 'Issue detected'],
kpis: ['Velocity', 'Quality', 'Budget adherence']
}
}Agent Capabilities by Ontology Integration
| Ontology | Agent Capability | Example |
|---|---|---|
| Schema | Understand base types and digital nature | Recognize Person vs Organization, digital vs physical |
| Nouns | Know all entity types | Identify Subject and Object in triples |
| Verbs | Execute and reason about actions | Plan action sequences, understand relationships |
| Occupations | Match roles to work | Find right people for tasks |
| Tasks | Decompose and execute work | Break projects into actionable tasks |
| Skills | Assess capabilities | Match skills to requirements |
| Tools | Provision resources | Select and configure technologies |
| Tech | Understand platforms | Work with modern tech stacks |
| Industries | Grasp business context | Understand market dynamics |
| Processes | Orchestrate workflows | Execute business processes end-to-end |
| Products | Define deliverables | Know what to build |
| Services | Structure offerings | Package solutions |
| Actions | Execute operations | Perform CRUD, send, assign, etc. |
| Activities | Monitor work | Track what's happening now |
| Events | React autonomously | Respond to state changes |
Building Intelligent Agents
Create agents that use all ontologies:
import { $ } from 'sdk.do'
// Full-stack autonomous agent
const agent = await $.Agent.create({
name: 'Autonomous Business Agent',
digital: true,
model: 'claude-sonnet-4.5',
context: {
// Include ALL ontologies
ontologies: [
'schema', 'nouns', 'verbs',
'occupations', 'tasks', 'skills',
'tools', 'tech', 'industries',
'processes', 'products', 'services',
'actions', 'activities', 'events'
],
// Business domain knowledge
knowledge: [
'software-development',
'project-management',
'business-operations'
],
// Operating constraints
constraints: {
budget: 1000000,
timeline: '12-months',
team Size: 50
}
},
// What the agent can do
capabilities: [
'plan-projects',
'staff-teams',
'allocate-resources',
'execute-workflows',
'monitor-progress',
'optimize-operations',
'respond-to-events'
]
})
// Agent is now fully autonomous with complete business understandingLearn More
- Schema - Foundation types
- Nouns - All entity types
- Verbs - All predicates
- SDK Documentation - Building with agents
- Business-as-Code - Platform fundamentals