協同型人間エージェントプロトコル (CHAP)

2026/08/20 7:09

協同型人間エージェントプロトコル (CHAP)

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

CHAP は、人的意思決定および AI 意思決定における断片化されたストレージを置き換えることを目的とした統合プロトコルであり、構造化されたエンドツーエンド監査チェーンを作成することでその実現を目指しています。その主な目標は、人が AI のドラフトを編集する workflows を形式化することであり、コードの差分、推論、意図ステータスなどの特定の詳細を記録して全ての変更を追跡します。TypeScript および Python などの言語で互換性のあるワイヤーフォーマットを実装し、同一の JSON-RPC 2.0 バイトを出力させることで、CHAP は既存のツール(例:Cursor)が MCP サーバートランспортを介して人間のオーバーライドとボットの警告をシームレスに統合するか、あるいは A2A サーバートランспортを介してオーケストレーターに対してスキルを公開できるようにします。現在はパブリックドラフト段階(v0.2)であり、フレームワークはキーのローテーションやログの期限切れ後も維持される署名された非否認性のある承認を提供します。LangGraph や Claude Desktop などの主要な AI エコシステム向けのブリッジおよび Pydantic AI や Google ADK などのフレームワーク向けの Python アダプターを含んでいます。究極的には、CHAP はカジュアルな編集セッションを構造化された監督データへと変換し、組織(個人の開発者から GMP 規制下にある製造業者まで)が「偽陽性」などの理由でタグ付けされたオーバーライドを分析して、重要な歴史的文脈を失うことなくプロンプトエンジニアリング戦略の改善を可能にします。

本文

CHAP: 人間とエージェントが共同で実務をこなすためのプロトコル

CHAP (Collaborative Human-Agent Protocol) は、ボットによるドラフトに対して人間が編集を加えた際、そのデータを「封筒」と呼ばれる形式で保存します。これにより、6 ヶ月後のクエリや再生成、検証が可能になります。

なぜ CHAP が存在するのか

現在の意思決定プロセスには以下の課題があります。

  • 情報の散在: 判断はアプリケーションコード、チャット履歴、チケットコメント、人間の記憶に散在しています。
  • 復元性の欠如: 不具合が 6 週間後に起きた場合、経緯の再構築に45 分かかり、推測に頼る部分が半分以上を占めます。
  • 情報の一元化不足: エージェントと人間の相互作用を統一的な形式で扱うことが困難です。

CHAP の解決策

  • 意思決定を一元化した場所で処理します。
  • エージェントのドラフトは「アーティファクト」として扱います。
  • 人間の編集は、差分(diff)、根拠(rationale)、管理可能なタグを含む構造化されたオーバーライドとして定義されます。
  • これらはすべてコンテンツハッシュによってチェーン化され、ログを個別に
    grep
    するのではなく、チェーン全体をクエリで検索できます。

90 秒間の概要説明

Cursor を使用して個人開発者がプルリクエストを検証しているシナリオを 23 秒で実行します。以下のコードは、実際の開発環境のスタックに応じて選択して読み進めてください。

1. ワークスペースを起動する

埋め込み型コーディネータと SQLite 永続化ストレージ、そして 2 つの参加者(人間とエージェント)を作成します。

TypeScript:

import { Coordinator } from "@brightbeamai/chap-coordinator";
import { SqliteStore } from "@brightbeamai/chap-coordinator/storage/sqlite";

const coord = new Coordinator({ store: new SqliteStore("./chap.db") });

coord.api.workspace.create({ 
  workspace: "wsp_pr_reviews", 
  profiles: ["core/1.0", "review/1.0"] 
});

coord.api.participant.join({ 
  workspace: "wsp_pr_reviews", 
  from: "human:me@local", 
  type: "human" 
});

coord.api.participant.join({ 
  workspace: "wsp_pr_reviews", 
  from: "agent:cursor#v1", 
  type: "agent" 
});

Python:

from chap_coordinator import Coordinator
from chap_coordinator.storage.sqlite import SqliteStore

