GUIDES / ツール連携

コーディングエージェントで Jev を使う: 公式スキルと fast-jev-compaction

Claude Code や Codex に Jev の使い方を教える公式スキルの入れ方と、会話の圧縮を Jev の判定に置き換えるプラグイン fast-jev-compaction の仕組み。入れる前に確かめることもまとめる。

Jevclaude-codecodexagents

コーディングエージェントと Jev の関わり方は2通りあります。エージェントに Jev の使い方を教える(公式スキル)と、エージェントの内部の判断を Jev に任せる(コミュニティのプラグイン)です。

このページのコマンドと仕組みは、公式ドキュメントと各リポジトリの README を読んで確かめたものです。このサイトでは、どちらも実際に入れて動かす検証はしていません。

1. 公式スキル — エージェントに Jev の使い方を教える

typesafe-ai/skills(MIT ライセンス)は、TypeSafe 公式のエージェント向けスキルです。中身は SKILL.md という説明書1つで、3つの質問タイプ、設計パターン、評価の組み立て方をエージェントに伝えます。

入れ方

Claude Code:

claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai

そのほかのエージェント(Codex など):

npx skills add typesafe-ai/skills --skill typesafe-ai

対話でエージェントを選びます。既定ではプロジェクト内に入り、-g を付けると全体に入ります。入れ方は1つだけ選んでください。 複数の方法で入れると、同じスキルが重複します。

更新は、Claude Code のプラグインなら次のとおりです。

claude plugin marketplace update typesafe-ai
claude plugin update typesafe@typesafe-ai

入れる前に中身を読みたいときは、SKILL.md をそのまま開けます。

使い方

プロンプトの中で「TypeSafe のスキルを使って」と名指しすれば、どのエージェントでも働きます。Claude Code のプラグインなら /typesafe:typesafe-ai でも呼べます。公式が勧める始め方は3つです。

  • 使いどころを探させる: プロジェクトを調べさせ、込み入った解析処理や壊れやすいコードを「判断」に置き換えられる場所を挙げさせる
  • 試させる: API キーを環境変数 TYPESAFE_API_KEY に入れておき、安価な試し打ちをさせて、見込みのある案を提案させる
  • レシピに当てはめさせる: 公式の Cookbook から、自分のコードに近いものを探させる(Cookbook 18 本の早見

公式が挙げる心がけ

  1. まずエージェントと相談し、案を出させる
  2. 実装の前に計画を読む
  3. 質問文としきい値は1か所にまとめる。 公式は、エージェントは質問を書くのがあまり得意ではないので、一緒に手を入れる前提でいるように、と書いています
  4. エージェントの言うことを鵜呑みにせず、前提を検証させる

3つ目は特に大事です。Jev は質問を字義どおりに読むので、質問文の出来が結果を決めます(Jev が苦手なこと)。エージェントが書いた質問文は、3つの質問タイプの書き方に照らして人が見直してください。

2. fast-jev-compaction — 会話の圧縮を Jev の判定に置き換える

tamaratran/fast-jev-compaction は、個人が公開している Claude Code 用のプラグイン兼 npm ライブラリです(MIT ライセンス。TypeSafe の公式ではありません)。

何を解くか

長いセッションでは、会話が上限に近づくと、エージェントは古いやり取りを LLM に要約させて縮めます。要約は情報を落とします。ファイルのパス、正確なエラー文、制約、コマンドが、あとで必要になるのに消えることがあります。

このプラグインは要約をしません。 利用者とエージェントの発言の文章は一字一句そのまま、順番も保ちます。手を入れるのはツールの呼び出しと結果だけで、Jev の判定に応じて、(a) そのまま残す、(b) 呼び出しは残して結果を先頭の一部と注記に切り詰める、(c) 呼び出しと結果を対ごと削除する、のどれかになります。つまりツールの結果は短くなることがあり、「何も変えない」わけではありません。

仕組み

  1. ツール呼び出しと結果を対にする。最初のメッセージと、直近の数件(既定 6 件)は固定して触らない
  2. 会話全体を state にする。ツールの結果は「ok、4213 文字(省略)」のような短い注記に置き換え、ツールへの入力と発言の文章は含める
  3. 固定していない呼び出しごとに、Noul を2問聞く。「この呼び出しがあったことは、まだ意味があるか」「この結果は、そのままの形でまだ必要か(ツールを再実行しても代わりにならないか)」
  4. しきい値(既定 0.5)で決める。結果を残す → 両方残す。呼び出しだけ残す → 結果は先頭 300 文字と注記に切り詰める。どちらも下回る → 対ごと削除
  5. 質問が多いときは、state と質問が1リクエストの上限に収まるよう複数のリクエストに分け、並行して送る

設計パターンの「1回にまとめて聞く」の応用で、数十〜数百の yes/no を、速く安くさばける Jev の性質を使っています(設計パターン4種)。

入れ方(README より)

まず、関数フックの機能フラグを有効にします。これが無いとプラグインは動きません。 ~/.claude/settings.json に書きます(秘密の値ではありません)。

{ "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1" } }

