Skip to main content
Glama
draiagent

ai-to-agent-jev-mcp

by draiagent

ai-to-agent-jev-mcp

ai-to-agent-jev-mcp — TypeSafe Jev 標準 MCP server
版本:1.0.0|發布日期:2026-09-22|語言:繁體中文

TypeSafe Jev(System One 決策模型)包裝成標準 MCP server,讓 Claude Code Agent 可以直接呼叫它做「判斷題」。

AI Coach 益力康陳董 × CGM Coach 血糖教練|2026 AI to Agent


為什麼需要這個

Jev 不生成文字、不寫程式、不聊天。它只做一件事:給它一個狀態 + 一組型別化問題,回傳結構化答案

這正好補上 Agent 架構裡最缺的一塊——決策層

沒有 Jev

有 Jev

分流判斷

Agent 呼叫 LLM 問「請回答 A/B/C」,慢、貴、偶爾漂移

一次呼叫回傳選項 + 機率 + 信心值,可重現

評分判斷

寫死 if/else 規則,或每次問 LLM

依評分階梯回傳加權分數,直接在程式裡設門檻

真偽判斷

脆弱的「請回傳 JSON」prompt

型別化回傳,不會格式錯亂

定位:Jev 是 Agent 手上的一個新工具,跟 Whisper、ffmpeg 平行——專門處理「判斷題」而非「生成題」。它不是用來取代 Claude Code 背後的模型。


Related MCP server: Jevbridge

安裝

1. 取得 API 金鑰

console.typesafe.ai 申請,也可以先在 Playground 試玩不寫程式。

2. 安裝依賴

pip install "mcp>=1.2" httpx

3. 掛進 Claude Code

claude mcp add ai-to-agent-jev-mcp \
  --env TYPESAFE_API_KEY=sk-your-key-here \
  -- python3 /絕對路徑/ai-to-agent-jev-mcp/jev_mcp_server.py

或手動寫進設定檔(~/.claude.json 或專案的 .mcp.json):

{
  "mcpServers": {
    "ai-to-agent-jev-mcp": {
      "command": "python3",
      "args": ["/絕對路徑/ai-to-agent-jev-mcp/jev_mcp_server.py"],
      "env": {
        "TYPESAFE_API_KEY": "sk-your-key-here"
      }
    }
  }
}

重開 Claude Code,用 /mcp 確認 ai-to-agent-jev-mcp 已連上。

環境變數

變數

必填

預設

TYPESAFE_API_KEY

TYPESAFE_BASE_URL

https://api.typesafe.ai

TYPESAFE_DEFAULT_MODEL

jev-latest

TYPESAFE_TIMEOUT

30(秒)


Claude Code 中使用

在 Agent 程式裡呼叫 Jev

MCP 連上後,Claude Code 會自動看到四個工具。你可以在程式碼中直接呼叫:

# 真偽判斷:單一 yes/no 問題
result = await jev_noul(
    state="空腹血糖 186 mg/dL",
    question="這個數值是否需要立即通知照護者?",
    criteria={
        "true": "明顯超出安全範圍,需立即處理",
        "false": "在可控範圍內,例行追蹤"
    }
)
# result = {"noul": 0.92, "confidence": 0.88}

# 分流選擇:固定選項中擇一
route = await jev_choice(
    state="患者 BMI 28,無共病,願意配合運動",
    question="該推薦哪種減重方案?",
    criteria={
        "輕運動+飲食調整": "BMI 在健康邊緣、無共病",
        "醫療介入": "BMI > 30 或有共病風險",
        "暫不介入": "患者未表達需求或條件不足"
    }
)
# route = {"choice": "輕運動+飲食調整", "confidence": 0.91, "probabilities": {...}}

# 評分判斷:沿評分階梯打分
score = await jev_score(
    state="短影音開場三秒未曾出現主人公,背景音樂偏低調",
    question="這支短影音的開場鉤子強度?",
    criteria=["平淡", "普通", "有吸引力", "非常抓人"]
)
# score = {"score": 1.5, "level": "普通", "confidence": 0.75}