coord = Coordinator(store=SqliteStore("./chap.db"))

def send(method, params):
    return coord.dispatch({
        "jsonrpc": "2.0", "id": method,
        "method": method, "params": params,
    })

send("workspace.create", {
    "workspace": "wsp_pr_reviews",
    "profiles":  ["core/1.0", "review/1.0"],
})

send("participant.join", {
    "workspace": "wsp_pr_reviews",
    "from":      "human:me@local",
    "type":      "human",
})

send("participant.join", {
    "workspace": "wsp_pr_reviews",
    "from":      "agent:cursor#v1",
    "type":      "agent",
})

2. ボットがドラフトを作成し、人間がオーバーライドする

既存の Cursor インテグレーションを拡張して、封筒形式でのイベント発行を実現します。ボットのレビュー結果に対し、人間が異議を唱えてオーバーライド(修正)を行います。

TypeScript:

// 1. タスク作成
const { task_id } = coord.api.task.create({
  workspace: "wsp_pr_reviews",
  from:      "agent:cursor#v1",
  assignee:  "agent:cursor#v1",
  kind:      "code_review",
  input:     { pr_id: "PR-482" },
});

// 2. タスク完了(出力を提出)
coord.api.task.complete({
  workspace: "wsp_pr_reviews",
  from:      "agent:cursor#v1",
  task_id,
  output:    cursorReview,
});

// 3. レビュー依頼を送信
coord.api.review.request({
  workspace: "wsp_pr_reviews",
  from:      "agent:cursor#v1",
  task_id,
  artefact:  cursorReview,
  to:        "human:me@local",
});

// 4. オーバーライド(人間による修正と根拠の付与)
coord.api.decide.override({
  workspace:        "wsp_pr_reviews",
  from:             "human:me@local",
  task_id,
  intent_preserved: true, // 意図を維持しつつ修正
  diff: [{ op: "replace",
           path: "/comments/0/severity",
           value: "info" }],
  rationale: "誤検知。これはバグではなく、フレームワークの慣習です。",
  tags: ["false-positive", "framework-pattern-misread"],
});

Python:

# 1. タスク作成
r = send("task.create", {
    "workspace": "wsp_pr_reviews",
    "from":      "agent:cursor#v1",
    "assignee":  "agent:cursor#v1",
    "kind":      "code_review",
    "input":     {"pr_id": "PR-482"},
})
task_id = r["result"]["task_id"]

# 2. タスク完了
send("task.complete", {
    "workspace": "wsp_pr_reviews",
    "from":      "agent:cursor#v1",
    "task_id":   task_id,
    "output":    cursor_review,
})

# 3. レビュー依頼
send("review.request", {
    "workspace": "wsp_pr_reviews",
    "from":      "agent:cursor#v1",
    "task_id":   task_id,
    "artefact":  cursor_review,
    "to":        "human:me@local",
})

# 4. オーバーライド(修正と根拠の付与)
send("decide.override", {
    "workspace":        "wsp_pr_reviews",
    "from":             "human:me@local",
    "task_id":          task_id,
    "intent_preserved": True,
    "diff": [{"op":    "replace",
              "path":  "/comments/0/severity",
              "value": "info"}],
    "rationale": "誤検知。フレームワークの慣習であり、バグではありません。",
    "tags": ["false-positive",
             "framework-pattern-misread"],
})

インタフェースについての注記

  • TypeScript: 型付きファサード(
    coord.api.*
    )を提供し、完全な自動補完とコンパイル時チェックを可能にします。
  • Python: JSON-RPC の封筒形式(
    coord.dispatch({...})
    )を保ちつつ、各呼び出しの要件に合わせてラップするスタイルを採用しています。テストでは
    send()
    ヘルパー関数が慣用句として使用されています。
  • 共通性: どちらのクライアントから呼び出された場合でも、送信されるワイヤー上のバイト列は同一であり、監査チェーンはバイト単位で完全に一致します。

3. 2 ヶ月経過後、これまでの活動を分析する

