YouMind
ログイン

Grok Bot に Jev を組み込む方法:私が構築したベストなエージェント

@0x_rody
英語2026年10月20日
153K
250
22
27
854

TL;DR

このガイドでは、TypeSafe の Jev モデルと Grok Bot を統合し、不要な再試行や重複調査といった冗長な AI アクションを防ぐ意思決定ルーターを作成する方法を実演します。これにより、パフォーマンスの最適化とコスト削減が実現できます。

Grok Bot は全ユーザーに 1 台のクラウドコンピューターを提供し、ボットがその上でシェルを実行できるようにする。多くの人はタスクを指示して、同じ失敗を繰り返すのをただ眺めている。

ルータースキルを 1 つ追加し、実際に動かせるようになるまで 1 週間はログだけを取らせ、キルスイッチを用意しておく。

正しく接続すれば、コストが発生する前にリトライは止まる。

以下が完全なセットアップ手順だ 👇

本題に入る前に、完全版ガイドは私の Substack で公開している: https://zodchiii.substack.com/ 🧠

rody - inline image

Jev が返す回答とは

Jev は TypeSafe の System One モデルだ。文章ではなく型付きの値で回答し、3 つのプリミティブを搭載している。

  • Choice は定義したリストから 1 つの選択肢を選び、選択結果・確率・信頼度を返す
  • Score は評価基準(ルーブリック)に基づいて状態を採点する
  • Noul は命題が真かどうかを 0 から 1 の数値で答える

回答が値として返ってくるため、ログに記録したり、2 週間分の判断を比較したり、昨日のトラフィックに対してリプレイしたりできる。

呼び出しは次のようになる:

text
1from typesafe_sdk import Choice, TypeSafeClient
2
3with TypeSafeClient(model="jev-latest") as client: # TYPESAFE_API_KEY を読み取る
4 r = client.system_one(
5 state=f"goal: {goal}\ntask: {task_type}\nlast error: {err} x{repeats}",
6 questions={
7 "action": Choice(
8 instructions="エージェントは次に何をすべきか",
9 criteria={
10 "proceed": "次のステップが失敗することを示唆するものはない",
11 "reuse_cache": "これに対する新しい成果物がすでに存在する",
12 "stop_retry": "同じアプローチが同じ理由で失敗した",
13 "research_capped": "十分な情報源がすでに集まっている",
14 "ask_human": "このステップは送信、公開、支払い、または削除を行う",
15 },
16 )
17 },
18 )
19
20print(r.choices["action"].choice, r.choices["action"].confidence)

ルーターはこの 5 つのうち 1 つを選び、それ以外には答えられない仕組みになっている。

ステップ 1:API キーを取得する

TypeSafe のダッシュボードを開き、API キーを作成する。チャットにも、リポジトリにも、共有する予定のスキルにも含めないこと。

ステップ 2:キーをコンピューターに配置する

マスクされたシークレット要求フローを使う。キーがチャットを経由することはない。

追加する前に知っておくべき点が 1 つある。Grok Bot のクラウドコンピューターはアカウントごとに 1 台のマシンであり、そこで実行するすべてのボットが同じファイル、セッション、ログインを参照する。そこに置いたキーは、すべてから読み取れる。

text
1TypeSafe の API 認証情報を渡す必要がある。チャットではなく、マスクされたシークレット要求フローを使ってほしい。値は環境変数 TYPESAFE_API_KEY としてあなたのコンピューターに設定されなければならず、作成するいかなるファイル、ログ、スキル、リポジトリにも表示させてはいけない。変数が設定されて読み取り可能になったことだけを報告し、その値は絶対に伝えないこと。

ステップ 3:SDK をインストールし、スモークテストを行う

text
1あなたのコンピューターで次を実行してほしい: pip install typesafe-sdk
2
3次に /work/jev/smoke.py を作成し、TypeSafeClient(model="jev-latest") を開いて、単一の Choice 質問を含む system_one 呼び出しを 1 回送信する。状態は「goal: file a support ticket. task: routing. last error: none x0」。基準は billing、technical、sales とする。
4
5実行して、生のレスポンスオブジェクトを見せてほしい。選択結果、確率、信頼度だ。もし TYPESAFE_API_KEY が見つからない場合は停止して私に伝え、何もハードコードしないこと。

出力で確認すべきは 3 つだ。自分で定義したリストからの値、確率の分布、そして信頼度の数値。どれか 1 つでも欠けていれば、SDK は別の何かと通信している。

ステップ 4:ルーターを構築する

text
1/work/jev/router.py にルーターモジュールを作成し、関数を 1 つ用意してほしい:
2
3 route(goal: str, task_type: str, last_error: str, repeats: int) -> dict
4
5この 4 つのフィールドだけを状態として Jev に送信し、「action」という名前の Choice 質問を 1 つ含める。基準は以下の通り:
6
7 proceed 次のステップが失敗することを示唆するものはない
8 reuse_cache これに対する新しい成果物がすでに存在する
9 stop_retry 同じアプローチが同じ理由で失敗した
10 research_capped 十分な情報源がすでに集まっている
11 ask_human このステップは送信、公開、支払い、または削除を行う
12
13選択結果、信頼度、確率を返すこと。すべての呼び出しは、タイムスタンプ、4 つの入力、完全なレスポンスとともに /work/jev/decisions.jsonl に追記する。動作設定は /work/jev/config.json から読み取り、キーは「enabled」と「mode」(「shadow」または「active」)の 2 つとする。デフォルトは enabled false にする。
14
15状態に含めるプロンプトテキストは、この 4 フィールド以外に追加しないこと。実行前にファイルを見せてほしい。
rody - inline image

