Open Source · MIT · TypeScript · v0.4.7

skelm — agentische Workflows, die du wirklich in Produktion bringen kannst

Erstelle typisierte TypeScript pipelines, die deterministischen Code, einmalige Inferenz und vollständige agent-Schleifen hinter default-deny-Berechtigungen und einem gateway unter deiner Kontrolle kombinieren. Betreibe schnelle Automatisierungen, cron jobs, webhooks, dauerhafte Freigaben und persistente Chat-workflows mit derselben Modulform.

$ npm install -g skelm
$ skelm init my-bot && cd my-bot && npm install
$ skelm run workflows/hello.workflow.mts --input '{"name":"world"}'

Ein Autorierungsmodell von Scripts bis zu dauerhaften agents.

Ein workflow ist ein typisiertes TypeScript-Modul. Nutze deterministischen Code, Modell-Inferenz und agent-Schleifen direkt, und hoste denselben workflow über das gateway, wenn er schedules, webhooks, queues oder dauerhaften Zustand braucht.

code()

Deterministische Logik

Reine TypeScript-Schritte für fetches, Transformationen, branches, loops, parallele Arbeit, waits und verschachtelte pipeline-Aufrufe. Prüfe Typen, refaktorisiere, teste und versioniere sie wie normalen Code.

infer()

Einmalige Inferenz

Ein Modellaufruf mit typisierter Eingabe und strukturiertem output. `infer()` ist für LLM-Urteilsvermögen ohne Tool-Schleife gedacht, gestützt durch provider wie OpenAI-kompatible Endpunkte, Anthropic, Pi, Vercel AI oder eigene backends.

agent()

Multi-turn agent-Schleifen

Vollständige agent-Schritte mit tools, MCP-Servern, skills, workspaces und default-deny-Berechtigungen. Backends umfassen @skelm/agent, Opencode, Pi, Codex, Vercel AI, ACP agents und eigene provider.

Gateway-eigene trust boundary

Berechtigungen sind Teil der API, kein Nachgedanke

Jede privilegierte Aktion läuft durch das gateway unter Berechtigungen, die im Code deklariert sind. Ein backend, das eine deklarierte Berechtigung nicht durchsetzen kann, scheitert beim Schrittstart, statt sie still zu umgehen.

  • Default-deny-Dimensionen decken tools, executables, MCP-Server, skills, Netzwerk-egress, Dateisystem-Wurzeln, delegation und agentmemory-Operationen ab.
  • Das gateway hostet workflows über HTTP + SSE, steuert scheduler-, queue-, file-watch-, poll-, webhook- und event-source-trigger und besitzt die Ausführungsfläche.
  • Runs können für menschliche approval pausieren, aus dauerhaftem Zustand fortsetzen und session-keyed persistente Chat-Konversationen über Neustarts hinweg bewahren.
  • Audit, secrets, workspace-Isolation, MCP-Lifecycle und agent-Supervision bleiben in derselben gateway trust boundary.

Ein echter workflow, von Anfang bis Ende

Incident response aus den aktuellen Beispielen: parallele deterministische Triage, danach ein agent-Schritt mit expliziten Berechtigungen für tools, MCP, Dateisystem und Netzwerk.

import { agent, code, parallel, pipeline } from 'skelm'
import { z } from 'zod'

export default pipeline({
  id: 'incident-response',
  input: z.object({
    incidentId: z.string(),
    service: z.string(),
    description: z.string(),
  }),
  output: z.object({
    rootCause: z.string(),
    immediateActions: z.array(z.string()),
  }),
  triggers: [{ kind: 'webhook', path: '/webhooks/incident' }],
  steps: [
    parallel({
      id: 'triage',
      steps: [
        code({ id: 'search-issues', run: () => ({ issues: [] }) }),
        code({ id: 'open-channel', run: () => ({ channel: 'inc-001' }) }),
      ],
    }),
    agent({
      id: 'root-cause',
      backend: 'opencode',
      prompt: (ctx) => `Analyze this incident:\n${ctx.input.description}`,
      permissions: {
        allowedTools: ['gh.search_issues', 'slack.post_message'],
        allowedMcpServers: ['github'],
        allowedExecutables: [],
        fsRead: [],
        fsWrite: [],
        networkEgress: { allowHosts: ['api.github.com', 'slack.com'] },
      },
      output: z.object({
        rootCause: z.string(),
        immediateActions: z.array(z.string()),
      }),
      maxTurns: 4,
    }),
  ],
})

Pakete

skelm wird als fokussierte Pakete ausgeliefert. Installiere das Meta-Paket `skelm` für runtime und CLI, und füge backend-, integration-, memory-, metrics- oder tracing-Pakete nach Bedarf hinzu.

skelm

Meta-Paket — installiere dieses. Re-exportiert @skelm/core, liefert das skelm CLI-binary und hängt von CLI, scheduler und integration SDK ab, die für lokale Ausführung nötig sind.

@skelm/core

Runtime, Typen, builders, schemas, events, Berechtigungen, registries, backend-Schnittstelle, system-prompt-Komposition und primitive pipeline-Ausführung.

@skelm/cli

Command-line interface und programmatische Primitiven. Nicht ausgenommene Befehle dispatchen an das lokale gateway; `init`, `validate` und `gateway *` funktionieren ohne laufendes gateway.

@skelm/gateway

Langlebiger Orchestrator, der config, registries, Berechtigungen, audit, agent-Lifecycle, trigger, HTTP/SSE, dashboard API und die execution trust boundary besitzt.

@skelm/scheduler

Trigger-Management für cron-, interval- und webhook-schedules mit Deduplizierung und Overlap-Policies; vom gateway für geplante Arbeit genutzt.

@skelm/integrations

Typisiertes Integrationspaket für Drittanbieter wie GitHub, Slack, Jira, Telegram, Matrix und chat UI trigger sources.

@skelm/integration-sdk

Authoring SDK für eigene skelm-Integrationen und trigger sources. Baue damit Konnektoren, die sich ins gateway einstecken.

@skelm/agent

First-party natives agent backend. Führt infer() und agent() gegen OpenAI-kompatible Chat-Endpunkte mit in-process TrustEnforcer-Berechtigungsprüfungen aus.

@skelm/agentmemory

Typisierter REST-Client und gateway-verdrahteter AgentmemoryHandle für sitzungsübergreifenden recall. Operationen sind default-deny und laufen durch gateway enforcement.

@skelm/opencode

Opencode.ai coding-agent backend mit nativer Berechtigungszuordnung, granularer Durchsetzung und gateway-supervised Lifecycle-Unterstützung.

@skelm/pi

Pi coding-agent SDK backend mit nativer tool-allowlist-Durchsetzung, infer()-Support, sandbox defaults und Queue-Steuerung.

@skelm/codex

OpenAI Codex backend über @openai/codex-sdk mit boundary-Berechtigungszuordnung, MCP-Injektion, skill-Laden, session lifecycle und streaming.

@skelm/vercel-ai

Vercel AI SDK backend, das infer() und agent() mit tool-Filterung und Call-time-Berechtigungsprüfungen unter skelm policy antreibt.

@skelm/metrics

Prometheus-format Metriken für skelm event streams: run-Zähler, step-Zeiten, permission denials, approvals und trigger fires.

@skelm/otel

OpenTelemetry tracing für skelm event streams, das run- und step-spans ausgibt, ohne exporter für dich zu konfigurieren.

Bereit, einen workflow zu shippen?

Installiere die CLI, scaffold ein Projekt oder nutze `skelm builder`, um einen workflow aus einer natürlichsprachlichen Spezifikation zu entwerfen.