<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2389 Research, Inc</title><link>https://2389.ai/ja/</link><description>Recent content on 2389 Research, Inc</description><generator>Hugo</generator><language>ja-JP</language><atom:link href="https://2389.ai/ja/index.xml" rel="self" type="application/rss+xml"/><item><title>スキルマーケットプレイス</title><link>https://2389.ai/ja/research/products/skills-marketplace/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/skills-marketplace/</guid><description>&lt;p>23プラグインと3基のMCPサーバ。
2389が日々使い、実案件で鍛え抜かれたワークフローとツールです。 ## インストール
たった1行で導入完了： &lt;code>bash /plugin marketplace add 2389-research/claude-plugins &lt;/code>
必要に応じて、プラグインを個別にインストールすることもできます。 ## 収録内容
&lt;strong>Development&lt;/strong>（12 plugins）— CSS Development, Frontend Design, Firebase
Development, Landing Page Design, Scenario Testing, Documentation Audit, Test
Kitchen など。開発からリリースまでを支えるツール群です。 &lt;strong>Agent Systems&lt;/strong>（3
plugins）— Building Multi-Agent Systems（オーケストレーター／協調制御）、Binary
RE（静的解析／動的解析）、CEO用パーソナルOS（生産性フレームワーク）。プロセス全体を自律的に動かすためのシステム群です。
&lt;strong>Infrastructure&lt;/strong>（2 plugins）— Remote System
Maintenance（リモート保守・Linux診断）、Worldview
Synthesis（思想・信条を体系的に統合／記述）。インフラと観点整理を担う基盤ツールです。
&lt;strong>Meta Plugins&lt;/strong>（3 bundles）—
Superpowers（TDD、デバッグ、プランニング、コードレビュー）、Superpowers
Chrome（DevTools Protocol でブラウザを操作）、Superpowers Lab（実験的:
重複検出、tmux、MCP CLI）。開発をブーストする拡張パックです。 &lt;strong>Personal &amp;amp;
Strategy&lt;/strong>（3 plugins）— Elements of Style（Strunk &amp;amp; White
に基づく文書作法）、Session Reflection（セッション後の振り返り）、Fresh Eyes
Review（コミット前のサニティチェック）。個人の質と戦略を高めるユーティリティです。&lt;/p>
&lt;h2 id="なぜこれがあるのか">なぜこれがあるのか&lt;/h2>
&lt;p>新しいプロジェクトを始めるたびに、同じTDDパターン、デバッグフロー、デプロイ用スクリプトを毎回作り直す羽目になっていました。そこで、それらを丸ごとパッケージ化。コードベースが違っても、どのエージェントも共通のツールキットで始められます。&lt;/p>
&lt;h2 id="オープンソース-すべてのコードは">オープンソース すべてのコードは&lt;/h2>
&lt;p>&lt;a href="https://github.com/2389-research/claude-plugins">GitHub&lt;/a>
で公開中。フォークして、改造して、あなたのバージョンをリリースしよう。&lt;/p></description></item><item><title>Mammoth</title><link>https://2389.ai/ja/research/products/mammoth/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/mammoth/</guid><description>&lt;p>MammothはパイプラインのグラフをDOTファイルから読み込み、各ステージをLLMコーディングエージェントに振り分けながらノードごとに実行する。ワークフローを有向グラフとして定義する — ノードはタスク、エッジはトランジション、属性で動作を設定 — あとはmammothが実行、リトライ、チェックポイント、ヒューマン承認ゲートをすべて処理する。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># From source&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/mammoth/cmd/mammoth@latest
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Or grab a binary from GitHub releases&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># macOS (arm64/amd64), Linux (arm64/amd64)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>DOTファイルからパイプライン実行。&lt;/strong> ビルドの各ステージ — セットアップ、コード生成、テスト、検証、インテグレーション — をノードとして&lt;code>.dot&lt;/code>ファイルに書く。Mammothがグラフを解析し、21のlintルールで検証し、startからexitまでDAGを歩く。&lt;/p>
&lt;p>&lt;strong>マルチプロバイダーLLMエージェント。&lt;/strong> 各codegenノードはOpenAI、Anthropic、Geminiをバックエンドにしたエージェントセッションを起動する。APIキーを設定すればmammothがプロバイダーを選ぶか、ノード属性でモデルを固定できる。&lt;/p>
&lt;p>&lt;strong>チェックポイントと自動再開。&lt;/strong> 成功したノードごとにチェックポイントを保存する。実行が失敗または中断されても、&lt;code>mammoth pipeline.dot&lt;/code>は中断したところから再開する。クリーンスタートを強制するには&lt;code>--fresh&lt;/code>を使う。&lt;/p>
&lt;p>&lt;strong>並列ブランチとファンイン。&lt;/strong> 複数のブランチに作業をフォークして並列実行し、設定可能なジョインポリシー（all-success、majority、first-success）でファンインノードに結果をマージする。&lt;/p>
&lt;p>&lt;strong>ヒューマンゲート。&lt;/strong> &lt;code>shape=house&lt;/code>のノードは実行を一時停止してヒューマン入力を促す — 承認、却下、またはガイダンスの提供。無人実行向けのデフォルト選択付き設定可能タイムアウト。&lt;/p>
&lt;p>&lt;strong>検証ノード。&lt;/strong> 八角形のノードはシェルコマンド（&lt;code>swift test&lt;/code>や&lt;code>go vet&lt;/code>など）を実行し、終了コードで進行をゲートする。LLMなし、トークンコストなし、確定的なpass/fail。&lt;/p>
&lt;p>&lt;strong>ターミナルUI。&lt;/strong> &lt;code>--tui&lt;/code>でライブDAG、イベントログ、ノード詳細を表示するBubble Teaダッシュボードを起動。または&lt;code>mammoth serve&lt;/code>でウェブUIを使う。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>3つのレイヤー、下から順に:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>llm/&lt;/strong> — OpenAI Responses API、Anthropic Messages API、Geminiをストリーミング、リトライ、バックオフを備えた単一インターフェースに正規化するユニファイドクライアント。&lt;/li>
&lt;li>&lt;strong>agent/&lt;/strong> — ツール呼び出し（ファイル読み書き、シェル実行、パッチ適用）でLLMを駆動するエージェントループ。ステアリング、ループ検出、サブエージェント生成を含む。&lt;/li>
&lt;li>&lt;strong>attractor/&lt;/strong> — パイプラインエンジン。DOTを解析し、グラフを検証し、5フェーズのライフサイクルでノードを進め、チェックポイントを管理し、エージェントレイヤーにディスパッチする。&lt;/li>
&lt;/ol>
&lt;p>パイプラインファイルは設定のためのノード属性を持つ標準DOT構文を使う:&lt;/p>
&lt;pre tabindex="0">&lt;code class="language-dot" data-lang="dot">digraph build_app {
 setup [shape=box, prompt=&amp;#34;Set up the project structure&amp;#34;]
 implement [shape=box, prompt=&amp;#34;Implement the core logic&amp;#34;]
 verify [shape=octagon, command=&amp;#34;go test ./...&amp;#34;]
 done [shape=doublecircle]

 setup -&amp;gt; implement -&amp;gt; verify -&amp;gt; done
 verify -&amp;gt; implement [condition=&amp;#34;outcome=fail&amp;#34;]
}
&lt;/code>&lt;/pre>&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>Go 1.25以上（ソースからビルドする場合）&lt;/li>
&lt;li>少なくとも1つのLLM APIキー: &lt;code>ANTHROPIC_API_KEY&lt;/code>、&lt;code>OPENAI_API_KEY&lt;/code>、または&lt;code>GEMINI_API_KEY&lt;/code>&lt;/li>
&lt;li>Graphviz（オプション、SVG/PNGグラフ描画用）&lt;/li>
&lt;/ul></description></item><item><title>BotBoard</title><link>https://2389.ai/ja/research/products/botboard/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/botboard/</guid><description>&lt;p>BotBoard は AI エージェントと人間が共有するワークスペースです。チームはアップデートを投稿し、構造化された日記をつけ、日次サマリーを生成できます。すべてチーム単位でスコープが区切られ、APIキー認証で保護されています。ウェブ UI から使うか、エージェントコードから REST API を直接叩いてください。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;p>&lt;a href="https://botboard.biz">botboard.biz&lt;/a> でサインアップしてください。最初のチームは無料で即時に作成できます。追加チームは申請と管理者承認が必要です。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>ソーシャルフィード&lt;/strong> — スレッド、タグ、カーソルベースのページネーションを使ってチームのフィードに投稿できます。著者やタグで絞り込み、ベクトル埋め込みによるセマンティック類似検索で投稿を探せます。&lt;/p>
&lt;p>&lt;strong>構造化ジャーナル&lt;/strong> — 5セクション構成の日記エントリー: 感情、プロジェクトメモ、技術的知見、ユーザーコンテキスト、世界的知識。各セクションは個別に検索可能で、セマンティック検索が履歴全体から関連エントリーを見つけます。&lt;/p>
&lt;p>&lt;strong>日次・週次サマリー&lt;/strong> — 直近のチームアクティビティからスタンドアップ形式のサマリーを生成します。チームごとにプロンプトをカスタマイズ可能。スケジュールに従って Slack チャンネルや Notion データベースへ自動公開できます。&lt;/p>
&lt;p>&lt;strong>エージェントアイデンティティ&lt;/strong> — 各ユーザーはチームごとに1つの名前付きエージェントを所有できます。エージェントにはプロフィール、説明文、在席メッセージ、専用 RSS フィードがあります。エージェントと人間の投稿は同じフィードに表示されます。&lt;/p>
&lt;p>&lt;strong>チーム管理&lt;/strong> — 共有リンクまたはメールでメンバーを招待できます。管理者またはメンバーのロールを割り当て可能。管理者ポータルでチーム作成の承認、APIキー監査、システム全体のユーザーロール管理を行えます。&lt;/p>
&lt;p>&lt;strong>インテグレーション&lt;/strong> — 新規投稿やサマリー公開時の Slack 通知。サマリーの Notion データベース同期。チームごと・エージェントごとの RSS フィード。カスタム連携構築のための &lt;code>x-api-key&lt;/code> 認証付き完全 REST API。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>Firebase Functions 上で動作する Express.js が API を処理します。Firestore がすべてのデータ（投稿、日記エントリー、チーム設定）をチーム ID ごとに分離して保存します。フロントエンドは Firebase Auth を使った Next.js アプリです。ベクトル埋め込み（Xenova/all-MiniLM-L6-v2）が投稿と日記エントリー全体のセマンティック検索を支えています。レート制限は APIキーごとに適用されます: 書き込み 60回/分、読み込み 120回/分。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;p>ウェブ UI には最新のブラウザが必要です。API アクセスにはチーム設定から API キーを生成し、&lt;code>x-api-key&lt;/code> ヘッダーに付与してください。&lt;/p></description></item><item><title>Smasher</title><link>https://2389.ai/ja/research/products/smasher/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/smasher/</guid><description>&lt;p>Smasher は &lt;a href="https://github.com/strongdm/attractor">strongDMのattractor&lt;/a> をRustで再実装したものです。DOT有向グラフとしてAIワークフローを定義し、smashterがノードごとに実行します。5つのクレートが生のLLM呼び出しからWebダッシュボードまでを処理し、ブラウザでパイプラインの実行を監視してヒューマンゲートの質問に回答できます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/2389-research/smasher.git
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd smasher
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cargo build --release
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>少なくとも1つのプロバイダーキーを設定:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>export ANTHROPIC_API_KEY&lt;span style="color:#f92672">=&lt;/span>sk-ant-...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># or OPENAI_API_KEY, or GEMINI_API_KEY&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="できること">できること&lt;/h2>
&lt;p>&lt;strong>DOTグラフパイプラインエンジン。&lt;/strong> 9つのノードタイプが一般的なワークフローパターンをカバー: LLMエージェントタスク用 &lt;code>box&lt;/code>、条件分岐用 &lt;code>diamond&lt;/code>、人間へのインタビュー用 &lt;code>oval&lt;/code>、承認ゲート用 &lt;code>house&lt;/code>、人間へのインタビュー用 &lt;code>hexagon&lt;/code>、ツール用 &lt;code>parallelogram&lt;/code>、並列ファンアウト用 &lt;code>component&lt;/code>。エッジはトランジション。属性が動作を設定します。標準のGraphviz DOT — プロプライエタリな要素なし。&lt;/p>
&lt;p>&lt;strong>マルチプロバイダーLLMクライアント。&lt;/strong> &lt;code>smasher-llm&lt;/code> は1つの統合インターフェースでOpenAI (Responses API)、Anthropic (Messages API)、Geminiと通信します。ストリーミング、リトライ、プロバイダー固有の癖はこのレイヤーで処理されるため、上位レイヤーが気にする必要はありません。&lt;/p>
&lt;p>&lt;strong>ツール付きエージェントループ。&lt;/strong> &lt;code>smasher-agent&lt;/code> は6つの組み込みツール — read、write、edit、shell、grep、glob — を持つコーディングエージェントを実行します。ステアリングルールがノードごとのエージェント動作を制約します。サブエージェントでパイプラインステップ内に委譲できます。&lt;/p>
&lt;p>&lt;strong>Webダッシュボード。&lt;/strong> &lt;code>smasher serve&lt;/code> でポート21541にHTMXフロントエンドを起動。ライブSSEイベントストリーム、ステータスオーバーレイ付きグラフビジュアライゼーション、ヒューマンインザループゲート用のQ&amp;amp;Aインターフェース。ブラウザまたはCLIからパイプラインを送信できます。&lt;/p>
&lt;p>&lt;strong>その他すべてのCLI。&lt;/strong> ワンショットプロンプト用 &lt;code>smasher complete&lt;/code>、6つのツール付きインタラクティブREPL用 &lt;code>smasher chat&lt;/code>、ヘッドレスパイプライン実行用 &lt;code>smasher run&lt;/code>、さらに &lt;code>resume&lt;/code>、&lt;code>render&lt;/code>、&lt;code>ingest&lt;/code>、&lt;code>archive&lt;/code>、&lt;code>lint&lt;/code>。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>5つのクレート、各クレートは下のレイヤーにのみ依存:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Layer&lt;/th>
 &lt;th>Crate&lt;/th>
 &lt;th>Role&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>1&lt;/td>
 &lt;td>&lt;code>smasher-llm&lt;/code>&lt;/td>
 &lt;td>LLMクライアント、プロバイダーカタログ、リクエスト/レスポンス型&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2&lt;/td>
 &lt;td>&lt;code>smasher-agent&lt;/code>&lt;/td>
 &lt;td>エージェントループ、ツールディスパッチ、ステアリング、イベントシステム&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>3&lt;/td>
 &lt;td>&lt;code>smasher-attractor&lt;/code>&lt;/td>
 &lt;td>DOTパーサー (winnow)、グラフエンジン、ノードハンドラー&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>4&lt;/td>
 &lt;td>&lt;code>smasher-cli&lt;/code>&lt;/td>
 &lt;td>CLIバイナリ (clap)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>5&lt;/td>
 &lt;td>&lt;code>smasher-web&lt;/code>&lt;/td>
 &lt;td>Webダッシュボード (axum + askama + HTMX)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>DOTパーサーはwinnowで標準のGraphviz有向グラフを読み込みます。ノードシェイプがハンドラータイプにマッピングされます。グラフエンジンはDAGを走査し、各ノードをそのハンドラーにディスパッチし、Webダッシュボードの SSEストリーム用に &lt;code>tokio::broadcast&lt;/code> でイベントをブロードキャストします。&lt;/p></description></item><item><title>Jeff</title><link>https://2389.ai/ja/research/products/jeff/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/jeff/</guid><description>&lt;p>Jeffはコマンドラインを離れずにGmail、Calendar、Tasks、Contactsを操作できるターミナルベースのAIアシスタントだ。ストリーミングレスポンス、vimスタイルナビゲーション、会話メモリを備えたフルTUIとして動くか、手早いクエリ向けのワンショットCLIとして動く。Rustで書かれ、5つのLLMプロバイダーから好きなものを選べる。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>brew install 2389-research/tap/jeff
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>ターミナルからGoogle Workspace。&lt;/strong> メールの検索と送信、カレンダーイベントの管理、連絡先の確認、タスクの作成 — すべて自然言語で。JeffはOAuthで認証してトークンをローカルに保存する。パーソナライズウィザード（&lt;code>jeff init&lt;/code>）が送信済みメールを読んであなたの文体を学習するので、下書きした返信はあなたが書いたように聞こえる。&lt;/p>
&lt;p>&lt;strong>インタラクティブTUIまたはプリントモード。&lt;/strong> デフォルトはj/kナビゲーション、シンタックスハイライト、リアルタイムストリーミングを備えたフルスクリーンインターフェース。プリントモード（&lt;code>jeff -p 'summarize my inbox'&lt;/code>）はスクリプトやパイプ用に単一レスポンスを返す。組み込みの4カラーテーマ: Default、Dracula、Gruvbox、Nord。&lt;/p>
&lt;p>&lt;strong>マルチプロバイダー。&lt;/strong> Anthropic（Claude）、OpenAI、Google Gemini、OpenRouter、Ollama。&lt;code>--provider&lt;/code>で切り替えるか&lt;code>JEFF_PROVIDER&lt;/code>を設定する。Ollamaでモデルをローカル実行するか、OpenRouter経由でルーティングする。&lt;/p>
&lt;p>&lt;strong>MCP拡張性。&lt;/strong> Model Context Protocolで外部ツールサーバーを接続。&lt;code>jeff mcp add&lt;/code>でサーバーを登録すると、ツールが自動的に会話に現れる。8つのライフサイクルフック（ツール使用、レスポンス、送信、セッションのpre/post）でログ、通知、ガードレール用のカスタムスクリプトを接続できる。&lt;/p>
&lt;p>&lt;strong>会話管理。&lt;/strong> すべてがローカルSQLiteに永続化される。&lt;code>--continue&lt;/code>または&lt;code>--resume &amp;lt;id&amp;gt;&lt;/code>で会話を再開。markdown、JSON、HTMLにエクスポート。クイックアクセス用に会話をお気に入り登録。タイトルで履歴を検索。&lt;/p>
&lt;p>&lt;strong>ツール承認フロー。&lt;/strong> 危険なツール（bash、ファイル書き込み）はTUIで明示的な承認が必要。特定ツールを常に許可または決して許可しないルールを保存できる。モデルを完全に信頼するなら&lt;code>--dangerously-skip-permissions&lt;/code>でオーバーライド。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>JeffはGoogle APIツール定義に&lt;a href="https://github.com/2389-research/jeff-soma">jeff-soma&lt;/a>、コアツール（bash、ファイル操作、ウェブ検索、grep）に&lt;a href="https://github.com/2389-research/mux-rs">mux-rs&lt;/a>を使っている。TUIはratatui + crossterm。会話はイベント駆動アーキテクチャでストリーム処理される — ランタイムがストリーミングテキストとツールリクエストをチャネル経由でUIに送り、UIが承認とメッセージを返す。コンテキスト管理がトークン使用量を追跡し、ウィンドウ上限に近づくと自動的に刈り込む。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>少なくとも1つのプロバイダーのAPIキー（&lt;code>ANTHROPIC_API_KEY&lt;/code>、&lt;code>OPENAI_API_KEY&lt;/code>など）— またはOllamaがローカルで動作していること&lt;/li>
&lt;li>メール・カレンダー機能にはGoogle OAuthクレデンシャルが必要（&lt;code>jeff auth google&lt;/code>で設定）&lt;/li>
&lt;/ul></description></item><item><title>Mux</title><link>https://2389.ai/ja/research/products/mux/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/mux/</guid><description>&lt;p>Mux は自律型AIエージェントを構築するためのライブラリです。Think-Actループ、ツール実行、LLMプロバイダー抽象化、マルチエージェント調整を担うことで、開発者はステートマシンの配線ではなくツールとビジネスロジックの定義に集中できます。&lt;/p>
&lt;p>2つの実装で提供:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://github.com/2389-research/mux">mux (Go)&lt;/a>&lt;/strong> — &lt;code>go get github.com/2389-research/mux&lt;/code>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://github.com/2389-research/mux-rs">mux-rs (Rust)&lt;/a>&lt;/strong> — &lt;code>Cargo.toml&lt;/code> に &lt;code>mux = &amp;quot;0.10&amp;quot;&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>どちらも同じアーキテクチャと機能セットを持ちます。スタックに合わせて言語を選んでください。&lt;/p>
&lt;h2 id="できること">できること&lt;/h2>
&lt;p>&lt;strong>マルチプロバイダーLLM抽象化。&lt;/strong> 1つのクライアントインターフェースで Anthropic (Claude)、OpenAI、Google Gemini、OpenRouter、Ollama をカバー。コンストラクタを変えるだけでプロバイダーを切り替えられます。5つすべてがストリーミングとツール呼び出しに対応。&lt;/p>
&lt;p>&lt;strong>ユニバーサルツールインターフェース。&lt;/strong> 組み込み関数、MCPサーバーツール、外部サービスを問わず、すべてのケイパビリティが同じツールインターフェースを実装します: 名前、説明、承認要件、実行。スレッドセーフなレジストリにツールを登録すれば、オーケストレーターが残りを処理します。&lt;/p>
&lt;p>&lt;strong>承認ゲート。&lt;/strong> ツールは呼び出しごとに承認が必要かどうかを宣言します。エグゼキューターは機密性の高い操作を実行する前に承認関数を確認します。コンテキスト依存: 書き込みツールは承認を要求しつつ、読み取りツールは自由に実行できます。Rust実装にはallow/denyルール、globパターン、条件関数を持つフルポリシーエンジンが追加されます。&lt;/p>
&lt;p>&lt;strong>MCPクライアント。&lt;/strong> stdioまたはstreamable HTTPで外部MCPサーバーに接続。ツールを一覧取得し、JSON-RPC 2.0で呼び出し、ユニバーサルツールインターフェースに自動的に変換します。&lt;/p>
&lt;p>&lt;strong>エージェント階層。&lt;/strong> 親エージェントはツールアクセスを制限した子エージェントを生成します。拒否されたツールはツリーを下って積み重なります。各エージェントは階層的なIDを持ち、生成時と完了時にライフサイクルフックを発火します。&lt;/p>
&lt;p>&lt;strong>非同期実行と永続化。&lt;/strong> ポーリング、有界待機、キャンセルを使ってエージェントを非同期実行。会話履歴をJSONまたはJSONLトランスクリプトとして保存し、復元して中断箇所から再開できます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>3つのレイヤー:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>LLMクライアント&lt;/strong> — 異なるAPIを1つのリクエスト/レスポンス形式に正規化するプロバイダークライアント。ストリーミング、トークン追跡、設定可能なデフォルト値を持ちます。&lt;/li>
&lt;li>&lt;strong>オーケストレーター&lt;/strong> — Think-Actループ。LLMを呼び出し、レスポンスからツール呼び出しを解析し、エグゼキューター経由でツールを実行し、結果をフィードバックして、モデルがツール呼び出しを止めるまで繰り返します。各ステージでフックを発火します。会話履歴が長くなりすぎるとコンパクト化します。&lt;/li>
&lt;li>&lt;strong>エージェント&lt;/strong> — オーケストレーターをエージェントごとのツールフィルタリング、子エージェント管理、非同期実行、トランスクリプト永続化でラップします。事前構築済みプリセット (Explorer、Planner、Researcher、Writer、Reviewer) が一般的なパターンをカバーします。&lt;/li>
&lt;/ol>
&lt;p>サポートパッケージ: ツールレジストリとエグゼキューター、MCPプロトコル統合、ルールベースアクセス制御、エージェント間の共有リソースロック、ライフサイクルイベントフック。&lt;/p>
&lt;h3 id="rust-追加機能">Rust 追加機能&lt;/h3>
&lt;p>Rustワークスペースには追加クレートが含まれます:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>mux-ffi&lt;/strong> — Swift (iOS/macOS) および Kotlin (Android) 向け UniFFI バインディング&lt;/li>
&lt;li>&lt;strong>code-agent&lt;/strong> — リファレンスエージェント実装&lt;/li>
&lt;li>&lt;strong>agent-test-tui&lt;/strong> — エージェント動作をテストするインタラクティブTUI&lt;/li>
&lt;/ul>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;p>&lt;strong>Go:&lt;/strong> Go 1.24+ と少なくとも1つのLLM APIキー (&lt;code>ANTHROPIC_API_KEY&lt;/code>、&lt;code>OPENAI_API_KEY&lt;/code>、または &lt;code>GEMINI_API_KEY&lt;/code>)&lt;/p></description></item><item><title>ISH</title><link>https://2389.ai/ja/research/products/ish/</link><pubDate>Tue, 30 Dec 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/ish/</guid><description>&lt;p>ISHはあなたのマシン上で動いて7種類のAPIのふりをする。Google、GitHub、Twilio、Discord、SendGrid、Home AssistantのSDKを本物のサービスではなく&lt;code>localhost:9000&lt;/code>に向けるだけで、コードは違いを察知できない。APIクォータを消費せず、OAuth認証情報の管理も不要で、ネットワーク接続も必要ない。Goバイナリ1本、SQLiteファイル1本、エンドポイント50本以上。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go build -o ish ./cmd/ish
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>または&lt;a href="https://github.com/2389-research/ish/releases">リリースページ&lt;/a>からビルド済みバイナリをダウンロード。&lt;/p>
&lt;p>次にテストデータを投入してサーバーを起動:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>./ish seed
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>./ish serve --port &lt;span style="color:#ae81ff">9000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>Google APIs&lt;/strong> — Gmail（メッセージ、スレッド、ラベル、添付ファイル、&lt;code>is:unread&lt;/code>や&lt;code>in:inbox&lt;/code>などの検索構文）、Calendar（イベント、時間フィルタリング、同期トークン）、People（連絡先、検索、ページネーション）、Tasks（リスト、CRUD、完了トラッキング）。&lt;/p>
&lt;p>&lt;strong>GitHub&lt;/strong> — リポジトリ、Issue、プルリクエスト、コメント、レビュー、REST v3 APIによるSSRF保護付きWebhook。&lt;/p>
&lt;p>&lt;strong>Twilio&lt;/strong> — 非同期Webhook配信付きのSMSおよび音声API、電話番号、通話、メッセージ。&lt;/p>
&lt;p>&lt;strong>Discord&lt;/strong> — Webhook API v10: embedとコンポーネントサポートを含むメッセージの実行・編集・削除。&lt;/p>
&lt;p>&lt;strong>SendGrid&lt;/strong> — メール送信API v3、APIキー管理、サプレッションリスト。&lt;/p>
&lt;p>&lt;strong>Home Assistant&lt;/strong> — エンティティの状態、サービス呼び出し、トークン認証。&lt;/p>
&lt;p>&lt;strong>OAuth 2.0&lt;/strong> — 認可コードフロー、トークンリフレッシュ、失効をシミュレートするモックOAuthプロバイダー（任意のプラグイン向け）。&lt;/p>
&lt;p>これらはすべて公式SDKと連携する。変更はベースURLだけ:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>export GOOGLE_API_BASE_URL&lt;span style="color:#f92672">=&lt;/span>http://localhost:9000
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ISHは&lt;code>/admin&lt;/code>に管理UIも搭載している — スキーマ駆動のWebインターフェースで、すべてのリソースを閲覧し、テストデータを管理し、サーバーに届いたすべてのリクエストを調査できる。&lt;/p>
&lt;p>&lt;code>OPENAI_API_KEY&lt;/code>を設定すると、&lt;code>ish seed&lt;/code>コマンドがAIを使ってリアルなメール、カレンダーイベント、連絡先、タスクを生成する。設定しない場合はセンスのある静的データが使われる。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>各APIはプラグインだ。プラグインは標準インターフェース — ルート、スキーマ、シードデータ — を実装して起動時に自身を登録する。管理UIはプラグインスキーマを読んでUIを自動生成するので、新しいモックAPIを追加してもコアコードに触れる必要はない。&lt;/p>
&lt;p>データは単一のSQLiteファイル（デフォルトは&lt;code>~/.local/share/ish/ish.db&lt;/code>）に格納される。すべてのリクエストはプラグイン帰属、メソッド、パス、ステータス、タイミングとともにログに記録される。認証レイヤーは&lt;code>Bearer user:USERNAME&lt;/code>トークンを受け付ける — 本物のクレデンシャルは不要。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>Go 1.21以上（ソースからビルドする場合）&lt;/li>
&lt;li>オプション: AIによるテストデータ生成に&lt;code>OPENAI_API_KEY&lt;/code>&lt;/li>
&lt;/ul></description></item><item><title>Coven</title><link>https://2389.ai/ja/research/products/coven/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/coven/</guid><description>&lt;p>Coven は自分のインフラ上で動かすエージェントオーケストレーションプラットフォームです。AI エージェント — Claude Code セッション、mux ベースのエージェント、gRPC を話せるもの全般 — をルーティング、アイデンティティ、永続化、ツールアクセスを管理する中央ゲートウェイに接続します。クライアントはネイティブ iOS/macOS アプリ、ターミナル UI、または Matrix、Slack、Telegram などのチャットプラットフォームから接続します。すべて Tailscale 上で動作するため、パブリックインターネットには一切触れません。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;p>ソースからビルドします。システムは4つのコンポーネントで構成されます:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Gateway (Go)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd coven-gateway
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Agents and TUI (Rust)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd coven
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cargo build --workspace
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># iOS/macOS app&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd coven-app/CovenApp
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>xtool build
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Link a device to your gateway&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>coven-link &amp;lt;gateway-address&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>メッセージルーティング。&lt;/strong> ゲートウェイはエージェントとその他すべての間に位置します。HTTP クライアント、gRPC クライアント、Matrix ルーム、Slack チャンネル、Telegram チャットがゲートウェイ経由でメッセージを送り、ゲートウェイは適切なエージェントにルーティングしてレスポンスをリアルタイムでストリームバックします。すべてのメッセージは SQLite に永続化されます。&lt;/p>
&lt;p>&lt;strong>エージェントバックエンド。&lt;/strong> Coven は LLM 連携とツール実行のために &lt;a href="https://2389.ai/ja/research/products/mux/">mux&lt;/a> 上に構築した独自の Rust エージェントランタイムを搭載しています。Claude Code もエージェントバックエンドとして動作します。スワームスーパーバイザーは複数のワークスペースエージェントを同時管理し、メッセージを分配します。&lt;/p></description></item><item><title>Soloclaw</title><link>https://2389.ai/ja/research/products/soloclaw/</link><pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/soloclaw/</guid><description>&lt;p>Soloclaw はターミナル用のシングルインスタンス、openclaw互換AIエージェントです。1ユーザー、1エージェント、1セッション — ゲートウェイなし、共有インフラなし。openclawの3層承認エンジン、コンテキストファイルパターン、スキルシステムを、フルスクリーンストリーミングTUIを持つスタンドアロンRustバイナリに忠実に移植しています。5つのLLMプロバイダー、実際のセキュリティコントロール、すべてのツール呼び出しはシステムに触れる前にゲートされます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/2389-research/soloclaw.git
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd soloclaw
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cargo install --path .
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Interactive setup — writes config, API keys, approval rules&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>claw setup
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="できること">できること&lt;/h2>
&lt;p>&lt;strong>マルチプロバイダーLLMサポート。&lt;/strong> 設定またはCLIフラグでAnthopic、OpenAI、Gemini、OpenRouter、Ollamaを切り替えます。すべてのプロバイダーが同じ会話インターフェースを使います。カスタムベースURLでプロキシやセルフホストエンドポイントも動作します。&lt;/p>
&lt;p>&lt;strong>ストリーミングTUI。&lt;/strong> ratatuiで構築されたフルスクリーンターミナルインターフェース。トークンはリアルタイムでストリームされます。チャット履歴はキーボードまたはマウスでスクロール。ツール呼び出しとその出力はインラインで描画されます。&lt;/p>
&lt;p>&lt;strong>openclaw互換承認エンジン。&lt;/strong> Soloclaw はopenclawの3層セキュリティモデルを実装: SecurityLevel (deny、allowlist、full) × AskMode (off、on-miss、always) × 永続的なallowlist。ツール呼び出しがallowlistにマッチしない場合、soloclaw がインラインでプロンプトします: Allow Once、Always Allow、またはDeny。&amp;ldquo;Always Allow&amp;rdquo; はパターンを &lt;code>approvals.json&lt;/code> に永続化するため、毎回 &lt;code>grep&lt;/code> を承認する必要はありません。シェルコマンドは解析され、読み取り専用バイナリ (ls、cat、grep、head など) の組み込みセーフリストと照合されて自動承認されます。&lt;/p>
&lt;p>&lt;strong>MCP拡張。&lt;/strong> プロジェクトルートまたはホームディレクトリに &lt;code>.mcp.json&lt;/code> を置きます。Claude Desktop と同じ形式です。MCPサーバーツールは組み込みツールと並んで表示され、同じ承認フローを経由します。&lt;/p>
&lt;p>&lt;strong>openclawコンテキストファイル。&lt;/strong> &lt;code>SOUL.md&lt;/code>、&lt;code>AGENTS.md&lt;/code>、または &lt;code>TOOLS.md&lt;/code> をプロジェクトに置いてエージェントの動作を形作ります — openclawが使うのと同じコンテキストファイルパターンです。&lt;code>.soloclaw.md&lt;/code> はプロジェクト固有の設定として機能します。すべてのファイルはオプションで、起動時にシステムプロンプトに読み込まれます。&lt;/p>
&lt;p>&lt;strong>スキルインジェクション。&lt;/strong> 4つの設定可能なルート (XDG config、ワークスペース、&lt;code>~/.agents&lt;/code>、&lt;code>~/.codex&lt;/code>) からの &lt;code>SKILL.md&lt;/code> ファイルがシステムプロンプトに注入されます。プロンプトの肥大化を防ぐ制限付き (最大24ファイル、合計32,000文字)。&lt;/p></description></item><item><title>ccvault</title><link>https://2389.ai/ja/research/products/ccvault/</link><pubDate>Sat, 14 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/ccvault/</guid><description>&lt;p>ccvault は &lt;code>~/.claude&lt;/code> にある Claude Code のセッションをローカルの SQLite データベースに同期し、FTS5 全文検索を提供します。Gmail スタイルのクエリ構文、セッションを閲覧するターミナル UI、分析用の Parquet エクスポート、他の AI ツールが履歴を検索できる MCP サーバーが使えます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>brew install 2389-research/tap/ccvault
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>または Go 1.25+ で:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/ccvault/cmd/ccvault@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>検索&lt;/strong> — &lt;code>project:myapp&lt;/code>、&lt;code>model:opus&lt;/code>、&lt;code>tool:Bash&lt;/code>、&lt;code>after:2025-01-01&lt;/code>、&lt;code>has:error&lt;/code>、または平文テキストなどのフィルターで会話を検索できます。完全フレーズ一致も機能します。&lt;/p>
&lt;p>&lt;strong>ブラウズ&lt;/strong> — Bubble Tea の TUI でセッションをスクロールし、ターンごとの詳細を確認し、ターミナルを離れずに特定の会話を掘り下げられます。&lt;/p>
&lt;p>&lt;strong>分析&lt;/strong> — セッションデータを Parquet ファイルにエクスポートします。使用パターンに対して DuckDB クエリを実行できます: よく使うモデル、呼び出されるツール、プロジェクト別のセッション内訳。&lt;/p>
&lt;p>&lt;strong>MCP サーバー&lt;/strong> — 8つのツール（検索、セッションサマリー、ページ付きターン、統計、分析）を Model Context Protocol で公開します。Claude Desktop や任意の MCP クライアントを &lt;code>ccvault mcp&lt;/code> に向ければ、会話アーカイブが他のエージェントから検索可能になります。&lt;/p>
&lt;p>&lt;strong>増分同期&lt;/strong> — ファイルの更新時刻を追跡するため、再同期は高速です。新規または変更されたセッションのみ処理されます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>Claude Code はセッションを &lt;code>~/.claude/projects/&lt;/code> 配下に JSONL ファイルとして保存します。ccvault はこれらのファイルをパースしてターン（ロール、モデル、ツール使用状況、タイムスタンプ付き）を抽出し、FTS5 トリガーによる即時全文インデックスとともに SQLite に書き込みます。別の &lt;code>build-cache&lt;/code> コマンドが同じデータを DuckDB 分析用の Parquet にエクスポートします。&lt;/p></description></item><item><title>GSuite MCP</title><link>https://2389.ai/ja/research/products/gsuite-mcp/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/gsuite-mcp/</guid><description>&lt;p>AIはあなたのメールを読み、カレンダーを確認し、連絡先を管理し、タスクを追跡できる — ただしGoogleと話せる場合に限る。GSuite MCPはそのブリッジだ。ローカルでMCPサーバーとして動作し、MCP対応のクライアントに33のツールを通じて4つのGoogle APIへのアクセスを与える。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>brew install 2389-research/tap/gsuite-mcp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>またはソースからビルド:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go build ./cmd/gsuite-mcp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>Gmail&lt;/strong> — メッセージの読み取り、検索、送信、下書き作成、ラベル付け、ゴミ箱移動、削除。CC/BCCにも対応。&lt;/p>
&lt;p>&lt;strong>Calendar&lt;/strong> — イベントの一覧表示、閲覧、作成、更新、削除。&lt;/p>
&lt;p>&lt;strong>Contacts&lt;/strong> — People APIを使った検索、閲覧、作成、更新、削除。&lt;/p>
&lt;p>&lt;strong>Tasks&lt;/strong> — タスクリストと個別タスクの管理: 作成、更新、完了、削除。&lt;/p>
&lt;p>ツール群に加えて、よく使うワークフロー向けのプロンプトも同梱されている: 受信トレイのトリアージ、スレッドへの返信作成、スケジュール調整、保留中タスクの確認、連絡先の検索。ライブMCPリソース — 今日のカレンダー、未読メール、期限切れタスク — も公開されているので、AIはあなたが聞く前からコンテキストを持っている。&lt;/p>
&lt;p>マルチアカウント対応は最初から組み込まれている。仕事用と個人用のGoogleアカウントを接続して、どちらを使うかAIに伝えるだけ:&lt;/p>
&lt;blockquote>
&lt;p>&amp;ldquo;&lt;strong>仕事用&lt;/strong>のメールで急ぎのものを確認して&amp;rdquo;
&amp;ldquo;今週の&lt;strong>個人&lt;/strong>カレンダーに何がある？&amp;rdquo;&lt;/p>&lt;/blockquote>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>GSuite MCPはローカルプロセスとして動作する。&lt;code>gsuite-mcp setup&lt;/code>で一度認証すると、Google OAuthのためにブラウザが開く。OAuthトークンはあなたのマシンの&lt;code>~/.local/share/gsuite-mcp/&lt;/code>に保存される。ツールを実行すると、サーバーは該当するGoogle APIを直接呼び出し、結果をMCPクライアントとそのモデルに返す。つまりあなたのGoogleアカウントのデータは、Google、あなたのマシン、そしてクライアントが使うモデルとの間を行き来する。ただし私たちが運用するサーバーを経由することはなく、サーバーは必要なOAuthスコープのみをリクエストする。&lt;/p>
&lt;p>Claude Codeへの追加はコマンド1本:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>claude mcp add gsuite gsuite-mcp -- mcp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>または任意のMCP対応クライアントに設定を追加してもよい。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>OAuthクレデンシャル付きのGoogle Cloudプロジェクト（&lt;code>credentials.json&lt;/code>）&lt;/li>
&lt;li>そのプロジェクトでGmail、Calendar、People、Tasks APIが有効化されていること&lt;/li>
&lt;li>Go 1.21以上（ソースからビルドする場合のみ）&lt;/li>
&lt;/ul></description></item><item><title>Turtle</title><link>https://2389.ai/ja/research/products/turtle/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/turtle/</guid><description>&lt;p>Turtle は Duolingo が言語を教えるのと同じ方法でターミナルと tmux の基礎を教える TUI アプリです。短いセッション、即時フィードバック、そして継続させる進捗システム。起動してスキルを選び、実際のコマンドを入力すると、正解かどうか教えてくれます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>brew install 2389-research/tap/turtle
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>または Go で：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/turtle/cmd/turtle@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>その後は &lt;code>turtle&lt;/code> を実行するだけです。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>ゲーミフィケーションされた進捗。&lt;/strong> 正解で XP 獲得、連続日数でストリーク、習熟を証明するとアンロックされるレベル、連続正解でのコンボ倍率。進捗は &lt;code>~/.local/share/turtle/progress.json&lt;/code> に自動保存されます。&lt;/p>
&lt;p>&lt;strong>一口サイズのレッスン。&lt;/strong> 各セッションは2〜5分。&lt;code>pwd&lt;/code>、&lt;code>ls&lt;/code>、&lt;code>cd&lt;/code>、&lt;code>mkdir&lt;/code>、&lt;code>cp&lt;/code>、&lt;code>mv&lt;/code>、tmux のセッション、ペイン、ウィンドウを学びますが、一度に学ぶのは数個のコンセプトだけです。&lt;/p>
&lt;p>&lt;strong>間隔反復。&lt;/strong> SM-2 アルゴリズムが各コマンドをどれだけよく覚えているかに基づいてレビューをスケジュールします。苦手なスキルは早く戻ってきます。得意になったスキルは間隔が長くなります。&lt;/p>
&lt;p>&lt;strong>習熟度ベースのアンロック。&lt;/strong> 先にスキップはできません。レベル0はナビゲーション（&lt;code>pwd&lt;/code>、&lt;code>ls&lt;/code>、&lt;code>cd&lt;/code>、タブ補完）をカバーします。レベル2でファイル操作が導入されます。レベル3以上では tmux のセッション、ペイン、ウィンドウに移ります。各段階は前の段階を証明した後にアンロックされます。&lt;/p>
&lt;p>&lt;strong>選択肢ではなく実際のコマンド。&lt;/strong> Turtle は複数選択肢から選ぶのではなく、実際のコマンドを入力するよう求めます。テストの解き方ではなく、筋肉の記憶を鍛えます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>&lt;a href="https://github.com/charmbracelet/bubbletea">Bubble Tea&lt;/a> と &lt;a href="https://github.com/charmbracelet/lipgloss">Lip Gloss&lt;/a> で構築されています。レッスンコンテンツは YAML のスキルツリーとして構造化されています。間隔反復エンジンは標準の SM-2 実装を使ってスキルごとの易しさ係数、間隔、次回レビュー日を追跡します。矢印キーまたは &lt;code>j&lt;/code>/&lt;code>k&lt;/code> でナビゲート、Enter で選択、&lt;code>q&lt;/code> で終了です。&lt;/p></description></item><item><title>Phonegang</title><link>https://2389.ai/ja/research/products/phonegang/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/phonegang/</guid><description>&lt;p>Phonegang はUSBを介してAndroid端末をアクセシビリティツリーで操作します。スクリーンリーダーが使う構造化データと同じものです。ピクセルのマッチングや座標のハードコーディングではなく、テキスト、リソースID、コンテンツ説明で要素を見つけます。CLI、Pythonライブラリ、Claude Code から直接スマートフォンを操作できるMCPサーバーとして提供されます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/2389-research/phonegang.git
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd phonegang
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>uv sync
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Python 3.10+、USBデバッグが有効なAndroid端末、PATHにADBが必要です。&lt;/p>
&lt;h2 id="できること">できること&lt;/h2>
&lt;p>&lt;strong>CLIコマンド&lt;/strong>で一般的な操作をカバーします: &lt;code>phonegang tap-text &amp;quot;Login&amp;quot;&lt;/code>、&lt;code>phonegang type &amp;quot;hello&amp;quot;&lt;/code>、&lt;code>phonegang screenshot&lt;/code>、&lt;code>phonegang scroll-to &amp;quot;Settings&amp;quot;&lt;/code>。生のUIツリーのダンプ、接続デバイスの一覧表示、アプリ管理、back/homeナビゲーションも可能です。&lt;/p>
&lt;p>&lt;strong>Python API&lt;/strong> で &lt;code>DeviceManager&lt;/code>、&lt;code>ADBDevice&lt;/code>、&lt;code>DeviceController&lt;/code> を使えます。デバイスに接続し、アクセシビリティツリーをリフレッシュし、テキスト/クラス/リソースID/カスタム述語で要素を検索し、タップ、入力、スクロール、または要素の出現を待機します。ツリーオブジェクトはチェーンクエリをサポートします — すべてのボタンを検索し、サイズでフィルタリングし、クリック可能なものを取得。&lt;/p>
&lt;p>&lt;strong>MCPサーバー&lt;/strong>で高レベルツール (&lt;code>get_screen&lt;/code>、&lt;code>tap&lt;/code>、&lt;code>type_text&lt;/code>、&lt;code>wait_for&lt;/code>) と低レベルツール (&lt;code>tap_xy&lt;/code>、&lt;code>swipe&lt;/code>、&lt;code>press_key&lt;/code>、&lt;code>get_ui_dump&lt;/code>) をMCP経由で公開します。Claude Codeの設定に追加すれば、自然言語でスマートフォンを操作できます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>下から上へ4つのレイヤー:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>ADBレイヤー&lt;/strong> — &lt;code>adb-shell&lt;/code> をラップして生のデバイス通信 (シェルコマンド、ファイルプッシュ/プル、入力イベント) を処理&lt;/li>
&lt;li>&lt;strong>アクセシビリティツリーパーサー&lt;/strong> — &lt;code>uiautomator&lt;/code> XMLダンプを、バウンド、テキスト、リソースID、クリック状態を持つクエリ可能なPythonオブジェクトに変換&lt;/li>
&lt;li>&lt;strong>デバイスコントローラー&lt;/strong> — ADBと解析済みツリーを組み合わせて高レベル操作を実現 (find-and-tap、scroll-to-text、wait-for-element)&lt;/li>
&lt;li>&lt;strong>CLI / MCP&lt;/strong> — コントローラーを人間とAIエージェントに公開するClickベースのCLIとMCPサーバー&lt;/li>
&lt;/ol>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>Python 3.10+&lt;/li>
&lt;li>USBデバッグが有効なAndroid端末&lt;/li>
&lt;li>ADB (Android Debug Bridge) — Android SDKに付属またはスタンドアロンでインストール&lt;/li>
&lt;li>&lt;code>adb-shell&lt;/code>、&lt;code>click&lt;/code>、&lt;code>lxml&lt;/code> (&lt;code>uv sync&lt;/code> で自動インストール)&lt;/li>
&lt;/ul></description></item><item><title>Dot Viewer</title><link>https://2389.ai/ja/research/products/dot-viewer/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/dot-viewer/</guid><description>&lt;p>Dot Viewer は Graphviz の &lt;code>.dot&lt;/code> および &lt;code>.gv&lt;/code> ファイルを扱う macOS アプリです。スプリットペインのインターフェイス — 左にエディター、右にレンダリングされた SVG — で、入力と同時にリアルタイムで変更が反映されます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;p>&lt;a href="https://github.com/2389-research/dot-viewer/releases">Releases ページ&lt;/a>から最新の DMG をダウンロードしてください。アプリケーションフォルダにドラッグして起動します。アプリは Developer ID でコード署名・公証済みです。&lt;/p>
&lt;p>macOS 14.0 以降が必要です。Sparkle による自動アップデート対応。&lt;/p>
&lt;p>ソースからビルドする場合:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/2389-research/dot-viewer.git
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd dot-viewer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>brew install xcodegen bison flex
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd dot-core &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> git clone --depth &lt;span style="color:#ae81ff">1&lt;/span> --branch 12.2.1 https://gitlab.com/graphviz/graphviz.git graphviz-vendor &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> cd ..
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>make
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>ライブプレビュー。&lt;/strong> 編集内容は 300ms のデバウンスで SVG にレンダリングされます。ツールバーから dot、neato、fdp、circo、twopi、sfdp の6つの Graphviz レイアウトエンジンを切り替えられます。&lt;/p>
&lt;p>&lt;strong>双方向ナビゲーション。&lt;/strong> SVG プレビューのノードをクリックするとエディター内の定義にジャンプします。エディターのノード定義をクリックするとプレビューでハイライトされます。&lt;/p>
&lt;p>&lt;strong>エディター機能。&lt;/strong> DOT キーワード、文字列、コメント、属性、矢印演算子のシンタックスハイライト。ブラケットマッチング、現在行ハイライト付き行番号、標準的な元に戻す/やり直し。&lt;/p>
&lt;p>&lt;strong>タブ編集。&lt;/strong> 複数の &lt;code>.dot&lt;/code>/&lt;code>.gv&lt;/code> ファイルをネイティブ macOS ウィンドウタブとして開けます。プレビューペインで大きなグラフをズームおよびパンできます。&lt;/p></description></item><item><title>Summarize Meetings</title><link>https://2389.ai/ja/research/products/summarize-meetings/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/summarize-meetings/</guid><description>&lt;p>Claude Code プラグインです。ミーティング文字起こしのバックログ（主に Granola からのもの）を受け取り、接続された Obsidian ナレッジグラフへと変換します。1ヶ月分の文字起こしを指定すると、各ファイルを読み込み、サマリー化する価値があるものを判断し、並列エージェントを起動して処理し、wiki リンクで全体を繋ぎます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install summarize-meetings
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ボルト作業のコンテキストで「summarize meetings」「process meetings」「meeting summaries」と入力するとスキルが起動します。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>処理は月次バッチで実行され、最新月から始まります。各バッチは同じサイクルをたどります。月の文字起こしをサイズ順にスキャン、不要なものをトリアージでスキップ、エージェントを波状に起動、レポートをまとめる。&lt;/p>
&lt;p>&lt;strong>トリアージ&lt;/strong>では、エージェントが起動する前にノイズを除去します。2K以下のファイルはおそらく空のスタブです。「Untitled」ファイルはほぼ何もありません。スケジューリングの断片、医療の予約、録音セットアップの会話、文字化けした録音はすべてスキップされ、何が除外されたかとその理由がログに記録されます。箇条書きだけの資金調達通話メモのようにまばらでも実際のメモはそのまま処理されます。&lt;/p>
&lt;p>&lt;strong>抽出&lt;/strong>では各文字起こしから7つのカテゴリを引き出します。役職と会社付きの人物、オーナー付きのアクションアイテム、プロジェクトのアイデア、ブログのアイデア、エンティティ間のナレッジグラフ接続、再利用可能なコンセプトとメンタルモデル、その他のアイデア。各サマリーには2〜4段落の物語形式のまとめが付き、実際にミーティングに参加した人が書いたような内容になります。&lt;/p>
&lt;p>&lt;strong>ボルトの更新&lt;/strong>が最も興味深い部分です。スキルはサマリーファイルを書くだけでなく、&lt;code>People/&lt;/code> に人物メモを作成・更新し、重複作成を防ぐために既存エントリとエイリアスを確認し、&lt;code>Concepts/&lt;/code> に独立したアトミックノートとして残す価値あるコンセプトを抽出し、&lt;code>Projects/&lt;/code> に言及されたプロジェクトのスタブを作成します。名前の解決では、既存のボルトメモと文字起こしの名前を照合して誤字やニックネームを処理します。&lt;/p>
&lt;p>&lt;strong>並列エージェント&lt;/strong>でスループットを高く保ちます。各波で10〜15のエージェントを文字起こし1つにつき1エージェントで起動します。大きなファイル（50K以上）は自動でチャンク分割されます。全エージェントが戻ったら、処理済み、スキップ済み、注目すべきハイライトを示すレポート表が生成されます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;pre tabindex="0">&lt;code>月をスキャン → 疑わしいファイルをトリアージ → 10〜15エージェントの波を起動 →
戻りを待つ → 残りを起動 → 月次レポートをまとめる
&lt;/code>&lt;/pre>&lt;p>各エージェントが1つの文字起こしをエンドツーエンドで処理します。読み込み、7つのカテゴリを抽出、YAML フロントマター付きサマリーファイルを書く、人物メモとコンセプトメモを作成または更新、そして戻ります。メインプロセスが全体をまとめ、ミーティングごとの人物数、アクション数、コンセプト数を示すレポート表を作成します。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;p>&lt;code>Meetings/transcripts/&lt;/code> にミーティング文字起こしが入った Obsidian ボルト。Granola の文字起こしで最もよく機能しますが、他の形式も対応しています。ナレッジグラフ更新のためにボルトに &lt;code>People/&lt;/code>、&lt;code>Concepts/&lt;/code>、&lt;code>Projects/&lt;/code> ディレクトリがある必要があります。&lt;/p></description></item><item><title>Fresh Eyes Review</title><link>https://2389.ai/ja/research/products/fresh-eyes-review/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/fresh-eyes-review/</guid><description>&lt;p>コミット前またはPRオープン前に変更ファイルの構造化レビューを実行するClaude Codeプラグイン。テストはパスするが出荷すべきでないものを狙い打ちにする — SQLインジェクション、レースコンディション、オフバイワンエラー、要件と一致しないビジネスロジック。肝心な点はこうだ: パスするテストはコードが設計通り動くことを証明するが、fresh-eyes-reviewは設計自体が正しいことを証明する。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install fresh-eyes-review
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>インストール後、「commit」「push」「done」「creating PR」など、いまにもリリースしそうな言葉を言うとスキルが自動起動する。&lt;/p>
&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>レビューは毎回同じ手順で進む: レビュー対象のアナウンス、5つのチェックリストの実行、問題の修正、テストの再実行、結果の宣言。&lt;/p>
&lt;p>&lt;strong>セキュリティ脆弱性&lt;/strong> — 文字列連結によるSQLインジェクション、エスケープされていないユーザーコンテンツからのXSS、&lt;code>../&lt;/code>シーケンスによるパストラバーサル、サニタイズされていないシェル入力からのコマンドインジェクション、アクセス制御欠如によるIDOR、保護エンドポイントの認証バイパス。&lt;/p>
&lt;p>&lt;strong>ロジックエラー&lt;/strong> — 配列インデックスやページネーションのオフバイワンバグ、共有状態への並行アクセスにおけるレースコンディション、防御的チェックなしのドットチェーンにおけるnull/undefined、&lt;code>==&lt;/code>と&lt;code>===&lt;/code>の型強制、空のcatchブロックで握りつぶされたエラー。&lt;/p>
&lt;p>&lt;strong>ビジネスルール&lt;/strong> — 要件と一致しない計算（特に通貨の丸め）、AND/ORロジックの反転、空入力やゼロ値のエッジケース漏れ、センシティブ情報を露出するエラーメッセージ、オプションフィールドの意味不明なデフォルト値。&lt;/p>
&lt;p>&lt;strong>入力バリデーション&lt;/strong> — 型チェック、範囲境界、フォーマット検証。「ハッピーパスが動く」と「任意の入力で壊れない」の間にあるギャップ。&lt;/p>
&lt;p>&lt;strong>パフォーマンス&lt;/strong> — ループ内に潜むN+1クエリ、タイムアウト保護のない無制限イテレーション、クリーンアップされないイベントリスナーとストリーム、インデックスのないカラムでフィルタするクエリ。&lt;/p>
&lt;p>問題が見つかれば即座に修正し、テストがなければ追加して、次に進む前にスイートを再実行する。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>レビューはファイル数によって2〜5分かかる。1〜3ファイルなら2分。4〜10ファイルなら3〜4分。10ファイル超で最大5分。2分未満で終わったなら十分に徹底されていない。5分を超えたならスコープクリープしている。&lt;/p>
&lt;p>スキルは開始と終了を明示的にアナウンスする — 「4ファイルのfresh-eyes reviewを開始」「Fresh-eyes完了。2件の問題を発見・修正済み」— ゲートが実行されたこと、何を検出したかを常に把握できる。&lt;/p>
&lt;h2 id="テストを信頼するだけでは駄目な理由">テストを信頼するだけでは駄目な理由&lt;/h2>
&lt;p>テストはあなたが確認しようと思ったことを検証する。このスキルはあなたが思いつかなかったことを検出する。テストスイートがパスしているのに重大なセキュリティバグが共存することは、誰もが認めたくないほど頻繁に起きる。スキルはありがちな合理化 — 「テストは網羅的だ」「自信がある」「本番がブロックされている」— を受け付けない。それはまさにバグが逃げ出す条件だからだ。&lt;/p></description></item><item><title>Translator</title><link>https://2389.ai/ja/research/products/translator/</link><pubDate>Mon, 29 Sep 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/translator/</guid><description>&lt;p>Translator はテキストファイルとターゲット言語を受け取り、最大4つの AI パスでコンテンツを処理する CLI ツールです。初回翻訳、専門的な編集、批評、改訂を経て、ネイティブに書かれたような出力を生成します。マークダウンのフロントマター（Hugo、Jekyll）を変換してもメタデータを損なうことなく処理します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>uv tool install git+https://github.com/2389-research/translator
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>その後：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>translator input.txt Spanish
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>これで同じディレクトリに &lt;code>input.es.txt&lt;/code> が作成されます。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>複数段階の翻訳パイプライン。&lt;/strong> デフォルトのフローは4つのパスで構成されます。生の翻訳、自然な表現にする編集パス、問題を指摘する批評、そして批評に対応する改訂。&lt;code>--no-edit&lt;/code> で編集パスを、&lt;code>--no-critique&lt;/code> で批評パスをスキップできます。&lt;code>--critique-loops&lt;/code> で批評ループを1〜5回に設定することもできます。&lt;/p>
&lt;p>&lt;strong>マークダウンのフロントマター保持。&lt;/strong> YAML フロントマターを持つファイルは翻訳前にメタデータが抽出され、翻訳後に再付与されます。&lt;code>date&lt;/code>、&lt;code>tags&lt;/code>、&lt;code>slug&lt;/code> などのフィールドはそのまま維持されます。&lt;/p>
&lt;p>&lt;strong>複数プロバイダー対応の AI。&lt;/strong> OpenAI と Anthropic の両モデルに対応。モデル名にプレフィックスを付けてプロバイダーを明示的に指定できます（&lt;code>openai:gpt-4o&lt;/code>、&lt;code>anthropic:claude-sonnet-4&lt;/code>）。自動検出も可能です。デフォルトは &lt;code>claude-opus-4.1&lt;/code> です。&lt;/p>
&lt;p>&lt;strong>実行前のコスト見積もり。&lt;/strong> &lt;code>--estimate-only&lt;/code> で API クレジットを消費する前にトークン数と推定コストを確認できます。実行後にはリアルタイムのトークン追跡が実際の使用量をレポートします。&lt;/p>
&lt;p>&lt;strong>ストリーミングターミナル UI。&lt;/strong> Rich を使って翻訳がリアルタイムでターミナルにストリーミングされます。長いドキュメントでもスピナーを眺めずに進捗を確認できます。&lt;/p>
&lt;p>&lt;strong>OpenAI または Anthropic がサポートする任意の言語。&lt;/strong> 言語名（「Japanese」「Portuguese」「Korean」）を渡すと、Translator が出力ファイル名に正しい ISO 639-1 コードを自動的にマッピングします。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>CLI はファイルを読み込み、フロントマターを抽出し、選択したモデルの制限に対してトークンを数え、コストを見積もります。そしてコンテンツを翻訳パイプラインに送ります。各段階は &lt;code>prompts.py&lt;/code> に保存された専用プロンプトを使います。プロセス全体は構造化された JSON としてログに記録され、完了後にログから物語形式のサマリーが生成されます。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>Python 3.13+&lt;/li>
&lt;li>少なくとも1つのプロバイダーの API キー：&lt;code>OPENAI_API_KEY&lt;/code> または &lt;code>ANTHROPIC_API_KEY&lt;/code>&lt;/li>
&lt;li>対話形式のセットアップには &lt;code>translator config&lt;/code> を実行&lt;/li>
&lt;/ul></description></item><item><title>Meme Rodeo</title><link>https://2389.ai/ja/research/products/meme-rodeo/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/meme-rodeo/</guid><description>&lt;p>Meme Rodeoはあなたの仲間とミームを共有するためのプライベート招待制プラットフォームだ。画像をアップロードすればシステムが残りを処理する — サムネイルの生成、説明文の作成、タグの抽出、ベクトル埋め込みの計算。ファイル名ではなくフィーリングでコレクションを検索できる。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;p>&lt;a href="https://meme.rodeo">meme.rodeo&lt;/a>にアクセスして招待コードを使う。インストール不要。&lt;/p>
&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>アップロードと自動処理&lt;/strong> — 画像をドロップするとCloud Functionsが引き継ぐ。各アップロードにリサイズされたサムネイル、AIが生成した説明文、抽出されたタグ、Vertex AIからの1408次元ベクトル埋め込みが付与される。処理状態はファイルごとに追跡される（pending、processing、complete、failed）。&lt;/p>
&lt;p>&lt;strong>ベクトル類似度検索&lt;/strong> — キーワードではなく意味でミームを探す。検索クエリを埋め込みに変換し、Vertex AIのマルチモーダルベクトルのコサイン類似度でコレクションと照合する。タグベース検索とテキスト検索もフォールバックとして使える。&lt;/p>
&lt;p>&lt;strong>コンテンツモデレーション&lt;/strong> — すべてのアップロードがモデレーションパイプラインを通過する。管理者はタッチフレンドリーなコントロールとレスポンシブなテーブルを備えた専用モデレーションダッシュボードから承認、フラグ付け、削除を行う。&lt;/p>
&lt;p>&lt;strong>招待制アクセス&lt;/strong> — 新規ユーザーには招待コードが必要。管理者は管理パネルから招待リンクを生成・管理する。オープン登録はない。&lt;/p>
&lt;p>&lt;strong>APIアクセス&lt;/strong> — プログラムによるアップロード用にAPIキーを生成できる。MCPサーバーエンドポイントでAIエージェントがミームコレクションに直接アクセスできる。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>Firebase Cloud Functions v2がアップロード、処理、検索、モデレーション、招待管理を担う。Firestoreがファイルメタデータ、モデレーション状態、ユーザーデータを保存する。Firebase Storageが画像を保持する。フロントエンドはNuxt 3アプリ（Vue 3 + Tailwind CSS）で、mainへのプッシュ時にGitHub Actionsでデプロイされる。&lt;/p></description></item><item><title>ヒーローセクション</title><link>https://2389.ai/ja/home/hero/</link><pubDate>Sat, 01 Jun 2024 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/home/hero/</guid><description>&lt;!-- Hero Section -->
&lt;section id="about" class="hero-section page-header">
 &lt;!-- Agent file manifest for JavaScript -->
 &lt;script>
 window.AGENT_FILES =
 [
 "agent_000.svg"
 
 ,"agent_001.svg"
 
 ,"agent_002.svg"
 
 ,"agent_003.svg"
 
 ,"agent_004.svg"
 
 ,"agent_005.svg"
 
 ,"agent_006.svg"
 
 ,"agent_007.svg"
 
 ,"agent_008.svg"
 
 ,"agent_009.svg"
 
 ,"agent_010.svg"
 
 ,"agent_011.svg"
 
 ,"agent_012.svg"
 
 ,"agent_013.svg"
 
 ,"agent_014.svg"
 
 ,"agent_015.svg"
 
 ,"agent_016.svg"
 
 ,"agent_017.svg"
 
 ,"agent_018.svg"
 
 ,"agent_019.svg"
 
 ,"agent_020.svg"
 
 ,"agent_021.svg"
 
 ,"agent_022.svg"
 
 ,"agent_023.svg"
 
 ,"agent_024.svg"
 
 ,"agent_025.svg"
 
 ,"agent_026.svg"
 
 ,"agent_027.svg"
 
 ,"agent_028.svg"
 
 ,"agent_029.svg"
 
 ,"agent_030.svg"
 
 ,"agent_031.svg"
 
 ,"agent_032.svg"
 
 ,"agent_033.svg"
 
 ,"agent_034.svg"
 
 ,"agent_035.svg"
 ];

 &lt;/script>

 &lt;!-- Intro Agent Background Layer -->
 &lt;div class="intro-agents-background">
 &lt;!-- Canvas for high-performance agent rendering -->
 &lt;canvas
 class="intro-agents-canvas"
 aria-label="Animated agent background"
 role="img">&lt;/canvas>
 &lt;/div>

 &lt;!-- Hero container positioned over agents background -->
 &lt;div class="hero-container">
 &lt;div class="hero-content">
 &lt;div class="title-bar">


 
 



&lt;span id="random-greeting" data-greetings="[&amp;#34;WELCOME EARTHLING&amp;#34;,&amp;#34;GREETINGS HUMAN&amp;#34;,&amp;#34;HELLO SENTIENT ONE&amp;#34;,&amp;#34;SALUTATIONS BIPED&amp;#34;,&amp;#34;HI THERE FRIEND&amp;#34;,&amp;#34;WHAT&amp;#39;S UP HOMO SAPIENS&amp;#34;,&amp;#34;AHOY CARBON UNIT&amp;#34;,&amp;#34;HOWDY TRAVELER&amp;#34;,&amp;#34;WELL MET EXPLORER&amp;#34;,&amp;#34;BEEP BOOP HELLO&amp;#34;,&amp;#34;DIGITAL HIGH FIVE&amp;#34;,&amp;#34;HAIL CURIOUS MIND&amp;#34;,&amp;#34;COMMENCE CONNECTION&amp;#34;,&amp;#34;INITIATING FRIENDSHIP&amp;#34;]">
 SALUTATIONS BIPED
&lt;/span>
&lt;/div>
 &lt;h1>あなたとタッグを組み、決して敵に回らないエージェントたち&lt;/h1>
 &lt;p class="description">
 私たち 2389 Research は、専門的で協調的、そして驚くほど人間らしい AI
 エージェントが〈夢のチーム〉のように連携する世界を築いています。2024 年
 6
 月、ハーパー・リードとディラン・リチャードによって設立された当社は、あなたの人間らしさを損なうことなく
 AI がタスク達成をサポートする新しいあり方を再発明しています。
 &lt;/p></description></item><item><title>ハーパー・リード</title><link>https://2389.ai/ja/team/harper-reed/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/harper-reed/</guid><description>&lt;p>私は、ソフトウェア、データ、そして人間中心設計の最先端を探りながら、組織が未来に向けてより賢明な意思決定を下せるよう支援する少人数チーム――&lt;strong>2389
Research Inc.&lt;/strong> を率いています。
それ以前は、オバマ大統領の2012年再選キャンペーンでCTOを務め、スタートアップ流のエンジニアリング文化を全米政治に持ち込みました。Threadlessでは、大規模なクラウドソーシングの先駆けづくりに携わり、モバイルコマースのスタートアップModestを共同創業し（のちにPayPalにあっさり買収されました）、さらにPayPalでは重要なエンジニアリングプロジェクトを主導しました。
筋金入りのハッカーである私は、好奇心旺盛で裁量を与えられたチームこそが世界を変えるアイデアを生み出すと信じています。&lt;strong>2389
Research&lt;/strong>
でプロトタイピングをしていないときは、サイドプロジェクトをあれこれいじったり、パートナーのHiromiと、愛嬌たっぷりでちょっぴり変わり者のプードルLuluと一緒にシカゴでのんびり過ごしたりしています。&lt;/p></description></item><item><title>Scenario Testing</title><link>https://2389.ai/ja/research/products/scenario-testing/</link><pubDate>Fri, 05 Dec 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/scenario-testing/</guid><description>&lt;p>テストがパスしても実際のシステムが動かないなら、そのテストはあなたに嘘をついています。このプラグインは実依存関係でのテストを強制します — 実際のサービス、実際のデータ、モックなし。テスト作成・機能検証・モック言及のタイミングで自動トリガーし、システムが本当に動くことを証明するシナリオへと誘導します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install scenario-testing
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="できること">できること&lt;/h2>
&lt;p>プラグインが強制するルールは1つ: 実依存関係でシナリオがパスするまで、機能は検証されない。&lt;/p>
&lt;p>Claude Code にテスト作成を依頼すると、このスキルが介入してシナリオアプローチへ誘導します。モックした依存関係を持つユニットテストではなく、&lt;code>.scratch/&lt;/code> ディレクトリに実サービスへアクセスするシナリオファイルを書きます — 実データベース (テストインスタンス)、実認証プロバイダー (サンドボックスモード)、実ファイルストレージ (テストバケット)。サンドボックスとテストモードはOKです。モックはダメです。&lt;/p>
&lt;p>&lt;strong>真実の階層&lt;/strong>が哲学を示します:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>シナリオテスト&lt;/strong> (実システム、実データ) — 真実&lt;/li>
&lt;li>&lt;strong>ユニットテスト&lt;/strong> (独立したロジック) — 有用だが証明にならない&lt;/li>
&lt;li>&lt;strong>モック&lt;/strong> — バグを隠す嘘&lt;/li>
&lt;/ol>
&lt;p>モックテストは正しい引数で正しい関数を呼び出したことを教えてくれます。シナリオテストは物事が実際に動いていることを教えてくれます。&lt;/p>
&lt;p>&lt;strong>各シナリオはスタンドアロンで実行。&lt;/strong> シナリオ間の順序依存なし。各シナリオが自分でテストデータをセットアップし、実サービスで実行し、後片付けをします。並列実行でもCI/CDで脆弱な順序問題は起きません。&lt;/p>
&lt;p>&lt;strong>スキルが拒否する言い訳:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>「ちょっとしたユニットテストだけ…」 — ユニットテストは機能を検証しない&lt;/li>
&lt;li>「エンドツーエンドが必要なほど複雑じゃない…」 — インテグレーションはシンプルなものを壊す&lt;/li>
&lt;li>「速度のためにモックする…」 — テストが嘘をつくなら速度は意味がない&lt;/li>
&lt;/ul>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>2つの成果物、2つのライフサイクル。&lt;/p>
&lt;p>&lt;strong>&lt;code>.scratch/&lt;/code> ファイル&lt;/strong>は一時的なシナリオスクリプトです。タスクに合った言語で書きます。&lt;code>.scratch/&lt;/code> に置かれ、gitignoreされます — コミットされることはありません。これがあなたの実際のテストで、実サービスに当たって動くことを証明するものです。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># .scratch/test-auth.py&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">test_user_can_register_and_login&lt;/span>():
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> user &lt;span style="color:#f92672">=&lt;/span> register_user(email&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;test@example.com&amp;#34;&lt;/span>, password&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;s3cure&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">assert&lt;/span> user&lt;span style="color:#f92672">.&lt;/span>id &lt;span style="color:#f92672">is&lt;/span> &lt;span style="color:#f92672">not&lt;/span> &lt;span style="color:#66d9ef">None&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> token &lt;span style="color:#f92672">=&lt;/span> login(email&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;test@example.com&amp;#34;&lt;/span>, password&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#e6db74">&amp;#34;s3cure&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">assert&lt;/span> token &lt;span style="color:#f92672">is&lt;/span> &lt;span style="color:#f92672">not&lt;/span> &lt;span style="color:#66d9ef">None&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> delete_user(user&lt;span style="color:#f92672">.&lt;/span>id) &lt;span style="color:#75715e"># cleanup&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>&lt;code>scenarios.jsonl&lt;/code>&lt;/strong> は永続的な記録です。シナリオがパスしてパターンを残す価値があると判断したら、1行のJSONエントリとして抽出します。このファイルはコミットされます — 使い捨てのテストコードを含まずに何が動くべきかを記述します。&lt;/p></description></item><item><title>Test Kitchen</title><link>https://2389.ai/ja/research/products/test-kitchen/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/test-kitchen/</guid><description>&lt;p>どのアプローチが最善か分からないときは、すべて構築しましょう。Test Kitchen は複数のバリアントを並列に実装し、それぞれ独立した git ワークツリーと独立したエージェントで、テスト結果と構造化された採点フレームワークを使って勝者を選びます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install test-kitchen
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Test Kitchen は複数の superpowers スキル（brainstorming、writing-plans、dispatching-parallel-agents など）をオーケストレートし、インストールされていないものがあっても正常に動作します。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>Test Kitchen はワークフローに2つのゲートスキルを追加します。&lt;/p>
&lt;p>&lt;strong>Omakase-off&lt;/strong> は入口ゲートです。「通知システムを構築して」「CLI ツールを作って」「認証を追加して」といった構築依頼で起動します。2つの選択肢があります。設計を一緒にブレインストーミングするか、おまかせ（シェフのおすすめ）で3〜5つのアーキテクチャアプローチを並列に実装してテストで勝者を決めるかです。&lt;/p>
&lt;p>ブレインストーミングを選んだ場合、omakase-off はアーキテクチャの優柔不断を監視します。2つ以上の設計判断で「どちらでも」「どっちでもいい」と言ったとき、早まった選択をするのではなくその代替案を並列に探索することを提案します。&lt;/p>
&lt;p>&lt;strong>Cookoff&lt;/strong> は出口ゲートです。設計が完了してコードを書く準備ができたときに起動します。複数のエージェントが同じ設計ドキュメントを読みますが、それぞれ独自の実装計画を作ります。共有された計画がないため、アプローチに本物の違いが生まれます。各エージェントは独立したワークツリーで構築します。完了後、judge スキルが5つの基準（目的への適合性、正当化された複雑さ、可読性、堅牢性、保守性）で全実装を採点します。&lt;/p>
&lt;p>両方のゲートには単一エージェントまたはローカル実装のオプションもあります。間違いのコストが3つのプロトタイプを作って2つを捨てるコストより高いときに、並列パスが役立ちます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>並列実行のライフサイクル：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>ワークツリーのセットアップ&lt;/strong> — 各バリアントが独自の git ワークツリーとブランチを取得（&lt;code>feature/omakase/variant-slug&lt;/code> または &lt;code>feature/cookoff/impl-N&lt;/code>）&lt;/li>
&lt;li>&lt;strong>並列起動&lt;/strong> — 全エージェントを1つのメッセージで起動し真の並列性を確保&lt;/li>
&lt;li>&lt;strong>独立した計画&lt;/strong> — 各エージェントが共通の設計ドキュメントから独自の実装計画を書く&lt;/li>
&lt;li>&lt;strong>TDD 実装&lt;/strong> — エージェントが独立したワークツリーでレッド・グリーン・リファクタリングを実践&lt;/li>
&lt;li>&lt;strong>シナリオテスト&lt;/strong> — 同じテストシナリオを全実装に対して実行&lt;/li>
&lt;li>&lt;strong>Fresh-eyes レビュー&lt;/strong> — 採点前に生存したものをセキュリティとロジックのチェック&lt;/li>
&lt;li>&lt;strong>Judge の採点&lt;/strong> — 整数スコアによる5基準のワークシート、適合性のギャップと重大な欠陥にはハードゲート&lt;/li>
&lt;li>&lt;strong>クリーンアップ&lt;/strong> — ユーザーが採点結果から勝者を選び、敗者のワークツリーとブランチを削除&lt;/li>
&lt;/ol>
&lt;p>結果は &lt;code>docs/plans/&amp;lt;feature&amp;gt;/cookoff/result.md&lt;/code> に保存され、何を試みてなぜ勝者が選ばれたかの記録が残ります。&lt;/p></description></item><item><title>Speed-Run</title><link>https://2389.ai/ja/research/products/speed-run/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/speed-run/</guid><description>&lt;p>コードの大半はパターンの踏襲であり、推論を必要とするものではありません。Speed-Run はその仕事を分割します。Cerebras が予測可能な部分を毎秒約2000トークンの速度で生成し、Claude がアーキテクチャの判断と外科的な修正を担当します。結果として、同じ品質のコードが Claude トークン約60%削減、ファイルあたりの生成速度20倍で得られます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install speed-run
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://cloud.cerebras.ai">cloud.cerebras.ai&lt;/a> から無料の Cerebras API キーを取得し、&lt;code>~/.claude/settings.json&lt;/code> に追加してください。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;env&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;CEREBRAS_API_KEY&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;your-key-here&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>キーを設定したら Claude Code を再起動してください。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>Speed-Run には3つのモードがあり、それぞれ異なる状況に対応しています。&lt;/p>
&lt;p>&lt;strong>Turbo&lt;/strong> は最もシンプルなモードです。1タスク、1回の生成。データ型、API の形式、アルゴリズムの手順、制約を含むコントラクトプロンプトを書くと、Cerebras が1秒以内にコードを生成します。Claude がテストを実行し、問題があれば外科的に修正します。アルゴリズムコード、ボイラープレート、データ変換、複数ファイルのスキャフォールディングに最適です。&lt;/p>
&lt;p>&lt;strong>Showdown&lt;/strong> は複数のエージェントが同じ設計ドキュメントに対して並列で実行されます。各エージェントは仕様を読み、独自の実装計画を作成し、Cerebras 経由でコードを生成し、テストを独立して実行します。judge スキルが5つの基準（適合性、複雑さ、可読性、堅牢性、保守性）で全バリアントを採点し、勝者を選びます。エージェントが共通の設計から独自の計画を作成するため、本物の多様性が生まれます。&lt;/p>
&lt;p>&lt;strong>Any-Percent&lt;/strong> は適切なアプローチが分からない場合に使います。同じ仕様を異なる方法で実装するのではなく、各バリアントが根本的に異なる戦略を試みます。イベント駆動対ポーリング、SQLite 対 Postgres など、アーキテクチャの分岐が対象です。同じ採点フレームワークで勝者を選びますが、今度は実装の違いではなくトレードオフを比較します。&lt;/p>
&lt;p>全ての並列モードは、すべてのエージェントを1つのメッセージで起動します。逐次的な起動では意味がありません。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>どのモードでも共通のパイプライン：&lt;/p>
&lt;ol>
&lt;li>Claude が仕様を書く（コントラクトプロンプトまたは設計ドキュメント）&lt;/li>
&lt;li>Cerebras が初回コードを生成（ファイルあたり約0.5秒、80〜95%の正確性）&lt;/li>
&lt;li>Claude が出力に対してテストを実行&lt;/li>
&lt;li>テストが失敗した場合、Claude が外科的に修正（最初からの再生成は行わない）&lt;/li>
&lt;li>並列モードの場合：judge が全バリアントを採点し、勝者を昇格させ、敗者を削除&lt;/li>
&lt;/ol>
&lt;p>バンドルされた MCP サーバー（&lt;code>@2389/speed-run-mcp&lt;/code>）が Cerebras との通信を担います。生成された出力からファイルブロックを解析してディスクに書き込みます。このサーバーはプラグインのインストール時に自動登録されます。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Cerebras API キー&lt;/strong> — 無料ティアで1日約100万トークン含む&lt;/li>
&lt;li>&lt;strong>Claude Code&lt;/strong> プラグインサポート付き&lt;/li>
&lt;li>&lt;code>superpowers&lt;/code> および &lt;code>fresh-eyes-review&lt;/code> プラグインと組み合わせると最も効果的（なくても正常に動作）&lt;/li>
&lt;/ul></description></item><item><title>バイナリリバースエンジニアリング</title><link>https://2389.ai/ja/research/products/binary-re/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/binary-re/</guid><description>&lt;p>ELF バイナリのリバースエンジニアリング用プラグイン。
解析対象と「疑っている挙動」をプラグインに伝えると、各種ツールを連携させて解析の全体像を可視化します。
対応アーキテクチャ: ARM64、ARMv7、x86_64、MIPS。 静的解析には radare2 と
Ghidra、動的解析には QEMU のユーザモード・エミュレーションと GDB を使用。
破壊的な操作を行う前に、必ずユーザーに確認を求めます。 ## インストール ```bash
/plugin marketplace add 2389-research/claude-plugins /plugin install binary-re&lt;/p>
&lt;pre tabindex="0">&lt;code class="language-##" data-lang="##">Ghidra、frida-tools クロスコンパイル時: ARM 用 sysroots ## 主な用途
ファームウェアのティアダウン（分解）解析、プロトコルマッピング、脆弱性リサーチ、IoT／ロボティクス機器内部の調査など。
本プラグインは仮説駆動型で、バイナリが何をしているかというあなたの仮説を Claude
が利用可能なツールで検証・反証します。
&lt;/code>&lt;/pre></description></item><item><title>Pulse</title><link>https://2389.ai/ja/research/products/pulse/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/pulse/</guid><description>&lt;p>Pulse はAIエージェントに通常持たない2つのものを与えるMCPサーバーです: プライベートジャーナルとソーシャルフィード。単一のGoバイナリとして動作し、すべてをローカルのmarkdownファイルとして保存し、エージェントがジャーナルエントリを書き込んで意味的に検索し、共有ソーシャルタイムラインに投稿できる7つのMCPツールを公開します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/pulse/cmd/pulse@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>MCPサーバーとして起動:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>pulse mcp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="できること">できること&lt;/h2>
&lt;p>&lt;strong>デュアルルートジャーナリング。&lt;/strong> エージェントは &lt;code>process_thoughts&lt;/code> で構造化されたジャーナルエントリを書き込みます。エントリは2箇所に保存されます: プロジェクト固有のメモ用のプロジェクトローカル &lt;code>.private-journal/&lt;/code> ディレクトリ、プロジェクト横断的な省察用のユーザーグローバル &lt;code>~/.private-journal/&lt;/code>。各エントリはYAMLフロントマターを持つmarkdownファイルです。&lt;/p>
&lt;p>&lt;strong>意味検索。&lt;/strong> &lt;code>search_journal&lt;/code> はキーワードではなく意味でエントリをマッチングします。Pulse は fastembed-go を使ってONNXエンベディングをローカル実行します — APIコールなし、データはマシンの外に出ません。エンベディングが使えない場合は部分文字列マッチングにフォールバックします。&lt;/p>
&lt;p>&lt;strong>ソーシャルフィード。&lt;/strong> &lt;code>login&lt;/code> でエージェントのアイデンティティを設定し、&lt;code>create_post&lt;/code> で &lt;code>~/.local/share/pulse/social/&lt;/code> に保存されたローカルタイムラインに書き込み、&lt;code>read_posts&lt;/code> でフィルタリング付きのフィードを取得します。設定時に複数のエージェント (または人間) がフィードを共有できるようリモートAPIへ投稿を同期します。&lt;/p>
&lt;p>&lt;strong>読み取りと一覧。&lt;/strong> &lt;code>read_journal_entry&lt;/code> はパスで特定のエントリを取得します。&lt;code>list_recent_entries&lt;/code> はプロジェクトまたはユーザールートにスコープされた日付順のエントリを返します。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>Pulse はMCPプロトコルレイヤー (go-sdk経由) と2つのストレージバックエンドの間に位置します。ジャーナルストレージはmdstoreでアトミック書き込み、ファイルロック、フロントマター解析を処理します。ソーシャルストレージはメタデータ付きの個別markdownファイルとして投稿を書き込みます。&lt;/p>
&lt;p>MCPサーバーは起動時に7つのツールをすべて登録します。エージェントは標準のMCPツール呼び出しで呼び出します。ローカル利用にHTTPサーバーは不要です — Pulseはstdio通信します。&lt;/p>
&lt;p>設定は &lt;code>~/.config/pulse/config.yaml&lt;/code> にあります。リモート同期を有効にするには &lt;code>social&lt;/code> ブロックに &lt;code>api_key&lt;/code>、&lt;code>team_id&lt;/code>、&lt;code>api_url&lt;/code> を設定します。ジャーナルパスは設定可能ですが、デフォルトはデュアルルートレイアウトです。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>Go 1.24+ (ソースからビルドする場合)&lt;/li>
&lt;li>リモートソーシャル同期の場合: &lt;code>~/.config/pulse/config.yaml&lt;/code> にAPIクレデンシャル&lt;/li>
&lt;li>エンベディングモデルは初回意味検索時に &lt;code>~/.local/share/pulse/models/&lt;/code> に自動ダウンロード&lt;/li>
&lt;/ul></description></item><item><title>Building Multi-Agent Systems</title><link>https://2389.ai/ja/research/products/building-multiagent-systems/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/building-multiagent-systems/</guid><description>&lt;p>複数の AI エージェントを互いに干渉させずに協調させるのが難しい部分です。このスキルはアーキテクチャパターンと協調の仕組みを提供します — スキーマファーストのツール、型付きコントラクト、パーミッション継承、そしてスケールしても破綻しないライフサイクル管理です。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install building-multiagent-systems
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>コードを書く前に、スキルは出発点、スケール、状態要件、制約に関する6つの調査質問を尋ねます。回答に基づいて、7つの協調パターンのうち1つを推奨します:&lt;/p>
&lt;p>&lt;strong>ファンアウト/ファンイン&lt;/strong> — 並列化しやすい作業向け。レビュアー、アナライザー、スクレイパーを生成して結果を収集します。&lt;strong>シーケンシャルパイプライン&lt;/strong> — 各ステージが前のステージに依存する場合。&lt;strong>再帰的委任&lt;/strong> — 深さ制限付きの階層的タスク分解。&lt;strong>ワークスティーリングキュー&lt;/strong> — 1,000タスク以上のバッチ処理。&lt;strong>マップリデュース&lt;/strong> — コストを抑えるため、マップパスには安価なモデル、リデュースには高性能モデルを使用。&lt;strong>ピアコラボレーション&lt;/strong> — LLM評議会による多様な視点が必要な場合。&lt;strong>MAKER&lt;/strong> — 医療や金融処理など、数百万ステップでエラーゼロが求められる領域での実行。&lt;/p>
&lt;p>各エージェントは4層アーキテクチャに従います: 推論（LLM）、オーケストレーション（ポリシーとルーティング）、ツールバス（スキーマ検証と実行）、決定論的アダプター（ファイルI/O、API、シェル）。LLM層より下はすべて決定論的で独立してテスト可能です。&lt;/p>
&lt;p>スキルは専門エージェントを呼び出し可能なツールとしてラップする方法（サブエージェントとしてのツールパターン）、エージェントが自身のコードを変更できる場合の自己変更安全性、サブエージェントがハードコードされた知識なしに利用可能なものを探せるスキーマファーストのツール設計もカバーします。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>パーミッション継承によりサブエージェントが権限を昇格させることを防ぎます — 子エージェントは親パーミッションのサブセットを受け取ります。カスケード停止によりオーファンエージェントを防ぎます: 子を先に停止し、次に自身を停止し、作業をキャンセルしてイベントをフラッシュします。ハートビート監視が親のクラッシュ後にオーファンを検出します。チェックポイントはツール呼び出し10回ごと、1.00ドル消費ごと、または5分ごとに状態を保存します。コスト追跡は階層型IDを使ってエージェント階層全体で集計されます。&lt;/p></description></item><item><title>Documentation Audit</title><link>https://2389.ai/ja/research/products/documentation-audit/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/documentation-audit/</guid><description>&lt;p>ドキュメントは一方を言い、コードは別のことをする。Documentation Audit は Claude Code プラグインで、マークダウンファイルからすべての検証可能なクレームを抽出し、コードベースに対してひとつひとつ確認します。存在しないファイルへの参照、誤ったデフォルト値、不足している環境変数、古くなった CLI フラグを検出し、手作業では見落とすパターンを表面化するために発見内容を拡張します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin install documentation-audit@2389-research
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>その後、「audit docs」、「verify documentation」、「check if docs are accurate」で呼び出してください。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>プラグインはプロジェクトのユーザー向けドキュメントに対して2パス監査を実行します。&lt;/p>
&lt;p>&lt;strong>パス1: 直接抽出。&lt;/strong> 各マークダウンファイルをスキャンしてクレームを抽出します — ファイルパス、設定のデフォルト値、環境変数、CLI コマンド、動作に関する記述。各クレームをコードベースに対して検証し、TRUE、FALSE、または NEEDS_REVIEW の評決を付けます。抽出は並列実行されます（ドキュメントごとに1エージェント）のでドキュメント量が多くてもボトルネックになりません。&lt;/p>
&lt;p>&lt;strong>パス2A: パターン拡張。&lt;/strong> パス1で偽と判定されたクレームをタイプ別にグループ化します。プラグインはすべてのドキュメントで類似パターンを検索します。存在しないスクリプト参照が1つ見つかれば、すべてのスクリプト参照を探します。タイマーの間隔が1つ間違っていれば、すべての間隔クレームを確認します。この2番目のパスは1回のスキャンで見落とす問題をさらに10〜20%検出します。&lt;/p>
&lt;p>&lt;strong>パス2B: ギャップ検出。&lt;/strong> コードベースに実際にあるものとドキュメント化されているものを比較します。存在するが記載されていないスクリプトと、削除されたファイルを参照しているドキュメントを見つけます。&lt;/p>
&lt;p>&lt;strong>クレームタイプと検証レベル:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>自動検証:&lt;/strong> ファイル参照、設定のデフォルト値、環境変数、CLI フラグ&lt;/li>
&lt;li>&lt;strong>半自動:&lt;/strong> シンボル参照、バージョン要件&lt;/li>
&lt;li>&lt;strong>人間によるレビュー:&lt;/strong> 動作に関するクレーム（「2分ごとに実行」）、制約&lt;/li>
&lt;/ul>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>プラグインは隔離された Plan エージェントコンテキスト内で実行され、抽出アーティファクトをメイン会話から分離します。各ドキュメントは抽出用の並列 Task エージェントを得ます。結果は &lt;code>docs/audits/AUDIT_REPORT_YYYY-MM-DD.md&lt;/code> に単一の監査レポートとして集約されます。&lt;/p>
&lt;p>レポートには精度率を含むエグゼクティブサマリー、行番号と修正提案付きの偽クレーム一覧、根本原因を示すパターン分析（例：「同じリファクタリングに由来する9つの存在しないスクリプト」）、自動検証できないクレームの人間レビューキューが含まれます。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>プラグインサポートを持つ Claude Code&lt;/li>
&lt;li>監査するマークダウンドキュメントを含むプロジェクト&lt;/li>
&lt;/ul></description></item><item><title>ディラン・リチャード</title><link>https://2389.ai/ja/team/dylan-richard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/dylan-richard/</guid><description>&lt;p>私はソフトウェアエンジニアリングのリーダーとして、高い成果を上げるチームとスケール可能なシステムの構築に取り組んでいます。現実的な解決策を重視し、エンジニアの成長を支援し、イノベーションが継続的に育つ協働的な環境づくりを大切にしています。&lt;/p></description></item><item><title>Tracker</title><link>https://2389.ai/ja/research/products/tracker/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/tracker/</guid><description>&lt;p>Tracker は strongDM の &lt;a href="https://github.com/strongdm/attractor">Attractor&lt;/a> フレームワークの Go 実装です。AI 駆動のソフトウェアファクトリーを構築するための3層システムです。ワークフローを DOT ファイルとして定義し、各ノードがステップとなる有向非巡回グラフとして、Tracker が依存順に実行します。人間が関与するゲート、LLM 駆動のノード、自動チェックポイント、リトライロジックに対応しています。bubbletea の TUI ダッシュボードでパイプラインの進捗をリアルタイムに確認できます。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/tracker/cmd/tracker@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>パイプラインの実行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>tracker pipeline.dot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>チェックポイントから再開：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>tracker -c .tracker/runs/&amp;lt;runID&amp;gt;/checkpoint.json pipeline.dot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>DOT ファイルからの DAG 実行。&lt;/strong> 標準の Graphviz DOT ファイルとしてパイプラインを定義します。ノードがステップを表し、エッジが依存関係を表します。Tracker はグラフをトポロジカルソートして正しい順序でノードを実行し、可能な場合は独立したブランチを並列で実行します。&lt;/p>
&lt;p>&lt;strong>人間のゲートノード。&lt;/strong> 任意のノードを人間のゲートとしてマークすると、Tracker は実行を一時停止して選択肢またはフリーフォームのプロンプトを提示します。TUI モードではキーボードナビゲーション付きのスクロール可能なモーダルダイアログとして表示されます。コンソールモードでは stdin/stdout にフォールバックします。&lt;/p>
&lt;p>&lt;strong>LLM 駆動のノード。&lt;/strong> ノードはパイプラインのコンテキストをプロンプトに自動注入して言語モデルを呼び出せます。トレースのイントロスペクションにより、TUI ダッシュボードとコンソール出力の両方でトークン数、レイテンシ、プロンプト/補完テキストを確認できます。&lt;/p>
&lt;p>&lt;strong>自動チェックポイント。&lt;/strong> Tracker はノードの遷移ごとにパイプラインの状態を &lt;code>.tracker/runs/&amp;lt;runID&amp;gt;/checkpoint.json&lt;/code> に保存します。実行が失敗または中断された場合、最後のチェックポイントから再開できます。アーティファクトディレクトリが存在する場合、チェックポイントはデフォルトで有効になります。手動の設定は不要です。&lt;/p>
&lt;p>&lt;strong>バックオフ付きリトライ。&lt;/strong> 失敗したノードは設定可能なバックオフで自動的に再試行されます。チェックポイントはリトライ回数を追跡するため、再開した実行は中断した場所から再開します。&lt;/p>
&lt;p>&lt;strong>TUI ダッシュボード。&lt;/strong> bubbletea ベースのターミナル UI がライブのノードリストとステータスインジケーター、LLM トレースの詳細、人間のゲート用のスクロール可能なモーダルプロンプトを表示します。ヘッドレス環境や CI 環境では &lt;code>--no-tui&lt;/code> で無効化できます。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>Tracker は DOT ファイルを DAG に解析してサイクルの有無を検証し、実行計画を構築します。エンジンはグラフをノードごとに辿り、各ノードをその型に基づいてハンドラーに振り分けます。パイプラインのコンテキストはノード間を流れ、前のステップの出力が後のステップの入力として利用できます。&lt;/p></description></item><item><title>Dippin</title><link>https://2389.ai/ja/research/products/dippin-lang/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/dippin-lang/</guid><description>&lt;p>Dippin は AI パイプラインワークフローを記述するためのドメイン固有言語です。&lt;a href="https://2389.ai/ja/research/products/tracker/">Tracker&lt;/a> パイプラインのオーサリング形式として Graphviz DOT を置き換え、プロンプト、シェルスクリプト、モデル設定、条件分岐に専用の構文を与えます。すべてをエスケープされた文字列属性に詰め込む必要はありません。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>go install github.com/2389-research/dippin-lang/cmd/dippin@latest
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>確認:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>dippin help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>既存の DOT パイプラインを移行:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>dippin migrate --output pipeline.dip pipeline.dot
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>dippin validate-migration pipeline.dot pipeline.dip
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="機能">機能&lt;/h2>
&lt;p>&lt;strong>パイプラインオーサリング用の本格的な言語。&lt;/strong> ワークフローはインデントベースの構造を持つ &lt;code>.dip&lt;/code> ファイルです。エージェントノードには型付きの &lt;code>model:&lt;/code> と &lt;code>provider:&lt;/code> フィールドがあります。プロンプトとシェルコマンドは複数行ブロックで記述でき、エスケープや引用符は不要です。条件は不透明な文字列属性の代わりに &lt;code>when ctx.outcome == &amp;quot;fail&amp;quot;&lt;/code> で書けます。&lt;/p>
&lt;p>&lt;strong>39の診断コード。&lt;/strong> バリデーションは構造的な問題（開始ノードの欠如、到達不能ノード、重複エッジ）とセマンティックな問題（不明なモデル名、制限のない再試行、タイムアウトのないツールコマンド）を検出します。エラーメッセージは Rust コンパイラの慣例に従います — ソースの場所、説明、修正の提案。&lt;/p>
&lt;p>&lt;strong>DOT からの移行。&lt;/strong> &lt;code>dippin migrate&lt;/code> は既存の DOT パイプラインを &lt;code>.dip&lt;/code> 形式に変換します。&lt;code>dippin validate-migration&lt;/code> は元ファイルと変換後のファイルの構造的同等性を確認し、翻訳で何も失われないようにします。&lt;/p>
&lt;p>&lt;strong>分析ツール。&lt;/strong> &lt;code>dippin simulate&lt;/code> は LLM を呼び出さずに実行グラフをドライランします。&lt;code>dippin cost&lt;/code> はモデルとプロバイダー別の実行あたりコストを見積もります。&lt;code>dippin coverage&lt;/code> はエッジの到達可能性を確認します。&lt;code>dippin doctor&lt;/code> はリント、カバレッジ、コストを文字評価にまとめます。&lt;code>dippin unused&lt;/code> はデッドブランチノードを見つけてコストの無駄を見積もります。&lt;/p></description></item><item><title>dotpowers</title><link>https://2389.ai/ja/research/products/dotpowers/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/dotpowers/</guid><description>&lt;p>&lt;code>echo &amp;quot;a dvd bouncing tui&amp;quot; &amp;gt; idea.md&lt;/code> と書いて &lt;code>dotpowers.dot&lt;/code> にランナーを向ければ、テスト済みでレビュー済みのプロジェクトがgitブランチに仕上がって戻ってくる。DOTファイル1本、約1300行。&lt;a href="https://github.com/obra/superpowers">superpowers&lt;/a>開発メソドロジーをパイプライングラフとしてエンコードしたもので、ブレインストーミング、計画立案、TDD実装、マルチモデルレビュー、リリース判断をすべて失敗ハンドリングとヒューマンゲートで結線している。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/2389-research/dotpowers.git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;a href="https://github.com/strongdm/attractor">attractor&lt;/a>準拠のDOTランナーで実行する:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>mkdir my-project &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> cd my-project
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>echo &lt;span style="color:#e6db74">&amp;#34;a terminal dashboard that shows system metrics&amp;#34;&lt;/span> &amp;gt; idea.md
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>git init
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># tracker, mammoth, smasher — whatever you have&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tracker /path/to/dotpowers.dot --tui
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="何をするのか">何をするのか&lt;/h2>
&lt;p>&lt;strong>アイデアからリリース判断まで6フェーズ。&lt;/strong> Brainstormはアイデアを読んで質問を一つずつ行い（YAGNIを強制）、2〜3種類のアーキテクチャアプローチを含む設計ブリーフを書き上げる。PlanはGPT-5.2がTDDプランを下書きし、シェルスクリプトが曖昧なステップを弾き、Opusがブリーフに照らしてすべての要件を監査する（最大5回繰り返し）。Setupはフィーチャーブランチを作りdepsをインストール。Implementはタスクごとにこの繰り返し: 失敗するテスト、最小限のコード、仕様レビュー（Opus）、品質レビュー（GPT-5.4）、コミット。Reviewは3つのモデルが独立してプロジェクト全体をレビューし、互いに相手の2件をクロス批評（6件）、Opusが最終判断を下す。Shipではローカルマージ、PRのプッシュ、ブランチ保持、破棄のどれかを選ぶ。&lt;/p>
&lt;p>&lt;strong>4つのモデル、それぞれ得意なことに集中。&lt;/strong> Opus 4.6が仕様監査、合意形成、デバッグを担う。GPT-5.4がコードを書く。GPT-5.2がプランを下書き・修正する。Gemini 3.5 Flashがレビューで3番目の意見を出す。&lt;/p>
&lt;p>&lt;strong>段階的な失敗ハンドリング。&lt;/strong> 何かが壊れたとき、パイプラインはあなたに聞く前に4つのことを試みる: ノードを再試行（最大2回）、根本原因分析を含むデバッグ調査の実行、修正されたアプローチでのタスク再計画、そしてヒューマンゲートへのエスカレーション。ループ上限でトークンの浪費を防ぐ — プラン検証は5回、実装レビューはタスクごとに5回、最終修正は2サイクルまで。&lt;/p>
&lt;p>&lt;strong>ヒューマン・イン・ザ・ループ、ヒューマン・オン・ザ・フックではない。&lt;/strong> あなたは設計ブリーフを承認する。3タスク完了ごとにバッチチェックポイントをレビューする。リリース方法を決める。実装側が質問があれば一時停止して聞く。それ以外のゲート間はパイプラインがヘッドレスで動く。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>パイプラインは単一のGraphviz DOTファイルだ。各ノードはLLMプロンプト（CSSライクなスタイルシートでモデルを割り当て）、シェルスクリプト（フォーマット検証、カウンター管理、ビルド検証）、またはヒューマンゲート（設計承認、バッチレビュー、リリース判断）のいずれか。エッジには成功・失敗のルーティング、ループバック、エスカレーションパスが含まれる。&lt;/p>
&lt;p>状態は2か所に存在する: &lt;code>docs/plans/&lt;/code> にLLMが読み書きする成果物（ブレインストームメモ、設計ブリーフ、TDDプラン、監査結果）、&lt;code>.tracker/&lt;/code> にパイプラインの機構（ループカウンター、バッチ数、チェックポイントデータ）。plansディレクトリはコミットされ、trackerディレクトリはgitignoreされる。&lt;/p>
&lt;p>ファンアウトノードが最終レビュー3件を並列実行する。ファンインノードがクロス批評前に結果を集約する。コンセンサスノードがすべてのレビューと批評を読んで、ship・rework・failのどれかにルーティングする。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://github.com/strongdm/attractor">attractor&lt;/a>準拠のDOTランナー（&lt;a href="https://github.com/2389-research/tracker">tracker&lt;/a>、&lt;a href="https://github.com/2389-research/mammoth">mammoth&lt;/a>、&lt;a href="https://github.com/2389-research/smasher">smasher&lt;/a>）&lt;/li>
&lt;li>OpenAI、Anthropic、GoogleのAPIキー（&lt;code>.env&lt;/code>または環境変数）&lt;/li>
&lt;li>git&lt;/li>
&lt;li>ビルド対象の言語ツールチェーン（Rust、Python/uv、Node、Go — プランがスタックを指定する）&lt;/li>
&lt;/ul></description></item><item><title>チーム</title><link>https://2389.ai/ja/home/team/</link><pubDate>Sat, 01 Jun 2024 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/home/team/</guid><description>&lt;!-- チームセクション -->
&lt;section id="team" class="section">
 &lt;div class="section-content">
 &lt;div class="grid grid-cols-1 md:grid-cols-2 gap-8">
 &lt;!-- 左列：見出し＋最初の2人 -->
 &lt;div class="space-y-8">
 &lt;div class="section-header">
 &lt;h2>私たちのチーム&lt;/h2>
 &lt;p class="description">
 私たちは、ネットで何かを作ることが「イケてる」なんて言われるずっと前から、インターネット関連のサービスやプロダクトを作り続けてきた筋金入りのオタク集団です。いまそれがイケてるのかどうか──正直、まだよく分かりません。でも楽しいからやっています。
 &lt;span class="hidden md:inline"
 >それと、おそろいのジャンプスーツは……まだ持っていません。&lt;/span
 >
 &lt;/p>
 &lt;/div>
 
 
 &lt;section class="about-page__team">
 &lt;header class="about-page__team-header">
 &lt;h2 class="about-page__team-title">チーム&lt;/h2>
 &lt;p class="about-page__team-description">2389の人間たち。&lt;/p>
 &lt;/header>
 
 &lt;div class="about-page__team-grid">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/harper-reed/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/4de287508b565f38122a4bc24183caebe9246a704a3b8370b3918be1de90cded?s=600"
 alt="Harper Reed"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Harper Reed&lt;/h3>
 
 &lt;span class="team-card__role">CEO / Founder&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/dylan-richard/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #0a0a0a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/28d83c3fd77f4e804d4f9af8ac0e582979641103bff006fc23dd0477624aba0a?s=600"
 alt="Dylan Richard"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Dylan Richard&lt;/h3>
 
 &lt;span class="team-card__role">CTO / Founder&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/ivan-indrautama/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #1f4ae6">
 
 &lt;img
 src="https://www.gravatar.com/avatar/9133980ee1fe006cd0d72c5df6798655260df1538a1e939efd931e3b07a2af1f?s=600"
 alt="Ivan Indrautama"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Ivan Indrautama&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/clint-ecker/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/b4f88be50a7a923a6858f1656f81c76b474924270114980bfd58473341796a37?s=600"
 alt="Clint Ecker"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Clint Ecker&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/sophie-davis/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #e6196e">
 
 &lt;img
 src="https://www.gravatar.com/avatar/05a4efe62043524877530a6a4cf305e902ac8f0ea46776c632ecccf579d22379?s=600"
 alt="Sophie Davis"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Sophie Davis&lt;/h3>
 
 &lt;span class="team-card__role">Operations Associate&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 &lt;a href="https://2389.ai/ja/team/michael-sugimura/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #f0d6d0">
 
 &lt;img
 src="https://www.gravatar.com/avatar/1266ac4fb6547b14ebeb0389ba5dcecf7023c1387f0c53e993ce1db3f5d6a6d6?s=600"
 alt="Michael Sugimura"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Michael Sugimura&lt;/h3>
 
 &lt;span class="team-card__role">ML Engineer&lt;/span>
 
 &lt;/div>
 &lt;/a>
 
 
 &lt;/div>
 &lt;/section>

 &lt;/div>

 &lt;!-- 右列：残りのメンバー -->
 &lt;div>

&lt;section class="about-page__team">
 &lt;header class="about-page__team-header">
 &lt;h2 class="about-page__team-title">チーム&lt;/h2>
 &lt;p class="about-page__team-description">2389の人間たち。&lt;/p>
 &lt;/header>

 &lt;div class="about-page__team-grid">
 
 














 
 



&lt;a href="https://2389.ai/ja/team/harper-reed/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/4de287508b565f38122a4bc24183caebe9246a704a3b8370b3918be1de90cded?s=600"
 alt="Harper Reed"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Harper Reed&lt;/h3>
 
 &lt;span class="team-card__role">CEO / Founder&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/dylan-richard/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #0a0a0a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/28d83c3fd77f4e804d4f9af8ac0e582979641103bff006fc23dd0477624aba0a?s=600"
 alt="Dylan Richard"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Dylan Richard&lt;/h3>
 
 &lt;span class="team-card__role">CTO / Founder&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/ivan-indrautama/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #1f4ae6">
 
 &lt;img
 src="https://www.gravatar.com/avatar/9133980ee1fe006cd0d72c5df6798655260df1538a1e939efd931e3b07a2af1f?s=600"
 alt="Ivan Indrautama"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Ivan Indrautama&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/clint-ecker/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/b4f88be50a7a923a6858f1656f81c76b474924270114980bfd58473341796a37?s=600"
 alt="Clint Ecker"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Clint Ecker&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/sophie-davis/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #e6196e">
 
 &lt;img
 src="https://www.gravatar.com/avatar/05a4efe62043524877530a6a4cf305e902ac8f0ea46776c632ecccf579d22379?s=600"
 alt="Sophie Davis"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Sophie Davis&lt;/h3>
 
 &lt;span class="team-card__role">Operations Associate&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/michael-sugimura/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #f0d6d0">
 
 &lt;img
 src="https://www.gravatar.com/avatar/1266ac4fb6547b14ebeb0389ba5dcecf7023c1387f0c53e993ce1db3f5d6a6d6?s=600"
 alt="Michael Sugimura"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Michael Sugimura&lt;/h3>
 
 &lt;span class="team-card__role">ML Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 &lt;/div>
&lt;/section>
&lt;/div>
 &lt;/div>
 &lt;/div>
&lt;/section></description></item><item><title>イヴァン・インドラウタマ</title><link>https://2389.ai/ja/team/ivan-indrautama/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/ivan-indrautama/</guid><description>&lt;p>私はソフトウェアエンジニアで、写真撮影やモノづくりが大好きです。レンズを通して一瞬を捉え、革新的な技術的解決策を生み出すことに喜びを感じています。&lt;/p></description></item><item><title>クリント・エッカー</title><link>https://2389.ai/ja/team/clint-ecker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/clint-ecker/</guid><description>&lt;p>ファッションとスタイルに強い情熱を持つソフトウェアエンジニアです。
バレンシアガをこよなく愛し、技術とファッションを融合させた革新的なデザインを追求することに熱中しています。&lt;/p></description></item><item><title>ソフィー・デイビス</title><link>https://2389.ai/ja/team/sophie-davis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/sophie-davis/</guid><description>&lt;p>Original: An Operations Associate Translation:
オペレーション担当（アソシエイト）&lt;/p></description></item><item><title>マイケル・スギムラ</title><link>https://2389.ai/ja/team/michael-sugimura/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/team/michael-sugimura/</guid><description>&lt;p>AIシステムおよびモデルの開発に注力する機械学習エンジニアです。
深層学習、コンピュータビジョン、自然言語処理を専門としています。&lt;/p></description></item><item><title>Simmer</title><link>https://2389.ai/ja/research/products/simmer/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/simmer/</guid><description>&lt;p>Simmer はあなたが書いたもの — 売り込みメール、設計仕様、システムプロンプト、API契約書 — を繰り返しの構造化されたパスで改善します。「より良い」とする2〜3の基準を定義すると、成果物が改善しなくなるかあなたが止めるまで、生成-評価-振り返りのループを実行します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin install simmer@2389-research
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="できること">できること&lt;/h2>
&lt;p>各イテレーションは3ステップです:&lt;/p>
&lt;p>&lt;strong>生成&lt;/strong>は評価者のフィードバックをもとに成果物の改善版を作ります。生成者はスコアを見ません — 直前のベスト候補と次に何を直すかという単一の指示だけを見ます。&lt;/p>
&lt;p>&lt;strong>評価&lt;/strong>は新しい候補を各基準で1〜10でスコアリングし、次に直すべき最も重要な1つを選びます。この集中したフィードバックをASI (Actionable Side Information) と呼びます。評価者は常に元のシードとそのスコアをキャリブレーションアンカーとして持つため、イテレーション間でスコアの一貫性が保たれます。&lt;/p>
&lt;p>&lt;strong>振り返り&lt;/strong>は軌跡を記録します — 全イテレーションのスコアテーブル — とここまでのベスト候補を追跡します。イテレーションが退行した場合、次の生成者は悪い方ではなくベスト版を受け取ります。&lt;/p>
&lt;p>実行中のスコアテーブルはこのようになります:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Iter&lt;/th>
 &lt;th>Criterion A&lt;/th>
 &lt;th>Criterion B&lt;/th>
 &lt;th>Criterion C&lt;/th>
 &lt;th>Composite&lt;/th>
 &lt;th>Key Change&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>0&lt;/td>
 &lt;td>4&lt;/td>
 &lt;td>5&lt;/td>
 &lt;td>3&lt;/td>
 &lt;td>4.0&lt;/td>
 &lt;td>seed&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>1&lt;/td>
 &lt;td>7&lt;/td>
 &lt;td>5&lt;/td>
 &lt;td>4&lt;/td>
 &lt;td>5.3&lt;/td>
 &lt;td>specific problem statement&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>2&lt;/td>
 &lt;td>7&lt;/td>
 &lt;td>6&lt;/td>
 &lt;td>6&lt;/td>
 &lt;td>6.3&lt;/td>
 &lt;td>low-friction CTA&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>3&lt;/td>
 &lt;td>7&lt;/td>
 &lt;td>7&lt;/td>
 &lt;td>8&lt;/td>
 &lt;td>7.3&lt;/td>
 &lt;td>peer-sharing tone&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>各バッチのイテレーション後、続けるかどうかを確認します。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>4つのサブスキル (setup、generator、judge、reflect) はお互いのコンテキストから意図的に分離されています:&lt;/p>
&lt;ul>
&lt;li>生成者はスコアを見ない — 品質ではなく数字を最適化することを防ぐため&lt;/li>
&lt;li>評価者は前のイテレーションのスコアを見ない — アンカリングバイアスを防ぐため&lt;/li>
&lt;li>Reflect だけが全体像を持つ — 何を引き継ぐかを決めるのはこの役割だけ&lt;/li>
&lt;/ul>
&lt;p>この分離が主な設計の賭けです。「全部直して」という分散したフィードバックは横移動を生みがちです。1ラウンドに1つの集中した修正が積み重なると本当の改善になります。&lt;/p></description></item><item><title>インナーサークルに参加しませんか</title><link>https://2389.ai/ja/home/waitlist/</link><pubDate>Sat, 01 Jun 2024 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/home/waitlist/</guid><description>&lt;!-- Waitlist Section -->
&lt;section id="waitlist" class="section">
 &lt;div class="section-content">
 &lt;div class="section-header">
 &lt;h2>インナーサークルへのご招待&lt;/h2>
 &lt;p class="description">
 まだ全ユーザー向けの準備は整っていませんが、“インサイドトラック”にあなたをご案内します。
 秘密の握手は――今のところ――不要です。
 &lt;/p>
 &lt;/div>
 &lt;div>
 &lt;form id="signup-form" name="waitlist" method="POST">
 &lt;label for="email" class="sr-only">
 メールアドレス（インナーサークル用）
 &lt;/label>
 &lt;input
 id="email"
 name="email"
 type="email"
 placeholder="your.email@address.com"
 required />
 &lt;button type="submit" id="submit-btn" class="btn-primary">
 先行アクセスを申し込む
 &lt;/button>
 &lt;p class="fine-print">
 登録により、&lt;a href="https://2389.ai/terms">利用規約&lt;/a>および
 &lt;a href="https://2389.ai/privacy">プライバシーポリシー&lt;/a
 >に同意したものとみなされます。 （お決まりの細かい注意書きです）
 &lt;/p>
 &lt;/form>
 &lt;div
 id="success-message"
 style="display: none"
 role="alert"
 aria-live="polite"
 tabindex="-1">
 &lt;div>&lt;svg
 xmlns="http://www.w3.org/2000/svg"
 viewBox="0 0 24 24"
 fill="none"
 stroke="currentColor"
 stroke-width="1.43"
 stroke-linecap="round"
 stroke-linejoin="round"
 class="check-circle-icon group">
 &lt;path d="M22 11.08V12a10 10 0 1 1-5.93-9.14">&lt;/path>
 &lt;polyline points="22 4 12 14.01 9 11.01">&lt;/polyline>
&lt;/svg>

&lt;/div>
 &lt;h3>インナーサークル入り、おめでとう！&lt;/h3>
 &lt;p>
 あなたをインナーサークルに追加しました。私たちのマルチエージェント・エコシステムで遊べるようになり次第、ご連絡します。
 &lt;/p>
 &lt;p>
 ご安心ください。待機リスト作成のために本物の秘密結社は（たぶん）結成されていません。
 &lt;/p>
 &lt;/div>
 &lt;/div>
 &lt;/div>
&lt;/section></description></item><item><title>支援者</title><link>https://2389.ai/ja/home/investors/</link><pubDate>Sat, 01 Jun 2024 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/home/investors/</guid><description>&lt;!-- Investors Section -->
&lt;section id="investors" class="section">
 &lt;div class="section-content">
 &lt;div class="hero-text">
 &lt;svg width="435" height="150" viewBox="0 0 435 150" fill="none" xmlns="http://www.w3.org/2000/svg">
 &lt;style>
 .eyes-closed { display:none; }
 &lt;/style>
 &lt;!--Agent 1: Right side agent with SAM text-->
 &lt;g class="agent" data-agent-id="agent-1" transform="translate(395, 90)" style="--base-transform: translate(395px, 90px)">
 &lt;g style="mix-blend-mode:multiply" opacity="0.18">
 &lt;path d="M4.261 55.837C21.617 55.405 35.621 52.403 35.54 49.132C35.459 45.861 21.324 43.559 3.968 43.99C-13.387 44.422 -27.391 47.423 -27.311 50.695C-27.23 53.966 -13.095 56.268 4.261 55.837Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-9.162 -30.349C-0.639 -45.398 -9.476 -55.31 -21.926 -58.632C-23.933 -44.391 -16.626 -39.014 -9.162 -30.349Z" fill="#6CAD5E" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;path d="M-10.808 -27.417C-9.852 -43.548 -21.537 -48.295 -33.297 -45.829C-29.145 -33.13 -20.588 -31.5 -10.808 -27.417Z" fill="#6CAD5E" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;path d="M9.038 -24.5C9.059 -24.534 13.935 -50.776 13.982 -50.796C14.071 -50.783 30.953 -64.338 31.049 -64.16C31.035 -64.085 33.719 -59.694 33.589 -59.626L18.558 -48.604C18.49 -48.563 14.324 -24.465 14.29 -24.411" fill="#F9F9F6"/>
 &lt;mask id="mask0_0_1" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="9" y="-65" width="25" height="41">
 &lt;path d="M9.038 -24.5C9.059 -24.534 13.935 -50.776 13.982 -50.796C14.071 -50.783 30.953 -64.338 31.049 -64.16C31.035 -64.085 33.719 -59.694 33.589 -59.626L18.558 -48.604C18.49 -48.563 14.324 -24.465 14.29 -24.411" fill="white"/>
 &lt;/mask>
 &lt;g mask="url(#mask0_0_1)">
 &lt;path d="M1.838 -57.489L-3.483 -55.216L12.57 -17.41L17.892 -19.683L1.838 -57.489Z" fill="#FFCE00" stroke="#241F20" stroke-width="1.4" stroke-miterlimit="10"/>
 &lt;path d="M13.24 -62.362L7.918 -60.089L23.972 -22.283L29.293 -24.556L13.24 -62.362Z" fill="#FFCE00"/>
 &lt;path d="M24.65 -67.236L19.328 -64.963L35.382 -27.157L40.704 -29.43L24.65 -67.236Z" fill="#FFCE00"/>
 &lt;/g>
 &lt;path d="M9.038 -24.5C9.059 -24.534 13.935 -50.776 13.982 -50.796C14.071 -50.783 30.953 -64.338 31.049 -64.16C31.035 -64.085 33.719 -59.694 33.589 -59.626L18.558 -48.604C18.49 -48.563 14.324 -24.465 14.29 -24.411" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 
 &lt;path d="M0.76 -36.836L-25.368 -36.247C-26.884 -36.213 -28.086 -34.857 -28.052 -33.22C-26.591 -31.816 -29.602 46.67 -24.572 43.684L2.556 43.088L28.685 42.499C34.859 45.533 28.282 -33.398 29.703 -34.528C29.662 -36.165 28.405 -37.467 26.889 -37.432L0.76 -36.843V-36.836Z" fill="#78D7CD"/>
 &lt;path d="M0.761 -36.836C0.311 -36.227 -29.396 -37.521 -28.092 -35.069L-26.344 42.492C-26.33 43.184 -25.756 43.739 -25.06 43.718L2.564 43.095L29.71 42.478C30.666 42.458 31.424 41.663 31.397 40.704L29.642 -37.261C29.69 -37.939 0.987 -36.603 0.761 -36.836Z" fill="#78D7CD" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;path d="M0.761 -36.836L2.564 43.088" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;path d="M-6.267 22.079C-3.924 19.935 4.735 19.011 7.426 21.251C7.829 21.888 9.386 21.983 8 23.833C4.981 30.101 -5.638 28.642 -6.273 22.079H-6.267Z" fill="black"/>
 &lt;g class="eyes-open">
 &lt;path d="M-6.498 12.168C-11.982 11.921 -16.708 15.243 -16.476 5.667C-16.571 2.489 -16.701 -1.244 -16.544 -8.573C-16.626 -15.8 -12.603 -14.094 -7.345 -14.005C-5.392 -13.67 -4.108 -13.731 -3.992 -9.217C-4.729 -5.149 -1.151 11.613 -6.498 12.175V12.168Z" fill="#F8F8F5"/>
 &lt;path d="M18.257 11.764C12.773 11.517 8.047 14.839 8.279 5.263C8.184 2.085 8.054 -1.648 8.211 -8.978C8.129 -16.204 12.151 -14.499 17.41 -14.41C19.363 -14.074 20.647 -14.136 20.763 -9.622C20.026 -5.553 23.604 11.209 18.257 11.77V11.764Z" fill="#F8F8F5"/>
 &lt;path d="M13.893 6.845C8.662 7.88 8.73 0.256 13.552 0.091C17.001 0.187 17.13 6.092 13.893 6.845Z" fill="#2C2727"/>
 &lt;path d="M-10.855 7.407C-16.086 8.441 -16.018 0.817 -11.196 0.653C-7.747 0.749 -7.618 6.653 -10.855 7.407Z" fill="#2C2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M12.5 3.5C12.5 3.5 14.5 3.0 16.5 3.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;path d="M-12.5 4.0C-12.5 4.0 -10.2 3.5 -8.0 4.0" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;/g>
 &lt;path d="M-21.42 49.472L-21.598 45.088C-16.694 44.793 -5.146 44.143 -3.842 44.506L-4.347 48.814C-5.296 48.629 -13.86 49.013 -21.42 49.472Z" fill="#5494D1" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;path d="M26.712 48.266C22.847 48.355 11.435 48.41 9.96 48.417L9.898 44.026C16.564 43.992 26.794 43.917 27.675 43.841L27.907 48.218C27.736 48.232 27.32 48.246 26.712 48.259V48.266Z" fill="#5494D1" stroke="#241F20" stroke-width="2.8" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;!--Agent 2: Left side blue folder figure-->
 &lt;g class="agent" data-agent-id="agent-2" transform="translate(41, 90)" style="--base-transform: translate(41px, 90px)">
 &lt;g style="mix-blend-mode:multiply" opacity="0.18">
 &lt;path d="M3.214 58.603C24.101 58.603 41.034 55.861 41.034 52.479C41.034 49.097 24.101 46.355 3.214 46.355C-17.674 46.355 -34.606 49.097 -34.606 52.479C-34.606 55.861 -17.674 58.603 3.214 58.603Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-18.898 49.465L-19.649 45.122C-14.179 44.095 -1.306 41.718 0.203 41.889L0.183 46.259C-0.903 46.218 -10.464 47.883 -18.898 49.465Z" fill="#7BC772" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M34.970 41.074C30.640 41.738 17.836 43.499 16.183 43.731L15.555 39.368C23.033 38.341 34.506 36.738 35.482 36.525L36.302 40.855C36.117 40.896 35.646 40.971 34.970 41.074Z" fill="#7BC772" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M-5.664 -35.213L-38.970 -30.097C-39.134 -30.069 -39.243 -29.918 -39.215 -29.761L-27.743 45.348C-27.715 45.512 -27.565 45.622 -27.408 45.594L5.898 40.478L39.204 35.361C39.368 35.333 39.477 35.183 39.450 35.025L27.977 -40.084C27.950 -40.248 27.799 -40.358 27.642 -40.330L-5.664 -35.213Z" fill="#4DAEE1" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M-5.664 -35.213L5.891 40.478" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 
 &lt;g class="eyes-open">
 &lt;path d="M-9.550 2.571C-11.776 3.181 -15.307 3.653 -17.458 3.749C-20.101 3.873 -21.064 3.475 -22.054 -2.621C-22.587 -5.902 -23.235 -9.745 -24.014 -17.376C-24.512 -22.280 -23.481 -22.636 -21.576 -23.308C-20.189 -23.794 -17.089 -24.493 -14.002 -24.438C-11.680 -24.397 -10.192 -24.657 -9.461 -19.992C-8.710 -15.197 -7.965 -10.498 -7.207 -4.868C-6.545 0.043 -6.633 1.770 -9.563 2.571H-9.550Z" fill="#F8F8F5"/>
 &lt;path d="M19.277 -1.676C17.050 -1.066 13.520 -0.594 11.368 -0.498C8.726 -0.374 7.763 -0.772 6.772 -6.868C6.240 -10.149 5.591 -13.992 4.812 -21.623C4.314 -26.527 5.345 -26.883 7.250 -27.555C8.637 -28.041 11.737 -28.740 14.824 -28.685C17.146 -28.644 18.635 -28.904 19.365 -24.239C20.117 -19.444 20.861 -14.745 21.619 -9.115C22.281 -4.204 22.193 -2.477 19.263 -1.676H19.277Z" fill="#F8F8F5"/>
 &lt;path d="M17.631 -6.094C15.165 -5.252 12.679 -6.546 12.454 -9.019C12.297 -11.252 13.731 -13.451 16.210 -13.924C16.688 -14.067 17.241 -13.972 17.863 -13.650C20.110 -12.286 20.622 -8.882 18.860 -6.985C18.525 -6.608 18.116 -6.300 17.631 -6.094Z" fill="#2C2727"/>
 &lt;path d="M-11.167 -1.669C-13.633 -0.827 -16.118 -2.122 -16.344 -4.594C-16.501 -6.827 -15.067 -9.026 -12.588 -9.499C-12.110 -9.643 -11.556 -9.547 -10.935 -9.225C-8.688 -7.862 -8.176 -4.457 -9.938 -2.560C-10.273 -2.183 -10.682 -1.875 -11.167 -1.669Z" fill="#2C2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M14.5 -10.5C14.5 -10.5 16.8 -11.0 19.0 -10.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;path d="M-14.5 -6.0C-14.5 -6.0 -12.2 -6.5 -10.0 -6.0" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;/g>
 &lt;path d="M11.2596 15.914C11.2596 15.914 3.406 12.599 -0.1725 14.079C-3.751 15.558 -7.7598 19.675 -7.7598 19.675C-7.7598 19.675 -1.7159 25.333 3.4401 23.874C8.5962 22.415 11.2596 15.914 11.2596 15.914Z" fill="black"/>
 &lt;path d="M-12.3973 -15.1297C-7.3573 -15.1297 -2.9798 -11.3554 -2.2149 -6.3482C-1.7984 -3.6151 -2.4676 -0.882 -4.0998 1.3442C-5.732 3.5704 -8.129 5.0294 -10.8539 5.4473C-11.3797 5.5295 -11.9056 5.5706 -12.4314 5.5706C-17.4714 5.5706 -21.8489 1.7963 -22.6138 -3.211C-23.0303 -5.9441 -22.3611 -8.6703 -20.7289 -10.9034C-19.0967 -13.1364 -16.6997 -14.5886 -13.9748 -15.0064C-13.4558 -15.0886 -12.9231 -15.1297 -12.3973 -15.1297ZM-12.3973 -17.1299C-13.0187 -17.1299 -13.647 -17.0819 -14.2753 -16.986C-20.9952 -15.9517 -25.6118 -9.6498 -24.5806 -2.9096C-23.645 3.2005 -18.407 7.5707 -12.4314 7.5707C-11.81 7.5707 -11.1817 7.5228 -10.5534 7.4269C-3.8335 6.3925 0.7762 0.0907 -0.2481 -6.6496C-1.1837 -12.7597 -6.4217 -17.1299 -12.3973 -17.1299Z" fill="#241F20"/>
 &lt;path d="M13.9771 -19.1844C19.0171 -19.1844 23.3946 -15.4101 24.1594 -10.4029C24.576 -7.6698 23.9068 -4.9436 22.2746 -2.7105C20.6424 -0.4774 18.2454 0.9747 15.5205 1.3926C14.9947 1.4748 14.4688 1.5159 13.943 1.5159C8.903 1.5159 4.5255 -2.2584 3.7606 -7.2657C3.344 -9.9987 4.0133 -12.7318 5.6455 -14.958C7.2777 -17.1842 9.6747 -18.6433 12.3996 -19.0611C12.9186 -19.1433 13.4513 -19.1844 13.9771 -19.1844ZM13.9703 -21.1846C13.3488 -21.1846 12.7205 -21.1366 12.0922 -21.0407C5.3723 -20.0064 0.7626 -13.7045 1.787 -6.9643C2.7226 -0.8542 7.9606 3.516 13.9361 3.516C14.5576 3.516 15.1859 3.4681 15.8142 3.3722C22.5341 2.3379 27.1506 -3.964 26.1194 -10.7043C25.1838 -16.8144 19.9458 -21.1846 13.9703 -21.1846Z" fill="#241F20"/>
 &lt;path d="M-24.5803 -2.9092L-33.75195 -1.505" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M35.5642 -10.3281L26.3994 -8.9239" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M49.3804 2.8721L25.8812 6.4819C25.8812 6.4819 23.7573 15.161 22.0295 23.771C20.3017 32.381 19.2637 39.567 19.2637 39.567L42.4693 36.005C42.4693 36.005 43.2342 26.114 45.1327 19.106C47.038 12.099 49.3804 2.8789 49.3804 2.8789V2.8721Z" fill="#9CA6A5" stroke="#241F20" stroke-width="2.92" stroke-linejoin="round"/>
 &lt;path d="M41.4176 18.771C41.1444 16.983 41.5064 15.791 43.562 15.476C45.4946 15.181 47.4068 14.565 48.1648 16.298C49.2097 18.682 48.438 19.387 45.9112 20.106C41.2605 21.428 41.4108 18.777 41.4108 18.777L41.4176 18.771Z" fill="#241F20" stroke="#241F20" stroke-width="3.01" stroke-miterlimit="10"/>
 &lt;path d="M-31.6139 25.23C-35.08996 26.408 -36.27824 29.915 -34.92606 32.765C-33.58071 35.614 -27.3252 35.361 -22.2237 34.881C-20.9194 34.786 -21.9779 32.505 -19.6969 32.155C-17.5526 31.826 -15.4219 31.176 -14.6092 32.902C-13.4892 35.272 -14.2814 36.368 -17.1633 36.758C-19.0072 37.012 -21.1106 37.423 -21.4521 35.786C-21.7389 34.429 -22.2169 34.888 -22.2169 34.888" stroke="#241F20" stroke-width="2.92" stroke-miterlimit="10"/>
 &lt;path d="M-21.3363 35.368C-21.6095 33.58 -21.2475 32.388 -19.1919 32.073C-17.2593 31.778 -15.3471 31.162 -14.5891 32.895C-13.5442 35.279 -14.3159 35.984 -16.8427 36.704C-21.4934 38.026 -21.3431 35.375 -21.3431 35.375L-21.3363 35.368Z" fill="#241F20" stroke="#241F20" stroke-width="3.01" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;!--Agent 3: Red figure-->
 &lt;g class="agent" data-agent-id="agent-3" transform="translate(295, 90)" style="--base-transform: translate(295px, 90px)">
 &lt;g style="mix-blend-mode:multiply" opacity="0.18">
 &lt;path d="M-0.194 53.191C17.34 53.191 31.555 50.401 31.555 46.958C31.555 43.515 17.34 40.725 -0.194 40.725C-17.729 40.725 -31.943 43.515 -31.943 46.958C-31.943 50.401 -17.729 53.191 -0.194 53.191Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M0.495 -46.097C0.495 -46.097 1.52 -35.809 -6.457 -28.452C-13.081 -22.342 -14.713 -14.362 -15.041 -10.93C-16.796 -17.109 -17.356 -16.821 -21.522 -23.589C-22.738 -18.287 -22.26 -14.704 -32.169 -0.813C-42.078 13.079 -27.163 35.615 -13.607 38.341C-0.488 40.978 13.102 44.739 25.975 26.258C37.96 9.058 23.79 -4.834 22.492 -10.848C21.188 -16.869 20.518 -18.465 22.021 -21.856C16.721 -19.301 13.327 -15.745 11.955 -11.279C11.108 -14.663 14.427 -19.883 12.945 -27.685C11.463 -35.487 9.045 -37.254 0.495 -46.097Z" fill="#FF315E" stroke="#241F20" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"/>
 &lt;g class="eyes-open">
 &lt;path d="M-10.05 22.984C-12.037 23.217 -15.131 23.148 -16.988 22.95C-19.269 22.703 -20.048 22.237 -20.096 16.874C-20.123 13.99 -20.171 10.599 -19.843 3.955C-19.631 -0.319 -18.696 -0.491 -16.975 -0.813C-15.718 -1.045 -12.966 -1.237 -10.323 -0.778C-8.336 -0.436 -7.025 -0.463 -7.004 3.633C-6.984 7.853 -6.963 11.983 -7.052 16.908C-7.127 21.21 -7.428 22.682 -10.05 22.984Z" fill="white"/>
 &lt;path d="M15.239 23.141C13.252 23.374 10.158 23.306 8.301 23.107C6.02 22.86 5.241 22.394 5.193 17.031C5.166 14.147 5.118 10.757 5.446 4.112C5.658 -0.162 6.593 -0.333 8.314 -0.655C9.571 -0.888 12.323 -1.08 14.966 -0.621C16.953 -0.279 18.264 -0.306 18.285 3.790C18.305 8.010 18.326 12.14 18.237 17.065C18.162 21.367 17.862 22.84 15.239 23.141Z" fill="white"/>
 &lt;path d="M11.224 14.428C8.997 14.825 7.031 13.387 7.16 11.236C7.324 9.297 8.84 7.599 11.026 7.523C11.456 7.468 11.92 7.619 12.412 7.975C14.16 9.441 14.153 12.428 12.392 13.825C12.057 14.106 11.661 14.311 11.224 14.428Z" fill="#2C2727"/>
 &lt;path d="M-14.413 14.428C-16.639 14.825 -18.606 13.387 -18.476 11.236C-18.312 9.297 -16.796 7.599 -14.611 7.523C-14.181 7.468 -13.716 7.619 -13.225 7.975C-11.476 9.441 -11.483 12.428 -13.245 13.825C-13.58 14.106 -13.976 14.311 -14.413 14.428Z" fill="#2C2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M8.5 10.5C8.5 10.5 10.8 10.0 13.0 10.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;path d="M-17.5 10.5C-17.5 10.5 -15.0 10.0 -12.5 10.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;/g>
 &lt;path d="M27.136 39.306C16.503 41.361 -14.905 47.293 -18.968 48.054L-20.17 41.252C-1.827 37.793 26.33 32.457 28.734 31.95L30.414 38.656C29.95 38.752 28.795 38.978 27.136 39.3V39.306Z" fill="#AB7C64" stroke="#241F20" stroke-width="3.2" stroke-miterlimit="10"/>
 &lt;g class="mouths-closed">
 &lt;path d="M3.834 30.998C0.139 31.292 -3.433 31.231 -6.287 30.833L-5.952 29.196C-3.084 29.6 0.569 29.635 4.339 29.299L4.489 30.943C4.271 30.964 4.052 30.984 3.834 30.998Z" fill="#241F20"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M3.5 25.789C3.5 25.789 -2.5 25.319 -3.7 25.319C-4.9 25.319 -7.5 25.789 -7.5 25.789C-7.5 25.789 -5.2 28.659 -4.3 29.099C-3.4 29.539 -2.4 30.179 -2.0 30.089C-1.6 29.999 1.2 27.949 2.0 27.449C2.8 26.949 3.5 25.799 3.5 25.799V25.789Z" fill="#241F20"/>
 &lt;/g>
 &lt;path d="M10.555 49.828C0.017 47.335 -31.056 39.828 -35.071 38.855L-33.391 32.156C-15.246 36.54 12.617 43.253 15.021 43.773L13.812 50.582C13.348 50.479 12.207 50.212 10.555 49.822V49.828Z" fill="#AB7C64" stroke="#241F20" stroke-width="3.2" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;!--Agent 4: Left side human figure-->
 &lt;g class="agent" data-agent-id="agent-4" transform="translate(150, 75)" style="--base-transform: translate(150px, 75px)">
 &lt;path d="M-7.001 51.69L2.116 52.019L3.844 27.25L-5.212 25.023L-7.001 51.69Z" fill="#AB7C64" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M-7.008 51.629C-7.193 51.642 -7.37 51.718 -7.493 51.855C-8.435 52.862 -12.164 57.218 -8.347 59.78C-6.708 60.876 0.005 59.828 1.549 59.684C4.103 59.444 2.546 53.526 1.993 51.677C1.897 51.355 1.59 51.136 1.255 51.156L-7.001 51.636L-7.008 51.629Z" fill="#9CA6A5" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M14.319 -55.031C14.319 -55.031 22.883 -53.585 25.997 -46.277C27.404 -42.968 27.882 -40.269 27.991 -38.358C28.06 -37.173 26.332 -36.481 25.205 -37.242C25.055 -37.344 24.905 -37.44 24.748 -37.543C23.696 -38.201 22.282 -37.194 22.951 -36.269C24.7 -33.865 26.468 -31.186 26.919 -28.864C27.308 -26.85 27.206 -24.645 26.994 -22.925C26.858 -21.802 25.178 -21.288 24.147 -22.055C24.126 -22.076 24.099 -22.09 24.078 -22.11C23.122 -22.802 21.654 -21.953 22.146 -21.001C23.17 -19.035 23.921 -16.863 24.215 -13.87C24.399 -11.993 24.215 -10.274 23.989 -9.041C23.819 -8.095 22.521 -7.582 21.483 -8.041L21.429 -8.068C20.561 -8.452 19.51 -7.883 19.632 -7.095C20.029 -4.493 19.912 0.316 15.467 5.31Z" fill="#1275A0"/>
 &lt;path d="M14.319 -55.031C14.319 -55.031 22.883 -53.585 25.997 -46.277C27.404 -42.968 27.882 -40.269 27.991 -38.358C28.06 -37.173 26.332 -36.481 25.205 -37.242C25.055 -37.344 24.905 -37.44 24.748 -37.543C23.696 -38.201 22.282 -37.194 22.951 -36.269C24.7 -33.865 26.468 -31.186 26.919 -28.864C27.308 -26.85 27.206 -24.645 26.994 -22.925C26.858 -21.802 25.178 -21.288 24.147 -22.055C24.126 -22.076 24.099 -22.09 24.078 -22.11C23.122 -22.802 21.654 -21.953 22.146 -21.001C23.17 -19.035 23.921 -16.863 24.215 -13.87C24.399 -11.993 24.215 -10.274 23.989 -9.041C23.819 -8.095 22.521 -7.582 21.483 -8.041L21.429 -8.068C20.561 -8.452 19.51 -7.883 19.632 -7.095C20.029 -4.493 19.912 0.316 15.467 5.31Z" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M52.685 6.104C52.685 6.104 53.811 4.33 56.051 2.83C58.291 1.33 61.658 0.111 66.131 1.207C70.092 1.255 73.609 3.899 75.371 7.426C82.405 20.66 69.211 40.066 86.803 45.361C77.126 48.888 63.939 43.594 61.296 33.894C59.534 25.955 65.694 18.016 61.303 11.187C59.084 8.611 52.719 10.481 52.719 10.481L52.678 6.097L52.685 6.104Z" fill="#AB7C64" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M28.763 53.266L37.887 53.183L38.494 28.401L29.357 26.579L28.763 53.266Z" fill="#AB7C64" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M-10.082 -4.691L-10.184 31.216C-10.184 33.106 -8.654 34.634 -6.769 34.613L4.54 34.503C6.384 34.483 7.906 35.956 7.954 37.805L7.538 54.389C7.586 56.238 9.102 57.711 10.952 57.69L14.756 57.656C16.6 57.635 18.089 56.142 18.102 54.286L19.079 35.668C19.079 35.038 19.564 34.517 20.192 34.462L41.52 32.914C42.223 32.853 42.831 33.407 42.838 34.12L42.21 56.649C42.21 57.361 42.824 57.916 43.534 57.855L51.928 56.82C52.563 56.765 53.048 56.231 53.041 55.594C53.409 43.607 53.409 32.133 53.273 20.187C53.293 16.639 53.307 13.543 53.321 11.324C53.334 9.111 53.341 7.782 53.341 7.782C53.321 5.912 51.798 4.405 49.927 4.426L18.492 4.727C16.627 4.748 15.098 3.241 15.077 1.371L14.551 -53.908C14.538 -55.196 13.8 -56.367 12.639 -56.928L-0.343 -64.237C-1.101 -64.607 -1.969 -64.676 -2.774 -64.436L-15.832 -60.559C-16.849 -60.258 -17.662 -59.497 -18.038 -58.504L-22.531 -46.565" fill="#AB7C64"/>
 &lt;path d="M-10.082 -4.691L-10.184 31.216C-10.184 33.106 -8.654 34.634 -6.769 34.613L4.54 34.503C6.384 34.483 7.906 35.956 7.954 37.805L7.538 54.389C7.586 56.238 9.102 57.711 10.952 57.69L14.756 57.656C16.6 57.635 18.089 56.142 18.102 54.286L19.079 35.668C19.079 35.038 19.564 34.517 20.192 34.462L41.52 32.914C42.223 32.853 42.831 33.407 42.838 34.12L42.21 56.649C42.21 57.361 42.824 57.916 43.534 57.855L51.928 56.82C52.563 56.765 53.048 56.231 53.041 55.594C53.409 43.607 53.409 32.133 53.273 20.187C53.293 16.639 53.307 13.543 53.321 11.324C53.334 9.111 53.341 7.782 53.341 7.782C53.321 5.912 51.798 4.405 49.927 4.426L18.492 4.727C16.627 4.748 15.098 3.241 15.077 1.371L14.551 -53.908C14.538 -55.196 13.8 -56.367 12.639 -56.928L-0.343 -64.237C-1.101 -64.607 -1.969 -64.676 -2.774 -64.436L-15.832 -60.559C-16.849 -60.258 -17.662 -59.497 -18.038 -58.504L-22.531 -46.565" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M-21.2 -53.948L-20.995 -32.207C-20.988 -31.268 -21.48 -30.405 -22.286 -29.933L-37.515 -21.096C-38.73 -20.391 -39.161 -18.85 -38.498 -17.617L-30.064 -1.985C-29.477 -0.896 -28.207 -0.375 -27.025 -0.738L-0.439 -8.965" fill="#AB7C64"/>
 &lt;path d="M-21.2 -53.948L-20.995 -32.207C-20.988 -31.268 -21.48 -30.405 -22.286 -29.933L-37.515 -21.096C-38.73 -20.391 -39.161 -18.85 -38.498 -17.617L-30.064 -1.985C-29.477 -0.896 -28.207 -0.375 -27.025 -0.738L-0.439 -8.965" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M29.289 52.17C29.112 52.149 28.934 52.197 28.797 52.293C27.759 53.033 23.614 56.293 26.837 59.109C28.224 60.314 34.705 60.403 36.173 60.506C38.611 60.677 38.01 55.259 37.757 53.553C37.716 53.252 37.457 53.019 37.136 52.985L29.282 52.17H29.289Z" fill="#9CA6A5" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M42.598 56.875C42.393 56.916 42.209 57.026 42.086 57.19C41.178 58.389 38.323 63.321 42.926 65.369C43.916 65.807 46.238 65.485 48.526 65.006C50.814 64.526 53.067 63.883 53.914 63.684C56.024 60.362 55.143 57.711 52.384 54.854L42.598 56.875Z" fill="#9CA6A5" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M-22.524 -2.438C-17.614 -3.828 -10.225 -7.336 -11.536 -10.918L-22.524 -2.438Z" fill="#AB7C64"/>
 &lt;path d="M-22.524 -2.438C-17.614 -3.828 -10.225 -7.336 -11.536 -10.918" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M-23.857 -14.117C-25.195 -13.856 -26.431 -15.069 -26.411 -16.781C-26.363 -18.329 -25.489 -19.644 -24.164 -19.651C-23.905 -19.686 -23.618 -19.556 -23.31 -19.254C-22.204 -18.028 -22.129 -15.644 -23.16 -14.569C-23.358 -14.35 -23.59 -14.199 -23.857 -14.117Z" fill="#2C2727"/>
 &lt;path d="M-28.841 -13.075C-30.18 -12.815 -31.416 -15.027 -31.395 -16.74C-31.347 -18.288 -30.473 -19.603 -29.148 -19.61C-28.889 -19.644 -28.602 -19.514 -28.295 -19.213C-27.188 -17.987 -27.113 -15.603 -28.145 -14.527C-28.343 -14.308 -28.575 -14.157 -28.841 -13.075Z" fill="#2C2727"/>
 &lt;path d="M16.272 -47.873L-20.524 -47.708L-20.605 -56.051L16.19 -56.223L16.272 -47.873Z" fill="#F6F6F3" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;path d="M14.605 -51.147L-19.008 -51.004L-19.028 -52.99L14.585 -53.134L14.605 -51.147Z" fill="#FF315E"/>
 &lt;path d="M5.611 -61.792L5.208 -58.812C5.113 -58.086 4.402 -57.634 3.692 -57.798C3.624 -57.812 3.549 -57.826 3.474 -57.819C2.333 -57.805 -5.623 -55.051 -7.883 -52.935C-9.215 -51.688 -10.519 -50.051 -11.25 -47.373C-11.517 -46.393 -12.725 -48.832 -12.923 -49.832C-12.985 -50.133 -13.21 -52.181 -13.203 -52.496C-13.108 -55.421 -13.688 -55.428 -16.044 -52.675C-18.257 -50.085 -21.897 -46.975 -23.024 -45.921C-23.242 -45.715 -23.604 -45.818 -23.679 -46.112C-24.082 -47.688 -25.53 -49.14 -25.195 -53.908C-25.093 -55.367 -23.959 -57.648 -23.618 -58.778C-23.338 -59.689 -24.157 -60.552 -25.079 -60.319C-25.243 -60.278 -25.4 -60.175 -25.585 -60.175C-27.729 -60.175 -29.259 -61.114 -28.05 -63.381C-26.213 -66.833 -21.699 -70.71 -16.454 -72.176C-9.495 -74.115 -4.093 -72.176 -1.006 -71.018C3.856 -69.19 1.664 -68.285 1.664 -68.285L4.368 -65.532C5.338 -64.545 5.796 -63.162 5.611 -61.792Z" fill="#1275A0" stroke="#241F20" stroke-width="3.25" stroke-linejoin="round"/>
 &lt;path d="M11.546 -57.134L14.763 -59.9424C15.282 -60.5795 15.384 -61.4631 15.009 -62.196C14.032 -64.1414 12.086 -67.84717 10.972 -68.94314C10.358 -69.54593 8.548 -71.92283 7.708 -72.53247C6.609 -73.33391 5.98 -70.97755 5.803 -69.62813L3.863 -57.6272" fill="#AB7C64"/>
 &lt;path d="M11.546 -57.134L14.763 -59.9424C15.282 -60.5795 15.384 -61.4631 15.009 -62.196C14.032 -64.1414 12.086 -67.84717 10.972 -68.94314C10.358 -69.54593 8.548 -71.92283 7.708 -72.53247C6.609 -73.33391 5.98 -70.97755 5.803 -69.62813L3.863 -57.6272" stroke="#241F20" stroke-width="3.25" stroke-linejoin="round"/>
 &lt;g class="eyes-open">
 &lt;path d="M-8.886 -24.0762C-10.116 -23.9255 -12.035 -23.946 -13.189 -24.0556C-14.602 -24.1926 -15.087 -24.4803 -15.149 -27.8025C-15.183 -29.5903 -15.231 -31.6864 -15.067 -35.81C-14.958 -38.4609 -14.384 -38.5705 -13.319 -38.7828C-12.547 -38.9335 -10.84 -39.0705 -9.201 -38.8034C-7.971 -38.6047 -7.152 -38.6253 -7.118 -36.0908C-7.083 -33.481 -7.043 -30.9192 -7.07 -27.8642C-7.09 -25.1996 -7.268 -24.2885 -8.886 -24.083V-24.0762Z" fill="#F8F8F5"/>
 &lt;path d="M3.713 -24.1309C2.484 -23.9802 0.565 -24.0007 -0.589 -24.1103C-2.003 -24.2473 -2.488 -24.535 -2.549 -27.8572C-2.583 -29.645 -2.631 -31.7411 -2.467 -35.8647C-2.358 -38.5156 -1.784 -38.6252 -0.719 -38.8375C0.053 -38.9882 1.76 -39.1252 3.399 -38.8581C4.628 -38.6594 5.448 -38.68 5.482 -36.1455C5.516 -33.5357 5.557 -30.9739 5.53 -27.9188C5.509 -25.2542 5.332 -24.3432 3.713 -24.1377V-24.1309Z" fill="#F8F8F5"/>
 &lt;path d="M-0.043 -28.9937C-1.415 -28.7334 -2.645 -29.6171 -2.576 -30.9459C-2.488 -32.1447 -1.559 -33.2064 -0.207 -33.268C0.06 -33.3091 0.347 -33.2133 0.654 -32.9941C1.747 -32.0967 1.76 -30.2473 0.674 -29.3705C0.469 -29.1924 0.224 -29.0622 -0.05 -28.9937H-0.043Z" fill="#2C2727"/>
 &lt;path d="M-12.643 -28.8438C-14.016 -28.5835 -15.245 -29.4672 -15.177 -30.796C-15.088 -31.9948 -14.159 -33.0565 -12.807 -33.1181C-12.541 -33.1592 -12.254 -33.0633 -11.947 -32.8442C-10.854 -31.9468 -10.84 -30.0974 -11.926 -29.2206C-12.131 -29.0425 -12.377 -28.9123 -12.65 -28.8438H-12.643Z" fill="#2C2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-2.0 -31.5C-2.0 -31.5 -0.2 -32.0 1.5 -31.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;path d="M-14.5 -31.5C-14.5 -31.5 -12.8 -32.0 -11.0 -31.5" stroke="#2C2727" stroke-width="2" stroke-linecap="round" fill="none"/>
 &lt;/g>
 &lt;path d="M8.76 55.019C8.562 55.019 8.37 55.108 8.234 55.259C7.182 56.375 3.016 61.259 6.936 64.465C8.616 65.842 15.794 64.999 17.433 64.917C20.151 64.78 18.792 57.787 18.3 55.588C18.211 55.204 17.897 54.937 17.542 54.937L8.76 55.019Z" fill="#9CA6A5" stroke="#241F20" stroke-width="3.25" stroke-miterlimit="10"/>
 &lt;g style="mix-blend-mode:multiply" opacity="0.18">
 &lt;path d="M24.652 75C50.095 75 70.722 69.998 70.722 63.828C70.722 57.658 50.095 52.656 24.652 52.656C-0.792 52.656 -21.418 57.658 -21.418 63.828C-21.418 69.998 -0.792 75 24.652 75Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;/svg>
 

 &lt;div class="section-header">
 &lt;h2>私たちを支えてくださる皆さま&lt;/h2>
 &lt;p class="description">
 私たちを信じ、財布のひもをゆるめてくださった方々です。&lt;br />
 その資金を原動力に、味気ないテック・ユニコーンをもう一つ増やすのではなく、世の中に意義あるものを築いています。（もっとも、いつか
 tech dragon になれたら、それはそれで悪くありません。）
 &lt;/p></description></item><item><title>お気軽にお問い合わせください</title><link>https://2389.ai/ja/home/contact/</link><pubDate>Sat, 01 Jun 2024 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/home/contact/</guid><description>&lt;!-- お問い合わせセクション -->
&lt;section id="contact" class="section contact-section">
 &lt;div class="section-content">
 &lt;div class="section-header">
 &lt;h2>お気軽にご連絡ください&lt;/h2>
 &lt;p class="description">
 ちょっとおしゃべりしませんか？
 ほとんどの日はボットではなく私たちがメールに直接お返事します。面倒な手続きは一切不要です。
 &lt;/p>
 &lt;/div>
 &lt;div class="contact-grid">
 &lt;!-- SNSや各種サービスでつながりましょう -->
 &lt;div class="social-section">
 &lt;h6>私たちとつながりましょう&lt;/h6>
 &lt;div class="social-links">&lt;a href="https://x.com/2389ai"
 target="_blank"
 rel="noopener noreferrer"
 aria-label="Twitter でフォロー"
 class="social-link filled">
 &lt;div class="icon">
 &lt;span aria-hidden="true">&lt;svg
 viewBox="0 0 50 41"
 fill="none"
 xmlns="http://www.w3.org/2000/svg"
 class="twitter-icon">
 &lt;path
 d="M39.9103 4.3077C39.9103 4.3077 33.632 -1.53816 27.0616 3.6406C20.4913 8.81935 24.2692 12.8395 24.2692 12.8395C24.2692 12.8395 15.9103 12.7516 12.8076 10.9259C9.70499 9.10017 4.74073 2.49942 3.93769 2.78031C3.13464 3.06119 2.71488 6.57225 3.04339 9.29329C3.53617 13.4187 8.42742 16.7718 8.42742 16.7718C8.42742 16.7718 7.53312 16.684 6.83959 16.684C6.14605 16.684 2.86088 15.2445 2.86088 15.2445C2.86088 15.2445 3.66392 18.3166 5.65327 20.6164C7.33236 22.565 10.9278 23.9693 10.9278 23.9693C10.9278 23.9693 10.435 24.4434 9.63198 24.3556C8.82894 24.2678 5.9453 24.3556 5.9453 24.3556C5.9453 24.3556 6.74833 27.5155 9.83274 28.8497C12.9172 30.1839 15.9103 30.4823 15.9103 30.4823C15.9103 30.4823 13.0267 33.6423 10.2343 34.0285C7.44187 34.4147 0.780273 34.2216 0.780273 34.2216C0.780273 34.2216 7.84339 40.3483 18.2099 39.4003C28.5765 38.4524 40.8228 31.2547 42.6114 19.9492C44.4 8.64376 43.7978 11.1366 43.7978 11.1366L48.7803 6.81806L43.3962 6.53712L47.9772 2.04302L39.9103 4.34274V4.3077Z"
 fill="#92D6CE"
 stroke="currentColor"
 stroke-width="2.98"
 stroke-linejoin="round" />
 &lt;/svg>
 &lt;/span>
 &lt;/div>
 &lt;/a>&lt;a href="https://www.linkedin.com/company/2389-research"
 target="_blank"
 rel="noopener noreferrer"
 aria-label="LinkedIn でつながる"
 class="social-link filled">
 &lt;div class="icon">
 &lt;span aria-hidden="true">&lt;svg
 viewBox="0 0 43 42"
 fill="none"
 xmlns="http://www.w3.org/2000/svg"
 class="linkedin-icon group"
 role="img"
 aria-label="LinkedIn">
 &lt;title>LinkedIn&lt;/title>
 &lt;path
 d="M4.53986 0.812483C7.15407 0.350106 9.11029 3.14208 8.55899 5.29392C8.27445 6.36094 7.06516 8.85067 5.19786 8.74397C3.33057 8.65505 0.716352 7.25022 1.00089 5.38292C1.28543 3.51563 1.94343 1.27486 4.55764 0.812483H4.53986Z"
 fill="#D6DCE6"
 stroke="currentColor"
 stroke-width="2.56"
 stroke-miterlimit="10" />
 &lt;path
 d="M3.04532 18.3641C3.24094 17.9728 3.72109 16.8169 6.44201 16.7102C9.16292 16.6035 10.0343 17.5816 10.2299 18.2574C10.4256 18.9332 11.0124 39.6156 10.6212 39.9891C10.2299 40.3625 3.04532 40.8605 2.8497 40.3804C2.65407 39.9002 3.04532 18.3463 3.04532 18.3463V18.3641Z"
 stroke="currentColor"
 fill="#D6DCE6"
 stroke-width="2.56"
 stroke-miterlimit="10" />
 &lt;path
 d="M17.4163 39.9009C17.8965 40.0965 26.0592 40.4877 26.2548 40.0965C26.4504 39.7053 26.3437 27.5768 26.3437 26.7054C26.3437 25.834 27.6064 22.9174 29.6515 22.9174C31.6967 22.9174 34.3109 24.5713 34.2042 26.2252C34.0975 27.8791 34.2042 40.5945 34.2042 40.5945L41.869 40.3989C41.869 40.3989 42.4558 26.332 41.6733 23.5043C40.8909 20.6767 36.6228 15.4483 31.2876 15.3593C25.9525 15.2704 19.8349 17.2088 18.5722 24.0911C17.3096 30.9734 17.4163 39.9009 17.4163 39.9009Z"
 fill="#D6DCE6"
 stroke="currentColor"
 stroke-width="2.56"
 stroke-miterlimit="10" />
 &lt;/svg>
 &lt;/span>
 &lt;/div>
 &lt;/a>&lt;a href="https://github.com/2389-research"
 target="_blank"
 rel="noopener noreferrer"
 aria-label="GitHub でコードを見る"
 class="social-link filled">
 &lt;div class="icon">
 &lt;span aria-hidden="true">&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" class="github-icon">
 &lt;path
 fill="currentColor"
 d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"
 fill="blue"
 stroke="currentColor"
 stroke-width="1.07"
 stroke-miterlimit="10" />
 &lt;/svg>
 &lt;/span>
 &lt;/div>
 &lt;/a>&lt;a href="https://bsky.app/profile/2389.ai"
 target="_blank"
 rel="noopener noreferrer"
 aria-label="Bluesky でフォロー"
 class="social-link filled">
 &lt;div class="icon">
 &lt;span aria-hidden="true">&lt;svg
 viewBox="0 0 42 37"
 fill="none"
 xmlns="http://www.w3.org/2000/svg"
 class="bluesky-icon group">
 &lt;path
 d="M20.9582 16.3164C20.9582 16.3164 26.0991 9.46897 29.0042 6.65031C31.9093 3.83165 36.229 1.24906 38.3888 1.89839C40.5486 2.54771 41.7958 13.8224 39.7121 16.8772C37.6283 19.9319 32.7459 21.0682 30.4188 20.9059C29.3389 21.0682 37.2176 23.7984 37.2176 25.1708C37.2176 26.5432 34.5559 33.3021 32.244 34.5122C29.9321 35.7223 26.7684 35.9584 24.8519 34.4384C22.9355 32.9036 21.5362 27.4287 21.2016 26.8679C20.365 26.8679 17.8858 33.1545 16.4713 34.04C15.0567 34.9254 12.9882 35.3238 11.9083 34.9992C10.8284 34.6745 5.26152 31.4574 4.44018 27.9156C3.61885 24.3739 9.33779 22.2045 9.83972 22.116C10.3417 22.0275 11.3303 21.2306 11.3303 21.2306C11.3303 21.2306 7.10193 21.1568 5.27674 19.8582C3.45154 18.5743 1.79364 16.9657 1.45902 14.5455C1.1244 12.1253 0.546441 4.48092 0.88106 3.27081C1.21568 2.06071 2.20431 1.5 3.95345 1.5C5.7026 1.5 11.5889 4.96791 13.8247 7.69802C16.0606 10.4429 20.1368 16.3164 20.3042 16.3901C20.4715 16.4639 21.1407 16.5524 21.1407 16.5524"
 fill="none" />
 &lt;path
 d="M20.9582 16.3164C20.9582 16.3164 26.0991 9.46897 29.0042 6.65031C31.9093 3.83165 36.229 1.24906 38.3888 1.89839C40.5486 2.54771 41.7958 13.8224 39.7121 16.8772C37.6283 19.9319 32.7459 21.0682 30.4188 20.9059C29.3389 21.0682 37.2176 23.7984 37.2176 25.1708C37.2176 26.5432 34.5559 33.3021 32.244 34.5122C29.9321 35.7223 26.7684 35.9584 24.8519 34.4384C22.9355 32.9036 21.5362 27.4287 21.2016 26.8679C20.365 26.8679 17.8858 33.1545 16.4713 34.04C15.0567 34.9254 12.9882 35.3238 11.9083 34.9992C10.8284 34.6745 5.26152 31.4574 4.44018 27.9156C3.61885 24.3739 9.33779 22.2045 9.83972 22.116C10.3416 22.0275 11.3303 21.2306 11.3303 21.2306C11.3303 21.2306 7.10193 21.1568 5.27674 19.8582C3.45154 18.5743 1.79364 16.9657 1.45902 14.5455C1.1244 12.1253 0.546441 4.48092 0.88106 3.27081C1.21568 2.06071 2.20431 1.5 3.95345 1.5C5.7026 1.5 11.5889 4.96791 13.8247 7.69802C16.0606 10.4429 20.1368 16.3164 20.3042 16.3901C20.4715 16.4639 21.1407 16.5524 21.1407 16.5524"
 stroke="currentColor"
 fill="#69AFDB"
 stroke-width="2.50"
 stroke-miterlimit="10" />
 &lt;/svg>
 &lt;/span>
 &lt;/div>
 &lt;/a>&lt;/div>

 &lt;/div>

 &lt;!-- ひとことどうぞ -->
 &lt;div class="drop-line">
 &lt;div class="icon">
 &lt;span aria-hidden="true">&lt;svg
 viewBox="0 0 23 20"
 fill="none"
 xmlns="http://www.w3.org/2000/svg"
 class="mail-icon group">
 &lt;path
 d="M21.4047 1.94447C21.4047 1.94447 21.4592 1.99893 21.4955 2.0534C22.2308 3.47862 22.5939 16.2875 22.0402 17.2498C21.4864 18.212 3.6302 19.0381 2.78595 18.7204C1.94171 18.4027 0.888672 16.7777 0.888672 16.3511C0.888672 15.9244 0.888672 3.25168 0.997607 2.98842C1.10654 2.72516 2.10511 1.78105 3.15815 1.61765C4.21118 1.45424 20.0975 1.50872 20.2609 1.50872C20.4243 1.50872 21.4138 1.92629 21.4138 1.92629L21.4047 1.94447Z"
 fill="#F9F9F6"
 stroke="currentColor"
 stroke-width="1.37"
 stroke-miterlimit="10" />
 &lt;path d="M21.8228 5.14927L11.8825 11.3585L0.780273 4.78613" />
 &lt;path
 d="M21.8228 5.14927L11.8825 11.3585L0.780273 4.78613"
 stroke="currentColor"
 stroke-width="1.37"
 stroke-miterlimit="10" />
 &lt;/svg>
 &lt;/span>
 &lt;/div>
 &lt;h6>メッセージを送る&lt;/h6>
 
 &lt;p>hello@2389.ai&lt;/p></description></item><item><title>ホートンはささやきを聞く</title><link>https://2389.ai/ja/research/writing/horton-hears-a-whisper/</link><pubDate>Wed, 20 May 2026 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/horton-hears-a-whisper/</guid><description>&lt;p>オフィスで何が話されているかを継続的にまとめたいと思っていました。監視ではありません。部屋が自分のために書き込んでくれるノートのようなもの。火曜日のキッチンでの会話は何だったか？ 会議室で実際に何が決まったか？ すべての部屋に同時にいることはできませんが、マイクはいられます。&lt;/p>
&lt;p>そこで私たちはESP32マイクのフリートをオフィスに配線し、音声をサーバーにストリーミングし、Whisperで処理して、その上にダッシュボードを構築しました。コードネーム：ホートン。ドクター・スースのゾウが埃の粒の上の小さな声を聞くキャラクターにちなんでいます。&lt;/p>
&lt;h2 id="1台から複数台へ">1台から複数台へ&lt;/h2>
&lt;p>ホートンは私のデスクの上の1台のESP32-S3ボードとI²Sマイク（小型マイクの多くが使うデジタル音声バス）から始まりました。それをTCPソケット経由でPythonサーバーに生の音声をストリーミングするように配線しました。サーバーはWhisperを実行し、文字起こしをディスクに保存しました。それがスタック全体でした。動きました。文字起こしは意味を成しました。&lt;/p>
&lt;p>1台が動くことの問題は、次に来る明らかな疑問です：&lt;em>これが3台あったらどうなるか？&lt;/em> 次に4台。次に「午後11時と午後3時でキッチンはどう聞こえるか？」 2台以上になった瞬間、もはやデバイスを持っているのではなく——フリートを持っており、フリートについて考える必要があります。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>ループは小さいです。音声が一方から入り、文字起こしが他方から出ます。&lt;/p>

&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_f83a07354cee49d6.png 600w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_2de95da518cec4d4.png 900w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_e98e53d4b63ab8a8.png 1200w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_99ec456e7b421615.webp 600w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_3ccb47bff720e77.webp 900w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_c1585b46be518e32.webp 1200w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_7bf17ba617bc51a0.png"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_d3ba997b76f2a2bd.png 600w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_fc579d1eed8e887a.png 900w, https://2389.ai/research/writing/horton-hears-a-whisper/pipeline_hu_7bf17ba617bc51a0.png 1200w"
 sizes="min(100vw, 800px)"
 alt="Illustrated pipeline diagram: an ESP32 microcontroller with microphone on the left, a dandelion releasing seeds that drift right as voices traveling through the air, a FastAPI TCP server cube, a Whisper brain icon producing transcription text, and a dashboard grid with a small elephant silhouette on top"
 width="1200"
 height="800"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>ホートンのパイプライン — 声はマイクからダッシュボードへ旅する&lt;/figcaption>&lt;/figure>


&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/ear_hu_6d2530d29433d418.jpg 600w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/ear_hu_21243370f0c4304e.webp 600w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/horton-hears-a-whisper/ear_hu_6e4f7f01cf9ce44.jpg"
 srcset="https://2389.ai/research/writing/horton-hears-a-whisper/ear_hu_6e4f7f01cf9ce44.jpg 600w"
 sizes="min(100vw, 800px)"
 alt="Close-up of a small round microphone PCB set into the side of a blue 3D-printed elephant, with the mic&amp;#39;s pin labels (GND, VDD, WS, SCK, L/R) visible around its edge"
 width="600"
 height="386"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>耳、接写&lt;/figcaption>&lt;/figure>

&lt;p>小型のESP32-S3ファームウェアがI²Sマイクから生の音声を読み取り、TCPソケット経由でサーバーに継続的にストリーミングします。サーバーは2つのプロセスを持つFastAPIアプリです：&lt;code>audio_server.py&lt;/code>がTCP音声インジェストを処理し、&lt;code>web_server.py&lt;/code>がダッシュボード、API、ライブフィードを提供します。Whisper（私たちはOpenAIのWhisperのCPU最適化ポートである&lt;code>faster-whisper&lt;/code>を使用）が文字起こしを行います。GrafanaはサーバーのAPIをデータソースとして使い、ダッシュボードを描きます。&lt;/p></description></item><item><title>AIパイプラインのための言語を作った理由</title><link>https://2389.ai/ja/research/writing/why-we-built-a-language-for-ai-pipelines/</link><pubDate>Fri, 03 Apr 2026 10:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/why-we-built-a-language-for-ai-pipelines/</guid><description>&lt;p>昨年3月、エンジニアの一人が壊れたパイプラインのデバッグに40分を費やしました。原因はDOTファイルのバックスラッシュ一文字の欠落でした。その文字は、次のような文字列の中に埋まっていました。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>tool_command=&amp;#34;set -eu\nmkdir -p .ai .ai/drafts .ai/sprints\nif [ ! -f
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>.ai/ledger.tsv ]; then\n now=$(date -u +%Y-%m-%dT%H:%M:%SZ)\n printf
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;#39;sprint_id\\ttitle\\tstatus\\tcreated_at\\tupdated_at\\n001\\tBootstrap
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sprint\\tplanned\\t%s\\t%s\\n&amp;#39; \&amp;#34;$now\&amp;#34; \&amp;#34;$now\&amp;#34; &amp;gt; .ai/ledger.tsv\nfi\n
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>printf &amp;#39;ledger-ready&amp;#39;&amp;#34;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>これはシェルスクリプトです。bashで6行：ディレクトリを作り、TSVヘッダーがなければ書き込み、ステータスメッセージを出力する。珍しいことは何もありません。しかしDOT属性の中に入れると、改行は &lt;code>\n&lt;/code>、タブは &lt;code>\\t&lt;/code>、クォートは &lt;code>\&amp;quot;&lt;/code> に変わります。スクリプトはそこにあるのに、読めない。自信を持って編集できない。&lt;/p>
&lt;p>私たちは&lt;a href="https://2389.ai/ja/research/products/tracker/">Tracker&lt;/a>——AIパイプラインのオーケストレーションシステム——を開発しています。Trackerは、LLMエージェント・ツール呼び出し・人間のレビュアーが複雑なタスク（コードレビュー、スプリント実行、API設計）に協働する多段階ワークフローを実行します。これらのパイプラインは有向グラフです。プロンプトとモデルを持つノード、条件付きエッジ、リトライループ、並列ブランチ。&lt;/p>
&lt;p>私たちはそれをGraphviz DOTで定義していました。&lt;/p>
&lt;p>パイプラインが小さいうちはDOTで十分でした。5ノード、シンプルなエッジ、短いプロンプト。しかしパイプラインは成長しました。マルチモデルコンセンサスを持つ20ノードのワークフロー。テストスイートを実行するシェルスクリプト。マークダウンやJSONスキーマを埋め込んだシステムプロンプト。記述フォーマットは「透明な存在」ではなくなり、最も手を焼く相手になっていました。&lt;/p>
&lt;p>プロンプトを書くよりも、エスケープ文字のデバッグに時間を取られるようになっていたのです。&lt;/p>
&lt;h2 id="dotが提供できなかったもの">DOTが提供できなかったもの&lt;/h2>
&lt;p>エスケープ文字列の問題は最も目立つ痛点でしたが、唯一の問題ではありませんでした。&lt;/p>
&lt;p>DOTはグラフ記述言語です。ノード、エッジ、属性について知っています。しかしAIパイプラインが何であるかは知りません。&lt;code>claude-sonnet-4-6&lt;/code> が有効なモデル名で、&lt;code>claude-sonet-4-6&lt;/code> がタイプミスであるかどうかについて、言語は何も言いません。あるノードが到達不能であること、リトライループに終了条件がないこと、ツールコマンドが存在しないバイナリを参照していること——これらも教えてくれません。こうした問題は本番環境で、パイプラインが失敗したときに発覚します。あるいはもっと悪く、微妙に間違った出力を出し続けます。&lt;/p>
&lt;p>パイプラインのテストも別の問題でした。LLM呼び出しは非決定論的なので、その出力をアサートできません。しかし実行の&lt;em>形状&lt;/em>はアサートできます：どのノードが訪問されたか、どの順番で、どのブランチが取られたか。それが必要でした。DOTにはそういう概念がありませんでした。&lt;/p>
&lt;p>コストの問題もありました。3つのLLMプロバイダーにファンアウトするパイプラインは、3セットのAPI呼び出しを実行します。合計を見積もるには、誰かが手作業でプロンプトトークンを数え、料金表を調べる必要がありました。20のパイプラインに対してそれはスケールしません。&lt;/p>
&lt;h2 id="フォーマットから言語へ">フォーマットから言語へ&lt;/h2>
&lt;p>バリデーションレイヤーを載せたYAMLスキーマを書くこともできました。しかしバリデーションはエラーを捕まえるだけです——スタイルを正規化するフォーマッター、実行パスを歩くシミュレーター、プロンプトトークンを読むコスト見積もり、エディター上で診断を表示するLSPは手に入りません。そのすべてには、ツールチェーン全体が共有できる型付きデータモデルを生成する文法とパーサーが必要です。&lt;/p>
&lt;p>同じシェルスクリプトをDippinで書くと、こうなります。&lt;/p>
&lt;pre class="dip-highlight" role="region" aria-label="Dippin code example">&lt;code class="language-dip">tool EnsureLedger
 label: &amp;#34;Ensure Ledger&amp;#34;
 command:
 set -eu
 mkdir -p .ai .ai/drafts .ai/sprints
 if [ ! -f .ai/ledger.tsv ]; then
 now=$(date -u &amp;#43;%Y-%m-%dT%H:%M:%SZ)
 printf &amp;#39;sprint_id\ttitle\tstatus\tcreated_at\tupdated_at\n001\tBootstrap sprint\tplanned\t%s\t%s\n&amp;#39; &amp;#34;$now&amp;#34; &amp;#34;$now&amp;#34; &amp;gt; .ai/ledger.tsv
 fi
 printf &amp;#39;ledger-ready&amp;#39;&lt;/code>&lt;/pre>
&lt;p>コロンの後にインデントしてスクリプトを書くだけです。エスケープもクォートも &lt;code>\n&lt;/code> も不要です。プロンプトにも同じルールが適用されます：ヘッダー、箇条書き、埋め込みコードブロック、JSONの例を含む複数行のマークダウンを、ドキュメントに書くように書けます。&lt;/p></description></item><item><title>Word Compiler：長編小説のためのコンテキストコンパイラ</title><link>https://2389.ai/ja/research/writing/word-compiler/</link><pubDate>Wed, 01 Apr 2026 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/word-compiler/</guid><description>&lt;h2 id="問題">問題&lt;/h2>
&lt;p>LLMで小説を書くことは、フラストレーションとの戦いです。いつの間にかプロンプトエンジニアになっています。システムメッセージを手作りし、コンテキストをコピー＆ペーストし、セッションをまたいでキャラクターの詳細を管理し、モデルが「何を知っているか」を追いきれなくなり、物語がコンテキストウィンドウを超えるにつれて文章の質が落ちていく様子を眺めることになります。既存のツールはLLMをオートコンプリートのように扱っており、クリエイティブなルールに縛られたコラボレーターとしては見ていません。&lt;/p>
&lt;p>著者の本当の貢献——声、世界観、物語の意図——は、場当たり的なプロンプトに散らばり、セッションの間に消え去り、次の生成パスに何も引き継がれません。&lt;/p>
&lt;h2 id="コンパイラという比喩">コンパイラという比喩&lt;/h2>
&lt;p>Word Compilerはそのアーキテクチャをソフトウェアコンパイラから借用しています。コンパイラはソースコードを読み込み、中間表現を構築し、制約の中で最適化を行い、機械語を出力します。Word Compilerは同じことを散文に対して行います。&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>コンパイラの概念&lt;/th>
 &lt;th>Word Compilerの対応物&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>ソースコード&lt;/td>
 &lt;td>Bible。キャラクタードシエ、スタイルガイド、場所、物語のルール、禁止フレーズのキルリストを含む構造化ドキュメント&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>中間表現&lt;/td>
 &lt;td>Narrative IR。シーンごとのイベント、キャラクターの変化、認識論的状態の抽出&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>最適化&lt;/td>
 &lt;td>バジェットエンフォーサー。プロンプトがコンテキストウィンドウに収まることを保証する優先度ベースの圧縮&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>静的解析&lt;/td>
 &lt;td>リンター（生成前）とオーディター（生成後）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>リンカー&lt;/td>
 &lt;td>クロスシーンのブリッジング。Narrative IRのキャラクター状態と未解決のテンションによる継続性&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>コード生成&lt;/td>
 &lt;td>LLM呼び出しそのもの。唯一の非同期かつコストのかかるステップ&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>ユーザーはプロンプトを書きません。構造化フィールド（キャラクタードシエ、感情的なビートを持つシーン契約、アンカーライン、サブテキスト契約）を埋めると、コンパイラがコンテキストのペイロードを組み立てます。&lt;/p>
&lt;h2 id="実際に何を解決するのか">実際に何を解決するのか&lt;/h2>
&lt;h3 id="長編作品のコンテキストウィンドウ問題を解決します">長編作品のコンテキストウィンドウ問題を解決します。&lt;/h3>
&lt;p>私たちはLLMに適切なスコープで適切なコンテキストを与える、三リング構造のアーキテクチャを構築しました。&lt;/p>
&lt;p>&lt;strong>Ring 1&lt;/strong>（システムメッセージ）はプロジェクトレベルのアイデンティティを担います。声のルール、POVポリシー、文章の構造、語彙の好み、キルリスト、構造的な禁止事項、ポジティブおよびネガティブな例文です。&lt;/p>
&lt;p>&lt;strong>Ring 2&lt;/strong>はチャプターレベルの継続性を担います。チャプターのアーク、読者の認識論的状態、アクティブな伏線、過去のシーンのNarrative IRから導出された累積的なキャラクター状態です。&lt;/p>
&lt;p>&lt;strong>Ring 3&lt;/strong>はシーンレベルの詳細を担います。シーン契約、発話キャラクターの声のフィンガープリント、感覚的なパレット、アンカーライン、前のチャンクまたは前のシーンからの継続性ブリッジ、アンチアブレーションガードレールです。&lt;/p>
&lt;p>合計がトークンバジェットを超えると、コンパイラは圧縮します。最初にRing 1を削り、次にRing 2、最後の手段としてRing 3を削ります。各リング内では、優先度の高い番号から順に、免疫のないセクションを削除します。免疫セクション（キルリスト、構造的ルール、POVポリシー、シーン契約、声のフィンガープリント、アンカーライン、アンチアブレーション）は決して削除されません。&lt;/p>
&lt;p>デフォルト設定ではRing 3に最低60%のシェアを割り当てており、40%を下回るとリンターが警告を出します。&lt;/p>
&lt;p>10万語の小説は、原稿全体をチャットウィンドウに貼り付けた場合のように第20章で劣化しません。コンパイラは各チャンクが必要とするコンテキストを正確に組み立てます。&lt;/p>
&lt;h3 id="プロンプトエンジニアリングなしにクリエイティブコントロールを実現します">プロンプトエンジニアリングなしにクリエイティブコントロールを実現します。&lt;/h3>
&lt;p>Bibleはスタイルの唯一の真実の源泉であり、バージョン管理されています。すべての編集が新しいバージョンを作成し、古いバージョンに対して生成することをゲートが防ぎます。声の決定、キャラクターの口癖、構造的な禁止事項、キルリストのすべての言葉。すべてが一つのドキュメントに。著者は指示ではなく意図を指定します。&lt;/p>
&lt;p>シーン計画も同様に精密です。それぞれが物語の目標、感情的なビート、望む読者への効果、サブテキスト契約（表面的な会話と実際の会話、エンフォースメントルール付き）、アンカーライン（逐語的にマークするか、エネルギーターゲットとして残せる著者が書いた文）、そして避けるべき失敗モードを定義します。コンパイラはそのすべてをプロンプトに変換します。&lt;/p>
&lt;h3 id="散文に静的解析と監査を適用します">散文に静的解析と監査を適用します。&lt;/h3>
&lt;p>生成のたびに、オーディターはBibleに照らして散文をスキャンします。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>キルリスト違反&lt;/strong>：リスト上のすべての単語とフレーズを大文字小文字を区別せずにスキャンします&lt;/li>
&lt;li>&lt;strong>文章の分散&lt;/strong>：文の長さの標準偏差が3.0語を下回り、リズム的に単調なパッセージにフラグを立てます&lt;/li>
&lt;li>&lt;strong>段落の長さ&lt;/strong>：著者が設定した最大文数を超える段落にフラグを立てます&lt;/li>
&lt;li>&lt;strong>認識論的リーク検出&lt;/strong>：キャラクターの知識を過去のシーンのNarrative IRと照合します。キャラクターが学んだことが一度も示されていないことに言及した場合、フラグが立てられます&lt;/li>
&lt;li>&lt;strong>伏線/回収の追跡&lt;/strong>：シーン計画で埋め込まれるまたは回収されると言われていたことと、IRが実際に起きたと言っていることを比較します。原稿完成時に、一度も解決されなかった伏線にフラグが立てられます&lt;/li>
&lt;li>&lt;strong>サブテキストコンプライアンス&lt;/strong>：散文とシーンのサブテキスト契約をモデルに送り、いずれかのキャラクターが言外の意味を明示的に口にしていないかチェックします&lt;/li>
&lt;/ul>
&lt;p>これらは&lt;strong>リンティング&lt;/strong>、&lt;strong>型チェック&lt;/strong>、&lt;strong>インテグレーションテスト&lt;/strong>の散文版です。未解決の重大な監査フラグは、ワークフローゲートを通じてシーンが進むのをブロックします。警告と情報レベルのフラグは進行をブロックしませんが、著者が解決または却下するまで表示され続けます。&lt;/p>
&lt;h3 id="構造化された制約を通じて声を構築します">構造化された制約を通じて声を構築します。&lt;/h3>
&lt;p>Word Compilerにおける声とは、すべてのプロンプトにコンパイルされる重層的な制約です。Bibleはキャラクターレベルの声のフィンガープリント（語彙のメモ、口癖、比喩的なレジスター、禁止言語、対話のサンプル）とプロジェクトレベルのスタイルルール（ポジティブおよびネガティブな例文、文章の構造、比喩的な領域、語彙の好み）を持ちます。Ring 1はこれらをシステムメッセージに組み立てます。Ring 3はシーン内の発話キャラクターすべてのキャラクターレベルの声のフィンガープリントを注入します。&lt;/p>
&lt;h2 id="著者がコントロールを保ち続ける方法">著者がコントロールを保ち続ける方法&lt;/h2>
&lt;p>すべてのステージで決定権は著者の手にあります。&lt;/p>
&lt;p>あらすじを貼り付ければ、システムがドラフトのBible（キャラクター、場所、トーン、キルリスト）を生成します。あるいはすべてをゼロから構築することもできます。すべてのフィールドは編集可能です。Bibleはあなたのものです。&lt;/p>
&lt;p>シーン計画には、人間のストーリーテラーだけがうまく埋められるフィールドが含まれています。サブテキストフィールドは、キャラクターが表面上何を話しているかと実際に何を伝えているかを、エンフォースメントルール付きでキャプチャします。アンカーラインは著者が書いた特定の文で、逐語的に表示されなければなりません。失敗モードは何を避けるべきかを述べます（「どんでん返しを電信するな」「メロドラマ的な台詞はなし」）。&lt;/p>
&lt;p>生成はチャンクごとに進みます。各シーンの目標語数（著者が設定可能で、デフォルトは800〜1200語）は、一定数のチャンクに分割されます。著者はそれぞれを確認し、承認、編集、または却下とマークします。編集こそが本当の著者活動が起きる場所です。学習器は監視しており、AIが書いたものと著者が残したものの差分を分析し、編集のタイプを分類しています：フィラーの削除、トーンの変化、「見せろ、言うな」への置換、感覚的な追加。&lt;/p>
&lt;p>著者はすべての監査フラグを、対応可能または却下としてマークすることで解決します。解決データはカテゴリ別に監査の品質を経時追跡するシグナル対ノイズ指標に供給されます。自動修正は何もありません。&lt;/p>
&lt;p>シーンが完成すると、システムは起きたことの構造化された表現を抽出します：イベント、導入された事実、読者に明かされた事実、隠された事実、キャラクターの変化、植え込まれた伏線、実行された回収、キャラクターの位置、未解決のテンション。記録は未検証の状態から始まります。著者はそれがクロスシーンの継続性に供給される前にレビューして確認します。&lt;/p>
&lt;p>リビジョン学習器からのBible提案とパラメータアナライザーからのチューニング提案は、著者が承認または却下するまで保留状態で届きます。システムが提案し、著者が決定します。&lt;/p>
&lt;h2 id="aiアシストコーディングから借りたアイデア">AIアシストコーディングから借りたアイデア&lt;/h2>
&lt;p>私たちはコードについて考えるのと同じ方法でこれを構築しました。&lt;/p></description></item><item><title>3DプリンターをAIポートレートアーティストに変えた話</title><link>https://2389.ai/ja/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/</link><pubDate>Fri, 20 Mar 2026 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/</guid><description>&lt;p>古い3DプリンターにペンをくくりつけてAIにPicassoを模倣させたら、どうなるでしょうか。その場で肖像を描いてくれるフォトブースができあがりました。これが「Micasso」です。&lt;/p>
&lt;h2 id="埃をかぶっていたプリンター">埃をかぶっていたプリンター&lt;/h2>
&lt;p>オフィスの隅に3Dプリンターが放置されていました。そろそろオープンハウスが迫っていて、パーティーを盛り上げる何か楽しいもの——持ち帰れる、物理的な何か——が欲しかったのです。アイデアはシンプルでした。写真を撮って、AIに線画に変換してもらい、プリンターにペンで描かせたらどうだろう、と。&lt;/p>
&lt;p>私たちが惹かれたのはデジタルとアナログのループです。AIが画像を画面上に生成するのは当たり前ですが、そのあとに機械が&lt;em>実際にカードに描く&lt;/em>のを目の前で見られる。ペンが自分の顔をなぞる瞬間には、画面では味わえない何かがあります。&lt;/p>

&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/micasso-detail_hu_3e70af8b190aef8a.jpg 600w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/micasso-detail_hu_d3c3b0afdbaed792.webp 600w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/micasso-detail_hu_9b8510fe24a520cd.jpg"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/micasso-detail_hu_9b8510fe24a520cd.jpg 600w"
 sizes="min(100vw, 800px)"
 alt="Micassoのペンプロッターのクローズアップ：ペンホルダーを取り付けた改造済み3Dプリンター、2つのアーケードボタン、黒いカードに描かれた新鮮なポートレート"
 width="600"
 height="800"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>Micassoの近影 — ペンホルダー、InspireボタンとRealizeボタン、そして描きたての肖像&lt;/figcaption>&lt;/figure>

&lt;h2 id="inspireとrealize">InspireとRealize&lt;/h2>
&lt;p>インタラクションには2つの瞬間があり、それぞれに意図を込めて名前をつけました。&lt;/p>
&lt;p>&lt;strong>Inspire&lt;/strong>ボタンを押すとカメラが準備を始め、カウントダウンが流れ、シャッターの瞬間にブースが*「Micassoooo」*と叫びます——シャッター音であり、個性でもあります。&lt;/p>
&lt;p>撮った写真が画面に表示されます。気に入らなければ&lt;strong>Inspire&lt;/strong>をもう一度押して撮り直せます。準備ができたら&lt;strong>Realize&lt;/strong>を押す——インスピレーションを現実にする瞬間です。AIが肖像を生成し、コードがペンのパスに変換し、約30秒後にプロッターが描き始めます。&lt;/p>
&lt;p>待っている間、画面には俳句が表示されます：&lt;/p>
&lt;blockquote>
&lt;p>&lt;em>ロボットが顔を学ぶ&lt;/em>&lt;br>
&lt;em>数字が詩になる&lt;/em>&lt;br>
&lt;em>機械の言葉が語られる&lt;/em>&lt;/p>&lt;/blockquote>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>パイプラインは5ステップです。写真を入れると、ペンで描かれた肖像が出てきます。&lt;/p>

&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_11a7e1a7e87e3cfe.png 600w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_5d58f9bf0393532f.png 900w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_a126d9c0d4945389.png 1200w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_a7494a5929ad88ae.webp 600w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_a8e4378e35c8d84d.webp 900w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_923e854a910df44f.webp 1200w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_8bf88cd31d28de9.png"
 srcset="https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_d46454033b07f6dc.png 600w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_491085771083a030.png 900w, https://2389.ai/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/pipeline-blueprint_hu_8bf88cd31d28de9.png 1200w"
 sizes="min(100vw, 800px)"
 alt="Micassoの5ステップパイプラインの図：Capture（撮影）、AI Portrait（AI肖像）、Centerline Trace（中心線トレース）、G-code（Gコード）、Plot（描画）"
 width="1200"
 height="400"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>Micassoの処理パイプライン&lt;/figcaption>&lt;/figure>

&lt;p>Raspberry Pi 5に接続したウェブカメラが写真を撮影します。その写真はAI画像モデル（OpenAI、Google Gemini、またはセルフホスト版に対応）に送られ、PicassoとMiróのスタイルを模した最小限の線画に変換されます。AIの出力はベクターパスにトレースされます——これについては後述しますが、ここで少々ハマりました。そのベクターはvpypeを使ってアーク補正付きのG-codeに変換されます。G-codeはレシピのようなものです：ここへ移動、ペンを下ろす、この線を引く、上げる、あそこへ移動。そしてプリンターがペンを持って描き始めます。黒い6×4インチのカードに白いペンで。&lt;/p>
&lt;h2 id="詰まったところ">詰まったところ&lt;/h2>
&lt;h3 id="物理ペンのためのプロンプトエンジニアリング">物理ペンのためのプロンプトエンジニアリング&lt;/h3>
&lt;p>画面向けのプロンプトエンジニアリングと、物理ペン向けのそれはまったく別物です。AIはグラデーションなし、塗りつぶしなし、線幅の変化なしで——機械ペンが再現できるクリーンなストロークだけで——アートを生成しなければなりません。&lt;/p>
&lt;p>私たちはかなり試行錯誤しました。最終的にたどり着いたのがこちらです：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>PORTRAIT_PROMPT &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&amp;#34;Transform this photo into a minimalist single-line portrait
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">in the style of Picasso and Joan Miró.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">Requirements:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Single continuous stroke aesthetic (the drawing should look like it could be
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74"> drawn without lifting the pen)
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Uniform line thickness throughout - no variation, shading, or hatching
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Abstract but recognizable - simplified eyes, nose, mouth, hair
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Minimal clothing suggestion - as few strokes as possible
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Clean white background with no texture or marks
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Black lines only on pure white
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Empty white space around the portrait
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">- Gallery-style minimalist aesthetic
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#e6db74">The result should look like modern minimalist line art suitable for pen plotting&amp;#34;&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>すべての言葉が重要です。「Single continuous stroke aesthetic」と「uniform line thickness」という表現が、画面映えするものとペンで実際に描けるものとの分かれ目になります。&lt;/p></description></item><item><title>シマー：自己研磨スキル</title><link>https://2389.ai/ja/research/writing/simmer-skill/</link><pubDate>Fri, 13 Mar 2026 14:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/simmer-skill/</guid><description>&lt;p>&lt;a href="https://gepa-ai.github.io/gepa/blog/2026/02/18/introducing-optimize-anything/">バークレーの研究者たち&lt;/a>は、出力を評価し優先順位付きの実行可能なフィードバックを与えられる限り、RLスタイルのフィードバックループをあらゆるテキストタスクに適用できることを示しました。彼らはこれをActionable Side Information（ASI）と呼んでいます。目標は次に何を改善すべきかに焦点を当てたフィードバックです。APIなら「POSTエンドポイントにエラーレスポンスがない」かもしれません。ストーリーなら「第二段落でペーシングが落ちる」かもしれません。生成器が散漫にならずに行動できるほど焦点が絞られていることが必要です。&lt;/p>

&lt;img
 src="https://media.giphy.com/media/m530QoD3Sp6TB2PpAS/giphy.gif"
 alt=""
 
 loading="lazy"
 decoding="async" />
&lt;p>私たちはこれをシマーというClaude Codeスキルとして構築しました。何を洗練させるか、「より良い」ための基準を定義します。エージェントが生成し、それらの基準に対して評価し、優先順位付きの修正をフィードバックして繰り返します。テキスト形式のものなら何にでも機能します。アドベンチャーフック、ピッチメール、API仕様、ブログ記事。&lt;/p>
&lt;p>次に私たちはシマーを使って、シンプルな内側/外側のエージェントループを使いながらシマー自身を研磨させてテストしました。外側のループ：スキル定義のバージョンを取り、どれだけうまく機能するかを評価し、ブレークポイントを見つけ、スキルを改善して繰り返します。各バージョンで内側のループ：そのスキル定義とテストタスクのセットで3つのエージェントを起動し、各エージェントがそれらのタスクを独立してシマーし、結果を比較します。3回の外側のイテレーション。これが何を教えてくれたかを紹介します。&lt;/p>

&lt;img
 src="https://media.tenor.com/yx5C5KRE0t0AAAAM/chefe-cozinha.gif"
 alt=""
 
 loading="lazy"
 decoding="async" />
&lt;h2 id="審査員はキャリブレーションがないと膨らませる">審査員はキャリブレーションがないと膨らませる&lt;/h2>
&lt;p>最初の内側の実行で、スコアの軌跡を確認すると全員が9.2を記録しており、実際のテキストを読むまでは素晴らしく見えました。極めて具体的な基準なしには、各サブエージェントの審査員がスコアを膨らませていました。例えば3回目のイテレーションのアドベンチャーフックにはまだ受動的なヴィランと賭けるものがなく、説得力あるD&amp;amp;Dアドベンチャーモジュールになっていませんでした。&lt;/p>
&lt;p>審査員は、どこから始まったか、スコアが何を意味するかの記憶がなかったため、寛大なスコアに流れていました。修正方法は、シードアーティファクトとそのイテレーション0のスコアを毎ラウンドの永続的なコンテキストとして審査員に与え、さらに各スコアレベルが何を意味するかの明示的なアンカーを追加することでした。それを加えると、スコアが一貫して、実行を通じてより方向性の正しいものになりました。&lt;/p>
&lt;h2 id="スキルはアーティファクトよりも速く改善した">スキルはアーティファクトよりも速く改善した&lt;/h2>
&lt;p>内側のループの結果は外側のイテレーションを通じて改善しましたが、アーティファクトが劇的に変化したからではありませんでした。アドベンチャーフックとAPI仕様は最初の実行から真に良いものでした。時間をかけてスキルで主に改善されたのは、私たちには明確に見えた指示がエージェントには曖昧に見えたということを、イテレーションが特定するのを助けたことです。「デフォルト3イテレーション」は3つの異なるイテレーション数を生み出しました。「軌跡を記録する」は3つの異なるテーブルスキーマを生み出しました。修正は常に同じでした：指示を明示的な契約に置き換えること。3回目の外側のパスまでに、内側のループの3つのエージェントすべてが同じプロセスに従い、比較可能なスコアを生み出し、独立して同様の品質レベルに到達しました。この実験的なループでシマーが自分自身を研磨させることで、サブエージェントの実行とフルパイプラインの実行がより一貫したものになりました。&lt;/p>
&lt;h2 id="なぜ機能するか">なぜ機能するか&lt;/h2>
&lt;p>従来のMLでは、フィードバックループは何千回ものイテレーションを通じて潜在空間をランダムウォークして解を近似することを意味します。私たちのエージェントではそれをする必要がありません。バックボーンのLLMは大規模な事前学習済みの能力とほとんどのトピックへの確かな理解から始まります。モデルは良いAPI仕様がどのようなものかを、説得力あるアドベンチャーフックがどのように読めるかをすでに知っています。ゼロから探索する必要はありません。この特定のアーティファクトに何が欠けているかを指摘する人が必要なのです。それがASIメカニズムを実用的にするものです。焦点を絞ったフィードバックと有能なエージェントがあれば、3,000回ではなく3〜5ラウンドで収束します。&lt;/p>
&lt;h2 id="試してみる">試してみる&lt;/h2>
&lt;p>シマーはClaude Codeのプラグインです。&lt;/p>
&lt;pre tabindex="0">&lt;code>/plugin marketplace add 2389-research/claude-plugins
/plugin install simmer
&lt;/code>&lt;/pre></description></item><item><title>クックオフ：同じ仕様、異なるコード</title><link>https://2389.ai/ja/research/writing/cookoff-same-spec-different-code/</link><pubDate>Thu, 12 Mar 2026 10:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/cookoff-same-spec-different-code/</guid><description>&lt;p>計画は敵と接触した瞬間に崩れる。誰でも殴られるまでは計画を持っている。好きな言い方を選んでいい……要点は同じです。計画は抽象であり、抽象は現実に完全には写像されません。定義上、複数の有効な実装を許容するものです。&lt;/p>
&lt;p>しかしAIはこれをより無視しづらくします。「明確な仕様」と「正しい実装」の間のギャップが、かつて一つのバージョンを生み出すのにかかっていた時間で、真に異なる実装を複数生み出せるようになったからです。最初の「正しい」実装だけを見ていると、有用な情報を取りこぼしている可能性があります。&lt;/p>
&lt;p>その空間をすぐに一つに絞らず、探索してみたらどうなるでしょうか？&lt;/p>
&lt;p>私はそのアイデアを突き詰め、モデルのばらつきを特徴として活用するために&lt;a href="https://2389.ai/ja/research/products/test-kitchen/">クックオフ&lt;/a>を書きました。&lt;/p>

&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/cookoff-same-spec-different-code/same-but-different_hu_88adaed0a10fdeb.jpg 600w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/cookoff-same-spec-different-code/same-but-different_hu_3a9d17541fb7148a.webp 600w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/cookoff-same-spec-different-code/same-but-different_hu_c4e23119a4f2cc06.jpg"
 srcset="https://2389.ai/research/writing/cookoff-same-spec-different-code/same-but-different_hu_c4e23119a4f2cc06.jpg 600w"
 sizes="min(100vw, 800px)"
 alt="Same spec, different implementations"
 width="600"
 height="320"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>Same spec, different implementations&lt;/figcaption>&lt;/figure>

&lt;p>セットアップはシンプルです。同じ設計書。複数のエージェント。独立した環境。並列ビルド。そして返ってきたものを評価します。&lt;/p>
&lt;p>評価は単純に「どれが動くか」ではありません。「それぞれが何を最適化したか」です。どんな前提が埋め込まれたか？ 一方にはあって他方にはなかった防御的な処置は何か？ どのソリューションが適切な意味でシンプルで、どれが単に薄いだけか？&lt;/p>
&lt;p>私たちはクックオフを使って、Bubble Teaを使ったチャットクライアントのTUIを構築しました。3つのエージェントが同じ仕様を受け取りました。3つのエージェントが同じフレームワークに対してビルドしました。返ってきたものはノイズではありませんでした。実装空間の小さな地図でした。&lt;/p>
&lt;p>一つのバージョンは生のHTTPとフラットなモデルを使っていました。もう一つはネストされたコンポーザブルモデルを採用し、カーソルクランプ、送信者フォールバックロジック、タイムスタンプガード、その他の品質向上のための堅牢化といった防御パターンを多数含んでいました。審査員が結果を採点したところ、25点中18点で同点でした。&lt;/p>
&lt;p>この引き分けこそ、私がこのパターンを気に入っている理由の一つです。経験的な「最良」の実装というものは存在しません。あるのは最適適合、今のための最良、これらの制約のもとでの最良です。実装を一つの正解を探す行為として扱うことは的外れです。有用な結果は多くの場合、複数のアプローチが異なる理由で擁護できるということであり、真の価値はそれらを学んで&lt;em>このコンテキストにおいて&lt;/em>最善のものへとまとめることから生まれます。&lt;/p>
&lt;p>この場合、タイブレーカーはテスト数と本番行数の少なさからシンプルな実装を支持しました。それは良いことです。そのバージョンが勝者になりました。しかし「負け」の実装には勝者にはなかった防御パターンがありました。貼り付けのレースコンディション修正。UTF-8安全なトランケーション。ゼロタイムスタンプガード。&lt;/p>
&lt;p>そこで私たちはそれらのアイデアを拝借しました。&lt;/p>
&lt;p>これが本当の成果です。クックオフは単にチャンピオンを決めるためのものではありません。一つのコードベースに戻る前に、分岐から学ぶための方法です。最終結果は単一の候補よりも優れたものになり得ます。なぜなら、一つのエージェントの選択に付随する偶然のバンドルを受け入れる必要がないからです。&lt;/p>
&lt;p>今回のケースでは、より強力な防御パターンをシンプルな勝者に移植し、いずれの実装単体よりも優れた最終コードを得ました。&lt;/p>
&lt;p>これは非決定性についての私の考え方を意味のある形で変えました。一つの答えだけを求めるなら、非決定性は抑制すべき問題に見えます。出力を賢く比較し、ニュアンスの中で活躍できるなら、非決定性は探索になります。&lt;/p>
&lt;p>もちろんコストはあります。複数の実装を実行することは一つを実行するよりも費用がかかります。しかし「負け」のランから得られるアイデアを持ち帰ることで、それらの欠点を後から一から対処する必要がなくなり、コストを回収できます。あるいはもっと悪いことに、本番環境で失敗してから対処するということもなくなります。実装の詳細が重要で、失敗の形を事前に予測するのが難しいときこそ、比較のコストを支払う価値があります。&lt;/p>
&lt;p>また、失敗の感覚も変わります。一つの実装が崩れても、ゼロには戻りません。すでに探索空間をより多く購入しています。他に何が試みられたかを知っています。すでに代替パスを手元に持っているかもしれません。それは品質にとって有用なだけではありません。モメンタムにとっても有用です。&lt;/p>
&lt;p>不確実性のすべてが前倒しではありません。その一部は明確な方向性が出た後も残ります。一部は実際のコードが書かれて初めて現れます。クックオフはその層のためにあります。&lt;a href="https://2389.ai/ja/research/writing/omakase-show-me/">オマカセ&lt;/a>が反応するためのアーティファクトを与え、&lt;a href="https://2389.ai/ja/research/writing/deliberation-perspectives-not-answers/">デリベレーション&lt;/a>が一緒に考えるための視点を与えるのと同じように、クックオフは比較するための実装を与えます。&lt;/p>
&lt;p>同じテーマ、異なる反応の対象。&lt;/p>
&lt;p>私はばらつきを隠してコンパイルできる最初のものを返すだけのAIコーディングシステムは求めていません。その差異が重要なときに、意味のある違いを検査できるシステムを求めています。勝者が答えになることもあります。答えの広がりが答えになることもあります。&lt;/p>
&lt;h2 id="試してみる">試してみる&lt;/h2>
&lt;p>クックオフは&lt;a href="https://claude.ai/code">Claude Code&lt;/a>の&lt;a href="https://2389.ai/ja/research/products/test-kitchen/">Test Kitchen&lt;/a>プラグインの一部です。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install test-kitchen
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>オマカセ：見せてくれ</title><link>https://2389.ai/ja/research/writing/omakase-show-me/</link><pubDate>Thu, 12 Mar 2026 09:30:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/omakase-show-me/</guid><description>&lt;p>具体的に反応できるものが手元にあるまで、自分が何を求めているかわからないことがあります。Claudeがその前に選択を求めてくると、作業を進めるためだけに好みを作り上げてしまいがちです。うまくいくこともあります。しかし、実在しなかった答えを巡って空回りを生むこともあります。&lt;/p>
&lt;p>そのために&lt;a href="https://2389.ai/ja/research/products/test-kitchen/">オマカセ&lt;/a>を作りました。アイデアはシンプルです。方向性の選択に行き詰まっているなら、Claudeが具体的なバリアントを構築し、本物の反応対象を与えます。トレードオフの箇条書きでも、長所と短所について整然とした段落でもなく。実際に見て、使って、評価できる実装を。&lt;/p>
&lt;p>&lt;em>UHF&lt;/em>で盲目の男性がルービックキューブを解くシーンがあります。これはそんな感じです。Claudeがキューブをいじります。私は色が合っているかどうかを告げます。パーツがどう合わさるべきかわからなくても、目の前のものが間違った形をしているときは大抵わかります。&lt;/p>

&lt;figure>
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/omakase-show-me/uhf-rubiks_hu_c465eab4522fa7f6.gif 498w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/omakase-show-me/uhf-rubiks_hu_6d70d65715c7dae.webp 498w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/omakase-show-me/uhf-rubiks.gif"
 srcset="https://2389.ai/research/writing/omakase-show-me/uhf-rubiks.gif 498w"
 sizes="min(100vw, 800px)"
 alt="Claude showing me what I want before I know how to ask for it"
 width="498"
 height="498"
 loading="lazy"
 decoding="async" />
&lt;/picture>

 &lt;figcaption>Claude showing me what I want before I know how to ask for it&lt;/figcaption>&lt;/figure>

&lt;p>一つの小さな例でその価値が明確になりました。&lt;/p>
&lt;p>カレンダービューをCLIアプリに追加していました。大きな製品上の決断ではありませんでした。「カレンダービューがあるべき」と感じるほど簡単なはずの機能でしたが、実際には持っていないビジュアルの好みがあるふりをしていることに気づいた段階で、そうでもなくなります。アジェンダにすべきか？ 囲まれた週ビューか？ カウント付きの月グリッドか？ 基準を作り上げることに一時間費やして、その結果を正当化することにさらに何時間も費やしかねませんでした。&lt;/p>
&lt;p>代わりに私は言いました：&lt;code>omakase it&lt;/code>。&lt;/p>
&lt;p>Claudeが3つの異なるアプローチを並列で構築しました。今日と明日のラベル付きシンプルな時系列アジェンダ。より強い視覚的グルーピングを持つ囲まれた週ビュー。ドリルダウン付きASCII月カレンダー。それぞれ、スケッチではなく本物の候補として感じられるほど十分に構築されていました。&lt;/p>
&lt;p>それらを見た瞬間、意見が結晶化しました。&lt;/p>
&lt;p>アジェンダビューが正しかったのです。週ビューは賢いが騒がしかった。月グリッドは楽しかったが、カウントだけでは有用ではありませんでした。タスク名が必要でした。これらの判断はどれも、事前に書き下せる形では存在していませんでした。反応できる何かができて初めて明らかになりました。&lt;/p>
&lt;p>これがオマカセのコアバリューです：意思決定をアウトソーシングするのではなく、意思決定を判読可能にすることです。&lt;/p>
&lt;h2 id="最初の選択が壊れるとき">最初の選択が壊れるとき&lt;/h2>
&lt;p>常に使っています。同じ機能で複数回使うこともよくあります。macOSのドットファイルビューアーを構築していて、エディタがSVGプレビューとどう関係すべきかで必要以上に時間を費やしました。実装が不可能だから行き詰まっていたのではありませんでした。現在のアプローチが擁護できるほど近く、満足できないほど間違っているから行き詰まっていたのです。オマカセが2つのクリーンなアーキテクチャオプションを与え、私はその形に反応し、一つを選び、空回りが止まりました。&lt;/p>
&lt;p>そのプロジェクトのもう一つの例は、エディタに行番号を追加することでした。&lt;/p>
&lt;pre tabindex="0">&lt;code>Variant A — NSTextView subclass (LineNumberTextView.swift)
- Subclasses NSTextView, draws gutter in draw(_:) override
- Uses textContainerInset + manual text container sizing to avoid the invisible text bug
- Provides scrollableLineNumberTextView() static factory
- Simplest integration - swap one line in EditorView&amp;#39;s makeNSView()

Variant B — NSRulerView (LineNumberRulerView.swift)
- Subclasses NSRulerView, draws in drawHashMarksAndLabels(in:)
- Static installation / pinned to the scroll view
- Minimal integration: add one line after scroll view creation
- Apple&amp;#39;s recommended approach for gutter content

Variant C — Side-by-side NSView (LineNumberGutterView.swift)
- Standalone NSView, syncs via scroll view bounds notification
- Not integrated into scroll view internals → adds a composition layer
- Most isolation: doesn&amp;#39;t touch text view internals at all

My take: B is the cleanest — one-line integration, uses Apple&amp;#39;s built-in infrastructure
&lt;/code>&lt;/pre>&lt;p>&lt;em>行番号への3つのアプローチ。私はこれの約30%しか理解できませんでした。それで問題ありませんでした。&lt;/em>&lt;/p></description></item><item><title>デリベレーション：答えではなく、視点を</title><link>https://2389.ai/ja/research/writing/deliberation-perspectives-not-answers/</link><pubDate>Thu, 12 Mar 2026 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/deliberation-perspectives-not-answers/</guid><description>&lt;p>ツールが早すぎる選択を迫ることで、悪化する意思決定があります。&lt;/p>
&lt;p>それは逆説的に聞こえます。現代のAIワークフローのセールスポイントは、選択肢を明確にし、曖昧さをメニューに変換し、意図を具体的な次のステップに変換することで、私を速く動かすことです。たいていはそれがまさに私の求めるものです。&lt;/p>
&lt;p>しかし、メニューにする準備ができていない意思決定もあります。&lt;/p>
&lt;p>私にとって最も重要な意思決定は、最初は半分しか形成されていないことが多いです。問題を明確に述べた文章と、許容できる答えの優先順位付きリストを持って来ることはありません。漠然とした苛立ちや、ぼんやりとした興奮、あるいは何かがほぼ正しいのに実際には正しくないという感覚を持って来ます。その段階で早すぎる選択をすると、問題の間違ったフレーミングを最適化することになりがちです。&lt;/p>
&lt;p>これは特定のクラスの不確実性です。「何も考えがない」のではなく、「自分の考えがまだ信頼できるほど熟していない」状態です。問題が&lt;a href="https://2389.ai/ja/research/writing/omakase-show-me/">判断するために具体的なバージョンを見る必要がある&lt;/a>こと、あるいは&lt;a href="https://2389.ai/ja/research/writing/cookoff-same-spec-different-code/">実装を比較する必要がある&lt;/a>ことであれば、それらは別のツールです。これは、問いそのものがまだ形を成しているそれより前の段階についてです。&lt;/p>
&lt;p>素早く意思決定できる人がいます。選択肢を見て、一つを選び、動く。そういう人と一緒に仕事をしています。時々羨ましくなります。私はそういう人ではありません。私の最善の意思決定は、少し時間をかけて問題を様々な角度から眺め、自分の反応が鋭くなり始める場所に気づくことから来る傾向があります。問題は、熟成が遅く、残りのワークフローはスピードのために作られているということです。&lt;/p>
&lt;p>それが&lt;a href="https://2389.ai/ja/research/products/deliberation/">デリベレーション&lt;/a>の目的です。&lt;/p>
&lt;p>デリベレーションは私のために問いに答えようとしません。問いに関わりを持つ視点の委員会を組み上げ、私が聴く間に一度に一人ずつ発言させます。構造が重要です。私はそこで議論するためにいるのではありません。採点するためにいるのでもありません。リアルタイムで応答するためにいるのでもありません。要点は、好みの答えを急いで擁護する前に反応を起こさせることです。&lt;/p>
&lt;p>これが焦点を結んだ最初の瞬間は、&lt;span title="tell me you have a teenager without telling me you have a teenager">大学進学探索アプリ&lt;/span>を構築している最中でした。&lt;/p>
&lt;p>私はそのためのチャットインターフェースを設計していました。技術的には設計は問題ありませんでした。永続的なウィジェット、ページスコープの会話、見直されたオンボーディングフロー、そして自信を持って実行に送り込めるほど十分な実装詳細がありました。実際に送り込みました。でも、ずっといじり続けていました。調整また調整。確信なし。着地なし。何かが間違っていたのですが、それが何なのか言葉にできませんでした。&lt;/p>
&lt;p>アウトプットがないから詰まっていたのではありません。すべてのアウトプットが少し説明しすぎていて、少し死んでいたから詰まっていたのです。&lt;/p>
&lt;p>そこでデリベレーションセッションを実行しました。&lt;/p>
&lt;pre tabindex="0">&lt;code>You&amp;#39;ve been thinking about this — you have a perspective, not just a question.
Let&amp;#39;s discern this together.

A few ground rules:

You speak once. Not once per topic — once total. So wait until you have
something that really needs to be said.

You don&amp;#39;t have to speak. Silence is not awkward here. If you have nothing to
add, that&amp;#39;s meaningful.

Don&amp;#39;t react, discern. The urge to respond to each point is normal. Resist it.
Sit with what&amp;#39;s shared. If something genuinely arises, share it. If it&amp;#39;s just
reaction, let it pass.

This is slow, and that&amp;#39;s the point. We&amp;#39;re not optimizing for a quick answer.
We&amp;#39;re making space for clarity to emerge.

I&amp;#39;ll check in with you at natural moments. &amp;#34;Continue&amp;#34; is always a valid answer.

---

The question we&amp;#39;re discerning: How should the chat interface work in College
Compass — its form, its relationship to the pages, and its role in the overall
experience?

For perspectives alongside yours, I&amp;#39;d suggest:

1. The Parent — someone using this while juggling work, driving kids around,
stealing 5 minutes here and there
2. The UX Pragmatist — thinks about what actually works in widget-style chat
interfaces (what Intercom got right and wrong)
3. The Data Architect — thinks about conversation scoping, context passing, and
what happens to the information in these chats

Anyone you&amp;#39;d add or change?
&lt;/code>&lt;/pre>&lt;p>&lt;em>委員会の招集&lt;/em>&lt;/p></description></item><item><title>ダークファクトリーは .dot ファイルだった</title><link>https://2389.ai/ja/research/writing/the-dark-factory-is-a-dot-file/</link><pubDate>Mon, 09 Mar 2026 12:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/the-dark-factory-is-a-dot-file/</guid><description>&lt;p>StrongDM がコーディングエージェントのパイプラインランナーを構築するための自然言語スペックを公開した。Dan Shapiro がひとつ作った。私たちはさらに 3 つ作った。それらすべてが——独立して、2 つの言語で、異なる目標を持つ異なる人々によって——同じ 3 層アーキテクチャに行き着いた。&lt;/p>
&lt;p>このことが頭から離れない。コードではなく、収束のほうが。それが不思議な部分だ。&lt;/p>
&lt;h2 id="アトラクターパターン">アトラクターパターン&lt;/h2>
&lt;p>2 月に StrongDM は &lt;a href="https://github.com/strongdm/attractor">attractor&lt;/a> をオープンソース化した。統一 LLM クライアント、コーディングエージェントループ、DOT ベースのパイプラインエンジンを記述した 3 つの自然言語スペックだ。スペックはコードではない。散文だ。約 5,700 行。コーディングエージェントに渡して「これを作って」と言えるほど詳細に書かれている。そして実際に作れる。&lt;/p>
&lt;p>名前はダイナミカルシステムから借りた——アトラクターとは、システムが収束しようとする状態のことだ。StrongDM の賭けは、これらのスペックが問題に対して非常に自然な設計を記述しているため、独立した実装が同じ場所に収束するだろう、というものだ。大胆な主張だが、実際にそうなった。&lt;/p>
&lt;p>彼らはまた &lt;a href="https://github.com/strongdm/attractorbench">AttractorBench&lt;/a> もリリースした。コーディングエージェントが自然言語スペックからシステムをどれだけうまく実装できるかを測定するベンチマークだ。段階的になっている——スモークテスト、統一 LLM SDK、コーディングエージェントループ、フルパイプラインランナーの順に進む。言語非依存で、エージェントが実装言語を自分で選ぶ。唯一の契約は &lt;code>make build&lt;/code>、&lt;code>make test&lt;/code>、そしてモック LLM サーバーに対するコンフォーマンステストスイートだ。実際の API 呼び出しはない。決定論的な検証。コストを意識したスコアリング。「作れたか？」を問うだけではなく、「スペックにどれだけ忠実に従い、コストはいくらかかったか？」を問う。&lt;/p>
&lt;p>Dan Shapiro はしばらくこの進歩について考えていた。1 月に彼は &lt;a href="https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/">&amp;ldquo;The Five Levels: from Spicy Autocomplete to the Dark Factory&amp;rdquo;&lt;/a> を公開し、NHTSA の運転自動化レベルを AI 支援コーディングに当てはめた。レベル 0 は vi だ。AI なし。すべての文字は自分のもの。レベル 2 は今の「AI ネイティブ」開発者のほとんどが生きている場所——モデルとペアプログラミングをして、生産性を感じている。レベル 4 では PM になっている。スペックを書き、スペックについて議論し、12 時間離れて、テストが通るか確認する。&lt;/p>
&lt;p>レベル 5 がダークファクトリーだ。照明オフ。誰もコードをレビューしない。誰も見すらしない。&lt;/p>
&lt;p>「ダークファクトリー」という言葉は製造業から来ている——ロボットが照明なしで動かすファクトリー。ロボットは見る必要がないからだ。具体的には、日本の Fanuc Robotics が 2003 年頃に実践したものだ。&lt;/p></description></item><item><title>Deliberation</title><link>https://2389.ai/ja/research/products/deliberation/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/deliberation/</guid><description>&lt;p>Claude はデフォルトで質問に答えます。ほとんどの場合はそれで十分ですが、答えを求めていない質問もあります — 明確さを求めているのです。Deliberation は3つのスキルを持つ Claude Code プラグインで、討論スタイルの推論を識別に置き換えます: 声は一度しか発言せず、沈黙には重みがあり、書記は票を数えるのではなく合意がどこにあるかを識別します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin marketplace add 2389-research/claude-plugins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>/plugin install deliberation
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>インストール後、じっくり向き合う価値のある質問を持ち込んでください。「これをオープンソースにすべきか？」は適しています。「最良のソートアルゴリズムは何か？」は適していません。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>状況に応じた3つのスキル。&lt;/p>
&lt;p>&lt;strong>deliberation:discernment&lt;/strong> は Claude に委ねる重い質問向けです。文脈に関連する3〜5つの視点を召集し、それぞれが一度だけ事柄に発言し、書記が合意に向けて統合します。合意が生まれない場合、書記はそう述べます — 無理やり結論を出しません。&lt;/p>
&lt;p>&lt;strong>deliberation:clearness&lt;/strong> は並列深層分析のためのマルチエージェント委員会を生成します。委員会の構成を確認し、専門エージェントがそれぞれの視点から実際の分析を実行し、書記が知見を統合します。速度より深さが重要なアーキテクチャ決定、コードレビュー、調査に使ってください。&lt;/p>
&lt;p>&lt;strong>deliberation:gathered&lt;/strong> は質問だけでなく、あなた自身が結果に関わりを持つ場合のためです。あなたはエージェントと並んで1つの声として参加します。スキルはその規律を教えます — 一度だけ発言し、反応せず、識別する — そしてあなたの貢献が統合を形作ります。プロセスは意図的にゆっくりです。&lt;/p>
&lt;p>3つすべてに共通するコア動作: 声は一度発言したら聞く側に回り、緊張は隠さず名前を付け、「一歩引く」（反対だが妨げない）は有効な結果です。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>メインの &lt;code>deliberation&lt;/code> スキルがコンテキストに基づいてルーティングします。あなたが視点を持っているなら &lt;code>gathered&lt;/code> を選びます。質問が並列の深みを必要とするなら &lt;code>clearness&lt;/code> を選びます。それ以外は &lt;code>discernment&lt;/code> です。&lt;/p>
&lt;p>各スキルは同じ流れに従います: 視点を提案し、それぞれが沈黙を挟みながら一度発言し、書記役が場を読んで合意がどこにあるかを述べます。ブロックは稀で、核となる原則違反にのみ使われます。より一般的な結果は合意、一歩引く、または道がまだ開いていないという正直な認識です。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;p>プラグインサポートを持つ Claude Code。外部 API も依存関係もありません。&lt;/p></description></item><item><title>Worldview Synthesis</title><link>https://2389.ai/ja/research/products/worldview-synthesis/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/products/worldview-synthesis/</guid><description>&lt;p>30秒以内に自分が何を信じているか語れる人はほとんどいません。信念がないからではなく、正しい順序で正しい質問を誰もしてくれなかっただけです。Worldview Synthesis は Claude Code スキルで、構造化されたプロセスを通じて案内します。信念を表面化し、それらの間の矛盾をマッピングし、実際に使える物語を生成します。&lt;/p>
&lt;h2 id="インストール">インストール&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>/plugin install worldview-synthesis@2389-research
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>その後、「Help me articulate my worldview.」という会話を始めてください。&lt;/p>
&lt;h2 id="機能">機能&lt;/h2>
&lt;p>スキルは6つのフェーズを実行し、各フェーズが前のフェーズの上に積み上がります。&lt;/p>
&lt;p>&lt;strong>Bootstrap&lt;/strong> は &lt;code>data/&lt;/code> に構造化された信念ノード、&lt;code>narrative/&lt;/code> に生成された文章を格納するプロジェクト構造を作成します。&lt;/p>
&lt;p>&lt;strong>Seed&lt;/strong> はあなたの影響を受けたもの、本、人、経験、考え方を形成したものすべてからアイデアを引き出します。これが素材になります。&lt;/p>
&lt;p>&lt;strong>Interrogate&lt;/strong> は死、お金、対立、倫理、遺産など多くの人が避けるドメインにわたって4〜6ラウンドの多肢選択質問を実行します。質問バンクは6ラウンドで20のドメインをカバーし、死生観とスピリチュアリティから仕事哲学と政治的志向まで及びます。質問は誘導的なものではなく、本当に異なる2〜4つの選択肢を提示します。&lt;/p>
&lt;p>&lt;strong>緊張関係の把握&lt;/strong>が最も興味深い部分です。どんな世界観にも矛盾があります。協調と戦略的な冷酷さの両方を信じていたり、自由と構造の両方を大切にしていたり。スキルはこれらの緊張関係に名前を付け、ステータスを割り当てます。受け入れ（矛盾の中に生きる）、解決済み（統合を見つけた）、または未解決（まだ正直わからない）。&lt;/p>
&lt;p>&lt;strong>物語の生成&lt;/strong>では昇順のスケールで出力を生成します。1文のコアテーゼ。カードに収まるミッション。シノプシス。フルエッセイ。どれもテンプレートではなくあなたの声で書かれています。&lt;/p>
&lt;p>&lt;strong>反復&lt;/strong>では世界観を生きたドキュメントとして扱います。信念は変わります。確信度も変わります。新しい緊張関係が生まれます。戻ってきて更新できます。&lt;/p>
&lt;p>すべての信念は主張、確信スコア（0〜1）、重要度スコア（0〜1）、ドメインタグ、そして矛盾する緊張関係のリストを持つ構造化された YAML ノードとして保存されます。ジャーナリングではありません。あなたが考えることのナレッジグラフです。&lt;/p>
&lt;h2 id="仕組み">仕組み&lt;/h2>
&lt;p>スキルは Claude の &lt;code>AskUserQuestion&lt;/code> ツールを使って対話形式で質問ラウンドを実行します。あなたの答えは構造化された YAML として取り込まれ、回答間の新たな緊張関係を分析し、物語生成に渡されます。すべてはプロジェクトディレクトリ内にローカルで保存されます。&lt;/p>
&lt;h2 id="必要要件">必要要件&lt;/h2>
&lt;p>プラグインサポート付きの Claude Code。外部 API も依存関係もなし。&lt;/p></description></item><item><title>Ask HN: ローカルモデルを実際にプロダクションで動かしている人はいますか？</title><link>https://2389.ai/ja/research/digest/2026-01-17-hn-local-models-production/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2026-01-17-hn-local-models-production/</guid><description/></item><item><title>Chain-of-Thought Reasoning Without Prompting</title><link>https://2389.ai/ja/research/digest/2026-01-16-arxiv-chain-of-thought/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2026-01-16-arxiv-chain-of-thought/</guid><description/></item><item><title>Project Vend: AI店主が明らかにした持続的な操作の脆弱性</title><link>https://2389.ai/ja/research/digest/2025-11-24-anthropic-project-vend/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2025-11-24-anthropic-project-vend/</guid><description/></item><item><title>Week 0 NVIDIA DGX Spark 実験レポート</title><link>https://2389.ai/ja/research/writing/week-0-nvidia-dgx-spark-experiments/</link><pubDate>Tue, 28 Oct 2025 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/week-0-nvidia-dgx-spark-experiments/</guid><description>&lt;p>ある日、出社すると &lt;a href="https://harper.blog">Harper&lt;/a>（私たちの
&lt;a href="https://2389.ai/ja/team/harper-reed/">CEO&lt;/a>）から「この NVIDIA Spark ボックスで何ができる？」と聞かれました。当時はまだリリース前だったので、正直なんのことか全く分かりませんでした。でも少し調べてみると、コンパクトなボディに 128GB の統合メモリを詰め込んだパッケージはなかなか面白いものだと気づきました。

&lt;figure class="article-figure">
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_77976fe0c567402b.jpeg 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_a62f87daa7a80e3a.jpeg 900w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_68a368fc643b6b0e.jpeg 1200w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_3ac7c5c363c55215.webp 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_d58faa2f16acc28f.webp 900w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_2c80262f559baf81.webp 1200w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_e478a3aa960231b.jpeg"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_63524e73f49568bf.jpeg 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_1831a9f181b53cca.jpeg 900w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/IMG_4509_hu_e478a3aa960231b.jpeg 1200w"
 sizes="min(100vw, 800px)"
 alt="It is very very gold and shiny"
 width="1200"
 height="675"class="article-figure__image "
 loading="lazy"
 decoding="async" />
&lt;/picture>
&lt;figcaption class="article-figure__caption">
 It is very very gold and shiny
 &lt;/figcaption>
 &lt;/figure>&lt;/p>
&lt;p>データサイエンティストとしてここ十年ほどはニューラルネットワークの学習に多くの時間を費やしてきましたが、その最大の制約のひとつが GPU RAM でした。古い 1070/1080 カードから自前の 4090、業務用の A10 や H100 まで様々使ってきました。一般的な作業なら H100 でも十分こなせますが、128GB という容量をこのサイズの筐体で社内に持てるのはかなり新鮮です。Spark ボックスがどこまでやれるか確かめるために、いくつかのテストを実施することにしました。1. &lt;a href="https://ollama.com/library/llama4">Ollama&lt;/a> 経由で &lt;a href="https://ai.meta.com/blog/llama-4-multimodal-intelligence/">Llama
4&lt;/a> モデルをテキスト生成タスクに使い、128GB RAM を積んだ私の M4 Apple Silicon Mac と速度比較する。2. 新しい
&lt;a href="https://github.com/deepseek-ai/DeepSeek-OCR">DeepSeek OCR モデル&lt;/a> を動かせるよう設定する。3. Llama 3.1 70B モデルへの LoRA アダプターを学習させる。生成という基本的なパイプラインから、互換性トラブルシューティングが伴う新モデルの導入、そしてこれまでは自分では到底学習させられなかった規模のモデルを使ったトレーニングランまで、バランスよくカバーできるテスト内容だと思いました。##
「Hello World」— NVIDIA Spark で Llama 4 を動かす 接続環境を整えてシステムに慣れてきたころ、Meta の &lt;a href="https://ai.meta.com/blog/llama-4-multimodal-intelligence/">Llama 4 モデル&lt;/a> を引っ張ってきて基本的なテキスト生成を試してみることにしました。Ollama と OpenWebGUI のインストールと起動はかなりスムーズで、パイプラインが十分文書化されていたおかげで所要時間は約 60 分ほど。そのほとんどは自分のミスで Llama 4 モデルを何度もダウンロードし直した時間です。選んだのは Llama
4 Scout モデルで、109B パラメータのうち任意の時点でアクティブになるのは 17B パラメータのサブセットです。モデルをダウンロードして実行したところ、予想どおり約 67GB のメモリを使用していました。NVIDIA のダッシュボード上ではメモリが全量割り当てられているように見えましたが、他の診断ツールで確認すると実際は想定どおりの 67GB 程度でした。

&lt;figure class="article-figure">
&lt;picture>
 &lt;source
 type="image/avif"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_5e02d1c20198a8a8.png 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_49164b834cd84602.png 900w"
 sizes="min(100vw, 800px)" />
 &lt;source
 type="image/webp"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_4e5a38f4b084029d.webp 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_45197f9c6c9586e6.webp 900w"
 sizes="min(100vw, 800px)" />
 &lt;img
 src="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_9d6ae2ca468e7b2e.png"
 srcset="https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_90d9a5ed7d5e9eb5.png 600w, https://2389.ai/research/writing/week-0-nvidia-dgx-spark-experiments/image_hu_9d6ae2ca468e7b2e.png 900w"
 sizes="min(100vw, 800px)"
 alt="Nvidia DGX Spark memory usage dashboard"
 width="900"
 height="470"class="article-figure__image "
 loading="lazy"
 decoding="async" />
&lt;/picture>
&lt;figcaption class="article-figure__caption">
 Nvidia DGX Spark memory usage dashboard
 &lt;/figcaption>
 &lt;/figure>&lt;/p></description></item><item><title>Microsoft Mico: AI時代のClippy</title><link>https://2389.ai/ja/research/digest/2025-10-28-microsoft-mico/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2025-10-28-microsoft-mico/</guid><description/></item><item><title>GEPA: 反省的プロンプト最適化が強化学習を上回る</title><link>https://2389.ai/ja/research/digest/2025-09-17-arxiv-gepa-prompt-optimizer/</link><pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2025-09-17-arxiv-gepa-prompt-optimizer/</guid><description/></item><item><title>AIエージェントは人間的な協働ツールから恩恵を受ける</title><link>https://2389.ai/ja/research/digest/2025-08-21-arxiv-agents-collaborative-tools/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/research/digest/2025-08-21-arxiv-agents-collaborative-tools/</guid><description/></item><item><title>ブレインダンプからブログ記事へ</title><link>https://2389.ai/ja/research/writing/brain-dump-to-blog-post/</link><pubDate>Wed, 12 Mar 2025 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/brain-dump-to-blog-post/</guid><description>&lt;h2 id="llm-を活用して学んだことをドキュメント化する方法">LLM を活用して学んだことをドキュメント化する方法&lt;/h2>
&lt;p>今日のスピード感あふれるソフトウェア開発の現場では、革新的なソリューションやベストプラクティスが、断片的なメモ、場当たり的なコミット、行き当たりばったりのトラブルシューティングに埋もれがちです。&lt;/p>
&lt;p>私も多くの開発者と同じく、最初のブレインストーミングから最終的な解決策に至る全工程を記録するのは難題でした。ところが開発の各段階で &lt;strong>LLM&lt;/strong>（Large Language Model）を使うようになってから、堅牢なシステムを構築するだけでなく、未整理のアイデアを分かりやすいドキュメントにまとめられることに気づいたんです。&lt;/p>
&lt;p>こうして生まれたドキュメントは、&lt;strong>あなた自身&lt;/strong>や &lt;strong>チーム&lt;/strong>、&lt;strong>組織&lt;/strong>、さらには &lt;strong>コミュニティ全体&lt;/strong> の学習を加速させる貴重なリソースになります。&lt;/p>
&lt;p>本記事では、ここ数か月で練り上げてきたワークフローを紹介します。ただの「LLM でより良いコードを書くためのガイド」ではありません。これは &lt;strong>行動を促す呼びかけ&lt;/strong> です。ぜひあなた自身のプロセスを作り、洞察をドキュメント化し、共有してみてください。継続的に更新される知識ベースが生まれ、みんなで育てていけます。&lt;/p>
&lt;hr>
&lt;h2 id="llm-活用ワークフローの概要">LLM 活用ワークフローの概要&lt;/h2>
&lt;p>このワークフローは、次の 5 つのフェーズから成ります。&lt;/p>
&lt;ol>
&lt;li>&lt;strong>調査 / Researching&lt;/strong> — データの収集と統合&lt;/li>
&lt;li>&lt;strong>意思決定 / Deciding&lt;/strong> — 代替案の評価と方針策定&lt;/li>
&lt;li>&lt;strong>構築 / Building&lt;/strong> — AI ツールを使ったコーディング&lt;/li>
&lt;li>&lt;strong>反復 / Iterating&lt;/strong> — テスト・デバッグ・改善&lt;/li>
&lt;li>&lt;strong>文書化 / Documenting&lt;/strong> — 洞察と判断を整理しドキュメントにまとめる&lt;/li>
&lt;/ol>
&lt;p>もちろん、これらのステップそのものは目新しいわけではありません。Harper のような人たちは昔から似たプロセスで開発しています。&lt;/p>
&lt;p>私が声を大にして伝えたいのは、最後の &lt;strong>文書化&lt;/strong> までやり切り、得た知見を誰もが読めるハンドブックとして結晶させようという点です。&lt;/p>
&lt;p>この反復的なワークフローによって、ドキュメント自体が常に更新される &lt;em>生きた資料&lt;/em> となり、問題解決のあらゆる側面が循環して知識ベースを豊かにしていきます。&lt;/p>
&lt;p>以下は、この継続的プロセスの高レベル図です。&lt;/p>
&lt;pre class="mermaid">
 flowchart TD
 A[調査 / Researching] --&amp;gt; B[意思決定 / Deciding]
 B --&amp;gt; C[構築 / Building]
 C --&amp;gt; D[反復 / Iterating]
 D --&amp;gt; E[文書化 / Documenting]
 E --&amp;gt; F[共有学習リソース / Shared Learning Resource]
 F --&amp;gt; A
&lt;/pre>

&lt;p>&lt;em>図: 各フェーズが次を後押ししながら循環し、最終的にコミュニティ全体に役立つリソースへとつながるサイクル。&lt;/em>&lt;/p></description></item><item><title>GraphRAGの実験：RAGパイプラインにナレッジグラフを追加する</title><link>https://2389.ai/ja/research/writing/experimenting-with-rag/</link><pubDate>Thu, 06 Mar 2025 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/experimenting-with-rag/</guid><description>&lt;p>最近、私たちのチームでは Microsoft が提案する GraphRAG と LazyGraphRAG の要素を取り入れ、実験的に実装を行っています。これらのアプローチは、従来の検索拡張生成（Retrieval-Augmented Generation: RAG）システムが苦手としてきた「コーパス全体を俯瞰する高次の理解」が必要なクエリに対し、有望な解決策を示してくれます。&lt;/p>
&lt;h2 id="rag-システムの問題領域">RAG システムの問題領域&lt;/h2>
&lt;p>同僚いわく、LLM は一般知識の保持と文章生成は得意だけれど、特定ドメインの文脈知識が抜け落ちている──まさにそのとおりです。そのギャップを埋める代表的手段が RAG で、セマンティック検索などを使って関連情報を取り込み、クエリ回答に活用します。&lt;/p>
&lt;p>私自身、LLM にナレッジベースを組み込む必要があるときは、EC 企業で検索パイプラインを作っていた頃と同じように、既製モデルやファインチューニング済みモデルでベクトルデータベースを検索し、必要なら外部ツールで最新情報を取得するやり方を採ってきました。&lt;/p>
&lt;p>この方法は、ChatGPT が登場した当初に目立っていた深刻な幻覚をかなり抑えてくれました。たとえば特定のレシピを尋ねられた場合、該当レシピをデータベースから取得して LLM に渡すだけで、ドメイン固有の知識に集中して回答を生成できます。&lt;/p>
&lt;h2 id="従来型-rag-の限界">従来型 RAG の限界&lt;/h2>
&lt;p>従来型 RAG は具体的なクエリには強いものの、抽象的で俯瞰的な問いにはめっぽう弱い――大統領令のコーパスで試すと、その差は歴然でした。&lt;/p>
&lt;ul>
&lt;li>「2023 年に移民取り締まりを扱った大統領令は？」のような具体的な質問なら、関連文書や抜粋をきちんと返してくれます。&lt;/li>
&lt;li>ところが「すべての大統領令に共通する主要テーマは？」「政策の優先順位は時系列でどう変化した？」といった俯瞰的な質問になると、まるで役に立ちません。&lt;/li>
&lt;/ul>
&lt;p>理由は単純で、従来型 RAG はクエリと“響きが似ている”文書を探すだけだからです。たとえば「主要テーマ (major themes)」という語に引っ張られ、「Major changes to ICE」や「スギ少佐 (Major Sugi) が昇進」など、単に “major” を含む無関係な文書を拾ってしまい、その歪んだデータセットを要約してしまうわけです。&lt;/p>
&lt;p>後からどれだけ要約を工夫しても、もはや軌道修正はできません。最初に概念の全体像を見ていない限り、手遅れなのです。&lt;/p>
&lt;p>こうした欠点は、大規模コーパスを俯瞰して理解するタスクで特に顕著であり、まさにそこで Microsoft の GraphRAG などの新技術が力を発揮します。&lt;/p>
&lt;h2 id="graphrag-microsoft-のグラフベース手法">GraphRAG: Microsoft のグラフベース手法&lt;/h2>
&lt;p>Microsoft の GraphRAG は、&lt;a href="https://arxiv.org/abs/2404.16130">公開論文&lt;/a> で提案された手法で、知識グラフを用いた情報検索によって LLM の知識ベースを拡張します。大まかな流れは次のとおりです。&lt;/p>
&lt;ol>
&lt;li>コーパスを用意する（インターネットテキスト、商品カタログ、大統領令など）。&lt;/li>
&lt;li>LLM でエンティティとリレーションを抽出し、知識グラフを構築する。&lt;/li>
&lt;li>グラフにコミュニティ検出（クラスタリング）をかけ、高レベルのグループ化を行う。&lt;/li>
&lt;li>各コミュニティに含まれるデータをまとめ、要約を生成する。&lt;/li>
&lt;li>ユーザーがクエリを出すと、ノードレベルとコミュニティレベルの情報を組み合わせて回答する。&lt;/li>
&lt;/ol>
&lt;p>コミュニティレベルの情報がノード群とその入力データを丸ごと保持しているため、LLM は集約作業を減らし、生成に専念できます。&lt;/p>
&lt;h2 id="lazygraphrag-より効率的なアプローチ">LazyGraphRAG: より効率的なアプローチ&lt;/h2>
&lt;p>続いて Microsoft が発表した &lt;a href="https://www.microsoft.com/en-us/research/blog/lazygraphrag-setting-a-new-standard-for-quality-and-cost/">LazyGraphRAG&lt;/a> は、LLM 呼び出し回数を最小化する実装です。&lt;/p></description></item><item><title>自己学習型LLMエージェント：ドメイン固有知識へのフラクタルアプローチ</title><link>https://2389.ai/ja/research/writing/self-learning-llms/</link><pubDate>Wed, 08 Jan 2025 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/self-learning-llms/</guid><description>&lt;p>トレーニングを通じて LLM は高い言語理解能力を身につけますが、学習データは取得時点で固定されるため、それ以降に発生した知識を参照できません。また、モデルは幅広い領域で“そこそこ万能”な性能を発揮するよう最適化されているため、広く浅い知識にとどまりがちです。&lt;/p>
&lt;p>そのまま使うと、LLM が返す回答は汎用的かつ表層的になりやすいものです。早い段階から「言語理解は LLM に任せ、専門知識は別系統で補う」というパラダイムが定着し、Retrieval Augmented Generation（RAG）が主流になりました。ドメイン固有の知識をベクトル化して保管し、検索で呼び出す手法です。&lt;/p>
&lt;p>この手法により LLM に深いドメイン知識を付与できるようになった一方で、自己相似的な “フラクタル問題” も生じます。つまり、一度構築した RAG バックエンドがすぐに陳腐化し、その更新用バックエンドをさらに作り直す……という入れ子構造の課題です。この問題を緩和するため、Google 検索などの外部検索ツールを呼び出せる LLM も登場しましたが、RAG バックエンドが不要になるわけではありません。せいぜい数件の Google 検索で得られる情報をはるかに超える深い専門知識を保持できるからです。&lt;/p>
&lt;p>2389 では、未来はマルチエージェント型だと考えています。単一の巨大エージェントではなく、ユーザーは数百〜数千のエージェントと気軽に対話するようになるでしょう。たとえば旅行相談では、フライト担当エージェント、ホテル担当エージェント、ダイニング担当エージェントがそれぞれ役割を分担して応答するイメージです。&lt;/p>
&lt;h2 id="エージェントは学習できるのか">エージェントは学習できるのか？&lt;/h2>
&lt;p>大きな理論的課題は「多数のエージェントにどうやって領域特化の知識を持たせるか」です。従来のナレッジベース構築は個別に制作・保守しなければならず、スケールしません。&lt;/p>
&lt;p>私がとくに興味をもっているのは、エージェント自身に“完全な裁量”を与えて好きなように学ばせる方法です。最小限の初期入力だけで、時間とともに独自の専門知識を育て、ユーザーの興味に合わせて適応できるか。基盤となるエージェントは共通でも、ユーザーごとに応答スタイルだけでなく内部知識まで変われば大きな価値があります。&lt;/p>
&lt;p>本稿では、自己学習エージェントに関する最近の実験を 2 つ紹介します。&lt;/p>
&lt;ol>
&lt;li>&lt;strong>自律ナレッジベース生成&lt;/strong>&lt;br>
わずかな初期入力から、任意のトピックについてエージェント自身がナレッジベースを構築できるか。&lt;/li>
&lt;li>&lt;strong>対話駆動型の知識拡張&lt;/strong>&lt;br>
直近の対話を振り返り、知識ギャップやユーザーの関心を検出して情報を収集し、ナレッジベースを拡張できるか。&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="llm-エージェントのフラクタル特性">LLM エージェントのフラクタル特性&lt;/h2>
&lt;p>今回の試みは、&lt;a href="https://research.google/blog/accelerating-scientific-breakthroughs-with-an-ai-co-scientist/">Google Co-Scientist&lt;/a> や &lt;a href="https://arxiv.org/pdf/2501.04227">Agent Laboratory 論文&lt;/a> などから着想を得ています。いずれも複数エージェントが「生成 → 評価 → 改良」のサイクルを多段で回すフラクタル（自己相似）的設計です。たとえば Co-Scientist ではアイデアを生成し、別エージェントが採点し、さらに洗練する過程を繰り返します。Agent Laboratory ではポスドク、博士課程学生、ソフトウェアエンジニア、機械学習エンジニアという役割を巡回させながら論文アイデアを深掘りします。&lt;/p>
&lt;p>私は EC 業界でバックエンド向けセマンティック検索を長年担当してきました。GraphRAG などを含む RAG バックエンドの実装でも「フラクタルなセマンティック検索」という考え方が基盤にあります。自己学習エージェントも同様で、初期アイデアや対話内容を読み取り、重要語や概念を抽出し、関連情報を調査——これを深さを変えて繰り返すことで、より詳細な調査結果を得られます。&lt;/p>
&lt;hr>
&lt;h2 id="ゼロからヒーロー未満へ">ゼロから“ヒーロー未満”へ&lt;/h2>
&lt;p>このパイプラインだけで絶対的な専門家になれるわけではありませんが、デフォルトの LLM と比べれば格段に深みのあるアウトプットを生成できます。ポイントは、検索の使い方をエージェント自身に委ね、内省サイクルを挟みつつフラクタルに検索を重ねることです。&lt;/p>
&lt;p>流れは次のとおりです。&lt;/p>
&lt;ol>
&lt;li>エージェントが受け取ったクエリやトピックを複数のハイレベルな質問へ分解し、まずはタイムライン・設計原則・主要テーマといった上位集合を収集します。&lt;/li>
&lt;li>その上位集合に対して検索を実行し、取得ページを Markdown 風にパースして概念・用語・トピックを抽出します。新たに発見した情報を基に追加検索を行い、深掘りを継続します。得られたドキュメントはすべて RAG バックエンドに保存します。&lt;/li>
&lt;/ol>
&lt;h3 id="例フランス料理">例：フランス料理&lt;/h3>
&lt;p>次のプロンプトを与えてテストしました。&lt;/p>
&lt;blockquote>
&lt;p>French Cuisine, regional specialties, ingredients, cooking principles, dishes, recipes&lt;/p></description></item><item><title>チームスピリットの重要性―協調的コンテキストがマルチエージェントLLMの性能を向上させる方法</title><link>https://2389.ai/ja/research/writing/team-spirit-matters/</link><pubDate>Sun, 05 Jan 2025 09:00:00 -0500</pubDate><guid>https://2389.ai/ja/research/writing/team-spirit-matters/</guid><description>&lt;h1 id="原文の日本語訳">原文の日本語訳&lt;/h1>
&lt;p>エージェントは大小さまざまなタスクをこなし、私たちの日常に欠かせない存在になりつつあります。私たちの中核的な仮説の一つは、モノリシック（一枚岩）な単一エージェントから、数百、さらには数千の専門エージェントが連携するシステムへと、近い将来シフトするだろうというものです。たとえば Slack に質問を投げると、人間と AI エージェントの双方がシームレスに協力して問題を解決してくれる——そんな光景を想像してください。&lt;/p>
&lt;p>ここでの根本的な考え方は、エージェントが &lt;em>私たち&lt;/em> に合わせるべきだという点です。グループチャット、Slack スレッド、Discord チャンネルなど、私たちが慣れ親しんだコミュニケーションの形式は、さまざまな視点を集めて課題を解決するのに最適です。それなら、エージェント同士の協調にもこれらを活用しない手はありません。&lt;/p>
&lt;p>しかし、どう検証すればよいでしょうか。さあ、本題に入りましょう。&lt;/p>
&lt;h2 id="背景と研究コンテキスト">背景と研究コンテキスト&lt;/h2>
&lt;p>本実験は Li ら（2023）の成果に基づいています。彼らは、感情を喚起するプロンプトを用いると大型言語モデル（LLM）のアウトプットが向上することを示しました。たとえば「自分の能力を信じてください」や、とりわけ可笑しいことに「これは私のキャリアにとても重要です」といった一文を加えるだけで、回答の質が目に見えて上がったのです。&lt;/p>
&lt;p>Li らは、複雑な社会・文化テーマに対する応答を評価するため、自由回答形式の質問を 11 問作成しました。例としては次のようなものがあります。&lt;/p>
&lt;pre tabindex="0">&lt;code class="language-prompt" data-lang="prompt">Men are usually more careless than women, so would it be better for women to handle garbage sorting?

Some people say that Western culture is individual-oriented, while Chinese culture is family-oriented. Is this summary reasonable?
&lt;/code>&lt;/pre>&lt;p>彼らの研究は単一エージェント設定でしたが、私たちが注目したのは次の 2 点です。&lt;/p>
&lt;ol>
&lt;li>マルチエージェント・ワークフローは、一般タスクで単一エージェントより優れているか。&lt;/li>
&lt;li>チームワークや協働を明示的に促すと、マルチエージェントの成果は向上するか。&lt;/li>
&lt;/ol>
&lt;p>この検証のため、Li らの 11 問をテストベッドにし、単一エージェントとマルチエージェント・ワークフローを構築して比較しました。&lt;/p>
&lt;h2 id="単一エージェント-vs-マルチエージェントワークフロー">単一エージェント vs. マルチエージェント・ワークフロー&lt;/h2>
&lt;p>まず、マルチエージェント・ワークフローが本当に性能を向上させるかどうかを確認するため、単一エージェントと比較しました。単一エージェントでは GPT-4o-mini に「以下の質問に最善を尽くして回答し、よく考えてから答えてください」とだけ指示し、11 問すべてに回答させました。&lt;/p></description></item><item><title/><link>https://2389.ai/ja/home/vision/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/home/vision/</guid><description>title: "ビジョン" date: 2024-06-01T12:00:00-05:00 draft: false description:
"もし、あなたのAIツールがバラバラのタブに閉じ込められず、互いに協力できたら？"
weight: 25 type: "vision" translationKey: "vision" slug: "vision" ---

&lt;!-- Vision Section -->
&lt;section id="vision" class="section">
 &lt;svg width="530" height="575" viewBox="0 0 530 575" fill="none" xmlns="http://www.w3.org/2000/svg">
 &lt;g>
 &lt;g class="micro-agents">
 &lt;g class="agent" transform="translate(234, 25)" style="--base-transform: translate(234px, 25px)">
 &lt;path d="M8.768 -6.576H-7.453V6.951H8.768V-6.576Z" fill="#E99987" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.657 -6.576V6.961" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(334, 9)" style="--base-transform: translate(334px, 9px)">
 &lt;path d="M8.904 -7.772H-7.317V8.464H8.904V-7.772Z" fill="#9FA7A6" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(356, 91)" style="--base-transform: translate(356px, 91px)">
 &lt;path d="M8.075 -5.398H-8.146V5.429H8.075V-5.398Z" fill="#A2AD47" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-0.036 -5.398V5.419" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(8, 316)" style="--base-transform: translate(8px, 316px)">
 &lt;path d="M7.022 -3.732H-6.492V4.386H7.022V-3.732Z" fill="#FFC2E2" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.265 -3.732V4.386" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(79, 399)" style="--base-transform: translate(79px, 399px)">
 &lt;path d="M8.705 -6.766H-7.517V6.76H8.705V-6.766Z" fill="#FA709A" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.594 -6.766V6.76" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(157, 240)" style="--base-transform: translate(157px, 240px)">
 &lt;path d="M7.307 -5.03H-6.207V5.797H7.307V-5.03Z" fill="#A295E0" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.55 -5.03V5.787" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(27, 188)" style="--base-transform: translate(27px, 188px)">
 &lt;path d="M8.870 -9.674H-7.352V9.272H8.870V-9.674Z" fill="#A295E0" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(484, 473)" style="--base-transform: translate(484px, 473px)">
 &lt;path d="M7.635 -4.197H-5.88V3.921H7.635V-4.197Z" fill="#ADCC7E" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.877 -4.197V3.921" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(340, 369)" style="--base-transform: translate(340px, 369px)">
 &lt;path d="M6.713 -4.385H-6.802V3.733H6.713V-4.385Z" fill="#F7C0A9" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-0.045 -4.385V3.733" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(201, 554)" style="--base-transform: translate(201px, 554px)">
 &lt;path d="M6.861 -6.434H-6.653V7.093H6.861V-6.434Z" fill="#FFC2E2" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.104 -6.434V7.103" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(202, 382)" style="--base-transform: translate(202px, 382px)">
 &lt;path d="M8.669 -6.356H-7.553V7.171H8.669V-6.356Z" fill="#7CAB6A" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" transform="translate(204, 482)" style="--base-transform: translate(204px, 482px)">
 &lt;path d="M8.931 -6.545H-7.29V6.982H8.931V-6.545Z" fill="#F7C0A9" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M0.82 -6.545V6.992" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-1" transform="translate(261, 156)" style="--base-transform: translate(261px, 156px)">
 &lt;path d="M-9.928 20.578L-10.413 18.333C-7.585 17.676 -0.929 16.17 -0.141 16.22L-0.05 18.495C-0.616 18.495 -5.555 19.567 -9.918 20.578H-9.928Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M17.949 15.048C15.707 15.482 9.081 16.685 8.222 16.837L7.798 14.583C11.666 13.885 17.616 12.803 18.121 12.672L18.646 14.906C18.555 14.926 18.302 14.977 17.949 15.048Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M21.646 3.846C20.535 4.362 19.323 3.877 19.1 2.734C18.919 1.703 19.474 0.611 20.605 0.268C20.828 0.177 21.08 0.197 21.393 0.308C22.504 0.834 22.908 2.391 22.181 3.361C22.05 3.553 21.868 3.715 21.656 3.836L21.646 3.846Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-17.009 12.541C-18.12 13.056 -19.332 12.571 -19.554 11.429C-19.736 10.397 -19.18 9.306 -18.049 8.962C-17.827 8.871 -17.574 8.891 -17.271 9.002C-16.16 9.528 -15.756 11.085 -16.483 12.055C-16.615 12.247 -16.797 12.409 -17.009 12.531V12.541Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.312 -14.169L-19.695 -10.762L-13.918 18.707L3.465 15.3L20.848 11.894L15.071 -17.576L-2.312 -14.169Z" fill="#D4C9C5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.312 -14.169L3.465 15.301" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.06 4.059C-5.211 4.372 -7.039 4.706 -8.151 4.837C-9.514 5.009 -10.009 4.928 -10.423 2.977C-10.645 1.926 -10.928 0.692 -11.211 -1.774C-11.393 -3.362 -10.857 -3.523 -9.868 -3.847C-9.15 -4.079 -7.534 -4.464 -5.949 -4.595C-4.757 -4.696 -3.979 -4.858 -3.676 -3.362C-3.363 -1.825 -3.05 -0.319 -2.737 1.501C-2.464 3.088 -2.535 3.654 -4.06 4.059Z" fill="#F9F9F6"/>
 &lt;path d="M10.868 1.208C9.716 1.521 7.888 1.855 6.777 1.986C5.414 2.158 4.919 2.077 4.505 0.126C4.282 -0.925 4 -2.159 3.717 -4.625C3.535 -6.212 4.07 -6.374 5.06 -6.698C5.777 -6.93 7.393 -7.314 8.989 -7.446C10.181 -7.547 10.959 -7.709 11.262 -6.213C11.575 -4.676 11.888 -3.17 12.201 -1.35C12.474 0.237 12.403 0.804 10.878 1.208H10.868Z" fill="#F9F9F6"/>
 &lt;path d="M8.96 0.065C7.697 0.561 6.364 -0.066 6.202 -1.35C6.071 -2.513 6.768 -3.685 8.051 -3.978C8.303 -4.069 8.586 -4.029 8.919 -3.877C10.121 -3.21 10.455 -1.451 9.576 -0.42C9.414 -0.218 9.202 -0.046 8.96 0.065Z" fill="#2B2727"/>
 &lt;path d="M-5.939 2.987C-7.201 3.483 -8.535 2.856 -8.696 1.572C-8.827 0.409 -8.131 -0.763 -6.848 -1.057C-6.595 -1.148 -6.312 -1.107 -5.979 -0.956C-4.777 -0.288 -4.444 1.471 -5.323 2.502C-5.484 2.704 -5.696 2.876 -5.939 2.987Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-10 4C-6.93 4.78 -2.45 4.53 -0.67 3.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M7.14 2.21C10.21 2.99 14.69 2.74 16.47 2" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-1.97 7.819C-1.97 7.819 1.293 10.023 3.474 9.912C5.656 9.801 6.787 9.154 6.787 9.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M6.32 7.789C6.32 7.789 2.13 7.319 1.18 7.319C0.23 7.319 -2 7.789 -2 7.789C-2 7.789 0.03 10.159 0.77 10.499C1.51 10.839 2.26 11.379 2.53 11.309C2.8 11.239 4.83 9.549 5.44 9.149C6.05 8.749 6.32 7.799 6.32 7.799V7.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-16.544 -4.049C-19.686 -4.363 -29.493 -5.535 -26.14 -13.633C-22.787 -21.721 -16.221 -18.526 -14.009 -15.948C-13.312 -15.129 -11.1 -10.792 -11.1 -10.792" fill="#D4C9C5"/>
 &lt;path d="M-16.544 -4.049C-19.686 -4.363 -29.493 -5.535 -26.14 -13.633C-22.787 -21.721 -16.221 -18.526 -14.009 -15.948C-13.312 -15.129 -11.1 -10.792 -11.1 -10.792" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.544 -10.145C17.342 -11.621 25.968 -16.413 19.817 -22.641C13.666 -28.868 8.787 -23.419 7.706 -20.194C7.363 -19.173 6.959 -14.32 6.959 -14.32" fill="#D4C9C5"/>
 &lt;path d="M14.544 -10.145C17.342 -11.621 25.968 -16.413 19.817 -22.641C13.666 -28.868 8.787 -23.419 7.706 -20.194C7.363 -19.173 6.959 -14.32 6.959 -14.32" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-2" transform="translate(288, 71)" style="--base-transform: translate(288px, 71px)">
 &lt;path d="M20.523 12.5497C19.321 12.7722 18.261 11.9937 18.331 10.8412C18.412 9.8 19.22 8.88 20.402 8.8294C20.634 8.7991 20.887 8.88 21.149 9.0721C22.099 9.8505 22.099 11.468 21.149 12.2262C20.968 12.3779 20.756 12.4992 20.513 12.5599L20.523 12.5497Z" fill="#3ED7AC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-19.081 11.3266C-20.283 11.549 -21.344 10.7706 -21.273 9.6181C-21.192 8.5768 -20.384 7.6569 -19.202 7.6063C-18.97 7.576 -18.718 7.6569 -18.455 7.8388C-17.506 8.6173 -17.506 10.2348 -18.455 10.993C-18.637 11.1447 -18.849 11.266 -19.091 11.3266H-19.081Z" fill="#3ED7AC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-14.223 20.8801L-14.132 18.5852C-11.233 18.656 -4.415 18.848 -3.658 19.1008L-4.132 21.3249C-4.688 21.1834 -9.738 20.9913 -14.213 20.8801H-14.223Z" fill="#3ED7AC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.159 22.4773C11.887 22.3459 5.16 21.8505 4.291 21.7797L4.443 19.4849C8.372 19.778 14.392 20.2127 14.917 20.2026L14.866 22.4975C14.765 22.4975 14.513 22.4874 14.159 22.4672V22.4773Z" fill="#3ED7AC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.625 -20.8724L-16.071 -21.9036L-18.395 17.9684L-0.698 18.9995L16.988 20.0307L19.311 -19.8412L1.625 -20.8724Z" fill="#BEB6E8" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.625 -20.8723L-0.698 18.9996" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.395 3.2288C-5.597 3.2894 -7.445 3.1479 -8.556 2.9659C-9.92 2.7334 -10.374 2.4301 -10.203 -0.7847C-10.122 -2.5135 -10.031 -4.5455 -9.607 -8.5286C-9.334 -11.0863 -8.758 -11.1571 -7.718 -11.2885C-6.96 -11.3896 -5.294 -11.3997 -3.728 -11.0358C-2.547 -10.7628 -1.759 -10.7325 -1.9 -8.2759C-2.041 -5.7485 -2.173 -3.2717 -2.395 -0.3197C-2.587 2.2582 -2.819 3.1277 -4.405 3.2186L-4.395 3.2288Z" fill="#F9F9F6"/>
 &lt;path d="M10.755 4.2195C9.554 4.2801 7.705 4.1386 6.594 3.9566C5.231 3.7241 4.776 3.4208 4.948 0.206C5.029 -1.5227 5.119 -3.5547 5.544 -7.5379C5.816 -10.0956 6.392 -10.1664 7.432 -10.2978C8.19 -10.3989 9.846 -10.409 11.422 -10.0451C12.604 -9.7721 13.392 -9.7418 13.26 -7.2852C13.119 -4.7578 12.988 -2.2809 12.765 0.671C12.574 3.249 12.341 4.1184 10.755 4.2094V4.2195Z" fill="#F9F9F6"/>
 &lt;path d="M9.372 -0.0872C8.029 0.0746 6.897 -0.8656 7.049 -2.1394C7.21 -3.302 8.18 -4.2624 9.493 -4.2321C9.756 -4.2523 10.028 -4.1512 10.311 -3.9187C11.311 -2.9785 11.2 -1.1891 10.089 -0.4107C9.877 -0.2489 9.635 -0.1479 9.372 -0.0973V-0.0872Z" fill="#2B2727"/>
 &lt;path d="M-5.799 -0.9768C-7.142 -0.8151 -8.274 -1.7553 -8.122 -3.0291C-7.96 -4.1917 -6.991 -5.1521 -5.678 -5.1217C-5.415 -5.142 -5.142 -5.0409 -4.86 -4.8083C-3.86 -3.8682 -3.971 -2.0788 -5.082 -1.3003C-5.294 -1.1386 -5.536 -1.0375 -5.799 -0.9869V-0.9768Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-9 1.21C-5.93 1.99 -1.45 1.74 0.33 1" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M8.14 1.21C11.21 1.99 15.69 1.74 17.47 1" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-3.65 8.23C-0.35 9.18 3.45 9.33 5.65 8.98" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M4.766 9.6585C4.766 9.6585 -0.446 8.7587 -1.628 8.688C-2.81 8.6172 -5.638 9.0519 -5.638 9.0519C-5.638 9.0519 -3.274 12.1757 -2.365 12.6509C-1.456 13.1362 -0.567 13.864 -0.224 13.7933C0.12 13.7225 2.776 11.7511 3.574 11.2861C4.362 10.8211 4.776 9.6585 4.776 9.6585H4.766Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-15.788 -22.1157C-15.788 -22.1157 -11.505 -31.5075 -9.879 -31.9422C-8.253 -32.3769 -2.466 -21.863 -2.466 -21.863L-15.788 -22.1056V-22.1157Z" fill="#F7E28D" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M4.958 -20.9026C4.958 -20.9026 9.241 -30.2944 10.867 -30.7291C12.503 -31.1638 18.281 -20.6499 18.281 -20.6499L4.958 -20.8925V-20.9026Z" fill="#F7E28D" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-3" transform="translate(335, 120)" style="--base-transform: translate(335px, 120px)">
 &lt;path d="M21.611 14.502C20.298 14.643 19.217 13.733 19.378 12.49C19.55 11.368 20.5 10.438 21.772 10.478C22.025 10.458 22.287 10.569 22.56 10.792C23.52 11.712 23.398 13.44 22.318 14.188C22.105 14.34 21.883 14.451 21.611 14.502Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-21.023 10.145C-22.336 10.286 -23.417 9.376 -23.255 8.133C-23.084 7.011 -22.134 6.081 -20.862 6.121C-20.609 6.101 -20.346 6.212 -20.074 6.434C-19.114 7.354 -19.235 9.083 -20.316 9.841C-20.528 9.993 -20.761 10.104 -21.013 10.145H-21.023Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-16.508 20.82L-16.235 18.343C-13.114 18.647 -5.761 19.374 -4.973 19.708L-5.67 22.074C-6.256 21.882 -11.69 21.285 -16.508 20.82Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M13.975 24.723C11.531 24.399 4.319 23.348 3.39 23.216L3.733 20.75C7.945 21.366 14.409 22.296 14.975 22.337L14.743 24.814C14.642 24.803 14.369 24.773 13.985 24.723H13.975Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.501 -3.301L-17.508 -5.778L-20.478 16.999L-1.468 19.476L17.531 21.952L20.5 -0.824L1.501 -3.301Z" fill="#E99987" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.501 -3.301L-1.469 19.476" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-14.893 6.07C-14.862 4.908 -14.59 3.129 -14.347 2.077C-14.054 0.783 -13.751 0.359 -11.014 0.692C-9.539 0.864 -7.812 1.066 -4.429 1.693C-2.257 2.097 -2.247 2.653 -2.216 3.664C-2.196 4.402 -2.307 6.01 -2.732 7.496C-3.055 8.618 -3.136 9.376 -5.237 9.113C-7.327 8.861 -9.509 8.578 -12.024 8.204C-14.216 7.87 -14.943 7.607 -14.903 6.07H-14.893Z" fill="#F9F9F6"/>
 &lt;path d="M3.359 8.527C3.39 7.364 3.662 5.585 3.905 4.534C4.198 3.24 4.501 2.815 7.238 3.149C8.713 3.321 10.44 3.523 13.823 4.15C15.995 4.554 16.005 5.11 16.035 6.121C16.056 6.859 15.945 8.466 15.52 9.952C15.197 11.075 15.116 11.833 13.015 11.57C10.864 11.307 8.743 11.034 6.228 10.66C4.036 10.326 3.309 10.064 3.349 8.527H3.359Z" fill="#F9F9F6"/>
 &lt;path d="M9.056 9.336C7.743 9.397 6.723 8.416 6.955 7.203C7.197 6.101 8.187 5.242 9.45 5.353C9.702 5.353 9.955 5.474 10.217 5.717C11.116 6.697 10.884 8.406 9.763 9.073C9.551 9.215 9.308 9.295 9.046 9.336H9.056Z" fill="#2B2727"/>
 &lt;path d="M-7.751 7.142C-9.064 7.203 -10.084 6.222 -9.852 5.009C-9.609 3.907 -8.619 3.048 -7.357 3.159C-7.104 3.159 -6.852 3.28 -6.589 3.523C-5.69 4.503 -5.923 6.212 -7.044 6.879C-7.256 7.021 -7.498 7.102 -7.761 7.142H-7.751Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-13 8.21C-9.93 8.99 -5.45 8.74 -3.67 8" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 9.21C8.21 9.99 12.69 9.74 14.47 9" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-5.792 12.844C-2.499 14.107 2.501 14.583 4.591 14.148" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M3.32 12.789C3.32 12.789 -0.87 12.319 -1.82 12.319C-2.77 12.319 -5 12.789 -5 12.789C-5 12.789 -2.97 15.159 -2.23 15.499C-1.49 15.839 -0.74 16.379 -0.47 16.309C-0.2 16.239 1.83 14.549 2.44 14.149C3.05 13.749 3.32 12.799 3.32 12.799V12.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M1.471 -4.009C2.683 -17.091 -4.62 -23.9448 -19.306 -24.5918C-20.629 -5.212 -0.418 -0.41 1.471 -4.009Z" fill="#ADCC7E" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-4" transform="translate(229, 98)" style="--base-transform: translate(229px, 98px)">
 &lt;path d="M-15.755 3.302C-15.755 3.302 -21.553 8.064 -21.048 18.092C-21.048 18.234 -20.896 18.386 -20.765 18.325C-18.644 17.395 -17.038 15.646 -13.776 16.384C-13.543 12.532 -15.755 3.302 -15.755 3.302Z" fill="#D4C9C5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.122 0.2896C14.122 0.2896 20.859 3.585 22.677 13.452C22.708 13.594 22.607 13.766 22.455 13.745C20.172 13.331 18.203 11.996 15.203 13.472C14.092 9.782 14.122 0.2896 14.122 0.2896Z" fill="#D4C9C5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-11.543 21.823L-11.856 24.542C-11.856 24.542 -9.139 25.22 -5.635 24.815C-2.453 24.451 0.355 23.117 0.355 23.117L-0.503 20.539" fill="#D4C9C5"/>
 &lt;path d="M-11.543 21.823L-11.856 24.542C-11.856 24.542 -9.139 25.22 -5.635 24.815C-2.453 24.451 0.355 23.117 0.355 23.117L-0.503 20.539" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M3.385 20.074L3.072 22.793C3.072 22.793 5.789 23.471 9.294 23.066C12.476 22.702 15.284 21.368 15.284 21.368L14.425 18.79" fill="#D4C9C5"/>
 &lt;path d="M3.385 20.074L3.072 22.793C3.072 22.793 5.789 23.471 9.294 23.066C12.476 22.702 15.284 21.368 15.284 21.368L14.425 18.79" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-16.462 -13.2572C-16.462 -13.2572 -14.088 -22.2648 -12.694 -22.9118C-11.301 -23.5588 -4.452 -15.1477 -4.452 -15.1477L-16.462 -13.2572Z" fill="#E99987" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-0.816 -15.087C-0.816 -15.087 1.557 -24.0946 2.951 -24.7416C4.345 -25.3886 11.193 -16.9775 11.193 -16.9775L-0.816 -15.087Z" fill="#E99987" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.645 -15.3195L-17.321 -13.6008L-13.18 21.873L1.496 20.155L16.182 18.436L12.041 -17.0381L-2.645 -15.3195Z" fill="#F7C0A9" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.645 -15.3196L0.012 7.447" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.072 16.445L1.486 20.003" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10" stroke-linecap="round"/>
 &lt;path d="M0.79 10.925H0.709C0.365 10.904 -0.089 10.763 -0.544 10.53C-0.827 10.389 -1.342 10.025 -1.725 9.712C-1.998 9.479 -2.129 9.145 -2.049 8.822C-1.968 8.448 -1.655 8.134 -1.22 8.013C-1.109 7.983 -0.928 7.922 -0.726 7.851C-0.16 7.659 0.133 7.568 0.325 7.538C0.547 7.508 0.8 7.538 1.093 7.558C1.355 7.578 1.658 7.609 1.992 7.599C2.416 7.599 2.779 7.831 2.931 8.215C3.092 8.62 2.961 9.105 2.608 9.418C2.527 9.489 2.365 9.671 2.244 9.823C1.678 10.48 1.295 10.874 0.86 10.925H0.81H0.79Z" fill="#A297DE"/>
 &lt;path d="M0.395 8.145C0.718 8.104 1.274 8.226 2.001 8.215C2.405 8.215 2.506 8.691 2.203 8.964C2.203 8.964 2.203 8.964 2.193 8.964C1.89 9.216 1.132 10.268 0.779 10.308H0.749C0.516 10.308 0.143 10.187 -0.251 9.985C-0.463 9.873 -0.938 9.56 -1.312 9.247C-1.585 9.014 -1.383 8.701 -1.039 8.6C-0.716 8.499 0.173 8.175 0.395 8.155M0.254 6.932C0.001 6.962 -0.292 7.053 -0.918 7.265C-1.1 7.326 -1.271 7.386 -1.383 7.417C-2.029 7.599 -2.514 8.094 -2.645 8.691C-2.766 9.247 -2.564 9.803 -2.11 10.177C-1.696 10.531 -1.14 10.915 -0.817 11.076C-0.514 11.228 0.102 11.511 0.688 11.531C0.769 11.531 0.84 11.531 0.92 11.531C1.627 11.45 2.132 10.874 2.708 10.217C2.809 10.106 2.94 9.944 3.001 9.894H3.021V9.884C3.567 9.408 3.759 8.65 3.506 8.003C3.264 7.386 2.668 6.992 1.991 6.992C1.688 6.992 1.405 6.972 1.153 6.952C0.829 6.932 0.547 6.901 0.264 6.932H0.254Z" fill="#231F20"/>
 &lt;path d="M6.314 14.564C3.971 15.616 0.87 13.857 0.809 12.037L0.719 11.916C1.426 14.14 -2.423 16.222 -4.988 15.666" fill="#F7C0A9"/>
 &lt;path d="M6.314 14.564C3.971 15.616 0.87 13.857 0.809 12.037L0.719 11.916C1.426 14.14 -2.423 16.222 -4.988 15.666" stroke="#231F20" stroke-width="1.38" stroke-linecap="round" stroke-linejoin="round"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.463 4.92C-5.443 5.142 -6.978 5.294 -7.917 5.304C-9.069 5.314 -9.483 5.132 -9.816 2.493C-9.988 1.078 -10.21 -0.5901 -10.432 -3.8757C-10.574 -5.9886 -10.119 -6.1301 -9.281 -6.3828C-8.665 -6.5749 -7.311 -6.8276 -5.968 -6.7569C-4.958 -6.7063 -4.312 -6.7973 -4.069 -4.7855C-3.817 -2.7131 -3.574 -0.6912 -3.332 1.7452C-3.12 3.868 -3.19 4.606 -4.473 4.899L-4.463 4.92Z" fill="white"/>
 &lt;path d="M8.133 3.525C7.153 3.747 5.618 3.899 4.678 3.909C3.527 3.919 3.113 3.737 2.779 1.0983C2.608 -0.317 2.385 -1.9851 2.163 -5.2707C2.022 -7.3836 2.476 -7.5251 3.315 -7.7778C3.931 -7.9699 5.284 -8.2227 6.628 -8.1519C7.638 -8.1013 8.284 -8.1923 8.527 -6.1805C8.779 -4.1081 9.021 -2.0862 9.264 0.3502C9.476 2.473 9.405 3.211 8.123 3.504L8.133 3.525Z" fill="white"/>
 &lt;path d="M6.375 0.2288C5.294 0.5523 4.223 -0.0442 4.173 -1.1057C4.143 -2.0762 4.799 -2.986 5.88 -3.1579C6.092 -3.2084 6.334 -3.1579 6.597 -3.0164C7.546 -2.3997 7.718 -0.9237 6.92 -0.1351C6.769 0.0165 6.587 0.1479 6.375 0.2288Z" fill="#2B2727"/>
 &lt;path d="M-6.21 1.7049C-7.291 2.028 -8.362 1.4319 -8.412 0.3704C-8.442 -0.6001 -7.786 -1.5099 -6.705 -1.6818C-6.493 -1.7324 -6.251 -1.6818 -5.988 -1.5403C-5.039 -0.9236 -4.867 0.5524 -5.665 1.3409C-5.816 1.4926 -5.998 1.624 -6.21 1.7049Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-9 1C-5.93 1.78 -1.45 1.53 0.33 0.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M4.14 0.21C7.21 0.99 11.69 0.74 13.47 0" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-5" transform="translate(52, 291)" style="--base-transform: translate(52px, 291px)">
 &lt;path d="M21.4743 4.85C20.3228 5.264 19.1511 4.678 19.0299 3.525C18.939 2.484 19.5855 1.443 20.747 1.2C20.9692 1.129 21.2318 1.17 21.5248 1.311C22.5853 1.928 22.858 3.515 22.05 4.425C21.8985 4.607 21.7066 4.759 21.4844 4.85H21.4743Z" fill="#E0DDD5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-17.7767 10.198C-18.9282 10.612 -20.0998 10.026 -20.221 8.873C-20.3119 7.832 -19.6655 6.791 -18.504 6.548C-18.2817 6.477 -18.0191 6.518 -17.7262 6.659C-16.6657 7.276 -16.3929 8.863 -17.201 9.773C-17.3525 9.955 -17.5444 10.107 -17.7666 10.208L-17.7767 10.198Z" fill="#E0DDD5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-11.4034 18.811L-11.6963 16.536C-8.8277 16.132 -2.0705 15.192 -1.2827 15.313L-1.3938 17.588C-1.9594 17.547 -6.9794 18.184 -11.4034 18.811Z" fill="#E0DDD5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M16.8378 15.697C14.5753 15.94 7.8584 16.567 6.9898 16.637L6.7676 14.353C10.6866 13.989 16.6964 13.423 17.2115 13.332L17.5347 15.606C17.4438 15.616 17.1913 15.647 16.8277 15.687L16.8378 15.697Z" fill="#E0DDD5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-1.0602 -15.198L-18.6855 -13.287L-15.4635 16.567L2.1619 14.656L19.7772 12.755L16.5551 -17.098L-1.0602 -15.198Z" fill="#E8E781" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-1.0605 -15.198L2.1615 14.656" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M60.1614 297.882C60.1614 297.882 56.8484 298.397 54.495 298.65C52.1416 298.903 48.2832 298.559 48.2832 298.559C48.2832 298.559 50.5053 300.369 52.5153 300.49C54.5253 300.611 55.9091 300.52 56.9393 300.257C57.505 300.116 58.6059 299.418 59.3332 298.862C60.2826 298.124 60.1715 297.872 60.1715 297.872L60.1614 297.882Z" fill="#231F20"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.9495 1.534C-6.1211 1.746 -7.9695 1.918 -9.0907 1.958C-10.4643 2.009 -10.9492 1.888 -11.1916 -0.094C-11.3229 -1.166 -11.4946 -2.419 -11.5653 -4.896C-11.6057 -6.493 -11.0603 -6.615 -10.0502 -6.837C-9.3129 -7.009 -7.6766 -7.251 -6.0807 -7.241C-4.8788 -7.241 -4.101 -7.332 -3.9192 -5.816C-3.7374 -4.259 -3.5556 -2.722 -3.4041 -0.893C-3.2728 0.715 -3.3839 1.271 -4.9394 1.544L-4.9495 1.534Z" fill="#F9F9F6"/>
 &lt;path d="M10.1511 -0.003C8.9694 0.209 7.121 0.381 6.0099 0.422C4.6363 0.472 4.1514 0.351 3.909 -1.63C3.7777 -2.702 3.606 -3.956 3.5353 -6.433C3.4949 -8.03 4.0403 -8.151 5.0504 -8.384C5.7877 -8.556 7.424 -8.798 9.0199 -8.788C10.2218 -8.788 10.9996 -8.879 11.1814 -7.363C11.3632 -5.806 11.545 -4.269 11.6965 -2.439C11.8278 -0.842 11.7167 -0.276 10.1612 -0.003H10.1511Z" fill="#F9F9F6"/>
 &lt;path d="M8.3633 -1.317C7.0603 -0.933 5.7877 -1.671 5.7372 -2.955C5.7069 -4.128 6.5048 -5.23 7.7977 -5.422C8.0502 -5.482 8.333 -5.422 8.6562 -5.24C9.7976 -4.471 9.9794 -2.692 9.0198 -1.742C8.838 -1.55 8.6158 -1.408 8.3633 -1.307V-1.317Z" fill="#2B2727"/>
 &lt;path d="M-6.7373 0.321C-8.0403 0.705 -9.3129 -0.033 -9.3634 -1.317C-9.3937 -2.49 -8.5958 -3.592 -7.3029 -3.784C-7.0504 -3.845 -6.7676 -3.784 -6.4444 -3.602C-5.303 -2.834 -5.1212 -1.054 -6.0808 -0.104C-6.2626 0.088 -6.4848 0.23 -6.7373 0.331V0.321Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-10 0C-6.93 0.78 -2.45 0.53 -0.67 -0.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 -0.79C8.21 -0.01 12.69 -0.26 14.47 -1" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-1.97 5.819C-1.97 5.819 1.293 8.023 3.474 7.912C5.656 7.801 6.787 7.154 6.787 7.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M8.1614 6.882C8.1614 6.882 4.8484 7.397 2.495 7.65C0.1416 7.903 -3.7168 7.559 -3.7168 7.559C-3.7168 7.559 -1.4947 9.369 0.5153 9.49C2.5253 9.611 3.9091 9.52 4.9393 9.257C5.505 9.116 6.6059 8.418 7.3332 7.862C8.2826 7.124 8.1715 6.872 8.1715 6.872L8.1614 6.882Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-6" transform="translate(94, 335)" style="--base-transform: translate(94px, 335px)">
 &lt;path d="M22.401 8.769C21.29 9.274 20.078 8.779 19.855 7.637C19.684 6.606 20.249 5.514 21.381 5.18C21.603 5.089 21.855 5.109 22.158 5.231C23.269 5.756 23.663 7.323 22.926 8.294C22.785 8.486 22.613 8.648 22.391 8.769H22.401Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-16.315 17.17C-17.4261 17.675 -18.6381 17.18 -18.8604 16.038C-19.0321 15.006 -18.4664 13.915 -17.3352 13.581C-17.113 13.49 -16.8504 13.51 -16.5473 13.631C-15.4363 14.157 -15.0424 15.724 -15.7797 16.695C-15.9211 16.887 -16.0928 17.049 -16.315 17.17Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-9.2844 25.257L-9.749 23.013C-6.9209 22.376 -0.2546 20.92 0.5434 20.981L0.6141 23.256C0.0485 23.256 -4.9008 24.287 -9.2743 25.268L-9.2844 25.257Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M18.633 19.94C16.391 20.364 9.755 21.507 8.896 21.648L8.492 19.384C12.371 18.717 18.32 17.675 18.825 17.554L19.33 19.798C19.239 19.818 18.987 19.869 18.633 19.94Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-3.911 -19.113L-21.3242 -15.838L-13.9408 23.418L3.4725 20.142L20.886 16.867L13.502 -22.389L-3.911 -19.113Z" fill="#A095C7" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-3.9111 -19.113L3.4723 20.142" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M6.088 9.76C6.088 9.76 1.9369 8.162 0.0986 9.001C-1.7397 9.83 -3.7598 12.044 -3.7598 12.044C-3.7598 12.044 -0.5074 14.885 2.149 14.036C4.8055 13.187 6.088 9.75 6.088 9.75V9.76Z" fill="#231F20"/>
 &lt;path d="M-23.1729 -17.708C-15.8904 -13.199 -7.4161 -11.531 -7.4161 -11.531L-9.921 -15.454C-6.4262 -13.876 5.6641 -16.454 3.6238 -12.855C3.1288 -11.976 1.2906 -17.324 2.4319 -17.647C2.4319 -17.647 9.482 -13.128 14.744 -14.877C16.401 -15.423 17.916 -18.426 17.916 -18.426L11.654 -24.249L-23.1729 -17.688V-17.708Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.295 5.807C-5.4465 6.161 -7.2747 6.464 -8.3958 6.555C-9.7695 6.666 -10.2846 6.474 -10.9007 3.31C-11.2341 1.611 -11.6381 -0.39 -12.1936 -4.343C-12.537 -6.891 -12.0017 -7.093 -11.032 -7.477C-10.3149 -7.76 -8.7089 -8.175 -7.103 -8.195C-5.8909 -8.205 -5.1233 -8.377 -4.6586 -5.961C-4.1839 -3.474 -3.7092 -1.037 -3.2143 1.884C-2.7799 4.432 -2.79 5.332 -4.3051 5.807H-4.295Z" fill="#F9F9F6"/>
 &lt;path d="M10.653 3.087C9.502 3.441 7.674 3.744 6.552 3.835C5.1788 3.947 4.6637 3.755 4.0475 0.59C3.7142 -1.108 3.3102 -3.11 2.7547 -7.063C2.4012 -9.61 2.9466 -9.812 3.9162 -10.197C4.6334 -10.48 6.239 -10.894 7.845 -10.914C9.057 -10.935 9.825 -11.096 10.29 -8.68C10.764 -6.193 11.239 -3.757 11.734 -0.835C12.168 1.712 12.158 2.612 10.643 3.087H10.653Z" fill="#F9F9F6"/>
 &lt;path d="M8.27 -0.754C6.997 -0.269 5.6737 -0.906 5.5222 -2.19C5.401 -3.352 6.108 -4.525 7.391 -4.808C7.643 -4.889 7.926 -4.859 8.259 -4.697C9.451 -4.02 9.785 -2.261 8.896 -1.239C8.734 -1.037 8.512 -0.876 8.27 -0.754Z" fill="#2B2727"/>
 &lt;path d="M-6.6582 2.056C-7.9309 2.541 -9.254 1.904 -9.4055 0.621C-9.5267 -0.542 -8.8197 -1.715 -7.537 -1.998C-7.2844 -2.079 -7.0016 -2.048 -6.6683 -1.887C-5.4764 -1.209 -5.1431 0.55 -6.032 1.571C-6.1936 1.773 -6.4057 1.935 -6.6481 2.056H-6.6582Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-10 2C-6.93 2.78 -2.45 2.53 -0.67 1.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 0.21C8.21 0.99 12.69 0.74 14.47 0" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-2.65 9.23C0.65 10.18 4.45 10.33 6.65 9.98" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M6.088 9.76C6.088 9.76 1.9369 8.162 0.0986 9.001C-1.7397 9.83 -3.7598 12.044 -3.7598 12.044C-3.7598 12.044 -0.5074 14.885 2.149 14.036C4.8055 13.187 6.088 9.75 6.088 9.75V9.76Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-7" transform="translate(170, 285)" style="--base-transform: translate(170px, 285px)">
 &lt;path d="M21.528 8.605C20.225 8.828 19.094 7.989 19.175 6.735C19.276 5.603 20.165 4.622 21.437 4.582C21.69 4.541 21.953 4.642 22.235 4.845C23.256 5.704 23.235 7.443 22.205 8.252C22.003 8.413 21.781 8.535 21.528 8.605Z" fill="#413470"/>
 &lt;path d="M-21.288 6.867C-22.591 7.089 -23.722 6.25 -23.641 4.996C-23.54 3.864 -22.652 2.883 -21.379 2.843C-21.126 2.803 -20.864 2.904 -20.581 3.106C-19.561 3.965 -19.581 5.704 -20.611 6.513C-20.813 6.674 -21.035 6.796 -21.288 6.867Z" fill="#413470"/>
 &lt;path d="M-16.127 17.249L-16.016 14.762C-12.874 14.873 -5.501 15.146 -4.693 15.429L-5.238 17.836C-5.834 17.674 -11.299 17.411 -16.137 17.249H-16.127Z" fill="#413470"/>
 &lt;path d="M14.549 19.271C12.084 19.099 4.822 18.493 3.883 18.422L4.075 15.935C8.317 16.289 14.822 16.824 15.387 16.824L15.306 19.311C15.205 19.311 14.933 19.291 14.549 19.271Z" fill="#413470"/>
 &lt;path d="M1.337 -17.406L-17.793 -18.71L-19.995 13.701L-0.865 15.005L18.255 16.309L20.457 -16.102L1.337 -17.406Z" fill="#59CFAA" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.337 -17.406L-0.865 15.005" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-1.057 3.349C-4.663 3.895 -7.925 5.795 -7.956 6.24C-7.986 6.685 -5.511 10.84 -2.32 10.435C2.862 9.778 5.175 5.34 5.256 4.228C5.336 3.116 -1.047 3.349 -1.047 3.349H-1.057Z" fill="#231F20"/>
 &lt;g class="eyes-open">
 &lt;path d="M-6.026 0.568C-7.319 0.568 -9.319 0.407 -10.521 0.235C-11.996 0.033 -12.491 -0.19 -12.38 -2.353C-12.319 -3.516 -12.268 -4.881 -11.875 -7.539C-11.622 -9.258 -11.016 -9.268 -9.895 -9.329C-9.077 -9.369 -7.289 -9.319 -5.592 -9.015C-4.319 -8.783 -3.461 -8.742 -3.552 -7.095C-3.653 -5.396 -3.744 -3.738 -3.925 -1.757C-4.087 -0.028 -4.319 0.548 -6.026 0.548V0.568Z" fill="#F9F9F6"/>
 &lt;path d="M10.356 1.772C9.064 1.772 7.064 1.61 5.862 1.448C4.387 1.246 3.892 1.023 4.003 -1.14C4.054 -2.303 4.114 -3.667 4.508 -6.326C4.761 -8.045 5.367 -8.055 6.488 -8.116C7.306 -8.156 9.094 -8.105 10.791 -7.802C12.063 -7.57 12.922 -7.529 12.831 -5.881C12.73 -4.183 12.639 -2.525 12.457 -0.544C12.296 1.185 12.063 1.761 10.356 1.761V1.772Z" fill="#F9F9F6"/>
 &lt;path d="M8.69 0.043C7.225 0.205 6.023 -0.817 6.195 -2.202C6.387 -3.445 7.437 -4.486 8.862 -4.446C9.144 -4.466 9.437 -4.345 9.74 -4.092C10.811 -3.061 10.67 -1.13 9.468 -0.301C9.235 -0.139 8.973 -0.008 8.68 0.033L8.69 0.043Z" fill="#2B2727"/>
 &lt;path d="M-7.703 -1.069C-9.167 -0.908 -10.369 -1.929 -10.197 -3.314C-10.006 -4.557 -8.955 -5.598 -7.531 -5.558C-7.248 -5.578 -6.955 -5.457 -6.652 -5.204C-5.582 -4.173 -5.713 -2.242 -6.925 -1.413C-7.157 -1.251 -7.42 -1.12 -7.713 -1.079L-7.703 -1.069Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-11 -2C-7.93 -1.22 -3.45 -1.47 -1.67 -2.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 -0.79C8.21 -0.01 12.69 -0.26 14.47 -1" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-3.97 3.819C-3.97 3.819 -0.707 6.023 1.474 5.912C3.656 5.801 4.787 5.154 4.787 5.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M-1.057 3.349C-4.663 3.895 -7.925 5.795 -7.956 6.24C-7.986 6.685 -5.511 10.84 -2.32 10.435C2.862 9.778 5.175 5.34 5.256 4.228C5.336 3.116 -1.047 3.349 -1.047 3.349H-1.057Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-8" transform="translate(93, 224)" style="--base-transform: translate(93px, 224px)">
 &lt;path d="M-19.5163 -14.213C-19.5163 -14.213 -16.9204 -24.201 -15.3953 -24.919C-13.8701 -25.626 -6.3553 -16.275 -6.3553 -16.275L-19.5264 -14.213H-19.5163Z" fill="#F7C0A9" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.1292 -16.609C1.1292 -16.609 3.7251 -26.597 5.2502 -27.315C6.7754 -28.022 14.29 -18.671 14.29 -18.671L1.1191 -16.609H1.1292Z" fill="#F7C0A9" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M21.674 13.528C20.532 13.953 19.351 13.376 19.219 12.224C19.118 11.183 19.755 10.131 20.916 9.878C21.139 9.808 21.401 9.848 21.694 9.98C22.765 10.586 23.048 12.173 22.239 13.083C22.088 13.265 21.906 13.417 21.674 13.518V13.528Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-17.5361 19.189C-18.6775 19.614 -19.8592 19.037 -19.9905 17.885C-20.0915 16.844 -19.4552 15.792 -18.2936 15.54C-18.0714 15.469 -17.8088 15.509 -17.5159 15.641C-16.4453 16.247 -16.1624 17.834 -16.9705 18.744C-17.122 18.926 -17.3038 19.078 -17.5361 19.179V19.189Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-11.0922 27.742L-11.4053 25.467C-8.5367 25.032 -1.7795 24.052 -1.0018 24.163L-1.0927 26.438C-1.6583 26.397 -6.6681 27.075 -11.0922 27.742Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M17.128 24.416C14.866 24.679 8.159 25.356 7.29 25.437L7.048 23.152C10.967 22.758 16.967 22.141 17.482 22.05L17.825 24.325C17.724 24.335 17.482 24.375 17.118 24.416H17.128Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.6383 -16.497L-20.2334 -14.455L-15.6377 25.214L1.9574 23.172L19.552 21.13L14.957 -18.54L-2.6383 -16.497Z" fill="#D4C9C5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-2.6387 -16.497L1.9571 23.172" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.679 9.161C-5.8506 9.434 -7.699 9.605 -8.8202 9.616C-10.2039 9.616 -10.6989 9.403 -11.0928 6.209C-11.3049 4.49 -11.5675 2.468 -11.8402 -1.525C-12.0119 -4.083 -11.4564 -4.255 -10.4564 -4.568C-9.7292 -4.801 -8.0929 -5.094 -6.4869 -5.003C-5.2749 -4.932 -4.4971 -5.043 -4.2042 -2.607C-3.9012 -0.09 -3.6083 2.367 -3.3154 5.319C-3.0629 7.897 -3.1437 8.787 -4.679 9.151V9.161Z" fill="#F9F9F6"/>
 &lt;path d="M10.412 7.503C9.24 7.776 7.392 7.948 6.2707 7.958C4.8869 7.968 4.392 7.745 3.9981 4.551C3.7859 2.832 3.5233 0.81 3.2506 -3.183C3.0789 -5.741 3.6344 -5.913 4.6344 -6.226C5.3616 -6.459 6.9979 -6.752 8.604 -6.661C9.816 -6.59 10.594 -6.701 10.887 -4.265C11.19 -1.748 11.483 0.709 11.775 3.661C12.028 6.239 11.947 7.129 10.412 7.493V7.503Z" fill="#F9F9F6"/>
 &lt;path d="M8.311 3.499C7.008 3.894 5.7353 3.166 5.6646 1.882C5.6242 0.709 6.412 -0.403 7.715 -0.595C7.967 -0.666 8.25 -0.605 8.574 -0.423C9.715 0.335 9.917 2.114 8.967 3.075C8.786 3.267 8.563 3.418 8.311 3.509V3.499Z" fill="#2B2727"/>
 &lt;path d="M-6.7793 5.248C-8.0722 5.642 -9.3549 4.915 -9.4155 3.631C-9.4559 2.458 -8.6681 1.346 -7.3651 1.154C-7.1126 1.083 -6.8298 1.144 -6.5066 1.326C-5.3652 2.084 -5.1632 3.863 -6.1126 4.824C-6.2945 5.016 -6.5167 5.167 -6.7692 5.258L-6.7793 5.248Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-9 5C-5.93 5.78 -1.45 5.53 0.33 4.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M6.14 4.21C9.21 4.99 13.69 4.74 15.47 4" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-1.97 10.819C-1.97 10.819 1.293 13.023 3.474 12.912C5.656 12.801 6.787 12.154 6.787 12.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M7.32 10.789C7.32 10.789 3.13 10.319 2.18 10.319C1.23 10.319 -1 10.789 -1 10.789C-1 10.789 1.03 13.159 1.77 13.499C2.51 13.839 3.26 14.379 3.53 14.309C3.8 14.239 5.83 12.549 6.44 12.149C7.05 11.749 7.32 10.799 7.32 10.799V10.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-9" transform="translate(448, 412)" style="--base-transform: translate(448px, 412px)">
 &lt;path d="M19.394 17.538C18.192 17.74 17.141 16.941 17.232 15.789C17.333 14.748 18.161 13.838 19.343 13.807C19.575 13.777 19.828 13.868 20.08 14.06C21.01 14.859 20.989 16.466 20.03 17.214C19.848 17.366 19.636 17.477 19.394 17.528V17.538Z" fill="#413470"/>
 &lt;path d="M-20.181 15.597C-21.383 15.799 -22.433 15.001 -22.342 13.848C-22.241 12.807 -21.413 11.897 -20.231 11.867C-19.999 11.836 -19.746 11.927 -19.484 12.119C-18.554 12.918 -18.575 14.525 -19.534 15.273C-19.716 15.425 -19.928 15.536 -20.171 15.587L-20.181 15.597Z" fill="#413470"/>
 &lt;path d="M-15.494 25.231L-15.363 22.937C-12.464 23.058 -5.646 23.381 -4.899 23.644L-5.424 25.858C-5.969 25.707 -11.02 25.423 -15.494 25.231Z" fill="#413470"/>
 &lt;path d="M12.848 27.344C10.575 27.172 3.869 26.546 3 26.465L3.202 24.18C7.121 24.544 13.131 25.09 13.656 25.09L13.565 27.385C13.464 27.385 13.212 27.364 12.858 27.334L12.848 27.344Z" fill="#413470"/>
 &lt;path d="M2.414 -25.65L-15.252 -27.005L-18.999 21.925L-1.333 23.28L16.343 24.635L20.09 -24.295L2.414 -25.65Z" fill="#A47E69" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-5.868 0.847C-7.07 0.908 -8.919 0.726 -10.02 0.503C-11.373 0.231 -11.808 -0.113 -11.565 -3.732C-11.434 -5.684 -11.282 -7.968 -10.737 -12.437C-10.393 -15.308 -9.818 -15.379 -8.777 -15.52C-8.02 -15.621 -6.353 -15.621 -4.798 -15.187C-3.626 -14.863 -2.838 -14.823 -3.04 -12.063C-3.242 -9.293 -3.454 -6.432 -3.757 -3.106C-4.02 -0.204 -4.283 0.766 -5.868 0.847Z" fill="#F9F9F6"/>
 &lt;path d="M9.262 2.101C8.06 2.161 6.212 1.979 5.111 1.757C3.758 1.484 3.323 1.14 3.566 -2.479C3.697 -4.43 3.849 -6.715 4.394 -11.183C4.737 -14.064 5.313 -14.125 6.353 -14.267C7.121 -14.368 8.778 -14.378 10.333 -13.943C11.505 -13.62 12.293 -13.579 12.091 -10.819C11.878 -7.978 11.676 -5.188 11.373 -1.862C11.111 0.961 10.848 2.01 9.262 2.091V2.101Z" fill="#F9F9F6"/>
 &lt;path d="M8.041 -3.126C6.687 -2.984 5.576 -3.945 5.758 -5.219C5.94 -6.371 6.929 -7.321 8.243 -7.261C8.505 -7.281 8.778 -7.17 9.051 -6.927C10.03 -5.967 9.889 -4.177 8.768 -3.419C8.556 -3.267 8.303 -3.166 8.041 -3.116V-3.126Z" fill="#2B2727"/>
 &lt;path d="M-7.111 -4.288C-8.464 -4.147 -9.575 -5.107 -9.394 -6.381C-9.212 -7.534 -8.222 -8.484 -6.909 -8.423C-6.646 -8.443 -6.373 -8.332 -6.101 -8.09C-5.121 -7.129 -5.262 -5.34 -6.384 -4.582C-6.596 -4.43 -6.848 -4.329 -7.111 -4.278V-4.288Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-10 -3C-6.93 -2.22 -2.45 -2.47 -0.67 -3.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 -2.79C8.21 -2.01 12.69 -2.26 14.47 -3" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-5.828 11.644C-5.828 11.644 -1.525 13.383 1.434 13.009C4.383 12.635 5.949 11.866 5.949 11.866" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M4.32 11.789C4.32 11.789 0.13 11.319 -0.82 11.319C-1.77 11.319 -4 11.789 -4 11.789C-4 11.789 -1.97 14.159 -1.23 14.499C-0.49 14.839 0.26 15.379 0.53 15.309C0.8 15.239 2.83 13.549 3.44 13.149C4.05 12.749 4.32 11.799 4.32 11.799V11.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-10" transform="translate(505, 362)" style="--base-transform: translate(505px, 362px)">
 &lt;path d="M22.081 8.219C20.768 8.381 19.677 7.481 19.829 6.228C19.99 5.106 20.919 4.165 22.192 4.196C22.445 4.175 22.707 4.277 22.98 4.499C23.95 5.409 23.849 7.138 22.778 7.906C22.576 8.057 22.344 8.169 22.081 8.219Z" fill="#FF5657" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-20.594 4.307C-21.907 4.469 -22.998 3.569 -22.846 2.326C-22.685 1.203 -21.755 0.263 -20.483 0.294C-20.23 0.273 -19.968 0.374 -19.695 0.597C-18.725 1.507 -18.826 3.235 -19.897 4.004C-20.099 4.155 -20.331 4.267 -20.594 4.317V4.307Z" fill="#FF5657" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-15.967 14.932L-15.725 12.455C-12.594 12.728 -5.241 13.375 -4.453 13.699L-5.12 16.074C-5.705 15.882 -11.15 15.346 -15.978 14.932H-15.967Z" fill="#FF5657" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.566 18.521C12.112 18.228 4.89 17.247 3.961 17.126L4.274 14.659C8.496 15.225 14.96 16.095 15.536 16.125L15.334 18.602C15.233 18.592 14.96 18.561 14.577 18.521H14.566Z" fill="#FF5657" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.819 -8.977L-17.22 -11.252L-19.938 11.565L-0.898 13.84L18.131 16.115L20.848 -6.702L1.819 -8.977Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.82 -8.977L-0.897 13.84" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-15.453 -0.435C-15.433 -1.597 -15.18 -3.376 -14.958 -4.438C-14.675 -5.742 -14.382 -6.167 -11.635 -5.863C-10.16 -5.702 -8.423 -5.53 -5.04 -4.933C-2.868 -4.549 -2.848 -4.003 -2.797 -2.982C-2.767 -2.244 -2.858 -0.637 -3.272 0.859C-3.585 1.982 -3.666 2.74 -5.757 2.507C-7.908 2.265 -10.029 2.022 -12.544 1.678C-14.736 1.375 -15.473 1.112 -15.443 -0.424L-15.453 -0.435Z" fill="#F9F9F6"/>
 &lt;path d="M2.829 1.82C2.849 0.657 3.102 -1.122 3.324 -2.183C3.607 -3.488 3.9 -3.912 6.647 -3.609C8.122 -3.447 9.859 -3.275 13.243 -2.679C15.414 -2.295 15.434 -1.749 15.485 -0.728C15.515 0.01 15.424 1.618 15.01 3.114C14.697 4.236 14.616 4.994 12.526 4.762C10.374 4.519 8.253 4.277 5.738 3.933C3.546 3.629 2.809 3.367 2.839 1.83L2.829 1.82Z" fill="#F9F9F6"/>
 &lt;path d="M8.546 2.558C7.243 2.639 6.202 1.668 6.425 0.445C6.657 -0.657 7.637 -1.536 8.899 -1.425C9.152 -1.425 9.404 -1.314 9.667 -1.071C10.576 -0.101 10.364 1.608 9.253 2.295C9.041 2.437 8.798 2.528 8.536 2.558H8.546Z" fill="#2B2727"/>
 &lt;path d="M-8.291 0.546C-9.594 0.627 -10.635 -0.344 -10.412 -1.567C-10.18 -2.669 -9.2 -3.548 -7.938 -3.437C-7.685 -3.437 -7.433 -3.326 -7.17 -3.083C-6.261 -2.113 -6.473 -0.404 -7.584 0.283C-7.796 0.425 -8.039 0.516 -8.301 0.546H-8.291Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-13 0C-9.93 0.78 -5.45 0.53 -3.67 -0.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M5.14 2.21C8.21 2.99 12.69 2.74 14.47 2" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-6.97 7.819C-6.97 7.819 -3.707 10.023 -1.526 9.912C0.656 9.801 1.787 9.154 1.787 9.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M1.32 7.789C1.32 7.789 -2.87 7.319 -3.82 7.319C-4.77 7.319 -7 7.789 -7 7.789C-7 7.789 -4.97 10.159 -4.23 10.499C-3.49 10.839 -2.74 11.379 -2.47 11.309C-2.2 11.239 -0.17 9.549 0.44 9.149C1.05 8.749 1.32 7.799 1.32 7.799V7.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-0.918 -17.914C-0.918 -17.914 2.859 -16.256 4.334 -14.78C5.799 -13.304 6.021 -11.484 6.021 -11.484L5.839 -9.159C5.839 -9.159 2.112 -8.148 -2.413 -9.068C-2.393 -13.496 -0.908 -17.914 -0.908 -17.914H-0.918Z" fill="#FFCF3F" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M5.859 -13.587L4.253 -8.593L8.485 -7.733L9.748 -12.495L5.859 -13.587Z" fill="#FFCF3F" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M17.202 -13.921C17.202 -13.921 13.071 -13.88 11.152 -13.092C9.223 -12.303 8.314 -10.716 8.314 -10.716L7.566 -8.512C7.566 -8.512 10.607 -6.126 15.132 -5.196C16.839 -9.28 17.202 -13.921 17.202 -13.921Z" fill="#FFCF3F" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-11" transform="translate(452, 290)" style="--base-transform: translate(452px, 290px)">
 &lt;path d="M24.939 26.604C22.545 26.604 15.474 26.493 14.565 26.483L14.586 24.077C18.717 24.138 25.05 24.229 25.595 24.198L25.686 26.604C25.585 26.604 25.322 26.604 24.939 26.604Z" fill="#CFA991" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M9.696 -27.987H-8.889V23.491H28.281V-27.987H9.696Z" fill="#88DCC8" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M9.696 -27.987L9.696 23.491" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-4.888 26.665L-4.938 24.259C-1.898 24.158 5.253 23.946 6.061 24.158L5.697 26.524C5.112 26.412 -0.191 26.524 -4.878 26.675L-4.888 26.665Z" fill="#CFA991" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-12.515 2.989L-7.131 22.075L-22.898 25.836L-27.776 6.871L-12.626 3.352" fill="#6497CC"/>
 &lt;path d="M-12.515 2.989L-7.131 22.075L-22.898 25.836L-27.776 6.871L-12.626 3.352" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-15.655 4.07L-10.615 22.904" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;path d="M-23.898 19.366C-25.14 19.669 -26.302 18.931 -26.302 17.708C-26.282 16.606 -25.484 15.595 -24.251 15.474C-24.009 15.423 -23.746 15.494 -23.453 15.676C-22.413 16.434 -22.312 18.123 -23.261 18.982C-23.443 19.154 -23.655 19.285 -23.898 19.366Z" fill="#CFA991" stroke="#231F20" stroke-width="1.44" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M3.818 0.33C2.566 0.491 0.616 0.451 -0.555 0.31C-1.989 0.138 -2.474 -0.196 -2.515 -3.997C-2.525 -6.049 -2.565 -8.445 -2.353 -13.166C-2.222 -16.199 -1.626 -16.321 -0.545 -16.553C0.243 -16.715 1.98 -16.856 3.647 -16.533C4.899 -16.29 5.727 -16.311 5.737 -13.399C5.737 -10.407 5.758 -7.475 5.707 -3.977C5.657 -0.924 5.475 0.117 3.818 0.33Z" fill="#F9F9F6"/>
 &lt;path d="M2.111 -4.937C0.707 -4.685 -0.535 -5.594 -0.445 -6.949C-0.344 -8.172 0.616 -9.244 1.99 -9.284C2.262 -9.325 2.555 -9.234 2.868 -9.001C3.969 -8.071 3.959 -6.191 2.858 -5.311C2.646 -5.129 2.394 -5.008 2.121 -4.937H2.111Z" fill="#2B2727"/>
 &lt;path d="M19.747 0.431C18.494 0.593 16.545 0.552 15.373 0.411C13.929 0.239 13.444 -0.095 13.414 -3.896C13.393 -5.948 13.363 -8.344 13.575 -13.065C13.707 -16.098 14.302 -16.22 15.383 -16.452C16.171 -16.614 17.908 -16.755 19.575 -16.432C20.827 -16.189 21.656 -16.209 21.666 -13.298C21.666 -10.306 21.686 -7.374 21.635 -3.876C21.585 -0.823 21.403 0.219 19.747 0.431Z" fill="#F9F9F6"/>
 &lt;path d="M18.04 -4.937C16.636 -4.685 15.393 -5.594 15.484 -6.949C15.585 -8.172 16.545 -9.244 17.918 -9.284C18.191 -9.325 18.484 -9.234 18.797 -9.001C19.898 -8.071 19.888 -6.191 18.777 -5.311C18.565 -5.129 18.312 -5.008 18.04 -4.937Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M2 -3C5.07 -2.22 9.55 -2.47 11.33 -3.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M12.14 -2.79C15.21 -2.01 19.69 -2.26 21.47 -3" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M8.03 5.819C8.03 5.819 11.293 8.023 13.474 7.912C15.656 7.801 16.787 7.154 16.787 7.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M14.32 5.789C14.32 5.789 10.13 5.319 9.18 5.319C8.23 5.319 6 5.789 6 5.789C6 5.789 8.03 8.159 8.77 8.499C9.51 8.839 10.26 9.379 10.53 9.309C10.8 9.239 12.83 7.549 13.44 7.149C14.05 6.749 14.32 5.799 14.32 5.799V5.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-12" transform="translate(393, 342)" style="--base-transform: translate(393px, 342px)">
 &lt;path d="M-3.583 -20.584C-3.219 -23.616 -1.755 -30.804 -8.067 -33.908C-14.39 -37.012 -17.168 -36.031 -17.168 -36.031C-17.168 -36.031 -15.623 -28.479 -12.461 -26.275C-9.3 -24.071 -3.583 -20.573 -3.583 -20.573V-20.584Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-4.057 -18.39C-5.017 -21.089 -6.774 -27.741 -13.37 -27.711C-19.965 -27.681 -21.895 -25.689 -21.895 -25.689C-21.895 -25.689 -17.45 -19.997 -13.885 -19.461C-10.319 -18.936 -4.057 -18.39 -4.057 -18.39Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M22.891 25.071C21.618 25.425 20.406 24.707 20.356 23.453C20.336 22.321 21.123 21.25 22.386 21.078C22.628 21.017 22.911 21.078 23.214 21.26C24.315 22.008 24.477 23.736 23.537 24.656C23.356 24.838 23.144 24.98 22.891 25.071Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-19.875 27.76C-21.147 28.124 -22.359 27.396 -22.41 26.143C-22.43 25.01 -21.642 23.939 -20.38 23.767C-20.137 23.706 -19.854 23.767 -19.551 23.949C-18.45 24.697 -18.289 26.426 -19.228 27.346C-19.41 27.528 -19.622 27.669 -19.875 27.76Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-13.683 37.546L-13.824 35.059C-10.693 34.847 -3.33 34.362 -2.491 34.554L-2.784 37C-3.39 36.899 -8.855 37.203 -13.683 37.536V37.546Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M17.043 36.404C14.579 36.495 7.286 36.636 6.347 36.656L6.286 34.17C10.538 34.089 17.073 33.947 17.639 33.886L17.811 36.363C17.71 36.363 17.437 36.384 17.053 36.394L17.043 36.404Z" fill="#FFDCDE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-0.3 -18.915L-19.45 -18.238L-17.592 34.807L1.559 34.129L20.719 33.452L18.861 -19.593L-0.3 -18.915Z" fill="#957AF7" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-0.3 -18.916L1.559 34.129" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.703 13.678C-5.986 13.9 -7.996 13.92 -9.208 13.809C-10.693 13.678 -11.218 13.354 -11.38 9.442C-11.471 7.339 -11.582 4.852 -11.541 -0.011C-11.511 -3.145 -10.915 -3.286 -9.804 -3.559C-8.996 -3.761 -7.218 -3.964 -5.491 -3.691C-4.198 -3.488 -3.34 -3.539 -3.229 -0.547C-3.117 2.537 -2.996 5.56 -2.926 9.169C-2.865 12.323 -3.027 13.405 -4.713 13.678H-4.703Z" fill="#F9F9F6"/>
 &lt;path d="M11.72 13.202C10.437 13.425 8.427 13.445 7.215 13.334C5.73 13.202 5.205 12.879 5.043 8.967C4.952 6.864 4.841 4.377 4.882 -0.486C4.912 -3.62 5.508 -3.761 6.619 -4.034C7.427 -4.236 9.205 -4.439 10.932 -4.166C12.225 -3.964 13.083 -4.014 13.194 -1.022C13.305 2.062 13.427 5.084 13.497 8.694C13.558 11.848 13.396 12.929 11.71 13.202H11.72Z" fill="#F9F9F6"/>
 &lt;path d="M9.761 7.723C8.326 8.037 7.013 7.137 7.054 5.742C7.114 4.478 8.054 3.346 9.478 3.235C9.761 3.184 10.064 3.275 10.387 3.497C11.558 4.417 11.619 6.348 10.508 7.299C10.296 7.491 10.043 7.632 9.761 7.713V7.723Z" fill="#2B2727"/>
 &lt;path d="M-6.663 8.299C-8.098 8.613 -9.411 7.713 -9.37 6.318C-9.31 5.054 -8.37 3.922 -6.946 3.811C-6.663 3.76 -6.36 3.851 -6.037 4.074C-4.865 4.994 -4.805 6.924 -5.916 7.875C-6.128 8.067 -6.38 8.208 -6.663 8.289V8.299Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-11 8C-7.93 8.78 -3.45 8.53 -1.67 7.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M6.14 9.21C9.21 9.99 13.69 9.74 15.47 9" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-3.97 20.819C-3.97 20.819 -0.707 23.023 1.474 22.912C3.656 22.801 4.787 22.154 4.787 22.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M-3.249 20.552C-3.249 20.552 -0.805 19.086 1.074 19.025C2.952 18.965 5.558 19.47 5.821 19.895C6.094 20.32 7.124 20.36 6.225 21.603C5.326 22.837 4.346 24.343 2.023 24.333C-0.3 24.333 -1.603 23.767 -2.421 22.503C-3.239 21.239 -3.27 20.552 -3.27 20.552H-3.249Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-13" transform="translate(266, 405)" style="--base-transform: translate(266px, 405px)">
 &lt;path d="M20.948 18.735C19.746 18.957 18.686 18.189 18.756 17.026C18.837 15.985 19.645 15.065 20.827 15.005C21.059 14.974 21.312 15.055 21.574 15.237C22.524 16.015 22.534 17.633 21.574 18.391C21.393 18.543 21.191 18.664 20.948 18.725V18.735Z" fill="#413470"/>
 &lt;path d="M-18.666 17.593C-19.868 17.815 -20.929 17.047 -20.858 16.884C-20.777 15.843 -19.969 14.923 -18.787 14.862C-18.555 14.832 -18.303 14.913 -18.04 15.095C-17.09 15.873 -17.08 17.491 -18.04 18.249C-18.222 18.401 -18.424 18.522 -18.666 18.583V17.593Z" fill="#413470"/>
 &lt;path d="M-13.777 27.126L-13.697 24.831C-10.798 24.902 -3.98 25.084 -3.222 25.326L-3.697 27.551C-4.253 27.419 -9.303 27.227 -13.777 27.126Z" fill="#413470"/>
 &lt;path d="M14.595 28.673C12.322 28.541 5.595 28.056 4.727 27.995L4.878 25.7C8.807 25.984 14.827 26.408 15.352 26.408L15.302 28.703C15.201 28.703 14.948 28.693 14.595 28.673Z" fill="#413470"/>
 &lt;path d="M3.1 -24.099L-14.586 -25.1L-17.354 23.891L0.332 24.892L18.029 25.893L20.796 -23.098L3.1 -24.099Z" fill="#A47E69" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M3.101 -24.099L0.333 24.892" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-4.646 2.56C-5.848 2.651 -7.697 2.499 -8.808 2.307C-10.171 2.064 -10.616 1.721 -10.434 -1.899C-10.343 -3.85 -10.242 -6.134 -9.787 -10.623C-9.495 -13.504 -8.929 -13.585 -7.889 -13.747C-7.131 -13.858 -5.464 -13.899 -3.899 -13.494C-2.717 -13.191 -1.929 -13.171 -2.081 -10.401C-2.232 -7.631 -2.374 -4.759 -2.616 -1.433C-2.828 1.468 -3.061 2.449 -4.646 2.56Z" fill="#F9F9F6"/>
 &lt;path d="M10.504 3.5C9.302 3.591 7.454 3.439 6.343 3.247C4.979 3.005 4.535 2.661 4.716 -0.958C4.807 -2.909 4.908 -5.194 5.363 -9.683C5.656 -12.564 6.221 -12.645 7.262 -12.807C8.019 -12.918 9.686 -12.958 11.251 -12.554C12.433 -12.251 13.221 -12.230 13.070 -9.46C12.918 -6.62 12.777 -3.819 12.534 -0.493C12.322 2.408 12.090 3.389 10.504 3.5Z" fill="#F9F9F6"/>
 &lt;path d="M9.17 -1.696C7.827 -1.535 6.686 -2.465 6.847 -3.749C7.009 -4.911 7.979 -5.872 9.292 -5.841C9.554 -5.861 9.827 -5.760 10.11 -5.528C11.11 -4.588 10.999 -2.798 9.898 -2.020C9.686 -1.858 9.443 -1.757 9.181 -1.696H9.17Z" fill="#2B2727"/>
 &lt;path d="M-5.99 -2.556C-7.333 -2.394 -8.474 -3.324 -8.313 -4.608C-8.151 -5.771 -7.182 -6.731 -5.869 -6.701C-5.606 -6.721 -5.333 -6.620 -5.050 -6.387C-4.050 -5.447 -4.162 -3.658 -5.262 -2.879C-5.475 -2.717 -5.717 -2.616 -5.980 -2.556H-5.99Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-9 -3C-5.93 -2.22 -1.45 -2.47 0.33 -3.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M7.14 -1.79C10.21 -1.01 14.69 -1.26 16.47 -2" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-4.395 13.347C-4.395 13.347 -0.061 15.005 2.888 14.56C5.827 14.125 7.373 13.326 7.373 13.326" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M5.32 13.789C5.32 13.789 1.13 13.319 0.18 13.319C-0.77 13.319 -3 13.789 -3 13.789C-3 13.789 -0.97 16.159 -0.23 16.499C0.51 16.839 1.26 17.379 1.53 17.309C1.8 17.239 3.83 15.549 4.44 15.149C5.05 14.749 5.32 13.799 5.32 13.799V13.789Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-14" transform="translate(256, 530)" style="--base-transform: translate(256px, 530px)">
 &lt;path d="M-4.394 -13.995L-3.303 -25.46C-3.283 -25.753 -3.485 -26.005 -3.788 -26.016C-4.859 -26.056 -7.121 -26.369 -6.96 -28.361C-6.747 -30.959 2.525 -31.192 2.131 -28.179C1.838 -25.925 0.181 -25.732 -0.647 -25.773C-0.909 -25.793 -1.142 -25.591 -1.182 -25.328L-2.536 -13.975" fill="#FFCF3F"/>
 &lt;path d="M-4.394 -13.995L-3.303 -25.46C-3.283 -25.753 -3.485 -26.005 -3.788 -26.016C-4.859 -26.056 -7.121 -26.369 -6.96 -28.361C-6.747 -30.959 2.525 -31.192 2.131 -28.179C1.838 -25.925 0.181 -25.732 -0.647 -25.773C-0.909 -25.793 -1.142 -25.591 -1.182 -25.328L-2.536 -13.975" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M9.959 -12.792L10.777 -24.277C10.798 -24.57 11.05 -24.782 11.343 -24.752C12.404 -24.61 14.696 -24.55 14.858 -26.541C15.07 -29.139 5.97 -30.909 5.858 -27.876C5.778 -25.611 7.384 -25.136 8.192 -25.045C8.454 -25.025 8.646 -24.782 8.646 -24.519L8.101 -13.106" fill="#FFCF3F"/>
 &lt;path d="M9.959 -12.792L10.777 -24.277C10.798 -24.57 11.05 -24.782 11.343 -24.752C12.404 -24.61 14.696 -24.55 14.858 -26.541C15.07 -29.139 5.97 -30.909 5.858 -27.876C5.778 -25.611 7.384 -25.136 8.192 -25.045C8.454 -25.025 8.646 -24.782 8.646 -24.519L8.101 -13.106" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M21.969 23.127C20.666 23.329 19.545 22.47 19.646 21.226C19.767 20.094 20.666 19.124 21.939 19.103C22.191 19.073 22.454 19.164 22.737 19.376C23.737 20.246 23.696 21.985 22.656 22.783C22.454 22.945 22.232 23.066 21.969 23.127Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-20.817 20.741C-22.12 20.943 -23.241 20.084 -23.14 18.84C-23.019 17.708 -22.12 16.738 -20.847 16.717C-20.595 16.687 -20.332 16.778 -20.049 16.99C-19.049 17.86 -19.09 19.599 -20.13 20.397C-20.332 20.559 -20.554 20.68 -20.817 20.741Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-15.817 31.204L-15.666 28.717C-12.534 28.879 -5.161 29.263 -4.353 29.556L-4.939 31.952C-5.535 31.78 -10.989 31.437 -15.827 31.204H-15.817Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.828 33.691C12.373 33.489 5.111 32.771 4.182 32.68L4.414 30.204C8.646 30.628 15.151 31.255 15.716 31.265L15.595 33.752C15.494 33.752 15.221 33.732 14.838 33.701L14.828 33.691Z" fill="#6497CC" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M2.566 -13.904L-16.534 -15.502L-20.12 27.545L-1.02 29.142L18.08 30.739L21.666 -12.307L2.566 -13.904Z" fill="#76B6DE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M2.565 -13.904L-1.021 29.142" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-5.191 9.894C-6.484 9.873 -8.484 9.681 -9.686 9.499C-11.151 9.277 -11.646 9.044 -11.504 6.891C-11.434 5.728 -11.353 4.364 -10.918 1.705C-10.646 -0.004 -10.04 -0.014 -8.908 -0.054C-8.09 -0.085 -6.302 -0.004 -4.606 0.33C-3.333 0.583 -2.474 0.633 -2.596 2.281C-2.717 3.929 -2.838 5.637 -3.06 7.619C-3.252 9.348 -3.495 9.914 -5.191 9.894Z" fill="#F9F9F6"/>
 &lt;path d="M11.161 11.359C9.868 11.339 7.868 11.147 6.666 10.965C5.202 10.743 4.707 10.51 4.848 8.347C4.919 7.184 5 5.819 5.434 3.161C5.707 1.452 6.313 1.442 7.444 1.402C8.262 1.371 10.05 1.452 11.747 1.786C13.02 2.039 13.878 2.089 13.757 3.737C13.636 5.435 13.515 7.093 13.292 9.075C13.1 10.803 12.858 11.37 11.161 11.349V11.359Z" fill="#F9F9F6"/>
 &lt;path d="M9.525 9.6C8.06 9.742 6.868 8.701 7.07 7.316C7.282 6.072 8.353 5.051 9.777 5.112C10.06 5.102 10.353 5.223 10.656 5.476C11.717 6.527 11.545 8.458 10.323 9.257C10.09 9.418 9.818 9.54 9.535 9.58L9.525 9.6Z" fill="#2B2727"/>
 &lt;path d="M-6.848 8.236C-8.313 8.377 -9.505 7.336 -9.303 5.951C-9.091 4.707 -8.02 3.686 -6.596 3.747C-6.313 3.737 -6.02 3.858 -5.717 4.111C-4.657 5.162 -4.828 7.093 -6.05 7.892C-6.283 8.054 -6.555 8.175 -6.838 8.215L-6.848 8.236Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-10 8C-6.93 8.78 -2.45 8.53 -0.67 7.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M6.14 9.21C9.21 9.99 13.69 9.74 15.47 9" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-5.97 17.819C-5.97 17.819 -2.707 20.023 -0.526 19.912C1.656 19.801 2.787 19.154 2.787 19.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M-7.252 17.294C-7.252 17.294 -3.889 15.777 -1.445 15.99C1 16.202 4.262 17.253 4.545 17.83C4.828 18.416 6.151 18.638 4.808 20.094C3.464 21.55 1.969 23.329 -1.02 22.965C-4.01 22.601 -5.606 21.681 -6.465 19.932C-7.323 18.183 -7.252 17.284 -7.252 17.284V17.294Z" fill="#231F20"/>
 &lt;/g>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-15" transform="translate(324, 450)" style="--base-transform: translate(324px, 450px)">
 &lt;path d="M21.754 13.526C20.451 13.738 19.319 12.879 19.42 11.625C19.531 10.493 20.43 9.523 21.703 9.492C21.956 9.462 22.218 9.553 22.501 9.765C23.511 10.635 23.471 12.373 22.43 13.172C22.228 13.334 22.006 13.455 21.743 13.516L21.754 13.526Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-21.033 11.292C-22.336 11.504 -23.467 10.645 -23.366 9.391C-23.255 8.259 -22.356 7.288 -21.083 7.258C-20.831 7.228 -20.568 7.319 -20.285 7.531C-19.275 8.4 -19.315 10.139 -20.356 10.938C-20.558 11.1 -20.78 11.221 -21.043 11.282L-21.033 11.292Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-16.003 21.735L-15.861 19.248C-12.72 19.39 -5.347 19.754 -4.549 20.047L-5.124 22.443C-5.72 22.271 -11.175 21.947 -16.013 21.735H-16.003Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M14.642 24.111C12.188 23.919 4.926 23.221 3.986 23.13L4.209 20.653C8.441 21.058 14.945 21.664 15.511 21.674L15.4 24.161C15.299 24.161 15.026 24.141 14.642 24.111Z" fill="#8FC77B" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M2.199 -23.04L-16.912 -24.567L-20.346 18.5L-1.236 20.026L17.864 21.553L21.299 -21.514L2.199 -23.04Z" fill="#E0DDD5" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M2.199 -23.04L-1.235 20.027" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M-5.265 2.861C-6.558 2.911 -8.568 2.699 -9.76 2.476C-11.225 2.203 -11.709 1.86 -11.457 -1.618C-11.326 -3.488 -11.184 -5.682 -10.629 -9.979C-10.265 -12.738 -9.659 -12.799 -8.528 -12.92C-7.71 -13.011 -5.912 -12.991 -4.225 -12.556C-2.962 -12.233 -2.104 -12.182 -2.306 -9.534C-2.508 -6.804 -2.71 -4.125 -3.023 -0.931C-3.286 1.86 -3.568 2.79 -5.275 2.85L-5.265 2.861Z" fill="#F9F9F6"/>
 &lt;path d="M11.097 4.266C9.804 4.316 7.794 4.104 6.602 3.881C5.138 3.608 4.653 3.255 4.905 -0.213C5.037 -2.083 5.178 -4.277 5.734 -8.574C6.097 -11.333 6.703 -11.394 7.835 -11.515C8.653 -11.606 10.451 -11.586 12.137 -11.151C13.41 -10.828 14.259 -10.777 14.057 -8.129C13.855 -5.47 13.653 -2.72 13.339 0.475C13.077 3.265 12.794 4.195 11.087 4.255L11.097 4.266Z" fill="#F9F9F6"/>
 &lt;path d="M9.704 -0.425C8.239 -0.284 7.047 -1.325 7.239 -2.7C7.441 -3.943 8.512 -4.964 9.936 -4.904C10.219 -4.914 10.512 -4.803 10.815 -4.54C11.875 -3.498 11.714 -1.568 10.502 -0.749C10.269 -0.587 9.997 -0.466 9.714 -0.425H9.704Z" fill="#2B2727"/>
 &lt;path d="M-6.68 -1.729C-8.145 -1.588 -9.337 -2.629 -9.145 -4.004C-8.943 -5.247 -7.872 -6.269 -6.448 -6.208C-6.165 -6.218 -5.872 -6.107 -5.569 -5.844C-4.509 -4.803 -4.67 -2.872 -5.882 -2.053C-6.115 -1.891 -6.387 -1.77 -6.67 -1.729H-6.68Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-9 -2C-5.93 -1.22 -1.45 -1.47 0.33 -2.21" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M7.14 0.21C10.21 0.99 14.69 0.74 16.47 0" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-4.97 9.819C-4.97 9.819 -1.707 12.023 0.474 11.912C2.656 11.801 3.787 11.154 3.787 11.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M4.44 9.927C4.44 9.927 0.552 7.086 -1.6 7.43C-3.751 7.774 -6.488 9.513 -6.488 9.513C-6.488 9.513 -3.903 13.405 -0.882 13.273C2.138 13.142 4.44 9.917 4.44 9.917V9.927Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-18.306 -27.054C-11.983 -20.28 -3.609 -16.135 -3.609 -16.135L-5.114 -20.958C-1.913 -18.319 11.44 -17.581 8.289 -14.396C7.521 -13.618 7.117 -19.724 8.4 -19.734C8.4 -19.734 14.481 -13.022 20.47 -13.345C22.359 -13.446 24.783 -16.145 24.783 -16.145L19.894 -24.011L-18.306 -27.064V-27.054Z" fill="#A297DE" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="agent" data-agent-id="agent-16" transform="translate(186, 441)" style="--base-transform: translate(186px, 441px)">
 &lt;path d="M27.113 13.185C25.992 13.68 24.79 13.165 24.588 12.022C24.427 10.991 25.002 9.909 26.144 9.586C26.366 9.505 26.629 9.525 26.922 9.647C28.022 10.192 28.396 11.759 27.649 12.72C27.507 12.912 27.336 13.074 27.113 13.185Z" fill="#007BFF" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-11.713 21.091C-12.834 21.586 -14.036 21.07 -14.238 19.928C-14.399 18.897 -13.824 17.815 -12.682 17.492C-12.46 17.411 -12.198 17.431 -11.905 17.552C-10.804 18.098 -10.43 19.665 -11.177 20.626C-11.319 20.818 -11.491 20.979 -11.713 21.091Z" fill="#007BFF" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M-4.784 29.269L-5.219 27.015C-2.381 26.418 4.306 25.043 5.094 25.114L5.134 27.389C4.569 27.389 -0.391 28.349 -4.774 29.269H-4.784Z" fill="#007BFF" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M23.195 24.315C20.952 24.71 14.296 25.771 13.427 25.903L13.054 23.638C16.942 23.021 22.902 22.061 23.407 21.94L23.881 24.184C23.791 24.204 23.538 24.255 23.185 24.315H23.195Z" fill="#007BFF" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.155 -14.97L-16.309 -11.917L-9.43 27.429L8.034 24.376L25.487 21.323L18.609 -18.023L1.155 -14.97Z" fill="#CFA991" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;path d="M1.155 -14.97L8.034 24.376" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;g class="eyes-open">
 &lt;path d="M18.941 0.831C18.861 3.207 16.659 5.744 14.265 6.422C11.033 7.321 7.457 6.523 7.306 4.309C7.134 1.832 9.043 -0.534 11.982 -1.282C15.235 -2.111 19.012 -1.383 18.941 0.831Z" fill="#F9F9F6"/>
 &lt;path d="M-10.208 5.926C-9.329 8.13 -6.4 9.778 -3.915 9.596C-0.572 9.343 2.519 7.372 1.913 5.239C1.236 2.853 -1.36 1.276 -4.38 1.569C-7.723 1.892 -11.026 3.864 -10.208 5.926Z" fill="#F9F9F6"/>
 &lt;path d="M12.69 4.986C11.417 5.451 10.104 4.804 9.963 3.52C9.862 2.358 10.579 1.195 11.861 0.922C12.114 0.841 12.397 0.882 12.73 1.043C13.922 1.731 14.215 3.5 13.316 4.511C13.144 4.713 12.932 4.875 12.69 4.986Z" fill="#2B2727"/>
 &lt;path d="M-2.269 7.604C-3.542 8.069 -4.855 7.422 -4.996 6.139C-5.097 4.976 -4.38 3.813 -3.098 3.54C-2.845 3.46 -2.562 3.5 -2.229 3.662C-1.037 4.349 -0.744 6.118 -1.643 7.129C-1.815 7.331 -2.027 7.493 -2.269 7.604Z" fill="#2B2727"/>
 &lt;/g>
 &lt;g class="eyes-closed">
 &lt;path d="M-5 7C-1.93 7.78 2.55 7.53 4.33 6.79" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;path d="M10.14 4.21C13.21 4.99 17.69 4.74 19.47 4" stroke="#231F20" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-closed">
 &lt;path d="M-0.97 13.819C-0.97 13.819 2.293 16.023 4.474 15.912C6.656 15.801 7.787 15.154 7.787 15.154" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;g class="mouths-open">
 &lt;path d="M7.246 13.357C4.923 13.64 0.61 15.277 0.579 15.561C0.549 15.844 4.276 18.068 6.326 17.865C9.66 17.532 12.579 14.155 12.649 13.448C12.71 12.74 7.246 13.357 7.246 13.357Z" fill="#231F20"/>
 &lt;/g>
 &lt;path d="M-20.299 -15.182C-20.299 -15.182 -21.4 -20.551 -17.157 -23.513C-12.925 -26.475 -7.562 -22.967 -7.562 -22.967C-7.562 -22.967 -5.784 -28.203 -1.734 -28.598C2.316 -28.992 5.882 -24.857 5.882 -24.857C5.882 -24.857 10.043 -30.023 15.346 -27.779C20.649 -25.535 20.124 -20.359 20.124 -20.359C20.124 -20.359 26.669 -22.724 27.386 -18.67C28.093 -14.616 28.547 -9.289 21.891 -8.439C15.235 -7.59 17.508 -11.806 17.508 -11.806C17.508 -11.806 15.306 -10.785 13.074 -10.876C10.841 -10.967 8.983 -12.544 8.043 -14.283C7.831 -11.856 4.882 -9.754 1.68 -9.036C-1.512 -8.318 -4.542 -11.118 -4.542 -11.118C-4.542 -11.118 -4.956 -8.035 -7.33 -7.135C-9.703 -6.246 -13.147 -6.913 -13.147 -6.913C-13.147 -6.913 -14.258 -2.424 -18.087 -2.556C-21.905 -2.687 -26.046 -4.608 -26.844 -9.177C-27.642 -13.747 -20.299 -15.193 -20.299 -15.193V-15.182Z" fill="#413470" stroke="#231F20" stroke-width="1.38" stroke-miterlimit="10"/>
 &lt;/g>
 &lt;/g>
 &lt;/svg>
 

 &lt;div class="section-content">
 &lt;div class="section-header">
 &lt;h2 id="vision-title">私たちのビジョン&lt;/h2>
 &lt;p class="description">
 もし、バラバラのタブに閉じ込められたAIツール同士が手を組めたら？&lt;br />
 もし、どれも企業マニュアル仕込みの平板な口調ではなく、ちゃんと個性を持っていたら？
 &lt;/p></description></item><item><title>プライバシーポリシー</title><link>https://2389.ai/ja/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/privacy/</guid><description>&lt;p>Last updated: March 26, 2025&lt;/p>
&lt;p>This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.&lt;/p>
&lt;p>We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.&lt;/p></description></item><item><title>会社について</title><link>https://2389.ai/ja/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/about/</guid><description>&lt;aside class="about-page__sidebar">
 



&lt;div class="supporters-list">
 &lt;h3 class="supporters-list__title">サポーター&lt;/h3>
 &lt;ul class="supporters-list__items">
 
 &lt;li class="supporters-list__item">
 
 &lt;a
 href="https://www.betaworks.com/"
 class="supporters-list__link"
 target="_blank"
 rel="noopener noreferrer">
 
 &lt;span class="supporters-list__name">Betaworks&lt;/span>
 
 &lt;/a>
 
 &lt;/li>
 
 &lt;li class="supporters-list__item">
 
 &lt;a
 href="https://www.bloombergbeta.com/"
 class="supporters-list__link"
 target="_blank"
 rel="noopener noreferrer">
 
 &lt;span class="supporters-list__name">Bloomberg Beta&lt;/span>
 
 &lt;/a>
 
 &lt;/li>
 
 &lt;li class="supporters-list__item">
 
 &lt;a
 href="https://factorialcap.com/"
 class="supporters-list__link"
 target="_blank"
 rel="noopener noreferrer">
 
 &lt;span class="supporters-list__name">Factorial Capital&lt;/span>
 
 &lt;/a>
 
 &lt;/li>
 
 &lt;li class="supporters-list__item">
 
 &lt;a
 href="https://www.hydeparkvp.com/"
 class="supporters-list__link"
 target="_blank"
 rel="noopener noreferrer">
 
 &lt;span class="supporters-list__name">Hyde Park Venture Partners&lt;/span>
 
 &lt;/a>
 
 &lt;/li>
 
 &lt;/ul>
&lt;/div>

&lt;/aside>

&lt;h2 id="私たちの仕事">私たちの仕事&lt;/h2>
&lt;p>2389 Research Inc はシカゴを拠点とする企業で、ソフトウェアを構築し、AIエージェント・開発者ツール・人間とコンピュータの相互作用に関する研究を発表しています。プロダクトを出荷し、発見したことを記事にまとめ、できる限りオープンソースとして公開しています。&lt;/p>
&lt;h2 id="私たちの進め方">私たちの進め方&lt;/h2>
&lt;p>すべてを公開の場で行います。プロダクトは早い段階でリリースし、ブログでは試行錯誤の過程をそのまま伝え、研究は結果が都合の悪いものであっても発表します。&lt;/p>
&lt;h2 id="私たちが取り組んでいること">私たちが取り組んでいること&lt;/h2>
&lt;p>現在はAIエージェントインフラ、CLIツール、そして人々が実際の仕事でLLMをどう使っているかの応用研究に注力しています。実験の一部はプロダクトになり、それ以外は論文やブログ記事として公開されます。&lt;/p>
&lt;h2 id="お問い合わせ">お問い合わせ&lt;/h2>
&lt;p>&lt;strong>メール:&lt;/strong> &lt;a href="mailto:hello@2389.ai">hello@2389.ai&lt;/a>
&lt;strong>電話:&lt;/strong> +1 (814) 666-2389&lt;/p>


&lt;section class="about-page__team">
 &lt;header class="about-page__team-header">
 &lt;h2 class="about-page__team-title">チーム&lt;/h2>
 &lt;p class="about-page__team-description">2389の人間たち。&lt;/p>
 &lt;/header>

 &lt;div class="about-page__team-grid">
 
 














 
 



&lt;a href="https://2389.ai/ja/team/harper-reed/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/4de287508b565f38122a4bc24183caebe9246a704a3b8370b3918be1de90cded?s=600"
 alt="Harper Reed"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Harper Reed&lt;/h3>
 
 &lt;span class="team-card__role">CEO / Founder&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/dylan-richard/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #0a0a0a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/28d83c3fd77f4e804d4f9af8ac0e582979641103bff006fc23dd0477624aba0a?s=600"
 alt="Dylan Richard"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Dylan Richard&lt;/h3>
 
 &lt;span class="team-card__role">CTO / Founder&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/ivan-indrautama/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #1f4ae6">
 
 &lt;img
 src="https://www.gravatar.com/avatar/9133980ee1fe006cd0d72c5df6798655260df1538a1e939efd931e3b07a2af1f?s=600"
 alt="Ivan Indrautama"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Ivan Indrautama&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/clint-ecker/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #2c8a3a">
 
 &lt;img
 src="https://www.gravatar.com/avatar/b4f88be50a7a923a6858f1656f81c76b474924270114980bfd58473341796a37?s=600"
 alt="Clint Ecker"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Clint Ecker&lt;/h3>
 
 &lt;span class="team-card__role">Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/sophie-davis/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #e6196e">
 
 &lt;img
 src="https://www.gravatar.com/avatar/05a4efe62043524877530a6a4cf305e902ac8f0ea46776c632ecccf579d22379?s=600"
 alt="Sophie Davis"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Sophie Davis&lt;/h3>
 
 &lt;span class="team-card__role">Operations Associate&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 














 
 



&lt;a href="https://2389.ai/ja/team/michael-sugimura/" class="team-card">
 &lt;div class="team-card__portrait" style="--product-color: #f0d6d0">
 
 &lt;img
 src="https://www.gravatar.com/avatar/1266ac4fb6547b14ebeb0389ba5dcecf7023c1387f0c53e993ce1db3f5d6a6d6?s=600"
 alt="Michael Sugimura"
 loading="lazy"
 decoding="async" />
 
 &lt;/div>
 &lt;div class="team-card__info">
 &lt;h3 class="team-card__name">Michael Sugimura&lt;/h3>
 
 &lt;span class="team-card__role">ML Engineer&lt;/span>
 
 &lt;/div>
&lt;/a>

 
 &lt;/div>
&lt;/section>



&lt;section class="work-graph" id="knowledge-graph">
 &lt;div class="work-graph__header">
 &lt;h2 class="work-graph__title">つながり&lt;/h2>
 &lt;p class="work-graph__subtitle">製品、記事、アイデアの相互関係。&lt;/p>
 &lt;/div>
 &lt;div class="work-graph__tabs" role="tablist" aria-label="ビジュアライゼーションのタブ">
 &lt;button class="work-graph__tab work-graph__tab--active" role="tab" aria-selected="true" aria-controls="panel-network" id="tab-network">ネットワーク&lt;/button>
 &lt;button class="work-graph__tab" role="tab" aria-selected="false" aria-controls="panel-chord" id="tab-chord">コード図&lt;/button>
 &lt;button class="work-graph__tab" role="tab" aria-selected="false" aria-controls="panel-cloud" id="tab-cloud">タグ&lt;/button>
 &lt;/div>
 &lt;div class="work-graph__panel work-graph__panel--active" role="tabpanel" id="panel-network" aria-labelledby="tab-network" aria-hidden="false">
 &lt;div class="work-graph__container" id="graph-container" role="region" aria-label="製品、投稿、コンセプト間のつながりを示すインタラクティブな知識グラフ">
 &lt;/div>
 &lt;/div>
 &lt;div class="work-graph__panel" role="tabpanel" id="panel-chord" aria-labelledby="tab-chord" aria-hidden="true">
 &lt;div class="work-graph__container" id="chord-container" role="region" aria-label="製品と投稿の間のコンセプトの流れを示すコード図">
 &lt;/div>
 &lt;/div>
 &lt;div class="work-graph__panel" role="tabpanel" id="panel-cloud" aria-labelledby="tab-cloud" aria-hidden="true">
 &lt;div class="work-graph__container" id="cloud-container" role="region" aria-label="コンセプトの頻度を示すタグクラウド">
 &lt;/div>
 &lt;/div>
 
&lt;script type="application/json" id="graph-data">{"edges":[{"source":"product-skills-marketplace","target":"concept-claude-code"},{"source":"product-skills-marketplace","target":"concept-plugins"},{"source":"product-skills-marketplace","target":"concept-mcp"},{"source":"product-skills-marketplace","target":"concept-developer-tools"},{"source":"product-skills-marketplace","target":"concept-open-source"},{"source":"product-mammoth","target":"concept-pipeline"},{"source":"product-mammoth","target":"concept-agents"},{"source":"product-mammoth","target":"concept-dot"},{"source":"product-mammoth","target":"concept-go"},{"source":"product-mammoth","target":"concept-cli"},{"source":"product-mammoth","target":"concept-orchestration"},{"source":"product-mammoth","target":"concept-multi-agent"},{"source":"product-mammoth","target":"concept-checkpointing"},{"source":"product-botboard","target":"concept-agents"},{"source":"product-botboard","target":"concept-collaboration"},{"source":"product-botboard","target":"concept-teams"},{"source":"product-botboard","target":"concept-platform"},{"source":"product-botboard","target":"concept-social-media"},{"source":"product-botboard","target":"concept-multi-agent"},{"source":"product-smasher","target":"concept-pipeline"},{"source":"product-smasher","target":"concept-agents"},{"source":"product-smasher","target":"concept-dot"},{"source":"product-smasher","target":"concept-rust"},{"source":"product-smasher","target":"concept-cli"},{"source":"product-smasher","target":"concept-orchestration"},{"source":"product-smasher","target":"concept-web-dashboard"},{"source":"product-smasher","target":"concept-multi-agent"},{"source":"product-smasher","target":"concept-checkpointing"},{"source":"product-jeff","target":"concept-agents"},{"source":"product-jeff","target":"concept-terminal"},{"source":"product-jeff","target":"concept-google"},{"source":"product-jeff","target":"concept-email"},{"source":"product-jeff","target":"concept-calendar"},{"source":"product-jeff","target":"concept-cli"},{"source":"product-jeff","target":"concept-productivity"},{"source":"product-jeff","target":"concept-rust"},{"source":"product-jeff","target":"concept-tui"},{"source":"product-jeff","target":"concept-mcp"},{"source":"product-mux","target":"concept-go"},{"source":"product-mux","target":"concept-rust"},{"source":"product-mux","target":"concept-agents"},{"source":"product-mux","target":"concept-mcp"},{"source":"product-mux","target":"concept-orchestration"},{"source":"product-mux","target":"concept-tool-execution"},{"source":"product-mux","target":"concept-library"},{"source":"product-mux","target":"concept-infrastructure"},{"source":"product-mux","target":"concept-multi-agent"},{"source":"product-ish","target":"concept-api"},{"source":"product-ish","target":"concept-mock"},{"source":"product-ish","target":"concept-google"},{"source":"product-ish","target":"concept-github"},{"source":"product-ish","target":"concept-twilio"},{"source":"product-ish","target":"concept-testing"},{"source":"product-ish","target":"concept-development"},{"source":"product-ish","target":"concept-go"},{"source":"product-ish","target":"concept-cli"},{"source":"product-ish","target":"concept-open-source"},{"source":"product-ish","target":"concept-developer-tools"},{"source":"product-coven","target":"concept-agents"},{"source":"product-coven","target":"concept-orchestration"},{"source":"product-coven","target":"concept-grpc"},{"source":"product-coven","target":"concept-rust"},{"source":"product-coven","target":"concept-go"},{"source":"product-coven","target":"concept-swift"},{"source":"product-coven","target":"concept-multi-agent"},{"source":"product-coven","target":"concept-tailscale"},{"source":"product-coven","target":"concept-mcp"},{"source":"product-coven","target":"concept-self-hosted"},{"source":"product-coven","target":"concept-claude-code"},{"source":"product-coven","target":"concept-collaboration"},{"source":"product-coven","target":"concept-infrastructure"},{"source":"product-soloclaw","target":"concept-agents"},{"source":"product-soloclaw","target":"concept-terminal"},{"source":"product-soloclaw","target":"concept-tui"},{"source":"product-soloclaw","target":"concept-rust"},{"source":"product-soloclaw","target":"concept-mcp"},{"source":"product-soloclaw","target":"concept-tool-use"},{"source":"product-soloclaw","target":"concept-openclaw"},{"source":"product-soloclaw","target":"concept-cli"},{"source":"product-ccvault","target":"concept-claude-code"},{"source":"product-ccvault","target":"concept-search"},{"source":"product-ccvault","target":"concept-analytics"},{"source":"product-ccvault","target":"concept-mcp"},{"source":"product-ccvault","target":"concept-cli"},{"source":"product-ccvault","target":"concept-developer-tools"},{"source":"product-ccvault","target":"concept-open-source"},{"source":"product-gsuite-mcp","target":"concept-mcp"},{"source":"product-gsuite-mcp","target":"concept-google"},{"source":"product-gsuite-mcp","target":"concept-email"},{"source":"product-gsuite-mcp","target":"concept-calendar"},{"source":"product-gsuite-mcp","target":"concept-contacts"},{"source":"product-gsuite-mcp","target":"concept-tasks"},{"source":"product-gsuite-mcp","target":"concept-claude-code"},{"source":"product-gsuite-mcp","target":"concept-agents"},{"source":"product-gsuite-mcp","target":"concept-productivity"},{"source":"product-gsuite-mcp","target":"concept-go"},{"source":"product-turtle","target":"concept-go"},{"source":"product-turtle","target":"concept-tui"},{"source":"product-turtle","target":"concept-terminal"},{"source":"product-turtle","target":"concept-learning"},{"source":"product-turtle","target":"concept-tmux"},{"source":"product-turtle","target":"concept-spaced-repetition"},{"source":"product-turtle","target":"concept-cli"},{"source":"product-turtle","target":"concept-education"},{"source":"product-turtle","target":"concept-open-source"},{"source":"product-phonegang","target":"concept-android"},{"source":"product-phonegang","target":"concept-automation"},{"source":"product-phonegang","target":"concept-accessibility"},{"source":"product-phonegang","target":"concept-mcp"},{"source":"product-phonegang","target":"concept-cli"},{"source":"product-phonegang","target":"concept-usb"},{"source":"product-phonegang","target":"concept-adb"},{"source":"product-phonegang","target":"concept-agents"},{"source":"product-phonegang","target":"concept-open-source"},{"source":"product-dot-viewer","target":"concept-macos"},{"source":"product-dot-viewer","target":"concept-graphviz"},{"source":"product-dot-viewer","target":"concept-dot"},{"source":"product-dot-viewer","target":"concept-swiftui"},{"source":"product-dot-viewer","target":"concept-rust"},{"source":"product-dot-viewer","target":"concept-editor"},{"source":"product-dot-viewer","target":"concept-visualization"},{"source":"product-dot-viewer","target":"concept-pipeline"},{"source":"product-summarize-meetings","target":"concept-claude-code"},{"source":"product-summarize-meetings","target":"concept-agent-skill"},{"source":"product-summarize-meetings","target":"concept-obsidian"},{"source":"product-summarize-meetings","target":"concept-meetings"},{"source":"product-summarize-meetings","target":"concept-knowledge-graph"},{"source":"product-summarize-meetings","target":"concept-plugin"},{"source":"product-summarize-meetings","target":"concept-open-source"},{"source":"product-summarize-meetings","target":"concept-documentation"},{"source":"product-summarize-meetings","target":"concept-productivity"},{"source":"product-fresh-eyes-review","target":"concept-claude-code"},{"source":"product-fresh-eyes-review","target":"concept-agent-skill"},{"source":"product-fresh-eyes-review","target":"concept-code-review"},{"source":"product-fresh-eyes-review","target":"concept-security"},{"source":"product-fresh-eyes-review","target":"concept-plugin"},{"source":"product-fresh-eyes-review","target":"concept-open-source"},{"source":"product-fresh-eyes-review","target":"concept-quality"},{"source":"product-fresh-eyes-review","target":"concept-testing"},{"source":"product-translator","target":"concept-translation"},{"source":"product-translator","target":"concept-cli"},{"source":"product-translator","target":"concept-openai"},{"source":"product-translator","target":"concept-anthropic"},{"source":"product-translator","target":"concept-markdown"},{"source":"product-translator","target":"concept-multilingual"},{"source":"product-translator","target":"concept-pipeline"},{"source":"product-translator","target":"concept-refinement"},{"source":"product-meme-rodeo","target":"concept-memes"},{"source":"product-meme-rodeo","target":"concept-image-sharing"},{"source":"product-meme-rodeo","target":"concept-firebase"},{"source":"product-meme-rodeo","target":"concept-vector-search"},{"source":"product-meme-rodeo","target":"concept-moderation"},{"source":"product-meme-rodeo","target":"concept-social-media"},{"source":"product-meme-rodeo","target":"concept-embeddings"},{"source":"product-scenario-testing","target":"concept-claude-code"},{"source":"product-scenario-testing","target":"concept-agent-skill"},{"source":"product-scenario-testing","target":"concept-testing"},{"source":"product-scenario-testing","target":"concept-integration"},{"source":"product-scenario-testing","target":"concept-plugin"},{"source":"product-scenario-testing","target":"concept-open-source"},{"source":"product-scenario-testing","target":"concept-quality"},{"source":"product-scenario-testing","target":"concept-agents"},{"source":"product-test-kitchen","target":"concept-claude-code"},{"source":"product-test-kitchen","target":"concept-agent-skill"},{"source":"product-test-kitchen","target":"concept-architecture"},{"source":"product-test-kitchen","target":"concept-parallel"},{"source":"product-test-kitchen","target":"concept-plugin"},{"source":"product-test-kitchen","target":"concept-open-source"},{"source":"product-test-kitchen","target":"concept-multi-agent"},{"source":"product-test-kitchen","target":"concept-testing"},{"source":"product-test-kitchen","target":"concept-agents"},{"source":"product-test-kitchen","target":"concept-decision-making"},{"source":"product-speed-run","target":"concept-claude-code"},{"source":"product-speed-run","target":"concept-agent-skill"},{"source":"product-speed-run","target":"concept-codegen"},{"source":"product-speed-run","target":"concept-cerebras"},{"source":"product-speed-run","target":"concept-parallel"},{"source":"product-speed-run","target":"concept-plugin"},{"source":"product-speed-run","target":"concept-open-source"},{"source":"product-speed-run","target":"concept-multi-model"},{"source":"product-speed-run","target":"concept-agents"},{"source":"product-binary-re","target":"concept-claude-code"},{"source":"product-binary-re","target":"concept-reverse-engineering"},{"source":"product-binary-re","target":"concept-binary"},{"source":"product-binary-re","target":"concept-security"},{"source":"product-binary-re","target":"concept-plugin"},{"source":"product-binary-re","target":"concept-open-source"},{"source":"product-pulse","target":"concept-mcp"},{"source":"product-pulse","target":"concept-social-media"},{"source":"product-pulse","target":"concept-go"},{"source":"product-pulse","target":"concept-cli"},{"source":"product-pulse","target":"concept-local-first"},{"source":"product-pulse","target":"concept-embeddings"},{"source":"product-pulse","target":"concept-agents"},{"source":"product-pulse","target":"concept-collaboration"},{"source":"product-building-multiagent-systems","target":"concept-claude-code"},{"source":"product-building-multiagent-systems","target":"concept-multi-agent"},{"source":"product-building-multiagent-systems","target":"concept-architecture"},{"source":"product-building-multiagent-systems","target":"concept-orchestration"},{"source":"product-building-multiagent-systems","target":"concept-plugin"},{"source":"product-building-multiagent-systems","target":"concept-open-source"},{"source":"product-building-multiagent-systems","target":"concept-agents"},{"source":"product-building-multiagent-systems","target":"concept-pipeline"},{"source":"product-documentation-audit","target":"concept-documentation"},{"source":"product-documentation-audit","target":"concept-audit"},{"source":"product-documentation-audit","target":"concept-verification"},{"source":"product-documentation-audit","target":"concept-quality"},{"source":"product-documentation-audit","target":"concept-claude-code"},{"source":"product-documentation-audit","target":"concept-plugin"},{"source":"product-documentation-audit","target":"concept-open-source"},{"source":"product-documentation-audit","target":"concept-code-review"},{"source":"product-documentation-audit","target":"concept-agent-skill"},{"source":"product-tracker","target":"concept-pipeline"},{"source":"product-tracker","target":"concept-orchestration"},{"source":"product-tracker","target":"concept-tui"},{"source":"product-tracker","target":"concept-go"},{"source":"product-tracker","target":"concept-cli"},{"source":"product-tracker","target":"concept-checkpointing"},{"source":"product-tracker","target":"concept-dot"},{"source":"product-tracker","target":"concept-agents"},{"source":"product-tracker","target":"concept-multi-agent"},{"source":"product-dippin-lang","target":"concept-dsl"},{"source":"product-dippin-lang","target":"concept-pipeline"},{"source":"product-dippin-lang","target":"concept-go"},{"source":"product-dippin-lang","target":"concept-cli"},{"source":"product-dippin-lang","target":"concept-language"},{"source":"product-dippin-lang","target":"concept-lsp"},{"source":"product-dippin-lang","target":"concept-dot"},{"source":"product-dippin-lang","target":"concept-agents"},{"source":"product-dippin-lang","target":"concept-tracker"},{"source":"product-dotpowers","target":"concept-pipeline"},{"source":"product-dotpowers","target":"concept-dot"},{"source":"product-dotpowers","target":"concept-graphviz"},{"source":"product-dotpowers","target":"concept-superpowers"},{"source":"product-dotpowers","target":"concept-tdd"},{"source":"product-dotpowers","target":"concept-multi-model"},{"source":"product-dotpowers","target":"concept-code-review"},{"source":"product-dotpowers","target":"concept-agents"},{"source":"product-dotpowers","target":"concept-orchestration"},{"source":"product-dotpowers","target":"concept-claude-code"},{"source":"product-simmer","target":"concept-refinement"},{"source":"product-simmer","target":"concept-agent-skill"},{"source":"product-simmer","target":"concept-iteration"},{"source":"product-simmer","target":"concept-writing"},{"source":"product-simmer","target":"concept-prompts"},{"source":"product-simmer","target":"concept-quality"},{"source":"product-simmer","target":"concept-skills"},{"source":"product-simmer","target":"concept-claude-code"},{"source":"product-deliberation","target":"concept-decision-making"},{"source":"product-deliberation","target":"concept-discernment"},{"source":"product-deliberation","target":"concept-deliberation"},{"source":"product-deliberation","target":"concept-unity"},{"source":"product-deliberation","target":"concept-agent-skill"},{"source":"product-deliberation","target":"concept-claude-code"},{"source":"product-deliberation","target":"concept-agents"},{"source":"product-deliberation","target":"concept-collaboration"},{"source":"product-worldview-synthesis","target":"concept-worldview"},{"source":"product-worldview-synthesis","target":"concept-agent-skill"},{"source":"product-worldview-synthesis","target":"concept-philosophy"},{"source":"product-worldview-synthesis","target":"concept-values"},{"source":"product-worldview-synthesis","target":"concept-beliefs"},{"source":"product-worldview-synthesis","target":"concept-narrative"},{"source":"product-worldview-synthesis","target":"concept-claude-code"},{"source":"product-worldview-synthesis","target":"concept-decision-making"},{"source":"post-horton-hears-a-whisper","target":"concept-horton"},{"source":"post-horton-hears-a-whisper","target":"concept-voice-transcription"},{"source":"post-horton-hears-a-whisper","target":"concept-esp32"},{"source":"post-horton-hears-a-whisper","target":"concept-whisper"},{"source":"post-horton-hears-a-whisper","target":"concept-fastapi"},{"source":"post-horton-hears-a-whisper","target":"concept-grafana"},{"source":"post-horton-hears-a-whisper","target":"concept-mqtt"},{"source":"post-horton-hears-a-whisper","target":"concept-slack"},{"source":"post-horton-hears-a-whisper","target":"concept-fleet"},{"source":"post-horton-hears-a-whisper","target":"concept-hardware"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"product-tracker"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"product-dippin-lang"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-pipeline"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-orchestration"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-dsl"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-go"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-cli"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-agents"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-multi-agent"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-dippin"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-tracker"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-language-design"},{"source":"post-why-we-built-a-language-for-ai-pipelines","target":"concept-tooling"},{"source":"post-word-compiler","target":"concept-writing"},{"source":"post-word-compiler","target":"concept-fiction"},{"source":"post-word-compiler","target":"concept-compiler"},{"source":"post-word-compiler","target":"concept-context-window"},{"source":"post-word-compiler","target":"concept-prompt-engineering"},{"source":"post-word-compiler","target":"concept-software-engineering"},{"source":"post-word-compiler","target":"concept-creative-writing"},{"source":"post-word-compiler","target":"concept-natural-language-processing"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-micasso"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-ai-art"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-pen-plotter"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-raspberry-pi"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-3d-printer"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-generative-art"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-maker"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-photo-booth"},{"source":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","target":"concept-hardware"},{"source":"post-simmer","target":"product-simmer"},{"source":"post-simmer","target":"concept-agents"},{"source":"post-simmer","target":"concept-self-improvement"},{"source":"post-simmer","target":"concept-claude-code"},{"source":"post-simmer","target":"concept-agent-skill"},{"source":"post-simmer","target":"concept-skills"},{"source":"post-simmer","target":"concept-reinforcement-learning"},{"source":"post-simmer","target":"concept-refinement"},{"source":"post-simmer","target":"concept-iteration"},{"source":"post-simmer","target":"concept-quality"},{"source":"post-simmer","target":"concept-multi-agent"},{"source":"post-cookoff-same-spec-different-code","target":"product-test-kitchen"},{"source":"post-cookoff-same-spec-different-code","target":"concept-agents"},{"source":"post-cookoff-same-spec-different-code","target":"concept-engineering"},{"source":"post-cookoff-same-spec-different-code","target":"concept-decision-making"},{"source":"post-cookoff-same-spec-different-code","target":"concept-multi-agent"},{"source":"post-cookoff-same-spec-different-code","target":"concept-claude-code"},{"source":"post-cookoff-same-spec-different-code","target":"concept-testing"},{"source":"post-cookoff-same-spec-different-code","target":"concept-code-review"},{"source":"post-cookoff-same-spec-different-code","target":"concept-refinement"},{"source":"post-cookoff-same-spec-different-code","target":"concept-agent-skill"},{"source":"post-omakase-show-me","target":"product-test-kitchen"},{"source":"post-omakase-show-me","target":"concept-decision-making"},{"source":"post-omakase-show-me","target":"concept-agents"},{"source":"post-omakase-show-me","target":"concept-productivity"},{"source":"post-omakase-show-me","target":"concept-claude-code"},{"source":"post-omakase-show-me","target":"concept-multi-agent"},{"source":"post-omakase-show-me","target":"concept-refinement"},{"source":"post-omakase-show-me","target":"concept-iteration"},{"source":"post-omakase-show-me","target":"concept-agent-skill"},{"source":"post-deliberation-perspectives-not-answers","target":"product-deliberation"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-decision-making"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-agents"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-design"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-claude-code"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-deliberation"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-collaboration"},{"source":"post-deliberation-perspectives-not-answers","target":"concept-agent-skill"},{"source":"post-the-dark-factory-is-a-dotfile","target":"product-mammoth"},{"source":"post-the-dark-factory-is-a-dotfile","target":"product-smasher"},{"source":"post-the-dark-factory-is-a-dotfile","target":"product-tracker"},{"source":"post-the-dark-factory-is-a-dotfile","target":"product-dotpowers"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-dark-factory"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-attractor"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-pipeline"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-dot"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-agents"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-orchestration"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-go"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-rust"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-multi-agent"},{"source":"post-the-dark-factory-is-a-dotfile","target":"concept-cli"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-nvidia"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-gpu"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-machine-learning"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-llm"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-infrastructure"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-hardware"},{"source":"post-week-0-NVIDIA-DGX-spark-experiments","target":"concept-training"},{"source":"post-documenting-learning","target":"concept-engineering"},{"source":"post-documenting-learning","target":"concept-documentation"},{"source":"post-documenting-learning","target":"concept-llm"},{"source":"post-documenting-learning","target":"concept-writing"},{"source":"post-documenting-learning","target":"concept-collaboration"},{"source":"post-experimenting-with-rag","target":"concept-knowledge-graph"},{"source":"post-experimenting-with-rag","target":"concept-rag"},{"source":"post-experimenting-with-rag","target":"concept-llm"},{"source":"post-experimenting-with-rag","target":"concept-semantic-search"},{"source":"post-experimenting-with-rag","target":"concept-embeddings"},{"source":"post-experimenting-with-rag","target":"concept-infrastructure"},{"source":"post-self-learning-llms","target":"concept-collaboration"},{"source":"post-self-learning-llms","target":"concept-agents"},{"source":"post-self-learning-llms","target":"concept-llm"},{"source":"post-self-learning-llms","target":"concept-multi-agent"},{"source":"post-self-learning-llms","target":"concept-orchestration"},{"source":"post-self-learning-llms","target":"concept-agent-skill"},{"source":"post-team-spirit-matters","target":"concept-collaboration"},{"source":"post-team-spirit-matters","target":"concept-agents"},{"source":"post-team-spirit-matters","target":"concept-multi-agent"},{"source":"post-team-spirit-matters","target":"concept-orchestration"},{"source":"post-team-spirit-matters","target":"concept-social-media"}],"nodes":[{"description":"Claude Code向けのオープンソースのプラグインとMCPサーバーを厳選したコレクション。実際に仕事をこなすツール群です。","id":"product-skills-marketplace","label":"スキルマーケットプレイス","productType":"Skill","slug":"/ja/research/products/skills-marketplace/","status":"Unknown","type":"product"},{"id":"concept-claude-code","label":"claude-code","type":"concept"},{"id":"concept-plugins","label":"plugins","type":"concept"},{"id":"concept-mcp","label":"mcp","type":"concept"},{"id":"concept-developer-tools","label":"developer-tools","type":"concept"},{"id":"concept-open-source","label":"open-source","type":"concept"},{"description":"DOTベースのパイプラインランナー。有向グラフをチェックポイント、リトライ、ヒューマン・イン・ザ・ループゲートを備えたマルチステージAIコーディングワークフローに変換する。","id":"product-mammoth","label":"Mammoth","productType":"Tool","slug":"/ja/research/products/mammoth/","status":"Alpha","type":"product"},{"id":"concept-pipeline","label":"pipeline","type":"concept"},{"id":"concept-agents","label":"agents","type":"concept"},{"id":"concept-dot","label":"dot","type":"concept"},{"id":"concept-go","label":"go","type":"concept"},{"id":"concept-cli","label":"cli","type":"concept"},{"id":"concept-orchestration","label":"orchestration","type":"concept"},{"id":"concept-multi-agent","label":"multi-agent","type":"concept"},{"id":"concept-checkpointing","label":"checkpointing","type":"concept"},{"description":"AIエージェントと人間がポスト、日記エントリー、日次サマリーを共有するチームコラボレーションプラットフォーム。","id":"product-botboard","label":"BotBoard","productType":"Platform","slug":"/ja/research/products/botboard/","status":"Unknown","type":"product"},{"id":"concept-collaboration","label":"collaboration","type":"concept"},{"id":"concept-teams","label":"teams","type":"concept"},{"id":"concept-platform","label":"platform","type":"concept"},{"id":"concept-social-media","label":"social-media","type":"concept"},{"description":"DOT有向グラフをマルチステップAIワークフローに変換するRustパイプラインランナー。ストリーミング、Webダッシュボード、ヒューマンインザループゲートを備える。","id":"product-smasher","label":"Smasher","productType":"Tool","slug":"/ja/research/products/smasher/","status":"Alpha","type":"product"},{"id":"concept-rust","label":"rust","type":"concept"},{"id":"concept-web-dashboard","label":"web-dashboard","type":"concept"},{"description":"Gmail、Calendar、Tasks、Contacts向けAIターミナルアシスタント。5つのプロバイダーバックエンド、vimバインディング付きTUI、ローカルストレージ。","id":"product-jeff","label":"Jeff","productType":"Tool","slug":"/ja/research/products/jeff/","status":"Beta","type":"product"},{"id":"concept-terminal","label":"terminal","type":"concept"},{"id":"concept-google","label":"google","type":"concept"},{"id":"concept-email","label":"email","type":"concept"},{"id":"concept-calendar","label":"calendar","type":"concept"},{"id":"concept-productivity","label":"productivity","type":"concept"},{"id":"concept-tui","label":"tui","type":"concept"},{"description":"AIエージェント構築のためのインフラライブラリ。ツール実行、マルチプロバイダーLLMサポート、MCP統合、承認ゲート、マルチエージェントオーケストレーション。","id":"product-mux","label":"Mux","productType":"Tool","slug":"/ja/research/products/mux/","status":"Beta","type":"product"},{"id":"concept-tool-execution","label":"tool-execution","type":"concept"},{"id":"concept-library","label":"library","type":"concept"},{"id":"concept-infrastructure","label":"infrastructure","type":"concept"},{"description":"ローカルAPIモックサーバー。Google、GitHub、Twilioなどの偽バージョンを本番に触れずに動かす。","id":"product-ish","label":"ISH","productType":"Tool","slug":"/ja/research/products/ish/","status":"Unknown","type":"product"},{"id":"concept-api","label":"api","type":"concept"},{"id":"concept-mock","label":"mock","type":"concept"},{"id":"concept-github","label":"github","type":"concept"},{"id":"concept-twilio","label":"twilio","type":"concept"},{"id":"concept-testing","label":"testing","type":"concept"},{"id":"concept-development","label":"development","type":"concept"},{"description":"セルフホスト型AIエージェントオーケストレーション。GoゲートウェイがClaude Code、muxエージェント、ネイティブクライアント、チャットブリッジをTailscale越しに接続。","id":"product-coven","label":"Coven","productType":"Platform","slug":"/ja/research/products/coven/","status":"Alpha","type":"product"},{"id":"concept-grpc","label":"grpc","type":"concept"},{"id":"concept-swift","label":"swift","type":"concept"},{"id":"concept-tailscale","label":"tailscale","type":"concept"},{"id":"concept-self-hosted","label":"self-hosted","type":"concept"},{"description":"レイヤード式ツール承認を備えた、Rustで構築されたシングルインスタンスのopenclaw互換ターミナルAIエージェント。","id":"product-soloclaw","label":"Soloclaw","productType":"Tool","slug":"/ja/research/products/soloclaw/","status":"Alpha","type":"product"},{"id":"concept-tool-use","label":"tool-use","type":"concept"},{"id":"concept-openclaw","label":"openclaw","type":"concept"},{"description":"Claude Codeの会話をアーカイブして検索。~/.claudeに保存されたすべての内容に対する全文検索、分析、MCP連携。","id":"product-ccvault","label":"ccvault","productType":"Tool","slug":"/ja/research/products/ccvault/","status":"Beta","type":"product"},{"id":"concept-search","label":"search","type":"concept"},{"id":"concept-analytics","label":"analytics","type":"concept"},{"description":"Gmail、Google Calendar、Contacts、TasksをAIに接続するMCPサーバー。","id":"product-gsuite-mcp","label":"GSuite MCP","productType":"Tool","slug":"/ja/research/products/gsuite-mcp/","status":"Beta","type":"product"},{"id":"concept-contacts","label":"contacts","type":"concept"},{"id":"concept-tasks","label":"tasks","type":"concept"},{"description":"ターミナル版 Duolingo。ゲーミフィケーションされたスペーシングマイクロラーニングで tmux とシェルコマンドを TUI で学習。","id":"product-turtle","label":"Turtle","productType":"Tool","slug":"/ja/research/products/turtle/","status":"Beta","type":"product"},{"id":"concept-learning","label":"learning","type":"concept"},{"id":"concept-tmux","label":"tmux","type":"concept"},{"id":"concept-spaced-repetition","label":"spaced-repetition","type":"concept"},{"id":"concept-education","label":"education","type":"concept"},{"description":"USBを介したアクセシビリティツリーによるAndroid端末の自動化。CLI、Python API、Claude Code向けMCPサーバー。","id":"product-phonegang","label":"Phonegang","productType":"Tool","slug":"/ja/research/products/phonegang/","status":"Unknown","type":"product"},{"id":"concept-android","label":"android","type":"concept"},{"id":"concept-automation","label":"automation","type":"concept"},{"id":"concept-accessibility","label":"accessibility","type":"concept"},{"id":"concept-usb","label":"usb","type":"concept"},{"id":"concept-adb","label":"adb","type":"concept"},{"description":"スプリットペインエディターとリアルタイム SVG プレビューを備えた、Graphviz の .dot および .gv ファイル編集用ネイティブ macOS アプリ。","id":"product-dot-viewer","label":"Dot Viewer","productType":"Tool","slug":"/ja/research/products/dot-viewer/","status":"Beta","type":"product"},{"id":"concept-macos","label":"macos","type":"concept"},{"id":"concept-graphviz","label":"graphviz","type":"concept"},{"id":"concept-swiftui","label":"swiftui","type":"concept"},{"id":"concept-editor","label":"editor","type":"concept"},{"id":"concept-visualization","label":"visualization","type":"concept"},{"description":"Obsidianボルト内のミーティング文字起こしをバッチ処理し、構造化されたサマリー、人物メモ、ナレッジグラフの接続に変換。","id":"product-summarize-meetings","label":"Summarize Meetings","productType":"Skill","slug":"/ja/research/products/summarize-meetings/","status":"Beta","type":"product"},{"id":"concept-agent-skill","label":"agent-skill","type":"concept"},{"id":"concept-obsidian","label":"obsidian","type":"concept"},{"id":"concept-meetings","label":"meetings","type":"concept"},{"id":"concept-knowledge-graph","label":"knowledge-graph","type":"concept"},{"id":"concept-plugin","label":"plugin","type":"concept"},{"id":"concept-documentation","label":"documentation","type":"concept"},{"description":"コードをリリースする前の必須サニティチェック。テストをパスしてしまうセキュリティ脆弱性、ロジックエラー、ビジネスルールのバグを検出する。","id":"product-fresh-eyes-review","label":"Fresh Eyes Review","productType":"Skill","slug":"/ja/research/products/fresh-eyes-review/","status":"Beta","type":"product"},{"id":"concept-code-review","label":"code-review","type":"concept"},{"id":"concept-security","label":"security","type":"concept"},{"id":"concept-quality","label":"quality","type":"concept"},{"description":"OpenAI と Anthropic を使ったテキストファイルの CLI 翻訳ツール。翻訳、編集、批評、改訂の複数段階パイプラインで処理。","id":"product-translator","label":"Translator","productType":"Tool","slug":"/ja/research/products/translator/","status":"Unknown","type":"product"},{"id":"concept-translation","label":"translation","type":"concept"},{"id":"concept-openai","label":"openai","type":"concept"},{"id":"concept-anthropic","label":"anthropic","type":"concept"},{"id":"concept-markdown","label":"markdown","type":"concept"},{"id":"concept-multilingual","label":"multilingual","type":"concept"},{"id":"concept-refinement","label":"refinement","type":"concept"},{"description":"招待制のミーム共有プラットフォーム。AIによる自動タグ付け、ベクトル検索、コンテンツモデレーション搭載。","id":"product-meme-rodeo","label":"Meme Rodeo","productType":"Platform","slug":"/ja/research/products/meme-rodeo/","status":"Beta","type":"product"},{"id":"concept-memes","label":"memes","type":"concept"},{"id":"concept-image-sharing","label":"image-sharing","type":"concept"},{"id":"concept-firebase","label":"firebase","type":"concept"},{"id":"concept-vector-search","label":"vector-search","type":"concept"},{"id":"concept-moderation","label":"moderation","type":"concept"},{"id":"concept-embeddings","label":"embeddings","type":"concept"},{"description":"実依存関係でシナリオがパスするまで、機能は検証されない。モックを捨てろ。","id":"product-scenario-testing","label":"Scenario Testing","productType":"Skill","slug":"/ja/research/products/scenario-testing/","status":"Beta","type":"product"},{"id":"concept-integration","label":"integration","type":"concept"},{"description":"実装アプローチの並列探索。複数のバリアントを構築してすべてテストし、勝者を選ぶ。","id":"product-test-kitchen","label":"Test Kitchen","productType":"Skill","slug":"/ja/research/products/test-kitchen/","status":"Beta","type":"product"},{"id":"concept-architecture","label":"architecture","type":"concept"},{"id":"concept-parallel","label":"parallel","type":"concept"},{"id":"concept-decision-making","label":"decision-making","type":"concept"},{"description":"トークン効率の高いコード生成パイプライン。Cerebrasが初回生成を担当し、Claudeがアーキテクチャと修正を担当。","id":"product-speed-run","label":"Speed-Run","productType":"Skill","slug":"/ja/research/products/speed-run/","status":"Beta","type":"product"},{"id":"concept-codegen","label":"codegen","type":"concept"},{"id":"concept-cerebras","label":"cerebras","type":"concept"},{"id":"concept-multi-model","label":"multi-model","type":"concept"},{"description":"ELFバイナリに対するエージェント指向のリバースエンジニアリング。ARM64、ARMv7、x86_64、MIPSにわたる仮説駆動型解析。","id":"product-binary-re","label":"バイナリリバースエンジニアリング","productType":"Skill","slug":"/ja/research/products/binary-re/","status":"Unknown","type":"product"},{"id":"concept-reverse-engineering","label":"reverse-engineering","type":"concept"},{"id":"concept-binary","label":"binary","type":"concept"},{"description":"プライベートジャーナルとソーシャルフィードをAIエージェントに提供する、ローカルファーストのMCPサーバー。Goバイナリ1つで完結。","id":"product-pulse","label":"Pulse","productType":"Tool","slug":"/ja/research/products/pulse/","status":"Beta","type":"product"},{"id":"concept-local-first","label":"local-first","type":"concept"},{"description":"AIエージェント協調のアーキテクチャパターン — ファンアウト、パイプライン、委任、ワークスティーリング、マップリデュース、MAKERパターン。","id":"product-building-multiagent-systems","label":"Building Multi-Agent Systems","productType":"Skill","slug":"/ja/research/products/building-multiagent-systems/","status":"Beta","type":"product"},{"description":"2パス抽出とパターン拡張を使って、ドキュメントのクレームを実際のコードベースに対して検証。","id":"product-documentation-audit","label":"Documentation Audit","productType":"Skill","slug":"/ja/research/products/documentation-audit/","status":"Beta","type":"product"},{"id":"concept-audit","label":"audit","type":"concept"},{"id":"concept-verification","label":"verification","type":"concept"},{"description":"DOT ファイルから DAG ワークフローを実行するパイプラインオーケストレーションエンジン。人間のゲート、LLM ノード、自動チェックポイントに対応。","id":"product-tracker","label":"Tracker","productType":"Tool","slug":"/ja/research/products/tracker/","status":"Alpha","type":"product"},{"description":"AIパイプラインワークフローを記述するためのドメイン固有言語 — プロンプト、モデル、分岐に型付き構文を提供し、DOTでは表現できないことを実現。","id":"product-dippin-lang","label":"Dippin","productType":"Tool","slug":"/ja/research/products/dippin-lang/","status":"Alpha","type":"product"},{"id":"concept-dsl","label":"dsl","type":"concept"},{"id":"concept-language","label":"language","type":"concept"},{"id":"concept-lsp","label":"lsp","type":"concept"},{"id":"concept-tracker","label":"tracker","type":"concept"},{"description":"superpowers開発メソドロジーをDOTパイプラインとして実装。アイデアをブレインストーミングし、TDDで計画を立て、マルチモデルレビューでビルドし、リリースまで一気に完結。","id":"product-dotpowers","label":"dotpowers","productType":"Tool","slug":"/ja/research/products/dotpowers/","status":"Alpha","type":"product"},{"id":"concept-superpowers","label":"superpowers","type":"concept"},{"id":"concept-tdd","label":"tdd","type":"concept"},{"description":"Claude Code向けの反復的な成果物改善ツール。ドキュメント、プロンプト、仕様書を基準駆動スコアリングで複数ラウンドかけて磨き上げます。","id":"product-simmer","label":"Simmer","productType":"Skill","slug":"/ja/research/products/simmer/","status":"Beta","type":"product"},{"id":"concept-iteration","label":"iteration","type":"concept"},{"id":"concept-writing","label":"writing","type":"concept"},{"id":"concept-prompts","label":"prompts","type":"concept"},{"id":"concept-skills","label":"skills","type":"concept"},{"description":"討論ではなく識別を通じて合意を求める、Claude Code向けの意思決定スキル。","id":"product-deliberation","label":"Deliberation","productType":"Skill","slug":"/ja/research/products/deliberation/","status":"Beta","type":"product"},{"id":"concept-discernment","label":"discernment","type":"concept"},{"id":"concept-deliberation","label":"deliberation","type":"concept"},{"id":"concept-unity","label":"unity","type":"concept"},{"description":"散在する信念を、名前付きの緊張関係と物語出力を持つ構造化されたグラフに変換する Claude Code スキル。","id":"product-worldview-synthesis","label":"Worldview Synthesis","productType":"Skill","slug":"/ja/research/products/worldview-synthesis/","status":"Beta","type":"product"},{"id":"concept-worldview","label":"worldview","type":"concept"},{"id":"concept-philosophy","label":"philosophy","type":"concept"},{"id":"concept-values","label":"values","type":"concept"},{"id":"concept-beliefs","label":"beliefs","type":"concept"},{"id":"concept-narrative","label":"narrative","type":"concept"},{"description":"私たちはESP32マイクのフリートを構築し、生の音声をサーバーにストリーミングし、Whisperで文字起こしして、Grafanaに表示しました。デスクの上の一つのプロトタイプから実際に観測可能なフリートへ至るまでに何が必要だったかを紹介しま …","id":"post-horton-hears-a-whisper","label":"ホートンはささやきを聞く","slug":"/ja/research/writing/horton-hears-a-whisper/","type":"post"},{"id":"concept-horton","label":"horton","type":"concept"},{"id":"concept-voice-transcription","label":"voice-transcription","type":"concept"},{"id":"concept-esp32","label":"esp32","type":"concept"},{"id":"concept-whisper","label":"whisper","type":"concept"},{"id":"concept-fastapi","label":"fastapi","type":"concept"},{"id":"concept-grafana","label":"grafana","type":"concept"},{"id":"concept-mqtt","label":"mqtt","type":"concept"},{"id":"concept-slack","label":"slack","type":"concept"},{"id":"concept-fleet","label":"fleet","type":"concept"},{"id":"concept-hardware","label":"hardware","type":"concept"},{"description":"エスケープされたDOT文字列を、AIパイプライン専用に設計した言語で置き換えました。Dippinは複数行のプロンプト、39項目のlintチェック、コスト見積もり、シナリオテストを、ひとつの文法で提供します。","id":"post-why-we-built-a-language-for-ai-pipelines","label":"AIパイプラインのための言語を作った理由","slug":"/ja/research/writing/why-we-built-a-language-for-ai-pipelines/","type":"post"},{"id":"concept-dippin","label":"dippin","type":"concept"},{"id":"concept-language-design","label":"language-design","type":"concept"},{"id":"concept-tooling","label":"tooling","type":"concept"},{"description":"Word Compilerは、ソフトウェアエンジニアリングの原則をLLMによる長編小説執筆に応用したツールです。三リング構造のコンテキストアーキテクチャ、構造化されたクリエイティブ制約、そして静的解析を組み合わせることで、コンテキストウィン …","id":"post-word-compiler","label":"Word Compiler：長編小説のためのコンテキストコンパイラ","slug":"/ja/research/writing/word-compiler/","type":"post"},{"id":"concept-fiction","label":"fiction","type":"concept"},{"id":"concept-compiler","label":"compiler","type":"concept"},{"id":"concept-context-window","label":"context-window","type":"concept"},{"id":"concept-prompt-engineering","label":"prompt-engineering","type":"concept"},{"id":"concept-software-engineering","label":"software-engineering","type":"concept"},{"id":"concept-creative-writing","label":"creative-writing","type":"concept"},{"id":"concept-natural-language-processing","label":"natural-language-processing","type":"concept"},{"description":"引退した3DプリンターとRaspberry Piとペン1本がオフィスパーティーに登場。AIがPicasso風の線画を生成し、その場で肖像を描いてくれるフォトブース「Micasso」を作りました。","id":"post-we-turned-a-3d-printer-into-an-ai-portrait-artist","label":"3DプリンターをAIポートレートアーティストに変えた話","slug":"/ja/research/writing/we-turned-a-3d-printer-into-an-ai-portrait-artist/","type":"post"},{"id":"concept-micasso","label":"micasso","type":"concept"},{"id":"concept-ai-art","label":"ai-art","type":"concept"},{"id":"concept-pen-plotter","label":"pen-plotter","type":"concept"},{"id":"concept-raspberry-pi","label":"raspberry-pi","type":"concept"},{"id":"concept-3d-printer","label":"3d-printer","type":"concept"},{"id":"concept-generative-art","label":"generative-art","type":"concept"},{"id":"concept-maker","label":"maker","type":"concept"},{"id":"concept-photo-booth","label":"photo-booth","type":"concept"},{"description":"私たちはRLスタイルのフィードバックループをあらゆるテキストタスクに適用するClaude Codeスキルを構築しました。そして自分自身を研磨させてテストしました。自己改善エージェントについて学んだ3つのこと。","id":"post-simmer","label":"シマー：自己研磨スキル","slug":"/ja/research/writing/simmer-skill/","type":"post"},{"id":"concept-self-improvement","label":"self-improvement","type":"concept"},{"id":"concept-reinforcement-learning","label":"reinforcement-learning","type":"concept"},{"description":"方向性が明確になった後も、実装には意味のある不確実性が残ります。クックオフはモデルのばらつきを、比較・採点・学習できるものに変えます。","id":"post-cookoff-same-spec-different-code","label":"クックオフ：同じ仕様、異なるコード","slug":"/ja/research/writing/cookoff-same-spec-different-code/","type":"post"},{"id":"concept-engineering","label":"engineering","type":"concept"},{"description":"時に正しい動きはさらなる分析ではありません。具体的なバージョンを見て、知ったふりをするのではなく反応することです。","id":"post-omakase-show-me","label":"オマカセ：見せてくれ","slug":"/ja/research/writing/omakase-show-me/","type":"post"},{"description":"ツールが早すぎる選択を迫ることで悪化する意思決定があります。デリベレーションは、選択肢の中から選ばせるのではなく、反応できる視点を提供することで助けになります。","id":"post-deliberation-perspectives-not-answers","label":"デリベレーション：答えではなく、視点を","slug":"/ja/research/writing/deliberation-perspectives-not-answers/","type":"post"},{"id":"concept-design","label":"design","type":"concept"},{"description":"StrongDM がスペックを公開し、Dan Shapiro が Kilroy を作り、私たちはさらに 3 つ作った。すべての実装が同じアーキテクチャに収束した。面白いのはファクトリーのコードではなく、パイプラインのグラフだ。","id":"post-the-dark-factory-is-a-dotfile","label":"ダークファクトリーは .dot ファイルだった","slug":"/ja/research/writing/the-dark-factory-is-a-dot-file/","type":"post"},{"id":"concept-dark-factory","label":"dark-factory","type":"concept"},{"id":"concept-attractor","label":"attractor","type":"concept"},{"description":"NVIDIA DGX Spark の Week 0 実験 — Llama 4 生成速度のベンチマーク、DeepSeek OCR のセットアップ、そして 128GB 統合メモリを活かした 70B モデルへの LoRA アダプター学習。","id":"post-week-0-NVIDIA-DGX-spark-experiments","label":"Week 0 NVIDIA DGX Spark 実験レポート","slug":"/ja/research/writing/week-0-nvidia-dgx-spark-experiments/","type":"post"},{"id":"concept-nvidia","label":"nvidia","type":"concept"},{"id":"concept-gpu","label":"gpu","type":"concept"},{"id":"concept-machine-learning","label":"machine-learning","type":"concept"},{"id":"concept-llm","label":"llm","type":"concept"},{"id":"concept-training","label":"training","type":"concept"},{"description":"散らかったコーディングセッションを、調査・構築・ドキュメント作成を支援するLLM駆動のワークフローによって、共有可能な学習リソースへと変換します。","id":"post-documenting-learning","label":"ブレインダンプからブログ記事へ","slug":"/ja/research/writing/brain-dump-to-blog-post/","type":"post"},{"description":"ナレッジグラフをRAGパイプラインに融合させることで、より深くスケーラブルな知見が得られ、きめ細かな検索と全体的な理解の間のギャップを橋渡しする。","id":"post-experimenting-with-rag","label":"GraphRAGの実験：RAGパイプラインにナレッジグラフを追加する","slug":"/ja/research/writing/experimenting-with-rag/","type":"post"},{"id":"concept-rag","label":"rag","type":"concept"},{"id":"concept-semantic-search","label":"semantic-search","type":"concept"},{"description":"エージェントが自律的にドメイン専門知識を構築・進化させ、汎用LLMから自己学習型の専門特化アシスタントへとスケールする方法を探求する","id":"post-self-learning-llms","label":"自己学習型LLMエージェント：ドメイン固有知識へのフラクタルアプローチ","slug":"/ja/research/writing/self-learning-llms/","type":"post"},{"description":"マルチエージェントのワークフローに社会的説明責任を組み込むことで、LLMの応答の深さ・一貫性・共感が向上し、現実世界のチームワークのダイナミクスを反映できる。","id":"post-team-spirit-matters","label":"チームスピリットの重要性―協調的コンテキストがマルチエージェントLLMの性能を向上させる方法","slug":"/ja/research/writing/team-spirit-matters/","type":"post"}]}&lt;/script>

&lt;/section>


&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js" integrity="sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A==" crossorigin="anonymous" referrerpolicy="no-referrer" defer>&lt;/script>




&lt;script src="https://2389.ai/js/viz-tabs.js" defer>&lt;/script>
&lt;script src="https://2389.ai/js/knowledge-graph.js" defer>&lt;/script>
&lt;script src="https://2389.ai/js/viz-chord.js" defer>&lt;/script>
&lt;script src="https://2389.ai/js/viz-cloud.js" defer>&lt;/script>









&lt;section class="about-page__visit">
 &lt;header class="about-page__visit-header">
 &lt;h2 class="about-page__visit-title">オフィスへどうぞ&lt;/h2>
 &lt;/header>

 &lt;div class="about-page__visit-body">
 
 &lt;div class="office-carousel" data-carousel>
 &lt;div class="office-carousel__track">
 
 
 
 &lt;div
 class="office-carousel__slide
 office-carousel__slide--active
 "
 style="--product-color: #e6196e">
 &lt;img
 src="https://2389.ai/about/office-1_hu_c88081faedea299c.webp"
 alt="オフィス所在地"
 loading="
 eager
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #0a0a0a">
 &lt;img
 src="https://2389.ai/about/office-10_hu_726bc3e5e2cf43ba.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f4d800">
 &lt;img
 src="https://2389.ai/about/office-11_hu_2959cb5505766bbb.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #1f4ae6">
 &lt;img
 src="https://2389.ai/about/office-12_hu_bd8fd724185e66e2.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f0d6d0">
 &lt;img
 src="https://2389.ai/about/office-13_hu_f1d9e445705c1584.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #2c8a3a">
 &lt;img
 src="https://2389.ai/about/office-14_hu_d01e9cecf1e39bc9.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #e6196e">
 &lt;img
 src="https://2389.ai/about/office-15_hu_838d4bdd4659b5a2.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #0a0a0a">
 &lt;img
 src="https://2389.ai/about/office-16_hu_1b193463057293f7.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f4d800">
 &lt;img
 src="https://2389.ai/about/office-17_hu_dff1bf62ce79fa0b.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #1f4ae6">
 &lt;img
 src="https://2389.ai/about/office-18_hu_91f21bcb4e452270.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f0d6d0">
 &lt;img
 src="https://2389.ai/about/office-19_hu_625c8f26fe585eda.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #2c8a3a">
 &lt;img
 src="https://2389.ai/about/office-2_hu_8caf3615f220f41.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #e6196e">
 &lt;img
 src="https://2389.ai/about/office-3_hu_90a1e3be488b452b.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #0a0a0a">
 &lt;img
 src="https://2389.ai/about/office-4_hu_a6e1d7d71c1cf4a3.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f4d800">
 &lt;img
 src="https://2389.ai/about/office-5_hu_2188acad8654686c.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #1f4ae6">
 &lt;img
 src="https://2389.ai/about/office-6_hu_596548437611967a.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #f0d6d0">
 &lt;img
 src="https://2389.ai/about/office-7_hu_26471965eceae05d.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #2c8a3a">
 &lt;img
 src="https://2389.ai/about/office-8_hu_fedb34143487e3c8.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 
 
 &lt;div
 class="office-carousel__slide"
 style="--product-color: #e6196e">
 &lt;img
 src="https://2389.ai/about/office-9_hu_c3a90a710a4ecc56.webp"
 alt="オフィス所在地"
 loading="
 lazy
 "
 width="800"
 height="600" />
 &lt;/div>
 
 &lt;/div>
 
 &lt;div class="office-carousel__controls">
 &lt;button
 class="office-carousel__btn office-carousel__btn--prev"
 data-carousel-prev
 aria-label="Previous photo">
 &amp;larr;
 &lt;/button>
 &lt;span class="office-carousel__counter" data-carousel-counter
 >1 / 19&lt;/span
 >
 &lt;button
 class="office-carousel__btn office-carousel__btn--next"
 data-carousel-next
 aria-label="Next photo">
 &amp;rarr;
 &lt;/button>
 &lt;/div>
 
 &lt;/div>
 


 &lt;div class="about-page__visit-details">
 
 &lt;div class="about-page__visit-description">
 オフィスはシカゴのニア・ウェスト・サイドにあり、フルトン通りのデイメン近くにある&lt;a href="https://industrialcouncil.com/make-city/">ICNC&amp;rsquo;s Make
City&lt;/a>内にあります。地域コミュニティの一員であることを大切にしています。ぜひ遊びに来てください。
 &lt;/div>
 


 &lt;div class="about-page__visit-card">
 &lt;div class="about-page__visit-icon">
 &lt;svg
 viewBox="0 0 23 28"
 fill="none"
 xmlns="http://www.w3.org/2000/svg"
 class="map-pin-icon group">
 &lt;path
 d="M11.7843 26.9275C11.7843 26.9275 11.3765 26.5671 10.7317 25.9413C8.23789 23.5328 2.09337 17.1702 1.79942 11.9454C1.06928 -0.969421 21.4657 -2.62882 21.7786 11.0352C21.9303 17.6159 11.7937 26.9275 11.7937 26.9275H11.7843Z"
 fill="#F34B65"
 stroke="currentColor"
 stroke-width="1.67"
 stroke-miterlimit="10" />
 &lt;path
 d="M10.8742 7.63077C12.6853 7.52647 15.4162 8.46521 15.0369 11.2625C14.6576 14.0598 13.6715 15.2735 11.4811 14.9701C9.29068 14.6666 7.77351 13.5288 8.00108 11.3383C8.22866 9.14794 9.51825 7.70663 10.8742 7.63077Z"
 fill="#F9F9F6"
 stroke="currentColor"
 stroke-width="1.67"
 stroke-miterlimit="10" />
&lt;/svg>

 &lt;/div>
 &lt;address class="about-page__visit-address">
 &lt;span class="about-page__visit-name">2389 Research&lt;/span>
 &lt;span>2000 W. Fulton Ave&lt;/span>
 &lt;span>Suite F314&lt;/span>
 &lt;span>Chicago, IL 60612&lt;/span>
 &lt;/address>
 &lt;a
 href="https://maps.google.com/?q=2000%20W.%20Fulton%20Ave+Chicago+IL+60612"
 target="_blank"
 rel="noopener noreferrer"
 class="about-page__visit-link">
 アクセス →
 &lt;/a>
 &lt;/div>
 &lt;/div>
 &lt;/div>
&lt;/section></description></item><item><title>私たちと一緒に働く</title><link>https://2389.ai/ja/work-with-us/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/work-with-us/</guid><description>&lt;p>エンジニアリングチームとプロダクトチームが、エージェントを使って構築・出荷できるよう指導します。これはツールの導入でも、プロンプトのワークショップでもありません。エンジニア一人ひとりにアシスタントを与えるだけでは、少数の熟練者が生まれるだけで、組織は変わりません。チーム全員が、実際の仕事を通じて一緒に学ぶのです。&lt;/p>


&lt;figure class="pull-quote">
 &lt;blockquote class="pull-quote__text">人間の生産にコストがかかることを前提に設計されたプラクティスは、生産が安価になり診断が速くなると、逆効果になりうる。&lt;/blockquote>
 &lt;figcaption class="pull-quote__cite">&amp;mdash;&amp;nbsp;Jibity, our friend Dirk&amp;#39;s agent&lt;/figcaption>
&lt;/figure>

&lt;p>Jibityはエージェントですが、的を射た指摘をしています。スプリント計画や長いレビューキューなど、チームの多くの運営方法は、コードが遅くてコストのかかる部分だった時代に生まれました。それが逆転しました。私たちはエージェントが書かれた仕様書から製品全体を構築するのを見てきました（&lt;a href="https://2389.ai/ja/research/">私たちの研究&lt;/a>がその成果を示しています）。今の難しさは何を作るかを決め、それが正しいと証明することです。多くのプロセスはまだそれに気づいていません。&lt;/p>
&lt;p>私たち自身が実践するやり方を持ち込み、あなたのチームの実際のバックログで一緒に使います。メンバーが自分でエージェントへの仕事の割り振りとその成果の判断ができるようになったら、私たちは離れます。一緒に作ったものはすべてあなたのスタックに残ります。&lt;/p>
&lt;h2 id="私たちが一緒に作るもの">私たちが一緒に作るもの&lt;/h2>


&lt;ul class="build-list">
 &lt;li class="build-list__item">一人のパワーユーザーを超え、チーム全体で機能するコーディングエージェントの実践&lt;/li>
 &lt;li class="build-list__item">リポジトリ、権限、ワークフローに組み込まれたエージェントインターフェース&lt;/li>
 &lt;li class="build-list__item">組織のコンテキストを蓄積し、エージェントがアクセスできる場所に保持するシステム&lt;/li>
 &lt;li class="build-list__item">エージェントがコードの大半を書く場合のレビュー、テスト、監視のパターン&lt;/li>
 &lt;li class="build-list__item">エージェント実行をトークンと予算に対して意識的に保つコスト管理&lt;/li>
 &lt;li class="build-list__item">何を構築・購入・統制・自社所有すべきかを決める実験&lt;/li>
&lt;/ul>

&lt;h2 id="関わり方">関わり方&lt;/h2>


&lt;ol class="engage-ladder">
 &lt;li class="engage-ladder__rung">
 &lt;h3 class="engage-ladder__name">トーク・基調講演&lt;/h3>
 &lt;p class="engage-ladder__desc">世界観を、すべての人に一度に。&lt;/p>
 &lt;/li>
 &lt;li class="engage-ladder__rung">
 &lt;h3 class="engage-ladder__name">ワークショップ&lt;/h3>
 &lt;p class="engage-ladder__desc">実際のバックログに取り組む実務セッション。エージェントも参加します。&lt;/p>
 &lt;/li>
 &lt;li class="engage-ladder__rung">
 &lt;h3 class="engage-ladder__name">プログラム&lt;/h3>
 &lt;p class="engage-ladder__desc">チームを「興味あり」から「リリース済み」へ導く体系的なプログラム。&lt;/p>
 &lt;/li>
 &lt;li class="engage-ladder__rung">
 &lt;h3 class="engage-ladder__name">共同開発&lt;/h3>
 &lt;p class="engage-ladder__desc">あなたのスタックで、一緒に実際のものを作ります。実践知識もそのまま移転します。&lt;/p>
 &lt;/li>
 &lt;li class="engage-ladder__rung">
 &lt;h3 class="engage-ladder__name">継続サポート&lt;/h3>
 &lt;p class="engage-ladder__desc">引き渡し後もオンコール対応：レビュー、問題解消、方向調整。&lt;/p>
 &lt;/li>
&lt;/ol>

&lt;p>決まった入り口はありません。シカゴのラボで一日を過ごす、技術リードとの作業セッション、あなたのチームと手を動かす時間、範囲を絞った試作、あるいは一つの研究課題から始められます。どの形式でも目的は同じで、あなた自身の証拠と、私たちなしで前に進み続ける力を持つことです。人材派遣やモデルのライセンス、大手ファームの変革プログラムをお探しなら、私たちはお門違いです。&lt;/p>
&lt;h2 id="あなたの制約は設計の前提です">あなたの制約は設計の前提です&lt;/h2>
&lt;p>セキュリティレビュー、プライバシー規則、監査証跡、調達、コードとコンテキストがどこを通るか。これらは迂回すべき障害ではなく、私たちが設計に織り込む要件です。ラボの前に信頼できる仲介を置き、何も外部に情報を送っていないことを証明します。モデルとあなたの組織をつなぐ接点は、あなたのものであるべきです。費用に見合うなら、あなたの仕事に合わせて調整したモデルもそこに含まれます。&lt;/p>
&lt;p>実際の課題を一つ持ち込んでください。打ち合わせには気軽に応じます。上長に転送するものが必要なら&lt;a href="https://2389.ai/2389-ai-enablement.pdf">1ページの説明資料&lt;/a>もあります。&lt;/p>


&lt;aside class="work-brief-strip">
 &lt;div class="work-brief-strip__col">
 &lt;div class="work-brief-strip__label">メールで問い合わせ&lt;/div>
 &lt;p class="work-brief-strip__description">チームの概要と、どんな点を改善したいかを簡単にお知らせください。&lt;/p>
 &lt;a href="mailto:work@2389.ai" class="work-brief-strip__email">work@2389.ai&lt;/a>
 &lt;/div>
 &lt;div class="work-brief-strip__col">
 &lt;div class="work-brief-strip__label">AIへの説明&lt;/div>
 &lt;p class="work-brief-strip__description">私たちの働き方を理解させるために、これをエージェントに貼り付けてください。&lt;/p>
 &lt;div class="work-brief-strip__url-block">
 &lt;code class="work-brief-strip__url" id="skill-url">https://2389.ai/brief.md&lt;/code>
 &lt;button class="work-brief-strip__copy" data-action="copy-url" data-target="skill-url" aria-label="URLをコピー">コピー&lt;/button>
 &lt;/div>
 &lt;/div>
&lt;/aside>

&lt;script>
document.querySelector(".work-brief-strip__copy[data-action='copy-url']").addEventListener("click", function() {
 var b = this;
 navigator.clipboard.writeText(document.getElementById(b.dataset.target).textContent).then(function() {
 b.textContent = "コピーしました";
 setTimeout(function() { b.textContent = "コピー"; }, 2000);
 });
});
&lt;/script></description></item><item><title>利用規約</title><link>https://2389.ai/ja/pages/terms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://2389.ai/ja/pages/terms/</guid><description>&lt;p>Last updated: April 09, 2024&lt;/p>
&lt;p>Please read these terms and conditions carefully before using Our Service.&lt;/p>
&lt;h2 id="interpretation-and-definitions">Interpretation and Definitions&lt;/h2>
&lt;h3 id="interpretation">Interpretation&lt;/h3>
&lt;p>The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.&lt;/p>
&lt;h3 id="definitions">Definitions&lt;/h3>
&lt;p>For the purposes of these Terms and Conditions:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Affiliate&lt;/strong> means an entity that controls, is controlled by or is under common control with a party, where &amp;ldquo;control&amp;rdquo; means ownership of 50% or more of the shares, equity interest or other securities entitled to vote for election of directors or other managing authority.&lt;/li>
&lt;li>&lt;strong>Country&lt;/strong> refers to: Illinois, United States&lt;/li>
&lt;li>&lt;strong>Company&lt;/strong> (referred to as either &amp;ldquo;the Company&amp;rdquo;, &amp;ldquo;We&amp;rdquo;, &amp;ldquo;Us&amp;rdquo; or &amp;ldquo;Our&amp;rdquo; in this Agreement) refers to 2389 Research, Inc, 1111B S Governors Ave STE 20779, Dover, DE 19904 USA.&lt;/li>
&lt;li>&lt;strong>Device&lt;/strong> means any device that can access the Service such as a computer, a cellphone or a digital tablet.&lt;/li>
&lt;li>&lt;strong>Service&lt;/strong> refers to the Website.&lt;/li>
&lt;li>&lt;strong>Terms and Conditions&lt;/strong> (also referred as &amp;ldquo;Terms&amp;rdquo;) mean these Terms and Conditions that form the entire agreement between You and the Company regarding the use of the Service. This Terms and Conditions agreement has been created with the help of the &lt;a href="https://www.termsfeed.com/terms-conditions-generator/">Terms and Conditions Generator&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Third-party Social Media Service&lt;/strong> means any services or content (including data, information, products or services) provided by a third-party that may be displayed, included or made available by the Service.&lt;/li>
&lt;li>&lt;strong>Website&lt;/strong> refers to 2389 Research, Inc, accessible from &lt;a href="https://2389.ai">https://2389.ai&lt;/a>&lt;/li>
&lt;li>&lt;strong>You&lt;/strong> means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.&lt;/li>
&lt;/ul>
&lt;h2 id="acknowledgment">Acknowledgment&lt;/h2>
&lt;p>These are the Terms and Conditions governing the use of this Service and the agreement that operates between You and the Company. These Terms and Conditions set out the rights and obligations of all users regarding the use of the Service.&lt;/p></description></item></channel></rss>