プロトコルの実益を発揮します。参考リポジトリに提供されている分析スクリプトを使用して、監査チェーン(SQLite)を読み込み、オーバーライドをグループ化します。

TypeScript 版の参考コード:

$ npm --prefix reference/core-plus-review run analyze -- --db ./chap.db wsp_pr_reviews

Python 版の参考コード:

$ python3 reference/python/analyze_overrides.py --db ./chap.db wsp_pr_reviews

オーバーライド学習レポート(出力例)

オーバーライドは推測を不要にします。パターン名を参照することで改善方向が明確になります。

オーバーライド学習レポート
========================
合計オーバーライド数:47

タグ別分類:
  false-positive             ████████████████  31 (66%)
  framework-pattern-misread  ███████████       22 (47%)
  cosmetic-pref              ████              8   (17%)

トップファイルパス:
  src/handlers/                                    18 オバーライド
  src/components/                                  9   オバーライド

オーバーライド封筒の詳細

オーバーライド封筒は CHAP で最も重要なデータ構造です。特に以下の 2 つのフィールドに注意してください。

  • intent_preserved
    :
    • 改善型オーバーライド: 人間がエージェントの決定そのものを承認しつつ表現を修正し直すケース。
    • 置換型オーバーライド: 人間が異なる判断を下したケース。
    • 重要性: これらは異なる失敗モードであり、それぞれ異なる解決策が必要です。
      • 改善型率が極めて高い場合:エージェントのリトリバル(検索)が不十分であることを示唆します。
      • 置換型率が高い場合:ポリシー自体が曖昧であったか、あるいはエージェントのタスクコンテキストが間違っていた可能性があります。
  • tags
    :
    • チームで合意した統制された語彙です。シンプルに保ってください。
    • 3 ヶ月後に「どのプロンプトが改善が必要か」や「どのファイルパスでボットが一貫して誤っているか」といった質問に対して、集約次元として機能します。

インストール方法

  • TypeScript / Node.js:
    npm install @brightbeamai/chap-coordinator
  • Python:
    pip install chap-coordinator

どちらの方法でも、コア機能に加え、以下の内容が含まれます。

  • review/1.0
    プロフィール
  • 実行可能な参考コード

参考実装の配置場所:

  • TypeScript:
    reference/
    (コア) /
    packages/coordinator/
    (ライブラリ)
  • Python:
    reference/python/
    (コア) /
    packages/coordinator-py/
    (ライブラリ)

詳細なハンズオンガイドは

examples/00-five-minute-start.md
を参照してください。


今日リリースされているもの

CHAP 0.2 は公開ドラフト版です。以下の内容がリポジトリに含まれています。

  • 仕様書:
    • コア機能(7 つのメソッド、1 つの封筒形式、1 つのワイヤーフォーマット)を統合した単一ドキュメント。
    • さらに 11 のオプションプロフィールを備えています。
    • SPECIFICATION.md
      または個別の
      core/SPEC.md
      profiles/
      フォルダから閲覧可能です。
  • 2 つの参考実装:
    • 合計 39 のメソッドハンドラを実装済み。
    • TypeScript:
      packages/coordinator/
      、HTTP サーバーは
      reference/core/
      など。
    • Python:
      packages/coordinator-py/
      、HTTP サーバーは
      reference/python/
    • 両実装とも同じ JSON-RPC 2.0 ワイヤーで動作し、準拠テストパスします。
  • 準拠ハルネス:
    • 23 のテストベクトル、署名・正規化・チェーン検証が含まれます。
    • in-toto 認証書出力が可能。
    • Minimum / Recommended の 2 つの準拠レベルを主張可能です。
  • MCP サーバー透過:
    • CHAP コーディネータは MCP サーバーとして提示でき、すべての CHAP メソッドをツールとして公開します。
    • Claude Desktop、Cursor、Claude Code などで自然言語で CHAP ワークスペースを駆動できます。
  • A2A サーバー透過:
    • CHAP コーディネータは A2A エージェントとしても提示でき、各メソッドを離散的なスキルとして広告します。
    • Azure AI Foundry, Amazon Bedrock AgentCore, Google ADK などのオーケストレーターから URL で登録・委任できます。
  • 内側ラップヘルパー:
    • 外部 MCP ツール呼び出しや A2A 交換を
      task.create + task.complete
      ペアに変換するユーティリティです。
    • 入力・出力の正規化ハッシュが、生成されたアーティファクト上の引用として記録されます。
  • フレームワークブリッジ:
    • 承認、編集、却下といった操作を、監査チェーン上の
      decide.approve / decide.override / decide.reject
      として記録するためのアダプターです。
    • 対象: LangGraph, Pydantic AI, AG2, LlamaIndex, Google ADK など(オプション)。
  • 12 つの実践的シナリオ:
    • 個人開発者から GMP 規制下での製造業に至るまでの実際のケースが紹介されています。

注意: 変更は Semantic Versioning に従います。プロフィールインターフェースはコアよりも早く変化します。厳密な安定性を必要とする本番デプロイメントは、1.0 のリリースを待つことをお勧めします。


このプロトコルを採用することで得られるもの

  • 堅牢な監査チェーン: キーの回転、ログの有効期限切れ、または従業員の離職などに対しても存続します。すべての封筒はコンテンツハッシュによってリンクされています。1 回の
    audit.read
    ですべてを取得可能。
  • 構造化された監督データ: 通常の業務に伴う副産物として得られます。追加のアノテーションパイプライン不要です。オーバーライド自体が即座に分析可能なデータセットとなります。
  • 否認不可能な承認: セキュリティ署名付き/1.0 に参加して OIDC ベインドの署名を取得できます。audit-scitt/1.0 に参加して、サーバー依存なしの検証可能な外部トランスペアランスログを取得可能です。
  • 既存システムとの互換性: MCP や A2A を代替するものではありません。これらと並存します。
    • エージェント ↔ ツール: MCP
    • エージェント ↔ エージェント: A2A
    • エージェント + 人間 → 共有業務記録: CHAP

次に読むべきもの

  • IN_PRACTICE.md
    : 12 の現実的なユースケースを紹介。最も有益な次の読み物です。
  • ABOUT.md
    : リポジトリの内容、CHAP と MCP/A2A の関係、再利用される規格、コントリビューション方法について。
  • core/SPEC.md
    : 7 つのコアメソッド。プロトコルの全体表面は 1 つの画面に収まります。
  • arXiv への技術報告書: 完全版論文です。アーキテクチャ、設計根拠、プロフィールセマンティクス、脅威モデルなどが含まれます。

引用について

学術的または技術的な作業で CHAP を参照する場合は、以下の形式を引用してください。

