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

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

- 正規URL: https://jevguide.jp/guides/coding-agents/
- 公開: 2026-09-21T00:00:00.000Z
- 更新: 2026-09-21T00:00:00.000Z
- 最終確認: 2026-09-21T00:00:00.000Z

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

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

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

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

### 入れ方

Claude Code:

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

そのほかのエージェント（Codex など）:

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

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

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

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

入れる前に中身を読みたいときは、[SKILL.md](https://github.com/typesafe-ai/skills/blob/main/skills/typesafe-ai/SKILL.md) をそのまま開けます。

### 使い方

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

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

### 公式が挙げる心がけ

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

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

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

[tamaratran/fast-jev-compaction](https://github.com/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種](/guides/design-patterns/)）。

### 入れ方（README より）

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

```json
{ "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1" } }
```

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

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

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

```bash
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 は顧客のリクエストを学習に使わないと書いていますが、ゼロデータ保持はエンタープライズ向けです（[料金と制限](/guides/pricing-and-limits/)）
- **公式か、非公式か。** `typesafe-ai/` 配下は公式、それ以外はコミュニティのものです。名前に Jev や TypeSafe を含むリポジトリは急に増えていて、中身の薄いものや、別のリポジトリを改名したものもあります。スター数ではなく、README と実際のコードで判断してください
- **費用。** 圧縮のたびに会話全体が入力トークンとして数えられます。単価は安い（入力 100 万トークンあたり $0.042）ものの、長いセッションで頻繁に走れば積み上がります

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

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

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

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

## よくある質問

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

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

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

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

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

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

## 出典

- [Agent skill](https://docs.typesafe.ai/agent-skill)
- [typesafe-ai/skills](https://github.com/typesafe-ai/skills)
- [tamaratran/fast-jev-compaction](https://github.com/tamaratran/fast-jev-compaction)
- [Cookbook: Skill suggestion](https://docs.typesafe.ai/cookbooks/skill_suggestion)

---
typesafe.ai とは無関係の非公式ガイドです。
