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

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

Task Specification (agentTaskString): Describes what you want the agent to do right now

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:

Dynamic Workflow Generation

Each task generates a custom Directed Acyclic Graph (DAG) execution plan:

  1. Agent analyzes the specific task requirements
  2. Selects appropriate sub-task components and tools
  3. Builds optimized execution sequence
  4. 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:

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:

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

  1. Task Input: Natural language task description
  2. Context Analysis: Agent definition and restrictions inform approach
  3. Workflow Planning: Generate specialized DAG for this specific task
  4. Model Selection: Choose appropriate reasoning components
  5. Execution: Run workflow with real-time monitoring
  6. Recovery: Automatic error handling and alternative approaches
  7. Feedback: Results improve future model performance

Execution Monitoring

Skymel continuously monitors:

This monitoring data automatically retrains the specialized models for better future performance.

Best Practices

Agent Definition Tips

Good agent definitions are:

// Good
"Process customer orders, validate payment information, and send confirmation emails"

// Too vague
"Help with business tasks"

Task Specification Guidelines

Effective task descriptions:

// 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

Performance Optimization

Support