HEYM について
HEYM は、ビジュアルキャンバス、エージェント、RAG、人によるレビューの仕組みを備えた、セルフホスト可能な AI ワークフロー自動化プラットフォームです。自社インフラ上で AI ワークフローを構築・運用したいチームに向いています。ワークフローは /api/mcp/sse で MCP サーバーとして公開できます。
主な機能
- 01AI 支援によるワークフロー生成とビジュアルキャンバス
- 02サブワークフローを含むマルチエージェント構成
- 03RAG とエージェント単位のナレッジグラフによるメモリ
- 04保存された状態から再開できる人によるレビュー
- 05実行ごとのトレース、トークン数、モデルコストの追跡
- 06REST、SSE、MCP による呼び出し方式
活用シーン
- 01自社サーバー上でのマルチエージェント業務プロセスの実行
- 02エージェントのワークフローへの人による承認ステップの追加
- 03複数回の実行にわたる LLM 呼び出しコストとレイテンシーの追跡
MCP 対応
HEYM はワークフローを /api/mcp/sse エンドポイントで MCP ツールとして公開し、Claude Desktop や Cursor などのクライアントから呼び出せるようにします。また MCP Call ノードにより、ワークフロー内から外部の MCP サーバーを呼び出すこともできます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:4017/api/mcp/sseclaude mcp add --transport http heym http://localhost:4017/api/mcp/sse{"mcpServers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}Cursor で開く{"servers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}VS Code で開く{"mcpServers":{"heym":{"type":"http","url":"http://localhost:4017/api/mcp/sse"}}}{"mcpServers":{"heym":{"serverUrl":"http://localhost:4017/api/mcp/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Heym
エージェントシステムを構築し、自信を持って実行しましょう。
Heym は、お客様のインフラ上でエージェントシステムを構築、オーケストレーション、実行、監視、評価、制御するためのセルフホスト可能なランタイム兼プラットフォームです。
エージェントや決定論的なワークフローを視覚的に組み立てたり、AI で生成したりできます。モデル、ツール、MCP、社内ナレッジ、内部システムを接続し、承認チェックポイント、再試行、実行状況とモデルコストの可視化を活用して運用できます。
ローカルで試す: git clone https://github.com/heymrun/heym.git && cd heym && ./run.sh
クイックスタート ·
ワークフローのデプロイと呼び出し ·
Heym の拡張 ·
セキュリティ
Heym とは?
Heym では、ワークフローによってエージェント、決定論的なステップ、ツール、データの連携方法を定義します。ランタイムはそのグラフを実行し、依存する処理や並列処理を調整し、実行履歴を記録し、人によるレビュー用のチェックポイントをサポートします。
キャンバスは Heym のインターフェースのひとつです。Heym そのものではありません。 ランタイム上で動作するシステムの構築、確認、デバッグ、理解に活用してください。同じワークフローは、API、スケジュール、イベントトリガー、MCP クライアント、Portal の会話からも実行できます。
製品サイト heym.run をご覧ください。
エージェントのライフサイクルを支える単一のランタイム
構築 → オーケストレーション → 実行 → 可観測化 → 評価 → 制御 → 提供
これらは、Heym でエージェントシステムを運用するための、相互につながった要素です。
| ステージ | Heym で行うこと |
|---|---|
| 構築 | エージェントや決定論的なワークフローをビジュアルに組み立てる、AI で生成する、または再利用可能なテンプレートやスキルから開始します。 |
| オーケストレーション | 明示的なデータフロー、分岐、依存関係が許す範囲での並列実行によって、エージェント、サブエージェント、サブワークフロー、ツールを連携させます。 |
| 実行 | 設定可能な再試行、エラーパス、ブラウザー自動化を利用し、API、スケジュール、イベントトリガー、または対話型インターフェイスから実行します。 |
| 可観測化 | 実行履歴、リアルタイムの状態、トレース、ツール呼び出し、トークン、レイテンシ、エラー、モデルのコストを確認します。分析とアラートを確認し、OpenTelemetry トレースをエクスポートします。 |
| 評価 | プロンプトとモデルの応答を期待される出力と照らし合わせてテストし、モデル間で結果を比較し、保存済みの評価実行を確認します。 |
| 制御 | レビューチェックポイントでエージェントの実行を一時停止し、人間の判断後、保存された状態から再開します。ガードレール、認証情報、認証、チームアクセスを設定します。 |
| 提供 | REST、SSE ストリーミング、MCP ツール、Portal チャットインターフェイスを通じてワークフローを提供するか、アプリ内ダッシュボードウィジェットに結果を接続します。 |
可観測化と評価の結果を使って、プロンプト、ツール、ワークフローのロジックを改善し、次のイテレーションを実行して確認します。
🗺️ プラットフォームの概要
ワークフロー定義によって、構築エクスペリエンスと実行がつながります。ランタイムはその定義を使ってノードとツールを連携させ、実行状態は、結果の確認、レビュー、利用に使うインターフェイスに反映されます。
| システムの構成要素 | 役割 |
|---|---|
| 構築と確認 | キャンバス、AI アシスタント、テンプレート、Expression DSL でワークフロー定義を作成・編集します。同じキャンバスをアクティブな実行に接続して確認することもできます。 |
| オーケストレーションと実行 | エグゼキューターが、エージェント、決定論的なノード、サブワークフロー、並列分岐、再試行、レビューチェックポイントを連携させます。 |
| ツールとデータの接続 | ノードとエージェントツールから、モデル、HTTP API、MCP サーバー、内部ナレッジ、永続メモリ、データベース、キュー、ファイルにアクセスできます。 |
| 運用と改善 | 履歴、トレース、コスト、分析、アラート、ログ、OpenTelemetry でランタイムの挙動を把握できます。評価機能はプロンプトやモデルのイテレーションを支援し、アクセス制御と人間によるレビューでシステムの実行方法を調整できます。 |
| 人やアプリケーションへの提供 | REST と SSE のエンドポイント、MCP ツール、Portal の会話、Board のジョブ、ワークフローを利用したダッシュボードで、システムを呼び出し、その結果を利用できます。 |

