SocialHub.AI
エンジニアリングリファレンス · Socialhub Harness

すべての AI アクターを実行するランタイム

モデルは言語を与えてくれます。それ自体では、実際のデータに確実に定着したり、適切なツールを選択して正しく呼び出したり、呼び出しが失敗したときに回復したり、複数ステップのタスクを完了まで実行したり、再現できる軌跡を残したりすることはできません。 Socialhub Harness は、これらすべてを行う エンタープライズ エージェント ランタイム であり、有能なモデルを信頼できるエージェントに変える実行エンジンです。

Flash のすべての AI アクター (マーケティング、ロイヤルティ、リスク マネージャー、メンバー コンシェルジュ、およびすべての舞台裏のジェネレーター) は エージェント定義 です。つまり、この ランタイムが実行する構造化されたブループリント (モデル ルーティング、コンテキスト ソース、スキル、スコープを備えたツール、MCP サーフェス、ワークフロー、メモリ、ループ ポリシー) です。また、すべてのアクターが 1 つのランタイムを介して実行されるため、ガバナンスは別個の製品ではなく、統合された実行の構造的なプロパティです。モデルは言語を提供します。ランタイムはアクションを与えます。統合されたランタイムにより、ガバナンスが無料で提供されます。

このリファレンスは、そのランタイムに対する開発者の見解です。つまり、ランタイムが実行時に行うこと、ランタイムが実行する定義タイプとその軸、スキルが実行ステップにどのように構成されるか、各実行がイベント ログに出力する再現可能な軌跡、およびすべてを 1 か所で実行する場合に発生するガードです。事業概要については、Socialhub Harness 製品ページをご覧ください。

ランタイムが実行時に行うこと

ここがシステム全体のポイントとなるため、ここから始めます。実行が開始されると、Harness ランタイムは、言語モデル自体では実行できない作業 (以下の 5 つの作業を順に) を実行します。その結果、タスクが完了するまで運ばれ、、 再生できる軌跡が得られます。

1 · Context assembly

ランタイムはアクターを接地します。ランタイムは、実行ごとに概要と実際のビジネス事実 (タスク、メンバー/セグメントのロールアップ、ブランド キット、メトリクス) を PII を最小限に抑えて組み立てます。モデルがデータを推測することはありません。それは手渡されます。

2 · Model routing

ランタイムは、定義名に基づいて、フォールバックを使用して各ステップを実行する推論エンジンを解決します。ルーティングはランタイムの仕事であり、プロンプトの仕事ではありません。

3 · Skill composition into steps

ランタイムは、構成されたスキルの順序付けされたステップと意思決定のガイダンスをプロンプトに挿入するため、実行されるのは、モデルが即席で作成したものではなく、名前付きのバージョン管理されたプロシージャです。

4 · The tool loop

ランタイムは、select-call-observe ループを駆動します。つまり、管理されたツールを選択し、権限をチェックし、呼び出して、結果を読み取り、障害が発生した場合は回復またはエスカレーションします。これは、ベア モデルの呼び出しには信頼性がありません。

5 · A reproducible trajectory

すべてのステップは追加専用イベント ログに順番に出力され、実行 ID と正確なブループリント バージョンがスタンプされるため、実行は段階的に監査可能であり、再生可能です。

モデルは言語を与えます。ランタイムはアクションを与えます。統合されたランタイムは無料でガバナンスを提供します。 以下のすべて (ランタイムが実行する定義、スキルの構成方法、生成されるイベント ログ、および保持するガード) は、すべてのアクターに対して 1 か所で実行されるこれら 5 つのステップに従います。

エージェント定義の構造 - ランタイムが実行する内容

ランタイムは定義を実行します。これは、コードや自由形式のプロンプトではなく、構造化されたブループリントであり、以下の部分を構成します。それらのいずれかを編集すると、ランタイムが次回の実行時に取得する新しいバージョンのブループリントが生成されます。バージョンは、run が発行するすべてのイベントにスタンプされます。

ブループリント部分構成されているもの
モデルルーティングどの推論エンジンが各ステップとフォールバックを実行するか。モデルに名前を付けます。ランタイムがそれを解決します。
コンテキストソース攻撃者が開始する概要とビジネス上の事実 (タスク、メンバー/セグメントのロールアップ、ブランド キット、メトリクス) は実行ごとにまとめられ、PII が最小限に抑えられます。
スキルアクターに基づいて構成された構造化されたプレイブック (以下を参照)。自由形式のプロンプトではなく、名前付きプロシージャ。
ツールアクターが実行できる管理されたアクション。それぞれにスコープがあります。定義ではツールに名前を付けます。それは決してそれを許しません。データベースが権威です。
MCP 表面スコープ付きキーを保持する外部エージェントに対して、モデル コンテキスト プロトコルを介してどのツールが公開され、どのギアの下で公開されるか。
ワークフロー順序付けられたステップまたはグラフは、ワークリストおよびオーケストレーションされたアクターに対してランタイムを駆動します (請求、読み取り、決定、行動、完了)。
メモリアクターがステップやランをまたいで運ぶことができるもの、そして毎回新しく読み直す必要があるもの。 PII のスクラッチ パッドではなく、制限されています。
ループポリシー停止ルール: 最大ステップ数、予算の上限、および人間へのエスカレーション条件。ランタイムはそれを強制します。俳優はそれを延長することはできません。

