0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

判断特化AI『Jev』、普通のLLMと何が違う?個人開発での使い道を考えてみた

0
Posted at

結論

Jev、かなり変わってる。

普通の生成AIみたいに「文章を書いて」「コードを書いて」ではなく、判断することに寄せたAI。

状態を渡す
   ↓
  Jev
   ↓
「どれ?」「どのくらい?」「YES寄り?」

最初は「判断だけして何に使うん?」と思った。

でもAPIを見ていたら、

これ、LLMやAIエージェントの前後に置くと面白いやつでは?

となった。

今回はアカウントを作って実測!……まではやらない。

公式のAPI仕様を読みながら、「自分の個人開発ならどこに入れられそうか」を考えてみる。


🤔 そもそもJevって何?

Jevは「判断」に寄せたAI。

普通のLLMなら、文章を書いたり、コードを書いたり、説明してもらったりする。

Jevはちょっと違う。

アプリの状態
    ↓
   Jev
    ↓
  判断結果
    ↓
アプリが次の処理をする

自分でツールを叩くわけでもない。Webを調べるわけでもない。長文を書いてくれるわけでもない。

判断して返す。

潔い。

判断方法は3種類

Native Decisionsでは主に choice / score / noul を使える。

種類 何をする?
choice 候補から1つ選ぶ
score 段階評価する
noul YESの確率を0〜1で返す

例えばこんな感じ。

{
  "state": {
    "environment": "production",
    "operation": "delete old records",
    "backup": "unknown"
  },
  "questions": {
    "action": {
      "type": "choice",
      "instructions": "Choose the safest next action.",
      "criteria": {
        "allow": "Proceed",
        "review": "Require human review",
        "deny": "Do not proceed"
      }
    },
    "needs_human_review": {
      "type": "noul",
      "instructions": "Does this require human review?"
    },
    "risk": {
      "type": "score",
      "instructions": "Score the operational risk.",
      "criteria": ["Low", "Moderate", "High", "Critical"]
    }
  }
}

同じ状態を渡して、「どうする?」「人間レビューいる?」「どれくらい危ない?」をまとめて聞ける。

なるほど。

「AIに回答させる」より「アプリの分岐をAIに判断させる」感じ。


🔥 判断用のAPIが最初からある

ここが結構おもしろかった。

Jevには自由にChoice / Score / Noulを作るだけじゃなく、用途別のpresetもある。

API 何を判断する?
tool-guard ツールを実行していい?
model-route どのモデルを使う?
route 次にどう進める?
research この証拠で主張を支えられる?
completion 本当に終わった?
decisions 独自の判断を作る

この一覧を見て、一番気になったのが completion。

「本当に終わった?」をAIに判断させる。

めちゃくちゃ気になる。


🔥 使い道その1:「完了しました」を本当に信じていい?

AIエージェントを使ってると、たまにある。

自分:

記事作って公開まで進めて

AI:

完了しました!

確認する。

記事本文       ✅
GitHub commit  ✅
公開           ❌
公開URL確認    ❌

終わってない。

「完了しました!」じゃない。

そこでJevの completion。

{
  "objective": "Qiita記事を公開する",
  "completed_work": [
    "記事本文を作成した",
    "GitHubへcommitした"
  ],
  "verification": [],
  "known_gaps": [
    "Qiitaの公開URLは確認していない"
  ]
}

目的、終わった作業、検証結果、まだ残っていることを渡して、complete / verify_more / incomplete のような判断に使える。

構成としてはこう。

AI Agent
   ↓
作業する
   ↓
「完了しました!」
   ↓
  Jev
   ↓
本当に終わった?
   ↓
complete / verify_more / incomplete
   ↓
必要ならAgentに戻す

これ、かなり好き。

作業するAIと、終わったか疑うAIを分ける。

AIを信用してない構成。

でも自律化するなら、このくらい疑ってる方が安心できる。


🔥 使い道その2:PostgreSQLバックアップが50時間止まってる。どうする?

最近実際にあったケースを当てはめてみる。

PostgreSQL Backup

Age:       50h
Threshold: 25h
Status:    stale
App:       running

アプリ自体は動いてる。でもバックアップは50時間更新されてない。

さて、どれ?

今すぐ対応
今日中
今週
保留

こういう候補をChoiceで判断させる。

さらにScoreで影響度、Noulで「人間へ通知すべき?」も聞く。

いや、if文でよくない?

その通り。

if (backupAgeHours > 25) {
  alert();
}

これで済むなら絶対こっち。

AIいらない。

ただ、「サービス自体は動いてる」「別の復旧手段がある」「メンテ時間が近い」「同時に別の障害も起きてる」みたいに条件が増えてくると、単純な閾値だけでは決めにくくなる。

ルールにするにはちょっと曖昧。

ここにJevを置くのは面白そう。


🔥 使い道その3:AIが本番DBを触ろうとしてる

これは怖い。

AI Agent:

本番DBの古いレコードを削除します

自分:

待て。

Jevには tool-guard がある。

ツール呼び出しの前に allow / confirm / review / deny のような判断を挟める。