✨ 主な機能
構築:エージェント、ワークフロー、接続されたツール
- ビジュアル編集とAI支援による作成。 キャンバス上でワークフローグラフを作成・確認し、AI アシスタントを使ってテキストまたは音声で生成・修正できるほか、テンプレートを再利用できます。
- エージェントと決定論的ロジック。 LLM ノードやエージェントノードを、条件分岐、スイッチ、ループ、マージ、データ変換、サブワークフローの呼び出しと組み合わせられます。対応するノードフィールドでは式を使用できます。
- マルチエージェントのオーケストレーション。 オーケストレーターに、呼び出す名前付きのサブエージェントやサブワークフローを割り当てます。独立したサブエージェントの呼び出しは並行して実行できます。
- ナレッジと永続メモリ。 Qdrant または pgvector を使用する PostgreSQL を通じて、RAG でドキュメントを取得できます。エージェントごとにナレッジグラフを有効にすると、実行をまたいで事実を保持でき、エージェント間の共有も設定できます。
- ツールと統合。 組み込みノード、HTTP API、MCP を通じて、コミュニケーションサービス、開発者ツール、生産性アプリ、データベース、キュー、ストレージに接続できます。決定論的にツールを呼び出すには、MCP Call ノードを使用します。
- スキルとカスタム動作。 再利用可能な
SKILL.mdの指示や任意の Python ツールをエージェントに追加したり、AI でスキルを作成・修正したり、プラグインをインストールしたり、型付き設定と実行ハンドラーを備えたカスタムノードを実装したりできます。
実行:作業の実行と調整
- 並列実行とリカバリー。 独立したノードを並行して実行し、Merge で分岐を同期できます。また、再試行、バックオフ、エラーパス、モデルのフォールバックを設定できます。
- スケジュールとトリガー。 cron、Webhook、メッセージング統合、受信イベント、WebSocket メッセージ、Heym プラットフォームのイベントを通じてワークフローを開始できます。
- ブラウザーエージェントとコーディングエージェント。 Playwright と AI 支援によるセレクター復旧を使ってブラウザータスクを自動化できます。Codex または OpenCode Go をワークフローのステップとしてリポジトリに対して実行し、差分やプルリクエストの出力を取得できます。
- エージェント型カンバンボード。 カードは永続的なエージェント型ジョブです。カードを列に移動すると、カードの内容、コメント、履歴、過去の出力を使って、順序付けられたワークフローチェーンを実行し、結果をカードに書き戻します。
- 負荷分散。 Settings → Instances で実行ウェイトを設定し、PostgreSQL を通じて対象となるバックグラウンド実行を Heym インスタンス間で分散できます。
監視:実行状況とコストを把握
- 履歴とライブ実行。 履歴またはボードカードから本番実行を開き、保存された状態を確認して、ノードのライブ進捗、デバッグログ、最終出力を追跡できます。
- トレースとモデルコスト。 モデルのリクエストとレスポンス、ツール呼び出し、入出力トークン、レイテンシ、エラーを確認できます。管理されているモデル料金やカスタムの上書きを使って USD コストを計算し、モデルや期間別に過去の支出を調べられます。
- 分析、ログ、アラート。 実行数、成功率、所要時間を追跡し、ログを確認できます。エラー、所要時間、トークンや USD の支出、実行数に対するアラートを設定できます。OpenTelemetry を通じて、ワークフロー、ノード、エージェントのツールスパンをエクスポートできます。
評価と制御:動作を改善し、人間の関与を維持
- 評価と分析。 複数のモデルを対象に再現可能なプロンプト評価を実行し、期待される出力と実際の出力を比較して、過去の結果を確認できます。ワークフローアナライザーは実行コンテキストを使用して、目的、ステップの動作、改善点について、共有・編集可能な Markdown レポートを作成します。
- 人によるレビュー。 エージェントのチェックポイントでは、承認、編集、拒否のために実行を一時停止し、保存された実行スナップショットから再開します。レビュー用の分岐から、既存の統合を通じて担当者に通知できます。
- セキュリティとアクセス。 入力ガードレール、暗号化された認証情報、チーム共有、実行トークン、ワークフロー認証を設定できます。Keycloak、Okta、Entra ID、Auth0、Google などのプロバイダーを通じて、JWT 認証または OIDC SSO でサインインできます。
公開:システムを活用する
- REST、SSE、MCP。 アプリケーションからワークフローを呼び出したり、実行イベントをストリーミングしたり、ワークフローをMCPクライアント向けのツールとして公開したりできます。
- ポータルとチャット。 ストリーミング、アップロード、会話履歴に対応した、ワークフロー連携型のチャットインターフェースを公開できます。Chatタブでは、ワークフローを呼び出し、モデルやプラットフォームデータを操作できます。
- ダッシュボード、データ、ファイル。 ワークフローを基盤とするカスタムダッシュボードウィジェットを構築し、構造化されたData Tablesを管理できます。また、生成されたファイルをHeym Driveに保存し、チームで共有したり、共有リンクを作成したりできます。
🎬 プロダクトツアー
1つのeコマース販売キャンペーンを最初から最後まで紹介します。AI Assistantによるワークフロー生成、人によるレビュー、ボードでの実行、構造化データ、ダッシュボード、トレース、RAG、MCP、分析、チームでの共同作業を取り上げます。
プロダクトデモ
このデモでは、オーケストレーターとサブエージェントで構成されたシステムを、作成からチャットインターフェースまで紹介します。「ベルリンからフランクフルトへはどう行けばいいですか?」や「現地では何を食べたらいいですか?」といったリクエストに対して、オーケストレーターは同じターン内に個別のサブエージェントを呼び出し、それぞれのタスクを並行して実行し、結果をまとめることができます。
自然言語からワークフローを生成する
必要なエージェント、オーケストレーションパターン、ユーザーに提示する結果を説明すると、Heymがキャンバス上にワークフローを構築します。