これは機能に名前を付けます。 定義はツール、モデル、またはデータ ソースを参照できますが、このワークスペースとこのキーが実際にそれを使用できるかどうかは、呼び出し時にデータベースに対してランタイムによって解決されます。ブループリントは構成面です。ランタイムは権限を 1 か所で解決するため、以下のガードは無料で保持されます。

3つの軸で記述される1つの定義タイプ

すべてのアクターに対して 1 つの Definition タイプがあります。ペルソナごとにフォークするのではなく、直交軸に沿って記述されるため、アクターが外部エージェント、Flash 内ループ、またはシングルショット ジェネレーターのいずれであっても、同じランタイム、イベント ログ、ガードが適用されます。

軸価値観捉えられるもの
runtimeFormmcp_external · server_orchestrator · inline_function定義がどのように実行されるか。 mcp_external = スコープ付きキーを保持し、MCP を介して呼び出しを行う外部エージェント。 server_orchestrator = Flash 内ループは、ランタイムを段階的に駆動します。 inline_function = 画面のフローで呼び出されるシングルショット ジェネレーター。
agentTypeemployee · chatbot · functionビジネスにとってそれは何なのか。従業員 = あなたが管理する名前付きの従業員 (目標、タスク、フィードバック)。チャットボット = 実際のデータに基づいた会話の表面。 function = ペルソナを持たない単一目的のジェネレーターまたは分類子。
技術的な種類agent · generator · embedded · custom · workflowブループリントのエンジニアリング分類 - 構成されたマルチステップ エージェント、インライン ジェネレーター、組み込み機能、ワークスペースのカスタム定義、またはマルチステップ ワークフロー グラフ。
事業領域8 つのドメインのうちの 1 つ (右)サービスを提供するビジネスの部分: マーケティングとキャンペーン、ロイヤルティと維持、リスクとコンプライアンス、会員サービス、コンテンツとクリエイティブ、顧客インテリジェンス、分析と洞察、調査とシミュレーション。

40 人以上の管理対象アクター、1 つのモデル。 ライブ名簿は、5 つの構成エージェント (マルチステップ、サーバー調整: 4 人のマネージャーとメンバー コンシェルジュ)、28 のインライン関数 (製品を介してスレッド化されるシングルショット ジェネレーターと分類子)、および 8 つの組み込み機能 (画面上のインフロー ヘルパー) です。それらはどれも同じ定義タイプであり、上の軸に沿ってのみ異なります。

スキル: エージェント上に構築されたデータベース権限のあるプレイブック

スキルは構造化されたプレイブックであり、データベースに保存され、新入社員に SOP を渡すのと同じ方法でエージェントの設計図に組み込まれます。これはプロンプト テキストの段落ではなく、次の部分からなる入力されたレコードです。

trigger

このスキルが現在の実行に適用される条件。

required state

スキルが責任を持って実行されるために存在する必要があるメンバー/ビジネスの状態。存在しない場合、スキルは人に対して閉じられません。

tool allowlist

このスキルでエージェントが使用できるツールのサブセット。ブループリントで既に許可されている範囲を絞り込むものであり、決して拡大するものではありません。

ordered steps

ランタイムが順番に実行するプロシージャ。

verifier rules

ステップが完了したとみなされる前に、結果を渡す必要があるチェック。

decision guidance

選択方法 (保留またはエスカレーションのタイミングを含む) は、ハードコーディングされたブランチではなく、ガイダンスとして表現されます。

実行時に、ランタイムは。つまり、実行されるのは「モデルが思いついたもの」ではなく、チームが読んで承認できる名前付きのバージョン付きプロシージャです。スキルはデータベース権限であるため、同じスキルを複数のエージェントに構成でき、スキルを変更すると、そのスキルを使用するすべてのエージェントが変更されます。再デプロイは必要ありません。

ランタイムの出力: 再現可能な軌跡

再生可能な軌跡の生成は、ランタイムの動作のステップ 5 であり、監査証拠でもあります。アクターがどのようなものであっても、実行するたびに、イベントのストリームが単一の追加専用イベント ログに出力されます。各イベントには、実行 ID とそのイベントを生成した正確なブループリント (定義) バージョン がスタンプされているため、実行は監査可能であり、再生可能です。実行によって発行される順序付けされたイベント タイプは次のとおりです。

01実行が開始されました02ユーザーの意図03コンテキストがロードされました04選択されたモデル05すぐに組み立てられました06推論07権限チェック08というツール09ツールの結果10アクション/結果11料金12実行が終了しました

