growthxai/output

The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code describe what you want, Claude builds it, with all the best practices already in place.

Output – AI 워크플로우 및 에이전트를 위한 TypeScript 프레임워크

정의 – 엔드투엔드 LLM 기반 워크플로우를 정의, 실행, 모니터링할 수 있는 오픈소스 TypeScript SDK입니다. 프롬프트 관리, 평가, 추적, 비용 계산, 오케스트레이션(Temporal 경유)을 번들로 제공하여 AI 스택 전체를 코드베이스 안에 유지할 수 있습니다.


핵심 아이디어

아이디어 중요성
AI를 위한 AI – 이 프레임워크는 Claude Code(또는 유사한 코딩 에이전트)가 워크플로우 폴더를 읽고, 코드를 생성하고, 자동으로 반복할 수 있도록 구축되었습니다. LLM이 자체 파이프라인을 작성하도록 하는 팀에게 "프롬프트에서 프로덕션까지" 루프를 빠르게 만듭니다.
프롬프트 파일 – YAML 프론트매터와 Liquid 템플릿이 있는 .prompt 파일은 버전 관리되며 공급자에 구애받지 않습니다. 프롬프트를 다른 소스 파일처럼 검토 가능하게 하고 한 줄로 모델을 전환할 수 있습니다.
자동 추적 – 모든 LLM 호출, HTTP 요청, 토큰 수, 지연 시간, 비용이 logs/runs/에 기록됩니다. 디버깅과 코딩 에이전트가 실패를 추론하는 데 단일 진실 소스를 제공합니다.
LLM-as-judge 평가기 – 내장 평가기는 신뢰도 점수와 추론을 포함한 부울 결과를 반환합니다. 결정적 재시도 루프와 모델 출력 품질의 오프라인 테스트를 가능하게 합니다.
공급자에 구애받지 않는 LLM 레이어 – Anthropic, OpenAI, Azure, Vertex AI, Bedrock이 모두 동일한 API 표면을 공유합니다. 벤더 종속을 피하고 코드 변경 없이 모델 간에 이동할 수 있습니다.
Temporal 오케스트레이션 – 워크플로우는 결정적 조정 코드이며, 단계는 I/O를 수행하고 재생을 위해 캐시됩니다. 워크플로우 엔진을 직접 관리하지 않고도 재시도, 병렬 처리, 하위 워크플로우, 기록을 처리합니다.
암호화된 자격 증명 – 환경/워크플로우별로 범위가 지정된 AES-256-GCM 암호화. CLI로 관리됩니다. 코드 공유 시 또는 AI 에이전트가 코드를 실행할 때 비밀 정보의 우발적 유출을 방지합니다.

주요 패키지(npm)

패키지 역할
@outputai/core 프리미티브: workflow, step, evaluator 정의.
@outputai/llm 다중 공급자 LLM 클라이언트, 프롬프트 로딩, 스트리밍, 도구 호출.
@outputai/cli 프로젝트 스캐폴딩, 로컬 개발 서버(Temporal + API + UI), 워크플로우 실행/디버그 명령.

워크플로우 예시

// src/workflows/research/workflow.ts
workflow({
  name: 'research',
  fn: async (input) => {
    const data = await gatherSources(input);
    const analysis = await analyzeContent(data);
    const quality = await checkQuality(analysis);
    return quality.passed ? analysis : await reviseContent(analysis, quality);
  }
});

workflow – 결정적 오케스트레이션, 부작용 없음.

// src/workflows/research/steps.ts
step({
  name: 'gatherSources',
  fn: async (input) => {
    const results = await searchApi(input.topic);
    return { sources: results };
  }
});

step – I/O 수행; 결과는 재생을 위해 캐시됩니다.

---
provider: anthropic
model: claude-sonnet-4-20250514
temperature: 0
---
<system>You are a research analyst.</system>
<user>Analyze the following sources about {{ topic }}: {{ sources }}</user>

.prompt – YAML 프론트매터 구성 + Liquid 변수.

// src/workflows/research/evaluators.ts
evaluator({
  name: 'checkQuality',
  fn: async (content) => {
    const { output } = await generateText({
      prompt: 'evaluate_quality',
      variables: { content },
      output: Output.object({
        schema: z.object({
          isQuality: z.boolean(),
          confidence: z.number().describe('0-100'),
          reasoning: z.string()
        })
      })
    });
    return new EvaluationBooleanResult({
      value: output.isQuality,
      confidence: output.confidence,
      reasoning: output.reasoning
    });
  }
});

evaluator – 구조화된 결과를 반환하는 LLM-as-judge.


시작하기(빠른 단계)

  1. 사전 요구 사항 – Node 20+, Docker Desktop, Anthropic/OpenAI 등의 API 키.
  2. 새 프로젝트 스캐폴드:
    npx @outputai/cli init
    cd <project-name>
    
  3. 로컬 개발 스택(Temporal 서버 + UI + 핫 리로드 워커) 시작:
    npx output dev
    
  4. 샘플 워크플로우 실행(예: 블로그 평가기):
    npx output workflow run blog_evaluator paulgraham_hwh
    
  5. 실행을 검사하거나 output workflow debug <id>로 디버그합니다.

전체 문서는 docs/guides/start-here/getting-started.mdx에 있습니다.


예제 워크플로우 갤러리

동반 리포지토리 output-examples는 즉시 실행 가능한 워크플로우를 제공합니다:

  • blog_evaluator – 블로그 게시물 품질 점수(Jina Reader 사용).
  • call_scorer – MEDDIC/BANT/SPIN 기준으로 영업 통화 기록 평가.
  • changelog_generator – GitHub 커밋/PR을 분류된 변경 로그로 변환.
  • dependency_audit – OSV를 통해 npm 패키지 취약점 스캔.
  • recipe_extractor, url_summarizer, youtube_summarizer – 콘텐츠 추출 및 요약.
  • ai_hn_digest – Beehiiv에 게시되는 개인화된 Hacker News 뉴스레터.
  • sales_call_processor – 통화 기록의 다단계 처리.

모두 복제, 편집, 로컬 실행하여 프레임워크를 확인할 수 있습니다.


누가 사용하고 있나요?

  • CheckThat.ai – Output 기반으로 구축된 결정적 LLM 워크플로우를 실행하는 AI 강화 브랜드 모니터링 플랫폼. 수백만 개의 AI 생성 브랜드 언급을 추적합니다.

Output을 선택해야 하는 경우

  • 프롬프트, 추적, 평가, 오케스트레이션을 위한 단일 코드 우선 스택이 필요한 경우.
  • 팀(또는 LLM 코딩 에이전트)이 워크플로우를 자동으로 생성하거나 수정해야 하는 경우.
  • 벤더에 구애받지 않는 LLM 호출과 코드 변경 없이 공급자를 전환할 방법이 필요한 경우.
  • 신뢰할 수 있는 재시도, 병렬 처리, 재생이 필요한 경우 – Temporal이 내부적으로 처리합니다.
  • 별도의 볼트 서비스 대신 자체 호스팅 비밀 관리를 선호하는 경우.

라이선스

Apache 2.0 – 상업 및 오픈소스 사용 무료.


결론 – Output은 LLM 애플리케이션의 다양한 부분(프롬프트, 실행, 비용, 평가)을 통합하고 프로덕션급 워크플로우 오케스트레이션을 추가하는 풀스택, TypeScript 우선 프레임워크입니다. 인간 엔지니어와 AI 코딩 에이전트 모두 AI 기반 제품을 더 쉽게 구축, 테스트, 출시할 수 있게 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트