# 批次決策(官方建議):一次問多題
answers = await jev_ask(
    state="患者血糖資料:空腹 186、餐後 240、連續三天;症狀:疲倦、夜間頻尿",
    questions={
        "需通知照護者": {
            "type": "noul",
            "instructions": "這組數據是否需要立即通知?",
            "criteria": {"true": "明顯超出且持續", "false": "可控範圍"}
        },
        "處理路徑": {
            "type": "choice",
            "instructions": "應走哪條處理路徑?",
            "criteria": {"自動推播": "...", "人工跟進": "...", "就醫轉介": "..."}
        },
        "風險程度": {
            "type": "score",
            "instructions": "整體風險有多高?",
            "criteria": ["控制良好", "需留意", "控制不佳", "立即介入"]
        }
    }
)
# answers = {
#   "需通知照護者": {"noul": 0.92, "confidence": 0.88},
#   "處理路徑": {"choice": "就醫轉介", "confidence": 0.85, ...},
#   "風險程度": {"score": 3.2, "level": "立即介入", "confidence": 0.90}
# }

在 Claude Code 對話中用文字呼叫

你也可以在 Claude Code 的對話框直接說:

用 jev_ask 一次問完三題:(1) 這筆訂單是否需人工確認?(2) 優先度如何?(3) 備註屬於哪一類?

Claude 會看到 MCP 工具並自動組織參數、呼叫 Jev、解析結果。

信心值怎麼用

ans = await jev_choice(...)

if ans["confidence"] < 0.6:
    # 信心不足,不要直接自動執行
    hand_off_to_human_or_llm()
else:
    # 信心足夠,直接依選擇分流
    execute(ans["choice"])

四個工具

工具

回傳

什麼時候用

jev_noul

0~1 機率

是非題:條件成不成立、要不要觸發動作

jev_choice

選中項 + 各項機率 + 信心

分流:路由到固定的幾個處理路徑

jev_score

加權分數 + 信心

程度題:緊急度、風險、品質、優先度

jev_ask

多題答案

決策點多時優先用這個

為什麼優先用 jev_ask

同樣的題目分開問跟一次問,答案一樣,但批次呼叫約便宜 12 倍、快 10 倍——因為 state 只送一次。Agent 流程裡只要有兩個以上的決策點,就該合併成一次 jev_ask


三大事業的實際用例

1. 血糖管理 Agent

一次問完三題,程式再依數值分流:

{
  "state": "空腹 186 mg/dL,餐後兩小時 240 mg/dL,連續三天。患者回報最近容易疲倦、夜間頻尿。",
  "questions": {
    "需通知照護者": {
      "type": "noul",
      "instructions": "這組數據是否需要立即通知照護者或衛教師?",
      "criteria": {
        "true": "數值明顯超出安全範圍且持續,或伴隨警示症狀",
        "false": "在可控範圍內,例行追蹤即可"
      }
    },
    "處理路徑": {
      "type": "choice",
      "instructions": "這個個案該走哪條處理路徑?",
      "criteria": {
        "自動衛教推播": "推送既有衛教內容即可",
        "衛教師跟進": "需要人工聯繫了解狀況",
        "建議就醫": "超出衛教範圍,應轉介醫療"
      }
    },
    "風險程度": {
      "type": "score",
      "instructions": "整體血糖控制風險有多高?",
      "criteria": ["控制良好", "需留意", "控制不佳", "需立即介入"]
    }
  }
}

程式怎麼接

if ans["需通知照護者"]["noul"] > 0.8:
    notify_caregiver()

if ans["處理路徑"]["confidence"] < 0.6:
    escalate_to_human()          # 信心不足,不要自動決定
else:
    route(ans["處理路徑"]["choice"])

if ans["風險程度"]["score"] >= 2.5:
    flag_for_review()

⚠️ 衛教定位提醒:Jev 的輸出是分流用的訊號,不是診斷。凡是「建議就醫」這條路徑,一律導向專業醫療,不要讓 Agent 直接給醫療建議。


2. 短影音生成 Agent

腳本草稿進來,先判斷風格與品質,再決定要不要進生成流程:

