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:
    """웹에서 최신 정보를 검색합니다."""
    # 실제 검색 구현을 연결하세요
    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("What is JamJet?"))
print(result)
ANTHROPIC_API_KEY=sk-ant-... python agent.py

이게 전부입니다. @tool 데코레이터는 모든 Python 함수를 에이전트에 노출합니다. @task 독스트링이 에이전트의 지시사항이 됩니다. 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 — 모든 async Python 함수를 자동 스키마 생성과 함께 에이전트 도구로 변환
  • @task — 독스트링 = 에이전트 지시사항, 함수 시그니처 = 입력 계약
  • 내구성 있는 실행 — 중단 후 중단된 지점에서 재개 (jamjet dev 사용)
  • 강제 제한max_iterations, max_cost_usd, timeout_seconds가 일급 파라미터

보일러플레이트 없음. 상태 클래스 없음. 의존성 주입 없음.

note: 완전한 그래프 제어가 필요하신가요 — 다단계 파이프라인, 조건부 라우팅, 사람 개입? 복잡한 오케스트레이션을 위해 Workflow API 또는 YAML workflows를 사용하세요.


예제 실행하기

jamjet-benchmarks 저장소의 독립 실행 예제 4개 — 각각 Ollama로 로컬 실행:

예제내용
01 — 타임라인 포함 파이프라인단계별 실행 타임라인, 자동
02 — 조건부 라우팅순수 Python predicate로 라우팅
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 통합 — 한 줄로 외부 도구 서버 연결
  5. Eval Harness — 소프트웨어처럼 에이전트 테스트

문제 해결

설치 후 jamjet을 찾을 수 없나요? Python 스크립트 디렉토리가 PATH에 있는지 확인하세요. python -m jamjet을 시도해보세요.

포트 7700에서 연결이 거부되나요? jamjet run을 사용하기 전에 jamjet dev가 실행 중이어야 합니다. 인프로세스 wf.run_sync() 경로는 서버가 필요하지 않습니다.

도움이 필요하신가요? GitHub Discussion을 열거나 이슈를 등록하세요.

On this page