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.pyDas 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— macht jede async Python-Funktion zu einem Agenten-Tool mit automatischer Schema-Generierung@task— Docstring = Agenten-Anweisungen, Funktionssignatur = Eingabevertrag- Dauerhafte Ausführung — Absturz und Fortsetzung ab Unterbrechungspunkt (mit
jamjet dev) - Durchgesetzte Limits —
max_iterations,max_cost_usd,timeout_secondssind First-Class-Parameter
Kein Boilerplate. Keine State-Klassen. Keine Dependency Injection.
note: Brauchst du vollständige Graph-Kontrolle — mehrstufige Pipelines, bedingte Weiterleitung, Human-in-the-Loop? Verwende 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:
| Beispiel | Was es zeigt |
|---|---|
| 01 — Pipeline mit Timeline | Pro-Schritt-Ausführungs-Timeline, automatisch |
| 02 — Bedingte Weiterleitung | Routing als einfache Python-Prädikate |
| 03 — Eval-Harness | Integriertes Scoring, LLM-als-Richter |
| 04 — Selbstevaluierender Workflow | Entwurf → 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.pyEin vollständiges Projekt aufsetzen
Verwende Templates, um ein umfassenderes Projekt zu starten:
jamjet init my-agent --template hello-agent
cd my-agentVerfü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-TimeoutDie 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:7700Dann 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.
API-Key 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.2Groq
export OPENAI_API_KEY=gsk_...
export OPENAI_BASE_URL=https://api.groq.com/openai/v1Nächste Schritte
- Kernkonzepte — Agenten, Nodes, State und Persistenz
- Python SDK — Decorators, Routing, parallele Schritte
- Workflow-Entwicklung — alle Node-Typen, Retry-Policies, Bedingungen
- MCP-Integration — Verbindung zu externen Tool-Servern in einer Zeile
- Eval Harness — Teste deine Agenten wie Software
Fehlerbehebung
jamjet nach Installation nicht gefunden?
Stelle sicher, dass dein Python-Skriptverzeichnis in deinem PATH ist. Versuche python -m jamjet.
Connection refused an Port 7700?
jamjet dev muss laufen, bevor du jamjet run verwendest. Der In-Process-Pfad wf.run_sync() benötigt keinen Server.
Brauchst du Hilfe? Eröffne eine GitHub Discussion oder erstelle ein Issue.