プロンプトの例
Roadmap AgentとBest Food Agentを含むワークフローを作成してください。Orchestrator Agentがリクエストを受け取ったら、これらのサブエージェントを並行して呼び出し、結果をユーザーに返します。
システムを実行して調べる
キャンバスからランタイムの実行を開始し、結果がグラフ内を流れる各ステップを確認できます。API、スケジュール、トリガー、MCPからも同じワークフローを呼び出せます。

エージェント用のスキルを作成する
自然言語からエージェントのスキルを作成し、生成されたSKILL.mdをプレビューして、エージェントに追加できます。

プロンプトの例
スキルを作成してエージェントに追加してください。Orchestrator Agentはサブエージェントから情報を受け取った後にこのスキルを呼び出し、目的地の都市で実際にできることを説明する簡単な実行計画を作成します。
チャットからワークフローを呼び出す
ワークフローをチャット体験に変換し、ユーザーが自然なリクエストでオーケストレーションを呼び出せるようにします。

プロンプトの例
ベルリンに住んでいて、フランクフルトに行く予定です。アウトバーンを使うと何キロメートルありますか?また、フランクフルトで一番おいしいドネルケバブはどこで見つかりますか?
📸 スクリーンショット
ビジュアルキャンバス:マルチエージェントのオーケストレーション、RAG と MCP のノード、human-in-the-loop チェックポイント |
MCP サーバー:ワークフローを Claude、ChatGPT、Cursor 用のツールとして公開 |
トレース:モデルのリクエスト、レスポンス、トークン数、レイテンシー、コストを確認 |
分析:ワークフローごとの実行量、成功率、レイテンシー、削減時間 |
Heym のチュートリアルを見る
🚀 クイックスタート
まず動画で確認したいですか? 2 分以内で Heym をローカルにセットアップ では、リポジトリのクローン、PostgreSQL の起動、ローカルインスタンスでのアカウント作成までの手順をすべて紹介しています。
git clone https://github.com/heymrun/heym.git
cd heym
./run.sh
# OR: with .env file (run.sh auto-generates SECRET_KEY and ENCRYPTION_KEY)
git clone https://github.com/heymrun/heym.git
cd heym
cp .env.example .env
./run.sh
http://localhost:4017 を開いてアカウントを作成し、構築を始めましょう。run.sh は PostgreSQL、バックエンド、フロントエンドを起動し、必要に応じて SECRET_KEY と ENCRYPTION_KEY を生成します。
前提条件: Bun、Python 3.11+、UV、Docker が必要です。コンテナを使用する場合は、以下のデプロイ方法をご覧ください。各設定項目とデフォルト値については、ENVIRONMENT-VARIABLES.mdをご覧ください。
デプロイ
Heym は、コアデータベースとして PostgreSQL を使用し、お客様のインフラ上で動作します。標準の Compose セットアップには PostgreSQL、バックエンド、フロントエンドが含まれており、永続ファイル用のローカルボリュームを使用します。RabbitMQ と Redis は、ワークフローで必要な場合に接続するインテグレーションです。RAG では、組み込みの PostgreSQL/pgvector バックエンドまたは外部 Qdrant サーバーを使用できます。S3 はインテグレーションノードから利用できます。
Docker Compose
本番環境へのデプロイには、Docker Compose と Python 3 を使用します。
cp .env.example .env
./deploy.sh # Build and deploy (auto-generates keys if empty)
./deploy.sh --down # Stop services
./deploy.sh --logs # View logs
./deploy.sh --restart # Restart services
まず管理者アカウントを登録し、その後
.envでALLOW_REGISTER=falseを設定して再起動すると、本番環境での登録を停止できます。
事前構築済み Docker イメージ
リリースイメージには、フロントエンドとバックエンドが含まれています。以下の例では、ホスト上の既存の PostgreSQL データベースに接続します。DATABASE_URL にデータベースのアドレスと認証情報を設定してください。Linux でこのホスト名を使用する場合は、--add-host=host.docker.internal:host-gateway を追加してください。
永続ファイル、プラグイン、コーディングエージェントのワークスペースに対応する Docker コマンド
# Docker with .env file
git clone https://github.com/heymrun/heym.git
cd heym
cp .env.example .env
# Generate required keys and write them into the placeholder lines copied from
# .env.example (replace in place: appending with >> would create duplicate entries):
SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
ENCRYPTION_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))")
sed -i.bak "s|^SECRET_KEY=.*|SECRET_KEY=${SECRET_KEY}|; s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=${ENCRYPTION_KEY}|" .env && rm -f .env.bak
docker run --env-file .env \
-e DATABASE_URL=postgresql+asyncpg://postgres:[email protected]:6543/heym \
-p 4017:4017 \
--shm-size 2g \
-e FILE_STORAGE_DIR=/app/data/files \
-e HEYM_PLUGINS_DIR=/app/data/plugins \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$(pwd)/data/files:/app/data/files" \
-v "$(pwd)/data/plugins:/app/data/plugins" \
-v heym-codex-workspaces:/app/data/codex-workspaces \
-v heym-opencode-workspaces:/app/data/opencode-workspaces \
ghcr.io/heymrun/heym:latest
# OR: minimal, no .env file
docker run \
-e ENCRYPTION_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") \
-e SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") \
-e DATABASE_URL=postgresql+asyncpg://postgres:[email protected]:6543/heym \
-e FILE_STORAGE_DIR=/app/data/files \
-e HEYM_PLUGINS_DIR=/app/data/plugins \
-p 4017:4017 \
--shm-size 2g \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$(pwd)/data/files:/app/data/files" \
-v "$(pwd)/data/plugins:/app/data/plugins" \
-v heym-codex-workspaces:/app/data/codex-workspaces \
-v heym-opencode-workspaces:/app/data/opencode-workspaces \
ghcr.io/heymrun/heym:latest
マウントとランタイム設定は、次の機能をサポートします。
- Playwright:
--shm-size 2gにより、Chromium がブラウザータスクを実行するためのメモリ領域を確保します。ステップベースの Playwright 実行は Heym コンテナー内で行われます。カスタムのplaywrightCodeは、独自の共有メモリー設定を持つ兄弟コンテナーを使用します。Compose ではこの設定が自動的に行われます。 - Heym Drive:
FILE_STORAGE_DIR=/app/data/filesを指定すると、ファイルストレージがマウントされたディレクトリを参照し、コンテナーを再起動してもアップロードしたファイルや生成ファイルが保持されます。 - プラグイン:
HEYM_PLUGINS_DIR=/app/data/pluginsとそのマウントにより、インストール済みのプラグインパッケージが保持されます。 - Skills と Codex:
heym-codex-workspacesボリュームにより、ランタイムが強化された兄弟コンテナーに接続されます。実行ごとの分離には Docker Engine 25.0+ が必要です。 - OpenCode Go:
heym-opencode-workspacesボリュームにより、兄弟ランナーと共有するワークスペースが保持されます。 - Docker アクセス: ソケットは、サンドボックスコンテナーと MCP の
stdio実行をサポートします。ホストを広範囲に制御できるため、デプロイ環境へのアクセスを制限してください。Docker ログへのアクセスはDOCKER_LOGS_ENABLEDとDOCKER_LOGS_ALLOWED_EMAILSで別途設定します。登録を開始する前に、許可リストに登録するアカウントを作成してください。
複数インスタンスでの実行
追加の Heym インスタンスを同じ PostgreSQL データベースに接続すると、対象となるバックグラウンドワークフローの実行を分散できます。共有設定は 設定 → インスタンス から行います。キューと調整には PostgreSQL を使用するため、クラスターに個別のメッセージブローカーやインスタンス間の直接接続は必要ありません。
メインインスタンスは UI、API、MCP、Portal を提供し、ローカルファイルとインストール済みプラグインを管理します。ワーカーは対象となるキュー内の実行を処理します。メインインスタンスのローカルストレージやワークスペースに依存するワークフローは、メインインスタンスで実行されます。負荷分散ガイドでは、配置、共有キー、データベースのサイズ設定、イングレス、アップグレードについて説明しています。クラスターとワーカーの Compose 例も参照してください。
Heym はプレ 1.0 リリースシリーズです。更新については、バージョンバッジとリリースをご確認ください。デプロイガイドとセキュリティポリシーには、運用環境の設定に関するリファレンスが記載されています。
Heym の拡張
チームがすでに使用しているシステムに Heym を接続できます。組み込みのインテグレーション、HTTP API、MCP、再利用可能なスキル、プラグイン、カスタムノードを選択して、ツールやデータをランタイムに取り込みます。
| 拡張方法 | 最適な用途 | 仕組み |
|---|---|---|
| HTTP API | API と社内サービス | HTTP ノードでリクエスト、ヘッダー、認証、式を設定します。 |
| プラグイン | インストール可能なノードタイプとトリガー | ランタイムハンドラーとエディター用スキーマを備えた、オペレーターがインストールするパッケージを追加します。プラグインの作成を参照してください。 |
| カスタムノード | 製品品質のワークフローステップとインテグレーション | エディター設定、実行動作、スキーマメタデータを備えた型付きノードを追加します。 |
| エージェントスキル | 持ち運び可能なエージェントの能力 | SKILL.md ファイルと任意の Python ツールを Agent ノードに追加するか、AI Build で生成します。 |
| MCP | 外部ツールと AI クライアント | Agent ノードは MCP サーバーを利用でき、Heym ワークフローは MCP ツールとして公開できます。 |
| ツールとしてのワークフロー | 再利用可能な自動化 | ロジックを重複させずに、REST、SSE、Portal チャット、または MCP を通じてワークフローを呼び出せます。 |
組み込みの連携機能とノードライブラリ
| 用途 | 主なノードと連携先 |
|---|---|
| コミュニケーション | Slack、Discord、Telegram、GmailやOutlookなどのメールサービス向けのSMTP/IMAPメール |
| 開発者ツールと生産性向上 | GitHub、Jira、Linear、Notion、Google Drive、Google Sheets、Grist、Sentry |
| データ、キュー、ストレージ | BigQuery、ClickHouse、Supabase、Redis、RabbitMQ、Amazon S3、Heym Data Tables、Drive |
| ナレッジ | QdrantまたはPostgreSQL/pgvectorを使ったRAGと、エージェントごとの永続メモリ |
| APIとブラウザー | HTTP、WebSocket Trigger/Send、MCP Call、Crawler、Playwright |
ノードライブラリを使うことで、エージェントを決定論的なロジック、トリガー、データ、出力と組み合わせられます。
| カテゴリ | ノード |
|---|---|
| トリガー | Input(Webhook)、Cron、Slack、Discord、Telegram、IMAP、WebSocket、File Upload、Heymイベント、RabbitMQ Receive、Plugin Trigger |
| AI | LLM、Agent、RAG、Codex、OpenCode Go |
| ロジック | Condition、Switch、Loop、Merge |
| データ | Set、Variable、DataTable、Execute(サブワークフロー)、Converter |
| 出力とユーティリティ | Output、Chart Output、JSON/HTML Output Mapper、Wait、Console Log、Error Handler、Throw Error、Disable Node、Enable Node、Sticky Note |
Heym Driveは、アップロードおよび生成したファイルを保存し、公開またはパスワード保護された共有リンク、チーム内共有、一括ZIP、共有、削除操作を提供します。Driveを参照してください。
操作、認証情報、セットアップについては、ノードリファレンスと連携ガイドを参照してください。
MCP(Model Context Protocol)
クライアントとして: Agentノードは、SSE、Streamable HTTP、またはstdio経由で設定済みのMCPサーバーからツールを検出して呼び出します。ワークフローで呼び出しを定義すると、MCP Callノードが選択したツールを直接呼び出します。
サーバーとして: Heymワークフローを/api/mcp/sseでツールとして公開し、Claude Desktop、Cursor、その他のMCPクライアントから利用できます。MCPの設定を参照してください。
スキルシステム
スキルは、SKILL.mdの指示ファイルと、必要に応じてPythonツールやアセットをまとめた、移植可能な機能バンドルです。.zipまたは.mdをAgentノードにドロップするか、AI Buildを使ってチャットからスキルを作成し、改良できます。ワークフローやチームをまたいで再利用、共有できます。
構築とオーケストレーション
リアルタイムコラボレーション
チームで同じワークフローを開き、一緒に作業できます。キャンバスの左上には全員のアバターが表示され、各ユーザーのポインターはそれぞれの色で動きます。また、編集内容は開いているすべてのキャンバスにリアルタイムで反映されます。アバターをクリックすると、相手が開いたダイアログや開始した実行も含め、その人に表示されている内容を追えます。マイクをオンにすれば、ブラウザーから直接会話できます。
AIアシスタント
作成したいシステムを、テキストまたは音声で説明してください。アシスタントがエディターにノードとエッジを直接生成するので、生成されたワークフローを確認して調整できます。
ワークフローにAgentスキルが含まれている場合、アシスタントは各スキルのSKILL.mdのみをビルダーのコンテキストに渡します。大きな.pyファイルやバイナリ添付ファイルはプロンプトから除外されるため、複雑なスキルをキャンバスに読み込んでいても、ワークフローを確実に編集できます。
AIスキルビルダー
AgentノードのSkillsセクションでAI Buildを使って新しいスキルを作成するか、インラインのスパークルアクションを使って既存のスキルを改訂できます。モーダルにはチャットのやり取りがストリーミング表示され、生成されたSKILL.mdファイルと.pyファイルをリアルタイムでプレビューできます。ファイルは、手動でのスキルアップロードと同じZIP取り込み経路を使って保存されます。
マルチエージェントオーケストレーション
オーケストレーター/サブエージェントのパイプラインを視覚的に構築できます。1つのエージェントが名前付きのサブエージェントまたはサブワークフローにタスクを委任し、それらの結果をまとめて共有レスポンスを作成します。エージェントごとに推論の強度と温度を設定できます。
組み込みのRAGパイプライン
PDF、Markdown、CSV、JSONを、QdrantまたはPostgreSQL/pgvectorをバックエンドとするマネージドベクトルストアにアップロードできます。RAGノードをワークフローに接続すると、セマンティック検索を実行でき、取得したコンテキストをLLMまたはAgentノードに渡せます。
Input → RAG (search) → LLM (answer with context) → Output
永続メモリ
Agentノードでナレッジグラフを有効にすると、実行をまたいでエンティティと関係を保持できます。Heymはエージェントのプロンプトにグラフのコンテキストを追加し、実行が成功した後、バックグラウンドで新しい事実を統合します。グラフエディターでメモリを確認・編集したり、ほかのエージェントに読み取り専用または読み取り/書き込みアクセスを許可したりできます。Agent Persistent Memoryを参照してください。
LLMの設定とバッチ処理
Agentの実行における推論の強度、温度、フォールバックモデルを設定できます。LLMノードは、テキスト、ビジョン、構造化出力、および対応エンドポイント向けのプロバイダー標準のBatch APIモードをサポートしており、ライブステータス分岐とアイテムごとの結果を利用できます。Agentのメッセージ履歴は、モデルのコンテキスト上限に近づくと自動的に圧縮され、圧縮イベントはDebugログ、History、Tracesで確認できます。LLM nodeとAgent nodeのリファレンスを参照してください。
実行動作
並列実行
グラフの依存関係に基づいて、独立したノードが同時に実行されます。Mergeノードを使うと、並列分岐を同期し、その結果を統合できます。実行順序はグラフによって決まります。Parallel Executionを参照してください。
ブラウザー自動化と自動修復
Playwrightノードは、視覚的なステップ、AIが生成するアクション、フルコードによるブラウザー自動化をサポートしています。Auto Healを有効にすると、アクション失敗時にページのコンテキストを使ってセレクターを復元します。設定については、Playwright nodeのリファレンスを参照してください。
ノード単位のエラー処理
ノードで失敗時の再試行とエラー分岐を設定できます。
Input ──→ HTTP ──→ Output
└─── error ──→ Error Handler
- 再試行:設定した回数とバックオフ間隔で、失敗したノードを自動的に再実行します
- エラー分岐:ワークフローを停止せず、失敗を専用の経路に振り分けます
- エラーコンテキスト:後続ノードで
$nodeName.errorにアクセスできます
🔍 オブザーバビリティ、評価、制御
実行履歴とライブ状態
保存された入力、出力、ノードの結果、エラー、タイミング、実行ログを確認できます。履歴では、実行をトリガーや、クラスター内で実行したインスタンスと関連付けて確認できます。
本番環境の実行をライブで開く
HistoryダイアログまたはBoardカード内の実行リストからRunningのエントリを開くと、HeymはSSE経由でエディターを該当の実行に接続します。これは、webhook、スケジュール、チャット、MCP、インテグレーション、Agentic Kanban Boardによって開始された実行で動作します。完了済みの ノードはすぐに復元され、現在のノードと保留中のノードはパルス表示を続けます。Debugログと 最終出力は順次表示されます。エディターを離れても切断されるのはオブザーバーだけで、本番環境の実行は キャンセルされません。
LLMトレース
モデルのリクエストとレスポンス、ツール呼び出しの詳細、呼び出しごとの所要時間、トークン使用量、エラー、モデルに渡されたスキルを確認できます。ワークフローの履歴とあわせてトレースを使うと、モデルの動作と周辺の実行との関係を追跡できます。Tracesを参照してください。
モデルの使用状況とコストの可視化
Heym は入力トークンと出力トークンを記録し、管理されているモデルの料金データに基づいて米ドルでのコストを計算します。トレースごとのコストを確認し、モデルや期間ごとの過去の使用状況と支出を調べられます。独自のエンドポイントや料金に合わせて、カスタムのモデル料金の上書き設定を追加できます。
コストの可視化は運用にもつながります。アラートでは、指定した期間のトークン数または米ドルでの支出を評価できます。料金と使用状況の表示については、トレースとコスト分析をご覧ください。
分析とログ
分析では、ワークフローごとの実行回数、成功率、レイテンシ、推定時間節約量を確認できます。実行の調査中に増分デバッグログを追跡し、ログタブからアクセス制御付きの Docker ログの表示とストリーミングを有効にできます。
アラート
期間を指定して、4 つのメトリクスにしきい値を設定します。エラー数、実行時間(最大、平均、または p95)、LLM のトークン数または米ドルでの支出、実行回数です。アクセス可能な 1 つのワークフローまたはすべてのワークフローをアラートの対象にできます。
5 ステップのウィザードで、種類、対象、条件、応答、確認の各項目を設定します。ルールを自然言語で説明すると、AI がフォームに入力します。保存前に、過去の期間に対して条件をプレビューできます。デフォルトでは、アラートは 1 回発火し、メトリクスが回復するまで次の発火を待ちます。
アラートからワークフローを実行し、観測値、しきい値、期間、関連する詳細を入力として渡すことができます。既存の Slack、メール、または Telegram ノードを使って通知を配信します。Chat タブでは、既存のアラートや、アラートが発火した理由を確認できます。アラートをご覧ください。
評価:テスト、比較、改善
システムプロンプト、テスト入力、期待される出力を含むスイートを作成します。同じケースを複数のモデルで実行し、実行を繰り返して応答を比較できます。スコア、実際の出力と期待される出力、レイテンシ、トークン使用量、保存された実行履歴を確認できます。
評価結果をもとに、プロンプトの変更、追加のテストデータの生成、AI によるプロンプト改訂を依頼できます。これらの結果を実行トレースや Workflow Analyzer のレポートと組み合わせて、運用中のシステムを改善できます。評価とワークフロー分析をご覧ください。
Human-in-the-Loop(HITL)
エージェントのレビュー用チェックポイントにより、人間による承認を実行の一部として組み込めます。エージェントがレビューを要求すると、Heym は実行スナップショットを保存し、実行を保留中としてマークします。エージェントの review ブランチから、レビューリンクと概要を Slack、メール、または別の通知フローに送信できます。
レビュー担当者は承認、編集して続行、または拒否を選択できます。Heym は、決定とレビュー済みのテキストを後続ノードから利用できる状態で、保存されたスナップショットから実行を再開します。エージェントは同じ実行中に、さらにチェックポイントを要求できます。Human-in-the-Loopをご覧ください。
ガードレールとアクセス制御
LLM とエージェントの入力メッセージに対して、カテゴリ別および多言語対応のガードレールを設定できます。チェックはモデル呼び出しの前に実行され、違反はワークフローのエラー処理パスにルーティングされます。
暗号化された認証情報とチーム共有を管理し、スコープ付き実行トークンを使用します。ワークフロー認証とレート制限を設定し、SSO 用の OIDC ID プロバイダーを接続できます。ガードレール、チーム、認証情報の共有、SSO、セキュリティをご覧ください。
OpenTelemetry トレーシング
ワークフローの実行ごとにルートスパン、ノードごとに子スパン、Agent ツールごとにツールスパン(heym.agent.tool.execute)をエクスポートし、OTLP/HTTP 経由で Jaeger、Grafana Tempo、Honeycomb、Datadog、または任意の OpenTelemetry バックエンドに送信します。スパンには、ワークフロー ID、ノードの種類、ステータス、実行時間、LLM のトークン使用量、ツールの識別情報とステータスが含まれます。また、受信 Webhook、送信 HTTP、サブワークフロー間で W3C トレースコンテキストが伝播します。HEYM_OTEL_* 環境変数でトレーシングを有効にし、Settings → Observability でステータスを確認してください。設定とスパンの詳細は、OpenTelemetry Tracing を参照してください。
ワークフローのデプロイと呼び出し
同じランタイムで、ユーザー、バックエンドサービス、外部エージェントにサービスを提供できます。システムの用途に応じてインターフェースを選択してください。
| インターフェース | エンドポイントまたは画面 | 用途 |
|---|---|---|
| REST | POST /api/workflows/{workflow_id}/execute | アプリケーションまたは HTTP Webhook からワークフローを呼び出します。 |
| SSE | POST /api/workflows/{workflow_id}/execute/stream | 実行の進行状況とノードイベントをクライアントにストリーミングします。 |
| MCP サーバー | /api/mcp/sse | ワークフローを MCP クライアント向けのツールとして公開します。 |
| ポータル | /chat/{slug} | ワークフローを活用したチャットインターフェースをユーザーに提供します。 |
| ダッシュボード | ダッシュボードタブ | ワークフローを活用したウィジェットを実行して、グラフや運用状況を表示します。 |
| ボード | ボードタブ | カードのコンテキストと履歴を持つ永続ジョブとして、ワークフローのチェーンを実行します。 |
| スケジュールとイベント | Cron と統合トリガー | 時刻、メッセージ、アップロード、またはプラットフォームイベントに応じて実行します。 |
エディターの Run with cURL ダイアログでは、ノードごとの開始メッセージやリアルタイムのイベント出力を含む、REST または SSE 用のコマンドを生成できます。認証、リクエスト本文、イベント形式については、Webhooks と SSE Streaming を参照してください。
ポータル
ワークフローを /chat/{slug} に公開されるチャットインターフェースに変換できます。ユーザーごとの認証、ストリーミング応答、ファイルアップロード、複数ターンの会話履歴にも対応しています。ワークフローから、社内ツールや顧客向けチャットインターフェースを直接構築できます。ポータル を参照してください。
ワークフローを活用したダッシュボード
カスタムダッシュボードの各ウィジェットは、それぞれ独自の非表示 Heym ワークフローを基盤としています。ワークフローのロジックを使ってデータを取得、変換、検索、生成し、結果をダッシュボードのグラフとして表示できます。ダッシュボード を参照してください。
📝 式 DSL
すっきりとした構文で、ノード間のデータを参照および変換できます。
$input.text // Trigger input
$nodeName.field // Any upstream node output
$global.variableName // Persistent global variable
$now.format("YYYY-MM-DD HH:mm") // Date/time formatting
$UUID // Random unique ID
$range(1, 10) // Generate number range
$input.items.filter("item.active") // Array filtering
$input.users.map("item.email") // Array mapping
$input.text.upper() // String helpers
プロンプト、HTTP ヘッダー、条件、メール本文、Redis キーなど、対応するノードフィールドで式を使用します。式 DSL リファレンス を参照してください。
🏗️ 技術スタック
| レイヤー | テクノロジー |
|---|---|
| フロントエンド | Vue.js 3 + TypeScript(strict)+ Vite + Bun |
| UI コンポーネント | Shadcn Vue + Tailwind CSS |
| キャンバス | Vue Flow |
| 状態管理 | Pinia |
| バックエンド | Python 3.11+ + FastAPI + UV |
| データベース | PostgreSQL 16 + SQLAlchemy 2.0(async) |
| 認証 | JWT(access + refresh)、bcrypt、オプションの OpenID Connect SSO ログイン |
📁 プロジェクト構成
heym/
├── frontend/src/
│ ├── components/ # Canvas, Nodes, Panels, Credentials, Evals, MCP, Teams
│ ├── views/ # DashboardView, EditorView, ChatPortalView
│ ├── stores/ # Pinia (workflow, auth, folder)
│ ├── services/ # API clients
│ └── docs/content/ # In-app documentation (Markdown)
├── backend/
│ ├── app/
│ │ ├── api/ # Routes: workflows, auth, mcp, portal, evals, traces
│ │ ├── models/ # Pydantic schemas
│ │ ├── services/ # Executor, node handlers, LLM, RAG, agent engine
│ │ └── db/ # SQLAlchemy models and database configuration
│ ├── tests/ # Backend unit tests
│ └── alembic/ # Database migrations
├── docker-compose.yml
├── run.sh # Local development launcher
├── check.sh # Project validation script
└── deploy.sh # Docker production deployer
⚙️ 環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
DATABASE_URL | 任意のデータベース接続文字列の上書き | POSTGRES_* から自動生成 |
POSTGRES_HOST | DATABASE_URL が空の場合に使用するデータベースホスト | localhost |
POSTGRES_PORT | DATABASE_URL が空の場合に使用するデータベースポート | 6543 |
SECRET_KEY | JWT 署名キー | 未設定 |
ENCRYPTION_KEY | 保存された認証情報を保存時に暗号化します。起動時に必須です。python -c "import secrets; print(secrets.token_hex(32))" で生成してください | 未設定 |
BACKEND_PORT | バックエンドサーバーのポート | 10105 |
FRONTEND_PORT | フロントエンドサーバーのポート | 4017 |
ALLOW_REGISTER | ユーザー登録を有効にします | true |
REQUEST_BODY_MAX_SIZE_MB | バックエンドの HTTP リクエストボディの最大サイズです。FILE_MAX_SIZE_MB にマルチパートのオーバーヘッド分として 1 MB を加えた値として、デフォルトで 100 に設定されます | 100 |
HEYM_OTEL_ENABLED | ワークフロー、ノード、エージェントのツール実行に対する OpenTelemetry トレースを有効にします | false |
HEYM_OTEL_EXPORTER_OTLP_ENDPOINT | OTLP/HTTP のベースエンドポイントです。例:http://collector:4318(スパンは /v1/traces に送信されます) | 未設定 |
HEYM_OTEL_EXPORTER_OTLP_HEADERS | 認証用の、カンマ区切りの key=value エクスポーターヘッダー | 未設定 |
HEYM_OTEL_SERVICE_NAME | service.name リソース属性 | heym |
HEYM_OTEL_TRACES_SAMPLER_RATIO | 親ベースのヘッドサンプリング比率(0.0~1.0) | 1.0 |
HEYM_OTEL_CAPTURE_NODE_IO | 切り詰めたノードの入力/出力をノードスパンに付加します | false |
HEYM_MCP_ALLOW_PRIVATE_URLS | プライベート/ループバック/メタデータアドレス上の MCP HTTP/SSE サーバーを許可します(SSRF ガードを無効化)。ホスト型/マルチテナント環境では false のままにしてください | false |
すべての項目については、ENVIRONMENT-VARIABLES.md を参照してください。
🛠️ 開発
前提条件: Bun ≥ 1.0 · Python ≥ 3.11 · UV · Docker
# Start all services (recommended)
./run.sh
./run.sh --no-debug # INFO logging instead of DEBUG
または、各サービスを手動で起動します:
# Start database only
docker-compose up -d postgres
# Backend
cd backend && uv sync && uv run alembic upgrade head
uv run uvicorn app.main:app --reload --port 10105
# Frontend (separate terminal)
cd frontend && bun install && bun run dev
検証:
./check.sh # Frontend lint/typecheck; backend format, lint, and tests
# If SECRET_KEY is not exported locally:
SECRET_KEY=test-secret-key-for-tests-only-32-bytes ./check.sh
# Frontend unit and browser tests run separately
(cd frontend && bun run test)
./run_e2e.sh
または、個別に実行します:
(cd frontend && bun run lint && bun run typecheck && bun run test)
(cd backend && uv run ruff check . && uv run ruff format .)
すべてのプルリクエストでは、PR チェックワークフローが実行されます。これには、ファイル行数の上限チェック、フロントエンドの ESLint、TypeScript の厳密な型チェック、フロントエンドの Vitest 単体テスト、本番ビルド、バックエンドの Ruff によるフォーマットとリント、バックエンドの単体テストスイート、および稼働中の Postgres サービスに対する Playwright E2E テストが含まれます。
バックエンドは、バックエンドサーバーの /docs(ローカル開発ではポート 10105)で OpenAPI リファレンスを公開します。
ドキュメントと全機能
すべての機能の簡単な説明を含む一覧は、全機能 を参照してください。Getting Started、すべてのノードタイプ、リファレンストピック(Expression DSL、ワークフロー構造、リアルタイムキャンバスコラボレーション、Webhook、SSE ストリーミング、AI アシスタント、ドキュメントとのチャット、ポータル、セキュリティなど)、およびすべてのダッシュボードタブ(Workflows、Templates、Variables、Chat、Credentials、Vectorstores、MCP、Traces、Alerts、Analytics、Evals、Teams、Logs など)を網羅しています。
現在の記事に基づいた質問をするには、ドキュメントのヘッダーにある Chat with Docs を使用してください。Ctrl+K を押すと、コマンドパレットから検索、ナビゲーション、ワークフローアクションを開けます。
📄 ライセンス
Heym は、Commons Clause の条件が付いた MIT License の下でソースコードを公開しています。これらの条件の下で、使用、変更、配布、セルフホストが可能です。Commons Clause によって制限される権利については、商用ライセンスを利用できます。これには、Heym に実質的に価値が由来する製品やサービスの販売が含まれます。詳細な条件については、両方のライセンスファイルを参照してください。
💬 コミュニティ
Discord に参加して、コミュニティと交流し、質問したり、ワークフローを共有したり、最新情報を確認したりしましょう。
🧩 テンプレートを共有
コミュニティ向けにワークフローテンプレートを公開しませんか? テンプレートページ から直接送信できます。ダイアログを開いて、ワークフロー DSL を貼り付け、レビューに送信してください。プルリクエストは不要です。
コードで貢献したい場合は、プルリクエストを作成する前に一緒に相談できるよう、ディスカッションを開始 してください。
⭐ 最新情報を確認

Heym は、制御性を求める開発者と、本番環境への信頼できる道筋を必要とするエンタープライズチームのために作られています。GitHub で Heym にスター ⭐ を付けて、リリース情報を受け取り、より多くのビルダーに知ってもらいましょう。
🏢 エンタープライズ
商用ライセンス、デプロイサービス、プロフェッショナルサポートにより、チームはプライベートインフラストラクチャ上でエージェントシステムを構築・運用できます。
提供内容:
- 製品またはサービス向けの商用ライセンス
- デプロイ計画、アーキテクチャレビュー、インフラストラクチャサポート
- カスタム連携と機能開発
- エンタープライズのセキュリティおよび ID 要件への対応
- オンボーディング、トレーニング、トラブルシューティング、ソリューションサポート
- 優先サポートと SLA 契約
実行履歴、可観測性、評価、チーム管理、SSO、負荷分散、Portal などのコアランタイム機能は、セルフホスト可能な製品の一部です。
📧 お問い合わせ: [email protected]
Vue.js、FastAPI、そして大量の LLM トークンを使って ❤️ を込めて構築しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。