この 4 フィールドが、Jev が参照する状態のすべてだ。プロンプトも、リポジトリも、会話履歴も渡されないため、呼び出しは軽量に保たれ、ログも読みやすくなる。

rody - inline image

ステップ 5:スキルを追加する

text
1jev-usage-router というスキルを作成してほしい。
2
3トリガー:ブラウザセッションの前、リサーチの実行前、失敗したステップのリトライ前、および追加ボットの起動前。
4
5手順:/work/jev/router.py の route() を、現在の目標、タスクタイプ、直近のエラーテキスト、その繰り返し回数とともに呼び出す。その後、アクションに従うこと:
6
7 proceed 計画通りに続行する
8 reuse_cache 既存の成果物を使い、作業をスキップする
9 stop_retry このアプローチを中止し、理由を報告する
10 research_capped 情報源 5 つで打ち切り、持っている内容を書きまとめる
11 ask_human 一時停止して私に尋ね、独断で進めない
12
13承認境界:ask_human は、信頼度がどれだけ高くても決して上書きしない。
14出力:実行レポートに、判断 1 件につき 1 行を記載する。

そのスキルの正式なコピーは、自分のソース管理下に置いておくこと。Grok Bot はルーティンごとに最新 20 件の実行記録しか保持しないため、必要なものは発生した時点で自分のストレージにプッシュしよう。

ステップ 6:1 週間はシャドウモードで実行する

text
1/work/jev/config.json を {"enabled": true, "mode": "shadow"} に設定する。
2
3シャドウモードでは、すべてのトリガーでルーターを呼び出して判断をログに記録するが、それを無視して通常通りの動作を続ける。働き方は一切変えないこと。
4
5毎日の終わりに /work/jev/report.md へ追記する:呼び出し回数、アクションの内訳、平均信頼度、そしてログに記録されたアクションと実際の行動が一致しなかったすべてのケース。

シャドウモードが存在するのは、低コストな判定器が間違えることもあるからだ。不一致についてはログを読もう。4 回目の試行で成功していたはずのアプローチに対して stop_retry が発火した場合、実際に動かせるようになる前にそれを知っておきたい。

読むには 1 週間分の実トラフィックで十分だ。それより短いと、サンプルが少なすぎて何も分からない。

rody - inline image

ステップ 7:アクティブにする、ただしキルスイッチは残す

text
1mode を「active」に設定する。今後はログに記録するのではなく、アクションに従って動くこと。
2
3以下の 2 つのキルスイッチは、常に私が使えるようにしておく:
4 1. 任意のメッセージで「bypass jev」と指定すると、その実行ではルーターを無視する
5 2. config.json に {"enabled": false} を設定すると、完全に無効化する
6
7ask_human は引き続き私への確認待ちで一時停止する。decisions.jsonl への書き込みは以前とまったく同じように続けること。

切り替えた後もログは取り続けること。ログがあるからこそ、本当にコストを節約してくれるルーターと、本来終わらせるべき作業をこっそり止めてしまうルーターを見分けられる。

最初に何をルーティングすべきか

何度もリトライしてしまう 1 つのルーティンから始め、それ以外の構成には手をつけないこと。

最初にルーティングすべきルーティンには共通点がある。エージェントが「自分がすでに知っていること」を把握していないのだ。ディスクにあるファイルのためにブラウザを開き直し、5 つの情報源で答えが出ているのに 14 個目を読み込み、2 回目が同じ理由で失敗したことを誰も伝えていないために 3 回目も同じアプローチを試す。

1 つ選び、シャドウモードで実行し、範囲を広げる前にログを読もう。

コストについて

Jev の呼び出しは 4 つの短いフィールドのみなので、軽量に保たれる。1 回の呼び出しで、高コストなステップ(ブラウザセッション、リサーチ、追加ボット、リトライ)をスキップする選択肢が手に入る。

誰かの数字(私のものも含む)を鵜呑みにせず、自分のトラフィックで測定しよう。判断をログに記録し、スキップしたステップを記録し、シャドウモードの 1 週間とアクティブモードの 1 週間を比較する。

覚えておくべき制約

  • 1 アカウントにつき 1 台のコンピューター。 実行するすべてのボットが同じファイルとログインを参照するため、全ボットに渡したくないものはそのマシンに置かないこと。
  • ルーティンごとの実行記録は 20 件。 必要なものは自分のストレージにプッシュすること。
  • 利用量はまだ無制限ではない。 ルーターは高コストな操作を減らすものであり、上限をなくすものではない。

結局どうなるのか?

Grok Bot が思考と作業を行い、Jev が 5 つのアクションのいずれかで回答し、元に戻せないことについてはあなたが最終決定権を持つ。

同じ失敗を繰り返すルーティンから始め、1 週間シャドウモードで実行し、それから切り替えよう。

読んでくれてありがとう!

完全版ガイドとシリーズの続きはこちら: https://zodchiii.substack.com/

ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る