JamJet

Schnellstart

Bring einen JamJet-Workflow in 60 Sekunden zum Laufen — kein Server, keine Konfiguration, nur Python.

Schnellstart

60-Sekunden-Start

Kein Server. Keine Konfiguration. Kein Pydantic. Einfach Python.

pip install jamjet

# agent.py

from jamjet import task, tool

@tool
async def web_search(query: str) -> str:
    """Durchsucht das Web nach aktuellen Informationen."""
    # hier deine eigene Such-Implementierung einbinden
    return f"Ergebnisse für: {query}"

@task(model="claude-sonnet-4-6", tools=[web_search])
async def research(question: str) -> str:
    """Du bist ein Recherche-Assistent. Suche zuerst, dann fasse klar zusammen."""

import asyncio
result = asyncio.run(research("Was ist JamJet?"))
print(result)
ANTHROPIC_API_KEY=sk-ant-... python agent.py

Das war's. Der @tool-Decorator macht jede Python-Funktion für den Agenten verfügbar. Der @task-Docstring wird zur Anweisung des Agenten. Funktioniert mit OpenAI, Anthropic, Ollama, Groq — jedem Modell.

tip: Ollama lokal verwenden? Kein API-Key nötig:

OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 python agent.py

Ändere model= zu einem beliebigen Ollama-Modell (z. B. "llama3.2")


Was du bekommst

  • @tool — jede async Python-Funktion als Tool mit automatischer Schema-Generierung verfügbar machen
  • @task — einfache Python-Funktionen als dauerhafte Agent-Schritte verwenden
  • Dauerhafte Ausführung — nach Fehler mit jamjet dev fortsetzen
  • Runtime-erzwungene Limits — Iterationen, Kosten und Timeouts als First-Class-Steuerelemente

Kein Boilerplate. Keine State-Klassen. Keine Dependency Injection.

Hinweis: Benötigen Sie vollständige Graph-Kontrolle — mehrstufige Pipelines, bedingte Verzweigungen, Human-in-the-Loop? Nutzen Sie die Workflow-API oder YAML-Workflows für komplexe Orchestrierung.


Beispiele ausprobieren

Vier eigenständige Beispiele im jamjet-benchmarks-Repo — jedes läuft lokal mit Ollama:

BeispielWas es zeigt
01 — Pipeline mit TimelinePro-Schritt-Ausführungs-Timeline, automatisch
02 — Bedingte WeiterleitungRouting als einfache Python-Prädikate
03 — Eval-HarnessIntegriertes Scoring, LLM-als-Richter
04 — Selbstevaluierender WorkflowEntwurf → Bewertung → Wiederholungs-Schleife
git clone https://github.com/jamjet-labs/jamjet-benchmarks
cd jamjet-benchmarks/examples/01_pipeline_with_timeline
pip install -r requirements.txt
OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 MODEL_NAME=llama3.2 python main.py

Ein vollständiges Projekt aufsetzen

Verwende Templates, um ein umfassenderes Projekt zu starten:

jamjet init my-agent --template hello-agent
cd my-agent

Verfügbare Templates:

jamjet init my-agent --list-templates

# hello-agent           Minimaler Q&A-Workflow

# research-agent        Websuche + Synthese (Brave Search MCP)

# rag-assistant         RAG mit Dateisystem-MCP

# mcp-tool-consumer     Verbindung zu beliebigen MCP-Tool-Servern

# mcp-tool-provider     Python-Funktionen als MCP-Tools bereitstellen

# code-reviewer         GitHub-PR-Review mit Qualitätsbewertung

# hitl-approval         Human-in-the-Loop-Freigabe-Gate

# multi-agent-review    Writer + Critic Review Loop

# a2a-delegator         Aufgaben via A2A-Protokoll delegieren

# a2a-server            A2A-Anfragen von externen Agents bedienen

# approval-workflow     Dauerhafte Freigabe mit 24h-Timeout

Die Durable Runtime hinzufügen (Produktion)

Der In-Process-Executor (wf.run_sync) eignet sich gut für die Entwicklung. Für die Produktion — Crash-Recovery, Multi-Instanz-Scheduling, dauerhafter State — starte den Runtime-Server:

jamjet dev
▶ JamJet Dev Runtime
  Port:  7700
  Mode:  local (SQLite)
  API:   http://localhost:7700

Dann führe Workflows darüber aus:

jamjet run workflow.yaml --input '{"query": "Was ist JamJet?"}'
✓ node_completed   think   gpt-4o-mini  512ms
✓ Ausführung abgeschlossen.

Absturz während der Ausführung? Setze exakt an der Stelle fort, an der es gestoppt hat — keine erneute Ausführung früherer Schritte, keine verschwendeten API-Calls.


Crash Recovery in 90 Sekunden ausprobieren

  1. Runtime starten:

    jamjet dev
  2. Einen mehrstufigen Workflow ausführen:

    jamjet run workflow.yaml --input '{"query": "Was ist JamJet?"}'
  3. Worker während der Ausführung beenden (Strg+C während der Ausführung oder Prozess killen)

  4. Runtime neu starten:

    jamjet dev
  5. Workflow setzt ab dem letzten abgeschlossenen Checkpoint fort

Ergebnis: Keine Wiederholung früherer Schritte. Keine verschwendeten API-Calls. Kein verlorener State.


API-Schlüssel setzen

OpenAI

export OPENAI_API_KEY=sk-...

Anthropic

export ANTHROPIC_API_KEY=sk-ant-...

Ollama (kostenlos, lokal)

export OPENAI_API_KEY=ollama
export OPENAI_BASE_URL=http://localhost:11434/v1

# ollama pull llama3.2

Groq

export OPENAI_API_KEY=gsk_...
export OPENAI_BASE_URL=https://api.groq.com/openai/v1

Nächste Schritte

  1. Grundkonzepte — Agents, Nodes, State und Dauerhaftigkeit
  2. Python SDK — Decorators, Routing, parallele Schritte
  3. Workflow-Erstellung — alle Node-Typen, Retry-Policies, Bedingungen
  4. MCP-Integration — externe Tool-Server in einer Zeile verbinden
  5. Eval Harness — Agents wie Software testen

Fehlerbehebung

jamjet nach der Installation nicht gefunden? Stellen Sie sicher, dass Ihr Python-Skript-Verzeichnis in Ihrem PATH ist. Versuchen Sie python -m jamjet.

Verbindung zu Port 7700 abgelehnt? jamjet dev muss laufen, bevor Sie jamjet run verwenden. Der In-Process-Pfad wf.run_sync() benötigt keinen Server.

Hilfe benötigt? Eröffnen Sie eine GitHub Discussion oder erstellen Sie ein Issue.

On this page