これらに加えて、ログには ミラーリングされた MCP ツール呼び出し (攻撃者が MCP を介して Flash を運転したとき) と最後の ビジネス結果 が記録されます。そのため、意図から結果までの軌跡が 1 か所に保存されます。

// one run's trajectory (abbreviated — every event carries runId + definitionVersion)
{
  "runId": "run_a1f9…",
  "definition": "loyalty-manager",
  "definitionVersion": 4,
  "events": [
    { "type": "run_started",     "at": "2026-08-26T09:14:02Z" },
    { "type": "user_intent",     "intent": "work the win-back worklist" },
    { "type": "context_loaded",  "sources": ["task", "member_rollup", "churn_signal"] },
    { "type": "model_selected",  "model": "…" },
    { "type": "prompt_assembled","skill": "winback-worklist-execution" },
    { "type": "reasoning",       "summary": "high value, at-risk, consented" },
    { "type": "permission_check","tool": "issue_coupon", "result": "allowed" },
    { "type": "tool_called",     "tool": "issue_coupon", "args": { "value": 10 } },
    { "type": "tool_result",     "ok": true },
    { "type": "cost",            "tokens": 3120, "usd": 0.04 },
    { "type": "run_ended",       "outcome": "coupon issued · within budget" }
  ]
}

Flash アプリを通じてランニングの軌跡を読み取ります。 ID ごとに 1 つの実行を取得するか、最近の実行をリストします。

# one run's full trajectory
GET https://flash.socialhub.ai/api/flash/agent-runs/{runId}

# list recent runs
GET https://flash.socialhub.ai/api/flash/agent-runs

エントリは編集されることはなく、追加されるだけです。ログは、各アクターが何を行ったのか、その理由を示す完全な履歴であり、スタンプされた実行 ID とブループリントのバージョンから段階的に再構成できます。

無料のガバナンス: 5 つのフェールクローズ ガード

統合ランタイムのメリットは次のとおりです。 すべてのアクターの実行は 1 つのランタイムを介してフローされるため、安全床を各エージェントにボルトで固定する必要はありません。これは、すべてのアクションが通過する単一の場所の構造的特性です。これら 5 つのガードはコードで所有されており、すべてのアクションですべてのアクターの下で実行され、設定によってそれらをオフにすることはできません。定義の構成 (スキル、ツール、モデル、コンテキスト) は、AI 従業員コンソールで構成できます。下の警備員はそうではありません。

ガード強制するもの
認可範囲 × プラン層すべてのツール呼び出しは、キーのスコープとワークスペースのプラン階層の両方に対してチェックされます。定義ではツール名が指定され、そのツールを実行する権限はデータベースに格納され、呼び出し時に解決されます。キーがアクセスできないツールは非表示になります。
書き込み値の上限 + レート値を移動する書き込み (ポイント、クーポン) は、呼び出しごとの値の上限とキーごとの書き込み速度制限によって制限され、どちらもサーバー上で強制的にフェールクローズされます。攻撃者のプロンプトやクライアント側の確認要求には関係ありません。
予算台帳各実行はトークン + コストのバジェット内で実行され、アクターが動作する前に事前にチャージされ、実行中に引き落とされます。台帳が使い果たされると、実行は停止します。アクターは支出を持って逃げることはできません。
キルスイッチすべてのアクター (定義全体または 1 つのアクション) を即座に一時停止できます。デフォルトではオフで、オンの場合は上限が設定され、停止したいときにすぐに停止できます。
監査すべてのステップは、実行 ID と正確なブループリント バージョンとともに追加専用イベント ログに書き込まれます。アクターの行動が記録されないことはありません。また、ログ エントリを抑制する設定はありません。

/flash/agents でコンポジションを設定します。 AI 従業員コンソールでは、アクターのスキル、ツール、モデル、コンテキストを編集し、新しいバージョンのブループリントを作成します。そこで決して編集できないのは安全フロアです。上記の 5 つのガードは、設定ではなくコードで適用されます。

Harness がプラットフォームの残りの部分と適合する場所

Harness は、すべての AI アクターの下での実行ランタイムです。また、すべてがそこを介して実行されるため、ガバナンス層も実行されます。 2 つの隣接する参照が、依存する部分をカバーしています。

  • MCP サーフェス。 mcp_external アクターはスコープ付きキーを保持し、モデル コンテキスト プロトコルを介して Flash の管理ツールを呼び出します。エンドポイント、認証、クライアント構成、および完全なツール カタログは、MCP 統合ガイド に記載されています。
  • 承認ギアと承認。 アクションごとのギア (自動 / レビュー / 禁止)、保留中 / 拒否された書き込みセマンティクス、および承認ガードの上位にある承認ライフサイクルについては、AI ガバナンス: イントロスペクションと承認 に文書化されています。