{
  "state": "<腳本草稿全文>",
  "questions": {
    "風格模板": {
      "type": "choice",
      "instructions": "這支短影音該套用哪個風格模板?",
      "criteria": {
        "CGM衛教版": "專業醫療衛教口吻,重數據與實證",
        "AI導師版": "創業經營乾貨,重方法論與案例",
        "跨界融合版": "串接健康與商管,重觀點與洞察"
      }
    },
    "開場鉤子強度": {
      "type": "score",
      "instructions": "前三秒的鉤子抓不抓得住人?",
      "criteria": ["平淡", "普通", "有吸引力", "非常抓人"]
    },
    "有無醫療宣稱風險": {
      "type": "noul",
      "instructions": "腳本中是否出現可能觸法的療效宣稱?",
      "criteria": {
        "true": "有明示或暗示治療、療效、預防疾病的說法",
        "false": "僅描述知識、經驗或一般性健康概念"
      }
    }
  }
}

程式怎麼接:鉤子分數 < 2 就退回重寫、療效宣稱 > 0.5 直接擋下不生成、風格模板決定套哪組素材與字卡。


3. 寵物餐廳自動化 Agent

訂單進來,判斷要不要人工介入:

{
  "state": {
    "訂位人數": 12,
    "時段": "週六 18:00",
    "備註": "兩隻狗對雞肉過敏,另有一隻大型犬需要無障礙走道",
    "是否包廂": true
  },
  "questions": {
    "需人工確認": {
      "type": "noul",
      "instructions": "這筆訂單是否需要人工致電確認?",
      "criteria": {
        "true": "有特殊餐飲需求、動線需求,或超出標準流程",
        "false": "標準訂位,系統自動確認即可"
      }
    },
    "處理優先度": {
      "type": "score",
      "instructions": "這筆訂單的處理優先度?",
      "criteria": ["照常排入", "當日留意", "需立即處理"]
    },
    "備註類型": {
      "type": "choice",
      "instructions": "備註主要屬於哪一類需求?",
      "criteria": {
        "飲食限制": "過敏、忌口、特殊餐食",
        "空間需求": "無障礙、大型犬、包廂配置",
        "混合需求": "同時涉及飲食與空間",
        "無特殊需求": "一般備註"
      }
    }
  }
}

程式怎麼接需人工確認 > 0.7 就推到店長的待辦;備註類型 = 飲食限制 自動帶出過敏原檢查表;處理優先度 >= 1.5 當天早班先處理。


設計要點

信心值是第二道關卡。答案告訴你「是什麼」,信心告訴你「能不能直接照做」。低信心的決策交給 LLM 或人工,這是 Jev 最值錢的用法——比單純的 true/false 多一層安全網。

if answer["confidence"] < THRESHOLD:
    hand_off_to_llm_or_human()
else:
    act_on(answer["choice"])

把複雜判斷拆成原子問題。與其問「這個個案該怎麼處理」,不如拆成三題各自判斷,權重留在你自己的程式裡——這樣門檻可以調、邏輯可以測、出錯可以追。

state 用結構化資料。訂單、紀錄、數據這類東西直接傳 JSON,比塞成一段文字準確。


錯誤處理

server 已內建:

  • 429 / 529 / 5xx → 指數退避自動重試最多 4 次(會聽 Retry-After

  • 401 → 回傳「API 金鑰無效」的中文說明

  • 422 → 回傳「請求格式不合法」並附上 API 指出的問題欄位

  • 所有錯誤都以 {"error": "..."} 回傳,不會噴 stack trace 給 Agent

參數驗證也在送出前就擋掉:選項少於 2 個 / 超過 255 個、評分階梯少於 2 階 / 超過 10 階、choice 與 score 缺 criteria、未知題型。


測試

python3 test_offline.py

用假的 API server 驗證請求格式與回傳解析,不需要金鑰、不連外網。目前 29 項全過。


版權與引用

AI Coach 益力康陳董 × CGM Coach 血糖教練|2026 AI to Agent

Copyright © 2026 AI Coach 益力康陳董。All rights reserved.

本版未授予 MIT、Apache 或 Creative Commons 等開放授權。公開展示不等於授予任意商用、改作或再散布權;使用條件見 LICENSE。這是保留權利的專案,不宣稱為開源軟體。

建議引用:AI Coach 益力康陳董(2026)。《ai-to-agent-jev-mcp:TypeSafe Jev 標準 MCP server》(1.0.0 版)。

Related MCP Connectors

Related MCP Servers