次に、API キーを環境変数 TYPESAFE_API_KEY で渡します。README の例は同じ env にキーも書いていますが、設定ファイルは共有や同期の対象になりやすいので、キーはシェルの環境変数など、設定ファイルの外から渡すほうが安全です。

export TYPESAFE_API_KEY="…"   # 値をファイルやリポジトリに残さない

そのうえでプラグインを入れます。

claude plugin marketplace add tamaratran/fast-jev-compaction
claude plugin install fast-jev-compaction@fast-jev-compaction

再起動するか /reload-plugins のあと、/compact と自動圧縮が Jev を通るようになります。削れた量が足りないときや Jev が失敗したときは、組み込みの要約にフォールバックする、と書かれています。

README が自分で挙げている限界

  • 削除・切り詰めの対象はツールの呼び出しと結果だけ。発言の文章は、出力では削られも短くもならない(Jev に見せる state の中では、収めるために省略されることがある)
  • トークン数は文字数からの推定で、トークナイザーは使っていない
  • 確率は「削っても安全」の証明ではない。 必要になればエージェントはツールを再実行できる、という前提に立っている
  • 会話全体をリクエストごとに送り直すので、上限に近い履歴では送信量が増える

入れる前に確かめること

エージェントに入れるスキルやプラグインは、あなたの権限でコードを読み、コマンドを実行できる環境の中で動きます。

  • 中身を読む。 スキルは SKILL.md、プラグインはフック(hooks/)と設定(.claude-plugin/)。何を実行し、どこへ通信するか
  • 何が外へ送られるか。 fast-jev-compaction は、会話の内容を TypeSafe の API へ送ります。ツールの結果は注記に置き換えられますが、発言の文章とツールへの入力(ファイルパス、コマンド、検索語など)は含まれます。 機密を扱うセッションで使ってよいか、自分の組織の決まりに照らして判断してください。TypeSafe は顧客のリクエストを学習に使わないと書いていますが、ゼロデータ保持はエンタープライズ向けです(料金と制限
  • 公式か、非公式か。 typesafe-ai/ 配下は公式、それ以外はコミュニティのものです。名前に Jev や TypeSafe を含むリポジトリは急に増えていて、中身の薄いものや、別のリポジトリを改名したものもあります。スター数ではなく、README と実際のコードで判断してください
  • 費用。 圧縮のたびに会話全体が入力トークンとして数えられます。単価は安い(入力 100 万トークンあたり $0.042)ものの、長いセッションで頻繁に走れば積み上がります

自分のエージェントに Jev を組み込むなら

エージェントを自作しているなら、公式の Cookbook に直接使える例があります。

  • Skill suggestion — 182 個のスキルから、そのターンで使うものを最大1つ選ぶ。Choice で順位づけし、Noul で「そもそも要るか」を決める
  • Function calling — 自然文の依頼を、型のついた関数の呼び出しに変える
  • Guardrails for LLMs — エージェントの入出力を1回のリクエストで検査する

ツール呼び出しを自動で承認するかどうかの判定に Jev を使う例も、Vercel のナレッジベースに出ています(このサイトでは内容を検証していません)。自動承認に使うなら、確信度の低いものと、取り返しのつかない操作は必ず人に回す設計にしてください(確率と confidence の読み方)。Jev は敵対的な入力で答えを動かされ得る、と公式が明記しています。

よくある質問

公式スキルを入れると、エージェントが Jev を呼ぶようになるのですか?

いいえ。公式スキルは、Jev の API の使い方(3つの質問タイプ、設計パターン、質問の書き方)をエージェントに教える説明書です。エージェントが Jev を使ったコードを書きやすくなるもので、エージェント自身の動作が Jev に置き換わるわけではありません。

fast-jev-compaction は TypeSafe の公式ですか?

いいえ、個人が公開している MIT ライセンスのプラグインです。TypeSafe の公式リポジトリではありません。

会話の内容は外部に送られますか?

fast-jev-compaction は、どのツール呼び出しを残すかを判定するために、会話の内容(発言の文章とツールへの入力。ツールの結果は短い注記に置き換え)を TypeSafe の API に送ります。社内のコードや機密を扱うセッションで使う前に、送ってよい内容かを確かめてください。

出典・参考リンク

  1. 一次情報 Agent skill
  2. 一次情報 typesafe-ai/skills
  3. コード tamaratran/fast-jev-compaction
  4. 一次情報 Cookbook: Skill suggestion