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 ファイルは、バージョン管理され、プロバイダーに依存しません。 プロンプトを他のソースファイルと同様にレビュー可能にし、1 行でモデルを切り替えられます。
自動トレーシング – すべての LLM 呼び出し、HTTP リクエスト、トークン数、レイテンシ、コストが logs/runs/ に書き込まれます。 デバッグとコーディングエージェントによる障害の推論のための単一の真実のソースを提供します。
LLM を審判とする評価器 – 組み込みの評価器は、信頼度スコアと推論を伴うブール結果を返します。 決定的な再試行ループとモデル出力品質のオフラインテストを可能にします。
プロバイダーに依存しない 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 審判。


はじめに(クイックステップ)

  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 駆動製品を構築、テスト、出荷しやすくなります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト