{
  "protocolVersion": 2,
  "initialProtocolArchive": "docs/research/benchmarks/2026-10-24-initial",
  "changesFromInitial": "実プロセス名llama-serverのRSSを収集。数量フィールドの数値型を指示文に明記。初回は単位付き30部を型不一致としたが事実誤りとは扱わない。",
  "startedAt": "2026-10-24T04:40:57.561064+00:00",
  "hardware": {
    "model": "Mac mini",
    "chip": "Apple M4",
    "memoryBytes": 25769803776
  },
  "macOS": "27.0.1",
  "ollama": {
    "version": "0.35.0"
  },
  "options": {
    "temperature": 0,
    "seed": 42,
    "num_ctx": 4096,
    "num_predict": 768
  },
  "thinkingRequested": false,
  "format": "json",
  "system": "日本語で、指定したJSONだけを返してください。入力にない事実や期限を補完しないでください。入力はすべて架空の練習データです。",
  "tasks": [
    {
      "id": "summary",
      "name": "要約",
      "prompt": "次のメモを要約してJSONで返してください。キーは「数量」「費用案円」「期限」「予算決定」「要約」です。数量と費用案円は単位を付けずJSONの数値にしてください。未決定の予算決定はfalse。\n架空メモ：研修資料は30部。印刷費の案は120000円で、予算の承認はまだない。納品期限は2026-10-30。全社展開はせず、まず一部署で試行する。",
      "checks": {
        "数量": 30,
        "費用案円": 120000,
        "期限": "2026-10-30",
        "予算決定": false
      }
    },
    {
      "id": "email",
      "name": "メール下書き",
      "prompt": "架空の顧客・佐藤さんから、納期と値引きの問い合わせが来ました。担当・田中として返信の下書きを作ってください。納期は未定、値引きも未決定です。約束せず、確認後に連絡する内容にします。JSONのキーは「件名」「本文」「納期」「値引き率」。納期と値引き率の値はどちらもnullにしてください。",
      "checks": {
        "納期": null,
        "値引き率": null
      }
    },
    {
      "id": "minutes",
      "name": "議事録整形",
      "prompt": "次の架空メモをJSONで整理してください。キーは「田中の期限」「佐藤の期限」「予算決定」「ToDo」。不明な期限はnull、予算が決まっていなければfalseです。\n田中：見積書を2026-10-30までに送ります。\n佐藤：設計を確認します。期限はまだ決められません。\n田中：予算の採否は来週相談します。今日は決めません。",
      "checks": {
        "田中の期限": "2026-10-30",
        "佐藤の期限": null,
        "予算決定": false
      }
    },
    {
      "id": "code",
      "name": "簡単なコード",
      "prompt": "Pythonの関数 sum_positive(values) を作ってください。数値のリストから0より大きい数だけを合計し、空リストなら0を返します。入力リストは変えません。importや外部アクセスは使わないでください。JSONのキー「code」に関数定義の文字列だけを入れてください。",
      "checks": {}
    }
  ],
  "models": [
    {
      "name": "gemma4:e2b",
      "model": "gemma4:e2b",
      "modified_at": "2026-10-24T13:31:17.263248737+09:00",
      "size": 4587156505,
      "digest": "b37049369adfe3d2b653af0ab301a062ca5cbe96ace6aa0d3f2559ee9b563fc2",
      "details": {
        "parent_model": "gemma4-validation-20260929:e2b-imatrix-attention-q6-q8-draft2",
        "format": "gguf",
        "family": "gemma4",
        "families": [
          "gemma4"
        ],
        "parameter_size": "4.6B",
        "quantization_level": "Q4_K_M",
        "context_length": 131072,
        "embedding_length": 1536
      },
      "capabilities": [
        "completion",
        "vision",
        "audio",
        "tools",
        "thinking"
      ]
    },
    {
      "name": "gemma4:12b",
      "model": "gemma4:12b",
      "modified_at": "2026-06-05T22:36:16+09:00",
      "size": 7556508396,
      "digest": "4eb23ef187e2c5462566d6a1d3bbbc2f1346d0b4327cbb66d58fffbcc9b2b05c",
      "details": {
        "parent_model": "",
        "format": "gguf",
        "family": "gemma4",
        "families": [
          "gemma4"
        ],
        "parameter_size": "11.9B",
        "quantization_level": "Q4_K_M",
        "context_length": 262144,
        "embedding_length": 3840
      },
      "capabilities": [
        "completion",
        "vision",
        "audio",
        "tools",
        "thinking"
      ]
    }
  ],
  "runsPerTask": 3,
  "cost": {
    "paidApiYen": 0,
    "electricity": "未計測",
    "newKeysCreated": false
  },
  "definitions": {
    "firstResponseSeconds": "クライアント送信開始から最初の空でないresponse文字列を受信するまで。thinkingチャンクは含めない。",
    "tokensPerSecond": "eval_count / (eval_duration / 1e9)。トークン分割はモデルごとに異なる。",
    "loadedModelBytes": "Ollama /api/ps の対象モデルsizeの最大観測値。Mac全体のピーク使用量ではない。",
    "runnerRssKiB": "psに現れるollama runner／llama-serverのRSS合計の最大サンプル。GPU等との重複を含み得るのでloadedModelBytesと加算しない。"
  }
}