@techreport{chap2026,
  author      = {Shahid, Arsalan and Suttie, Gordon and Black, Philip},
  title       = {Collaborative Human-Agent Protocol (CHAP): An open protocol for auditable, structured multi-human and multi-agent collaboration},
  institution = {Brightbeam AI},
  year        = {2026},
  type        = {Technical Report},
  number      = {arXiv:2606.09751},
  url         = {https://arxiv.org/abs/2606.09751}
}

ライセンス:

  • CC-BY 4.0(仕様書)
  • Apache 2.0(コード)
  • 著作権無償、あらゆる言語、あらゆるデプロイ環境での使用を許可。

同じ日のほかのニュース

一覧に戻る →

2026/08/20 2:32

OpenRouter が Stripe に参画

## Japanese Translation: OpenRouter は、コアアイデンティティを維持しつつミッションとグローバルなスケーリングを加速させるため、Stripe と戦略的提携を正式に発表しました。このアライアンスは、質、スケーラビリティ、そして AGI 後の経済におけるビルダーの支援にコミットした 2 つのデベロッパー向けのインフラストラクチャプラットフォームを結びつけるものです。Stripe の大規模な顧客ネットワーク、ビジネス成長データ、および不正防止専門知識との統合により、市場慣性による影響で単一のモデルがデフォルトとなるのを防ぎながら OpenRouter がスケールするのを支援します。OpenRouter は現在、400 以上のモデルを通じて 1,000 万人以上のユーザーをサービスしており、2023 年初頭の設立以来、推論ボリュームは少なくとも 10 倍の年間増加を示しています。毎日大量のトークンを処理しています。取引は来週中に完了見込みであり、OpenRouter の製品、ミッション、名称、ロードマップ、ユーザー統合、またはルーティングロジックを変更することなく、判断は常にユーザーにとって最善のものに基づいて行われます。この提携は多様な AI エコシステムの育成を目指し、両社は異なる運営文化とスタートアップの機動性を維持することを可能にします。OpenRouter はグローバルな成長に伴い効率的な 90 名の体制を維持する予定であり、好奇心、厳格さ、主体性、透明性を備えた新しいチームメンバーを招致しています。

2026/08/20 3:33

Go 1.27

## Japanese Translation: Go チームはバイナリアーカイブと公式インストーラーを提供するとともに、言語仕様とツールングにおいて重要な進歩をもたらすバージョン 1.27 をリリースしました。主要な言語更新には、ジェネリックメソッド(例:`math/rand/v2.Rand`)、ネスト化済みまたは埋め込まれた構造体に対する直接フィールド選択、および汎用化された関数型推論が含まれます。ツールングの向上としては、`go fix` における 4 つの新しいモダナイザー(`atomictypes`、`embedlit`、`slicesbackward`、`unsafefuncs`)、`go doc` でのパッケージ@バージョン照会への対応、ならびに `go.mod` において統合されたブロックによる依存関係管理の簡素化が挙げられます。パフォーマンス向上は、サイズ特化型メモリアロケーションの導入により実現されており、これによって小規模オブジェクト(<80B)のコストを最大 30% 削減し、アロケーション負荷の高いプログラムの全体的なパフォーマンス向上を約 1% に貢献しています。セキュリティ面では、量子耐性のある ML-DSA 署名の統合と標準ライブラリ内蔵の UUID サポートによる強化が図られました。その他のハイライトとしては、実験的な SIMD サポート、安定性を高めるための一般利用可能な `goroutineleak` プロファイラー、`encoding/json/v2` の厳格なデフォルト設定、ならびにテスト用として新しいユーティリティである `NewTestServer` などがあります。

2026/08/20 3:36

Unsloth デイナミック 3.0 GGUF

## Japanese Translation: Unsloth Dynamic v3.0 のリリースは、同じディスクサイズで比較した場合の Qwen3.8-27B モデルに対して他社よりも優れた精度を実現しており、これが最大の成果となっています。このアップデートは前バージョンを踏襲し、クオンタイゼーション手法の改良と、小型ファイルサイズにおける特定モジュールの削除による容量削減を行いました。層選択の改善およびポストトレーニングクオンタイゼーション(PTQ)を通じて品質は維持され、過学習リスクを回避するために QAT/QAD は全く使用しません。このアプローチは、エージェントコーディングや多言語性能などの多様なタスクに最適化された高品質な imatrix カリブレーションデータセットを用いています。新しいベンチマーク結果では、Unsloth クォンツが最大 10% の高いトップ 1% 精度を達成することが示されており、これは標準的な Wikipedia データではなく、専門データセットから保持した例を利用する Divergence-300@32 および KL ダイバージェンスというメトリクスによって確認されました。早期プレビューでの成功の後に、5 日間で 510 万回のダウンロードが記録されました。ユーザーは今や、6.2GB の UD-IQ1_S バージョンなど、従来のモデルの最大 89% のサイズ削減が可能でありながら依然として高い精度を保持する高性能モデルを利用できるようになりました。業界全体の効率性は、小型ファイルから MTP モジュールを削除することで約 500MB のディスクスペースを節約し、Llama 4 および Wolfram Ravenwolf の実装における重大なバグも同時に修正されたことで向上しています。imatrix ファイルは直ちにコミュニティへのテスト、評価、ファインチューニングやバリエーションの作成に利用可能となっています。

協同型人間エージェントプロトコル (CHAP) | そっか~ニュース