Skymel Agent Development Kit (ADK)
Build hands-off agents with multi-model reasoning
Skymel ADK is a complete agent development platform that replaces traditional LLM-only reasoning with a sophisticated multi-model brain. Unlike other frameworks that require complex workflow coding, Skymel agents are created from natural language descriptions and automatically generate specialized workflows for each task.
Key Features
- Multi-Model Reasoning Engine: Combines LLMs, traditional ML models, causal optimization, and external memory for reliable decision-making
- Dynamic Workflow Generation: Creates specialized execution plans for each unique task
- Automatic Error Recovery: Self-healing execution with intelligent failure handling
- Continuous Learning: Execution feedback automatically improves model performance
- Natural Language Interface: Deploy agents using simple descriptions, no complex coding required
Installation
Install via npm:
npm install skymel-adk-js-beta
Or import directly via CDN:
import {SkymelAgent} from "https://cdn.jsdelivr.net/npm/skymel-adk-js-beta@latest/dist/skymel-adk.esm.js";
Quick Start
Basic Usage
import {SkymelAgent} from "skymel-adk-js-beta";
const apiKey = "YOUR_API_KEY";
const agentCreationEndpointUrl = "https://skymel.com/websocket-dynamic-agent-generation-infer";
const agentCreationEndpointUrlIsWebSocketUrl = true;
// Create agent instance
const skymelAgent = new SkymelAgent(
apiKey,
agentCreationEndpointUrl,
agentCreationEndpointUrlIsWebSocketUrl,
"Binary Botwell", // Agent name
"Process invoices, refunds, and update CRM with transaction status and amounts.", // Agent definition
"Must confirm amounts greater than 10,000 dollars with a human admin.", // Restrictions
"", // Extra developer configuration string (optional)
false // Is MCP enabled?
);
// Generate specialized workflow for specific task
const taskDescription = "Process invoice INV-001 for Acme Corp from the attached file";
const invoiceFiles = await skymelAgent.getFileDataAndDetailsDictFromHtmlInputsForAgentGraphAttachment([htmlInputWithPdf]);
const workflowConfig = await skymelAgent.getAgenticWorkflowGraphJsonConfig(taskDescription, invoiceFiles);
// Execute the workflow
const result = await skymelAgent.runAgenticWorkflow(workflowConfig, invoiceFiles);
console.log("Task completed:", result);
Core Concepts
Agent Definition vs Task Specification
Agent Definition (agentDefinitionString): Describes what the agent is and its general capabilities
- Example: "Email marketing agent that creates and executes campaigns"
Task Specification (agentTaskString): Describes what you want the agent to do right now
- Example: "Create welcome email sequence for new SaaS trial users"
The agent uses its definition to understand its role, then generates a specialized workflow for the specific task.
Multi-Model Reasoning Engine
Unlike single-LLM agents, Skymel uses specialized components:
- Language Models (LLMs): Handle natural language understanding and workflow parameter generation
- Traditional ML Models: Identify domain-specific data and make specialized tool-use decisions
- Causal Models: Prevent goal drift, and implement agent restrictions compliance
- External Memory: Maintain context across different workflow steps and memorize outcome patterns across workflow sessions
Dynamic Workflow Generation
Each task generates a custom Directed Acyclic Graph (DAG) execution plan:
- Agent analyzes the specific task requirements
- Selects appropriate sub-task components and tools
- Builds optimized execution sequence
- Monitors execution and adapts to real-time outcomes as needed
API Reference
SkymelAgent Constructor
Creates a new Skymel Agent instance.
new SkymelAgent(
apiKey,
agentCreationEndpointUrl,
agentCreationEndpointUrlIsWebSocketUrl,
agentNameString,
agentDefinitionString,
agentRestrictionsString,
developerConfigurationString,
isMcpEnabled
)
Parameters
Parameter | Type | Description |
---|---|---|
apiKey | string | Public API key for Skymel backend access |
agentCreationEndpointUrl | string | Endpoint URL for workflow generation |
agentCreationEndpointUrlIsWebSocketUrl | boolean | Whether the endpoint is a WebSocket URL |
agentNameString | string | Name of the agent (optional if specified in developerConfigurationString) |
agentDefinitionString | string | Agent's purpose in natural language (optional if in developerConfigurationString) |
agentRestrictionsString | string | Restrictions the agent must follow (optional if in developerConfigurationString) |
developerConfigurationString | string | Complete agent configuration including name, purpose, and restrictions |
isMcpEnabled | boolean | Does generated Workflow allow Model Context Protocol endpoints |
Methods
getAgenticWorkflowGraphJsonConfig()
Generates a specialized workflow configuration for the given task.
const workflowConfig = await skymelAgent.getAgenticWorkflowGraphJsonConfig(
taskDescriptionString,
processedTaskFileAttachments
);
Parameters:
taskDescriptionString
(string): Natural language description of the task to performprocessedTaskFileAttachments
([object]): A list of processed input files that can be obtained by passing a list of HTML input elements to the getAgenticWorkflowGraphJsonConfig() method
Returns: Promise resolving to workflow configuration JSON object
runAgenticWorkflow()
Executes the generated workflow with monitoring and error recovery.
const result = await skymelAgent.runAgenticWorkflow(
dynamicWorkflowGraphJsonConfig,
workflowInputsDict
);
Parameters:
dynamicWorkflowGraphJsonConfig
(object): Workflow configuration from getAgenticWorkflowGraphJsonConfig()workflowInputsDict
(object): A dictionary containing key and values where keys are the input names for the workflow config
Returns: Promise resolving to execution results
Examples
Customer Support Agent
const supportAgent = new SkymelAgent(
process.env.SKYMEL_API_KEY,
"https://skymel.com/websocket-dynamic-agent-generation-infer",
true,
"Customer Support Agent",
"Handle customer inquiries, resolve issues, and escalate complex problems to human agents",
"Always be polite and helpful. Escalate billing issues over $500 to human agents",
"",
true
);
// Handle specific customer inquiry
const inquiry = "Customer asking about refund for order #12345 worth $250";
const workflow = await supportAgent.getAgenticWorkflowGraphJsonConfig(inquiry);
const response = await supportAgent.runAgenticWorkflow(workflow);
Data Analysis Agent
const analystAgent = new SkymelAgent(
process.env.SKYMEL_API_KEY,
"https://skymel.com/websocket-dynamic-agent-generation-infer",
true,
"Sales Data Analyst",
"Analyze sales data, generate reports, and provide business insights",
"Only access sales database. Always include data sources in reports",
"",
false
);
// Generate monthly sales report
const task = "Create Q4 2024 sales summary with top performing products and regional breakdown";
const workflow = await analystAgent.getAgenticWorkflowGraphJsonConfig(task);
const report = await analystAgent.runAgenticWorkflow(workflow);
Content Marketing Agent
const contentAgent = new SkymelAgent(
process.env.SKYMEL_API_KEY,
"https://skymel.com/websocket-dynamic-agent-generation-infer",
true,
"", // Name in developerConfigurationString
"", // Definition in developerConfigurationString
"", // Restrictions in developerConfigurationString
`
Agent Name: Content Marketing Specialist
Purpose: Create blog posts, social media content, and email campaigns that align with brand voice
Restrictions: All content must be reviewed before publishing. Follow brand guidelines strictly.
Brand Voice: Professional but approachable, focus on practical solutions
`,
true
);
// Create specific content piece
const contentTask = "Write LinkedIn post about AI automation trends for small businesses, include call-to-action for our webinar";
const workflow = await contentAgent.getAgenticWorkflowGraphJsonConfig(contentTask);
const content = await contentAgent.runAgenticWorkflow(workflow);
Architecture
Multi-Model Reasoning Flow
- Task Input: Natural language task description
- Context Analysis: Agent definition and restrictions inform approach
- Workflow Planning: Generate specialized DAG for this specific task
- Model Selection: Choose appropriate reasoning components
- Execution: Run workflow with real-time monitoring
- Recovery: Automatic error handling and alternative approaches
- Feedback: Results improve future model performance
Execution Monitoring
Skymel continuously monitors:
- Decision Quality: Whether reasoning choices were effective
- Cost Efficiency: Token usage and API call optimization
- Success Rates: Task completion and error patterns
- Performance Trends: Speed and accuracy over time
This monitoring data automatically retrains the specialized models for better future performance.
Best Practices
Agent Definition Tips
Good agent definitions are:
- Specific about capabilities and scope
- Clear about expected inputs and outputs
- Explicit about limitations and boundaries
// Good
"Process customer orders, validate payment information, and send confirmation emails"
// Too vague
"Help with business tasks"
Task Specification Guidelines
Effective task descriptions:
- Include relevant context and data
- Specify desired output format
- Mention any constraints or requirements
// Good
"Analyze sales data from Q4 2024 CSV file, identify top 3 performing products, create executive summary"
// Too general
"Look at sales data"
Error Handling
Skymel agents automatically handle most errors, but you can add additional handling:
try {
const result = await skymelAgent.runAgenticWorkflow(workflowConfig);
console.log("Success:", result);
} catch (error) {
console.error("Workflow failed after all recovery attempts:", error);
}
Troubleshooting
Common Issues
- Agent not responding: Check API key and endpoint URL validity
- Workflow generation fails: Ensure task description is clear and within agent's defined scope
- High costs: Review agent restrictions and add cost limits
- Poor results: Refine agent definition and provide more specific task descriptions
Performance Optimization
- Use specific agent definitions to improve workflow generation
- Include relevant context in task descriptions
- Set appropriate restrictions to prevent scope creep
- Monitor execution results to identify improvement opportunities
Support
- Documentation: docs.skymel.com
- API Reference: api.skymel.com
- Community: github.com/skymel/community
- Support: support@skymel.com