Tool Details: agent_from_skills

Basic Information

Tool Name:agent_from_skills
Asset Name:Create Agent from Skills
Description:Creates a native agent from an existing agent's know-how in one call: imports each SKILL.md (Anthropic Agent Skills format) into the caller's skillset, then creates the agent with that skillset declared and the given system prompt. The migration wedge for bringing an agent onto Covia (skills:import + agent:create composed), so the ported agent runs on Covia's own loop and inherits the grid. Each skills entry is either a source reference (a string: 'file://<root>/<dir>/SKILL.md', 'dlfs/<drive>/<path>' or 'a/<hash>') or a map forwarded to skills:import (carrying 'source' or 'text', and optionally 'content' and 'skillset'). Sub-operations enforce their own capabilities: importing requires write to the skillset, and creating requires agent-create authority. The agentId must be unused, exactly as agent:create requires. Tools and memory are not migrated here.
Adapter:agent
Asset Hash:0xaba723d386fc4b7917ff6efb56a5e6708f4a0e532fda456b122838278460df68
Input
PropertyTypeDescription
modelstringOptional LLM model name override for the selected provider.
systemPromptstringThe ported agent's system prompt, defining its role and behaviour. Written to config.systemPrompt; llmOperation defaults are applied as in agent:create.
skillsetstringWritable directory the skills are imported into and that the agent declares as a skillset. Defaults to 'w/skills', the personal skills directory standard templates declare first.
agentId*stringTarget agent reference: a bare human-readable name for the caller's namespace, g/<id>, /g/<id>, or <ownerDID>/g/<id>. Must be unused.
skillsarraySKILL.md files to import, one per entry. Each entry is a source reference string ('file://<root>/<dir>/SKILL.md', 'dlfs/<drive>/<path>', 'a/<hash>') or a map forwarded to skills:import (with 'source' or 'text', and optionally 'content' and 'skillset'). Each is imported into <skillset>/<name>, and the skillset is declared under the agent's config.skillsets.
llmOperationstringLLM operation path, e.g. 'v/models/anthropic/claude-sonnet-5-5'. Defaults to the venue default; bring-your-own-model by overriding it.
configobjectOptional base agent configuration, merged under the derived fields (systemPrompt, skillsets, operation/llmOperation/model). Use it to pass any other agent:create config such as tools, caps, or accepts.
operationstringTransition operation for the agent (a resolvable lattice path, e.g. 'v/ops/llmagent/chat'). Defaults to the venue's default transition operation.
Output

Type: object

Schema: <code>{ &quot;type&quot;: &quot;object&quot;, &quot;description&quot;: &quot;{agentId, address, status, importedSkills, skillset} — the created agent (as agent:create returns it) plus the skill paths imported and the skillset they landed in. Fails, creating no agent, if any skill import fails or if the agentId is already in use.&quot; }</code>

MCP Tool Usage Examples

This tool can be called via the MCP (Model Context Protocol) endpoint. Here are examples of how to use it:

JSON-RPC Call Example:

POST to https://venue-test.covia.ai/mcp

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "agent_from_skills",
    "arguments": {
      "input": "your input here"
    }
  }
}
cURL Example:
curl -X POST https://venue-test.covia.ai/mcp \\
  -H "Content-Type: application/json" \\
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "agent_from_skills",
      "arguments": {
        "input": "your input here"
      }
    }
  }'
Python Example:
import requests
import json

url = "https://venue-test.covia.ai/mcp"
payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "agent_from_skills",
        "arguments": {
            "input": "your input here"
        }
    }
}

response = requests.post(url, json=payload)
result = response.json()
print(result)
JavaScript/Node.js Example:
const fetch = require('node-fetch');

const url = 'https://venue-test.covia.ai/mcp';
const payload = {
    jsonrpc: '2.0',
    id: 1,
    method: 'tools/call',
    params: {
        name: 'agent_from_skills',
        arguments: {
            input: 'your input here'
        }
    }
};

fetch(url, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));

Asset Metadata

{
  "name": "Create Agent from Skills",
  "description": "Creates a native agent from an existing agent's know-how in one call: imports each SKILL.md (Anthropic Agent Skills format) into the caller's skillset, then creates the agent with that skillset declared and the given system prompt. The migration wedge for bringing an agent onto Covia (skills:import + agent:create composed), so the ported agent runs on Covia's own loop and inherits the grid. Each skills entry is either a source reference (a string: 'file://<root>/<dir>/SKILL.md', 'dlfs/<drive>/<path>' or 'a/<hash>') or a map forwarded to skills:import (carrying 'source' or 'text', and optionally 'content' and 'skillset'). Sub-operations enforce their own capabilities: importing requires write to the skillset, and creating requires agent-create authority. The agentId must be unused, exactly as agent:create requires. Tools and memory are not migrated here.",
  "dateCreated": "2026-09-03T00:00:00Z",
  "operation": {
    "adapter": "agent:fromSkills",
    "readOnly": false,
    "internal": false,
    "toolName": "agent_from_skills",
    "input": {
      "type": "object",
      "properties": {
        "agentId": {
          "type": "string",
          "description": "Target agent reference: a bare human-readable name for the caller's namespace, g/<id>, /g/<id>, or <ownerDID>/g/<id>. Must be unused."
        },
        "systemPrompt": {
          "type": "string",
          "description": "The ported agent's system prompt, defining its role and behaviour. Written to config.systemPrompt; llmOperation defaults are applied as in agent:create."
        },
        "skills": {
          "type": "array",
          "description": "SKILL.md files to import, one per entry. Each entry is a source reference string ('file://<root>/<dir>/SKILL.md', 'dlfs/<drive>/<path>', 'a/<hash>') or a map forwarded to skills:import (with 'source' or 'text', and optionally 'content' and 'skillset'). Each is imported into <skillset>/<name>, and the skillset is declared under the agent's config.skillsets.",
          "items": {}
        },
        "skillset": {
          "type": "string",
          "description": "Writable directory the skills are imported into and that the agent declares as a skillset. Defaults to 'w/skills', the personal skills directory standard templates declare first."
        },
        "operation": {
          "type": "string",
          "description": "Transition operation for the agent (a resolvable lattice path, e.g. 'v/ops/llmagent/chat'). Defaults to the venue's default transition operation."
        },
        "llmOperation": {
          "type": "string",
          "description": "LLM operation path, e.g. 'v/models/anthropic/claude-sonnet-5-5'. Defaults to the venue default; bring-your-own-model by overriding it."
        },
        "model": {
          "type": "string",
          "description": "Optional LLM model name override for the selected provider."
        },
        "config": {
          "type": "object",
          "description": "Optional base agent configuration, merged under the derived fields (systemPrompt, skillsets, operation/llmOperation/model). Use it to pass any other agent:create config such as tools, caps, or accepts."
        }
      },
      "required": ["agentId"]
    },
    "output": {
      "type": "object",
      "description": "{agentId, address, status, importedSkills, skillset} — the created agent (as agent:create returns it) plus the skill paths imported and the skillset they landed in. Fails, creating no agent, if any skill import fails or if the agentId is already in use."
    }
  }
}

Navigation

Back to adapter details

Back to all adapters

Back to index