AI Agent
    ↓
「DB削除します」
    ↓
Jev Tool Guard
    ↓
allow / confirm / review / deny
          ↓
       必要なら人間確認

Jev自身がDBを削除するわけじゃない。

「これ実行していい?」だけ判断する。

例えば、READMEを読むならallow、本番DBを変更するならreview、みたいに扱える。

AIエージェントに権限を渡せば渡すほど、この層は欲しくなる。


🤖 使い道その4:どのAIに投げる?

最近のAIアプリ、モデルが1個とは限らない。

Fast Model
→ 速い・安い

Reasoning Model
→ 重い・高い・強い

全部Reasoning Modelに投げたら楽。でも高い。

全部Fast Modelなら安い。でも難しいタスクで困る。

そこで model-route。

ユーザーのリクエスト
        ↓
       Jev
        ↓
   どっち使う?
     ┌──┴──┐
   Fast   Reasoning

LLMを呼ぶ前にAIがモデルを選ぶ。

AIの前にAI。

ちょっと面白い。

複数Provider・複数モデルを使うサービスなら、普通に候補に入りそう。


📩 使い道その5:問い合わせを振り分ける

もっと一般的な例なら、問い合わせの振り分けにも使えそう。

例えばサービスにこんな問い合わせが来る。

昨日決済したのに、有料プランが反映されていません。

これを、

billing
account
bug
feature_request
other

のどこへ送るか判断する。

問い合わせ
    ↓
   Jev
    ↓
どのカテゴリ?
    ↓
担当フローへ

さらにNoulで、

人間がすぐ確認した方がいい?

も一緒に判断できる。

単なるキーワード一致だと、「決済」という文字があるからbilling、くらいしか見られない。

でも実際の問い合わせはもっと曖昧。

Proにしたはずなのに機能が使えない

みたいに「決済」と一言も書いていないこともある。

こういう文章の意味を見て、決められた選択肢へ振り分ける用途はかなりイメージしやすい。

公式ユースケースにもIntent Routing、Content Moderation、Invoice Classification、CSV Validation、Claim Verificationなどがある。

Jevの立ち位置は、やっぱり何かを生成するより「どれ?」「どうする?」を決める側っぽい。


🤔 じゃあif文とLLMのどっちなの?

ここまで見て、自分の中ではこう整理した。

ルールが明確
──────────────
if / switch

     ↓

ちょっと曖昧
複数情報から判断したい
──────────────
Jev

     ↓

調査したい
説明してほしい
コードを書いてほしい
──────────────
LLM / Agent

例えば if (age >= 18) で終わるものをJevには聞かない。

一方で、「障害の深刻度・現在のサービス状態・復旧手段・他のインシデント・人間レビューの必要性を全部見て次の対応を決めて」なら、Jevの出番が見えてくる。

if文にするには曖昧。LLMに長文を書かせるほどでもない。

この間。

なるほど、ここか。


⚠️ Jevが「OK」って言ったから実行!は怖い

例えばJevが高い確率で allow を返したとする。

じゃあ本番DB削除!

……とはならない。

怖すぎる。

Jevのドキュメントでも、probabilityはsignalとして扱い、authorizationそのものにはしないよう注意されている。

なので自分ならこうする。

Jev
 ↓
判断
 ↓
アプリ側のルール
 ↓
必要なら人間承認
 ↓
実行

特に削除・決済・本番変更・権限変更・個人情報まわりは、AIの判断だけで直接実行させない。

Jevは決定権者じゃなくて、判断材料を返すやつくらいがちょうどよさそう。


🧪 今回は実際には叩いてない

ここ大事。

今回はJevのアカウントを作って、APIを実際に叩くところまではやってない。

なので、「精度めっちゃ高い!」「爆速!」「LLMより絶対いい!」みたいなことは言えない。

公式サイトではミリ秒級の応答などが紹介されているけど、今回は自分で測っていない。

性能評価はしてない。

ただ、APIを読んで「何に使うものなのか」はかなりイメージできた。

そして一番気になったのはやっぱりこれ。

AI Agent
   ↓
作業
   ↓
「終わりました!」
   ↓
Jev
   ↓
「本当に終わった?」

これ、実際に組んでみたい。


まとめ

最初:

判断だけするAI? 何に使うん?

APIを読む。

completion
tool-guard
model-route
decisions

自分:

あ、AIエージェントの前後に置くやつか。

となった。

個人的に気になったのは、AI Agentの完了チェック、危険なTool Callのガード、Issueや障害のトリアージ、モデルルーティング、Discord Botの判断レイヤーあたり。

何でもLLMに投げるんじゃなくて、

「これ、生成してほしいのか? 判断してほしいだけなのか?」

を分ける。

入力
 ↓
Jev ── 判断
 ↓
LLM / Agent ── 作業
 ↓
Jev ── 本当に終わった?
 ↓
完了

この構成、ちょっと試したくなる。


参考

  • Qiita「あなたはもう試した?判断特化AI『Jev』で遊ぼう!」
  • Jev API REST Docs
  • Jev Use Cases
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?