JamJet

クイックスタート

60秒でJamJetワークフローを実行 — サーバー不要、設定不要、Pythonのみ。

クイックスタート

60秒で開始

サーバー不要。設定不要。Pydantic不要。Pythonだけ。

pip install jamjet

# agent.py

from jamjet import task, tool

@tool
async def web_search(query: str) -> str:
    """現在の情報をWeb検索します。"""
    # 実際の検索実装をここに接続
    return f"Results for: {query}"

@task(model="claude-sonnet-4-6", tools=[web_search])
async def research(question: str) -> str:
    """リサーチアシスタントです。まず検索し、明確に要約してください。"""

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

これだけです。@toolデコレータで任意のPython関数をエージェントに公開できます。@taskのdocstringがエージェントの指示になります。OpenAI、Anthropic、Ollama、Groqなど、どのモデルでも動作します。

tip: Ollamaをローカルで使用する場合、APIキーは不要:

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

model=を任意のOllamaモデル(例: "llama3.2")に変更してください。


提供される機能

  • @tool — 任意の非同期Python関数をエージェントツールに変換し、スキーマを自動生成
  • @task — docstring = エージェントの指示、関数シグネチャ = 入力契約
  • 永続的な実行 — クラッシュしても停止した場所から再開(jamjet dev使用時)
  • 制限の強制max_iterationsmax_cost_usdtimeout_secondsは第一級パラメータ

ボイラープレート不要。状態クラス不要。依存性注入不要。

note: 完全なグラフ制御が必要な場合 — マルチステップパイプライン、条件付きルーティング、ヒューマンインザループ? 複雑なオーケストレーションにはWorkflow APIまたはYAMLワークフローを使用してください。


サンプルを試す

jamjet-benchmarksリポジトリに4つの独立したサンプル — すべてOllamaでローカル実行可能:

サンプル内容
01 — タイムライン付きパイプラインステップごとの実行タイムライン、自動
02 — 条件付きルーティング純粋なPython述語としてのルーティング
03 — 評価ハーネス組み込みスコアリング、LLM-as-judge
04 — 自己評価ワークフロードラフト → 判定 → リトライループ
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

完全なプロジェクトのスキャフォールディング

テンプレートを使用して、より完全なプロジェクトを開始できます:

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

利用可能なテンプレート:

jamjet init my-agent --list-templates

# hello-agent           最小限のQ&Aワークフロー

# research-agent        ウェブ検索 + 統合(Brave Search MCP)

# rag-assistant         ファイルシステムMCPを使用したRAG

# mcp-tool-consumer     任意のMCPツールサーバーに接続

# mcp-tool-provider     Python関数をMCPツールとして公開

# code-reviewer         品質スコアリング付きGitHub PRレビュー

# hitl-approval         人間参加型の承認ゲート

# multi-agent-review    ライター + クリティックのレビューループ

# a2a-delegator         A2Aプロトコル経由でタスクを委任

# a2a-server            外部エージェントからのA2Aリクエストを処理

# approval-workflow     24時間タイムアウト付きの永続的な承認

永続ランタイムの追加(本番環境)

インプロセスエグゼキュータ(wf.run_sync)は開発に最適です。本番環境では、クラッシュ復旧、マルチインスタンススケジューリング、永続的な状態管理のために、ランタイムサーバーを起動します:

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

その後、ワークフローを実行します:

jamjet run workflow.yaml --input '{"query": "What is JamJet?"}'
✓ node_completed   think   gpt-4o-mini  512ms
✓ Execution completed.

実行中にクラッシュしても、中断した箇所から正確に再開できます。以前のステップの再実行や無駄なAPI呼び出しは不要です。


APIキーの設定

OpenAI

export OPENAI_API_KEY=sk-...

Anthropic

export ANTHROPIC_API_KEY=sk-ant-...

Ollama(無料・ローカル)

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

次のステップ

  1. コアコンセプト — エージェント、ノード、ステート、永続性
  2. Python SDK — デコレーター、ルーティング、並列ステップ
  3. ワークフロー作成 — 全ノードタイプ、リトライポリシー、条件
  4. MCP統合 — 外部ツールサーバーへ1行で接続
  5. 評価ハーネス — エージェントをソフトウェアのようにテスト

トラブルシューティング

インストール後にjamjetが見つからない場合 PythonスクリプトディレクトリがPATHに含まれているか確認してください。python -m jamjetを試してみてください。

ポート7700で接続拒否される場合 jamjet runを使用する前にjamjet devが実行されている必要があります。インプロセスのwf.run_sync()パスではサーバーは不要です。

サポートが必要な場合 GitHub Discussionを開くか、Issue を報告してください。

On this page