**裁判室として機能するLLM**

2026/01/28 3:32

**裁判室として機能するLLM**

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

要約

Japanese Translation:

Falconerは、コード変更を監視し、自動的にドキュメント更新を提案する共有メモリAIシステムです。「ドキュメント劣化」―古くなったドキュメントが負債となる問題 ― を単なる検索性の課題としてではなく捉え、時間のかかるPRごとの手動更新を秒単位で実行される自動プロセスに置き換えます。

システムは裁判所風の議論フレームワークを用いて編集が必要かどうかを判断します。初期バージョンではFalconerが関連性、機能への影響、被害レベルを評価しましたが、評価基準に一貫性がありませんでした。新しいアプローチでは4つのエージェントがあります:

  1. 検察官 – 正確なPR引用、正確なドキュメント引用、および具体的な損害声明を証拠として提出しなければならない。証拠が欠落していると却下される。
  2. 弁護人 – 各証拠に対抗し、損害を争い、代替説明を提示する。
  3. 陪審員 – 5名の独立したエージェントが理由付けと投票を行う。3/5 の多数決でケースを判事へ送ることが必要。
  4. 判事 – 低温度、重い推論モデルを用いて構造化された判決(裁定、根拠、最大2つの具体的編集)を有罪の場合に発表する。

すべての法廷用語は内部で使用され、ドキュメント所有者には提案された更新のみが簡潔に通知される。

3か月間の本番運用では、Falconerはレビュー前に65 %のPRをフィルタリングし、裁判所への送付前に95 %のフラグ付きPRを除外しました。63 %のケースがドキュメント更新なしで却下され、人間によるエスカレーションは83 %の確率で正しかったです。設計者はユーザー信頼を維持するために精度を再現性より優先させ、偽陽性が偽陰性よりも信頼を失わせやすいと考えています。

開発者にとってFalconerは手動ドキュメントメンテナンスを削減し、古くなったドキュメントからの責任リスクを低減します。これによりソフトウェアチーム全体で自動技術執筆の新たなベンチマークが設定される可能性があります。

本文

共有知識―意思決定、計画、ドキュメント、プロセス―は、生きたリソースであり、企業が進化するにつれて変化します。Falconer は、横断的なチームとそのエージェントが共有知識を維持できるように、共有メモリ層を構築しています。そのコア機能の一つは、コード変更を監視し、自動でドキュメント更新を提案することです。

「ドキュメントローテーション(Documentation rot)」

ユーザーからよく聞く言葉です。コードやドキュメントが古くなり、一度正しかった知識がリスクに変わる現象を指します。多くのツールは AI を使って情報検索を可能にしていますが、見つけやすさだけでは正確性とは言えません。最新でないドキュメントを簡単に探せたとしても、その内容が古いままであれば問題は解決しません。最も難しいのは「どこから情報を取ってきても信頼できるか」を判断することです。


自動化されたドキュメント更新

Falconer は PR がマージされると、コード変更に応じて自動でドキュメントを更新します。しかし、PR がマージされた時点で「どのドキュメントを更新すべきか」を決めるのは単純なパターンマッチングではありません。テストファイルやロックファイル、CI 設定など明らかな非候補を除外した後は、人間の判断に頼ります。PR のコードは複雑で文脈依存が強く、ドキュメントも同様です。チームごとに優先順位が異なり、顧客サポート向けの更新がエンジニア仕様には不要だったりします。さらに、ドキュメントを読む対象(オーディエンス)も変更自体と同じくらい重要です。

もし人間が全てのコード変更を読み、手動でドキュメントを更新すると、数日かかるでしょう。しかし Falconer のエージェントはそれを数秒で実行します。

ただし、知能的なエージェントを作るだけでは不十分です。大企業向けに毎日数万件の PR を処理するインフラも必要でした。そしてもっと重要なのは、自らが強い意見を持つ判断エンジンを構築することでした。


社会的に最適な意思決定枠組み

「判断(judgment)」という言葉に執着し続けました。主観的でありながら合理性に裏付けられるものです。LLM をジャッジとして使う手法は有用ですが、当社のケースにはあまりにも単純でした。その瞬間、「裁判所全体を構築する以外に、より良い判断を提供できる方法はないだろうか」と思いました。そこで「LLM‑as‑a‑Courtroom」評価システムを設計・構築しました。

最初の試みはカテゴリー化スコアリングでした。モデルに「関連性」「機能追加」「害の程度」を数値で評価させ、閾値と比較して更新するか判断させました。しかし評価が不安定で偏りやすく、実際の意思決定のニュアンスを反映できませんでした。モデルは「何かに点数を付ける」ことには向いていないようです。

一方 LLM は詳細な説明・議論構築に長けています。人間が瞬時に判断するのとは異なり、モデルは思考過程を丁寧に記述してから結論に至ります。数値だけを出すよりも「立場を主張し、根拠を示す」方が合理的です。


評価対象から議論構築へ

評価目標を「1〜10で関連性を点数化する」から、「このドキュメントは更新が必要かどうか議論し、証拠を提示せよ」と変更しました。プロンプトを設計するうちに裁判所のような構造が自然に現れました。

sequenceDiagram
    participant P as Prosecutor
    participant D as Defense
    participant JY as Jury
    participant JG as Judge

    P->>JG: Exhibit A: Line 47 changed from async to sync execution
    P->>JG: Document states "all API calls are asynchronous"
    P->>JG: Harm: Developers will assume async behavior

    D->>JG: Counter: Document section refers to v1 API, not v2
    D->>JG: Change only affects internal implementation, not public contract
    D->>JG: Harm overstated: existing UX doesn't change

    JY->>JY: Deliberates independently
    JY->>JG: Majority votes Not Guilty

    JG->>JG: Weighs all evidence
    Note over P,JG: Verdict: Not Guilty

この構造は偶然ではありません。法制度は、チェック・バランス、議論、判断、そして何よりも正義を担保する社会的枠組みです。数世紀にわたり洗練されてきた二項決定(正当/不正)の問題に対して最適な手法と言えるでしょう。

哲学の学生時代に学んだ「健全な議論」の三要素は次の通りです:

  1. 妥当性 (Validity) – 結論が前提から論理的に導かれること
  2. 真実の前提 (True premises) – 前提自体が事実であること
  3. 健全性 (Soundness) – 妥当性と真実の前提を併せ持つこと

法廷議論は、現実世界における厳密な哲学的議論に最も近い形態です。論理構造と事実基盤の両方を要求し、証拠を明示し、反論を扱う必要があります。

LLM は訓練時に膨大な法的コンテンツ(ジャーナル・判決・裁判記録・ケース分析)を学習しているため、法律用語でタスクを設計すると「議論・検討・推論」の行動パターンが活性化されます。


アーキテクチャ:Prosecutor, Defense, Jury, Judge

裁判所パラダイムは、特定の思考行動を引き出すために設計された役割分担です。

graph LR
    subgraph Input
        PR[PR Diff]
        DOC[Document Corpus]
    end

    subgraph Courtroom
        PROS[Prosecutor<br/>Builds Case]
        DEF[Defense<br/>Rebuts]
        JURY[Jury Pool<br/>5 Agents]
        JUDGE[Judge<br/>Final Verdict]
    end

    subgraph Output
        GUILTY[Guilty:<br/>Proposed Edits]
        NOTGUILTY[Not Guilty:<br/>No Action]
    end

    PR --> PROS
    DOC --> PROS
    PROS -->|Exhibits +<br/>Harm Analysis| DEF
    DEF -->|Counter-<br/>Arguments| JURY
    PROS -.->|Original Case| JURY
    JURY -->|3/5 Guilty<br/>Threshold| JUDGE
    PROS -.->|All Evidence| JUDGE
    DEF -.->|All Evidence| JUDGE
    JUDGE --> GUILTY
    JUDGE --> NOTGUILTY

Prosecutor(検察官)

GitHub 上の主要エージェント。PR がマージされると、差分を解釈し、影響を受けそうなドキュメントを検索して更新の必要性を構築します。実際の検察官と同様に「証拠負担(burden of proof)」を提示する責任があります。

展開構造

graph TD
    subgraph Exhibit Structure
        E[Exhibit] --> Q1[1. Exact PR Quote]
        E --> Q2[2. Exact Doc Quote]
        E --> H[3. Concrete Harm]
    end

    subgraph Validation
        Q1 --> V1{Exists in<br/>PR diff?}
        Q2 --> V2{Exists in<br/>document?}
        H --> V3{Specific<br/>consequence?}
    end

    V1 -->|No| REJECT[Exhibit Rejected]
    V2 -->|No| REJECT
    V3 -->|No| REJECT
    V1 -->|Yes| ACCEPT
    V2 -->|Yes| ACCEPT
    V3 -->|Yes| ACCEPT[Exhibit Accepted]
  • PR からの正確な引用:差分で示された具体的なコード変更
  • ドキュメントからの正確な引用:対象文書に文字通り存在するテキスト
  • 具体的害(Harm):単なる「混乱」ではなく、「サポートエージェントが X を Y と伝えるようになる」という具象的影響

この要件は Retrieval Augmented Generation (RAG) の原則に基づき、LLM が正確な情報を前提とした推論を行うためです。

Defense(弁護人)

検察官の証拠・議論を精査し、反論を構築します。主な役割は「証拠が本当に結論に至るものか」「ドキュメントが既に正しいか」「害が過大評価されていないか」を挑戦することです。

Defense は各文書ごとに以下の構成要素を生成します:

  1. 主要反論(更新不要という中心主張)
  2. 各証拠への具体的挑戦(妥当性・関連性)
  3. 害の争い(害が過大評価または存在しない理由)
  4. 代替説明(既に正しい可能性)

対立視点を持つことは、健全な判断へ至るために不可欠です。

Jury(陪審員)

複数の独立したエージェントが両側から聞いた証拠・議論を評価します。彼らは偏見なく証拠と議論を総合的に判断し、投票(有罪/無罪/棄権)を行います。

技術設計

  • 並列実行:すべての陪審員が同時に走る
  • 高温度 (temperature):多様性を確保するため、各陪審員は異なる視点を持つ
  • 軽量推論モデル:コスト効率と並列実行を両立
  • 独立コンテキスト:他の陪審員の投票を見ることなく判断

各陪審員は投票前に「理由」を説明し、証拠をどのように解釈したかを示します。

graph TD
    subgraph Jury Execution
        CASE[Case Evidence] --> J1[Juror 1]
        CASE --> J2[Juror 2]
        CASE --> J3[Juror 3]
        CASE --> J4[Juror 4]
        CASE --> J5[Juror 5]
    end

    J1 --> R1[Reasoning]
    J2 --> R2[Reasoning]
    J3 --> R3[Reasoning]
    J4 --> R4[Reasoning]
    J5 --> R5[Reasoning]

    R1 --> V1[Guilty]
    R2 --> V2[Guilty]
    R3 --> V3[Not Guilty]
    R4 --> V4[Guilty]
    R5 --> V5[Abstain]

    V1 --> TALLY{3/5 Guilty?}
    V2 --> TALLY
    V3 --> TALLY
    V4 --> TALLY
    V5 --> TALLY

    TALLY -->|Yes| PROCEED[Proceed to Judge]
    TALLY -->|No| DISMISS[Case Dismissed]

デフォルトは 5 名の陪審員で、3 人以上が有罪と投票すれば裁判官へ進みます。必要に応じて統一多数や単一多数などに変更可能です。

Judge(裁判官)

陪審員の初期判断を受け、最終的な判決を下します。裁判官は予測可能で一貫した結論を出すため、低温度設定と重い推論モデルを使用し、構造化された議論を行います。

  • 低温度:結果の安定性確保
  • 重い推論モデル:重要な判断に必要な深い思考
  • 構造化審判:検察官・弁護人・陪審員全ての情報を統合し、最終的な決定と「刑罰」=提案編集を提示

裁判官は次の要素を含む結論書を生成します:

  1. 総合分析:検察官・弁護人・陪審員の証拠と議論を統合
  2. 判決(有罪/無罪/棄却)
  3. 一文要約
  4. 有罪の場合は具体的編集提案(デフォルトでは 1 文書あたり最大 2 件)

用語はツールとして

裁判所の用語は、LLM の訓練セットを活かすための構造化ツールです。ユーザーに対しては「検察官」「証拠」などは表示せず、ドキュメント所有者には簡潔な通知(提案更新)が届きます。


学んだこと

  • 陪審員バイアス:高温度で独立実行しても時に同じ結論になるケースがあります。これは証拠が強い/弱い場合に自然な一致ですが、共通の偏見を検出する必要があります。
  • 新たなパラダイムには新しいテストインフラ:裁判所シミュレーションは確率的で「正解」が議論的です。悪い判決が起きた際、どこで誤りが生じたかを追跡できる観測戦略が必要です。
  • 実運用でエッジケースが浮上:フィルタリングミスや余計なドキュメントフラグ、設定の不具合は実際に使われて初めて判明します。設計パートナーからのフィードバックは不可欠です。

裁判制度はほぼ完璧なマッチでした。そして LLM が法的推論を多く学習しているため、用語と構造だけでそのフレームワークを呼び起こせたのです。


3か月間の実運用結果

指標
PR の 65 % がレビュー前にフィルタリング-
フラグされた PR の 95 % が裁判所到達前に除外-
裁判所でのケース 63 % がドキュメント更新なしで却下-
人間へのエスカレーション時、正答率 83 %-

ドキュメントローテーションは「コードが変わると知識も変わる」ギャップを埋めます。裁判所は積極的にフィルタリングし、誤検出よりも信頼性(精度)を優先しています。


まとめ

  • Falconer は PR マージ時に自動でドキュメント更新を提案するインフラと判断エンジンを構築しました。
  • 「LLM‑as‑a‑Courtroom」アプローチは、法的推論の長所(議論・検証・対立)を活かし、モデルに「根拠付き議論」をさせることで精度を向上させました。
  • 裁判所構造は Prosecution → Defense → Jury → Judge の 4 役割で実装され、各段階で独自の温度・モデルサイズ・推論方法が設定されています。
  • 実運用で得た知見は、バイアス検出、テストインフラ整備、エッジケース対応に活かす予定です。

これからもより高度な役割(多ターン議論、上訴プロセス)や業界別裁判所を設計し、複雑性を拡大していきます。


参考文献

  • AgentCourt: Simulating Court with Adversarial Evolvable Lawyer Agents (ACL 2025)
  • Improving Factuality and Reasoning in Language Models through Multi‑agent Debate
  • Debate, Deliberate, Decide (D3): A Cost‑Aware Adversarial Framework
  • Documentation Drift and How to Avoid It

同じ日のほかのニュース

一覧に戻る →

2026/01/28 4:20

Chrome Canary でテキスト拡大・縮小のサポートをお試しください。

## 日本語訳: --- ## 要約 Chrome Canary は、ウェブページ上でオペレーティングシステムのテキストサイズ設定を尊重するようブラウザに指示する新しいメタタグ `<meta name="text‑scale">` の利用をユーザーが選択できるようになりました。 この機能はまだ実験的で、オプトインフラグによって制御されています。 2024 年夏に CSS Working Group に提案され、CSS Fonts 5 仕様に追加されたもので、サイトがシステムテキストスケーリングを尊重するよう設計されていることを示します。 モバイルユーザーの約三分の一(Android 約 37%、iOS 約 34%)が OS テキストサイズを調整していますが、ほとんどのブラウザはこれらの設定を無視しています。 Safari と Chrome はスキップし、Firefox for Android はページズームを使用します。 グローバルサポートを有効にするとデスクトップレイアウトが壊れる可能性があります(例:フォントサイズが倍になると LinkedIn のページが崩れます)。 したがって慎重な実装が必要です。 **開発者向けベストプラクティスチェックリスト:** 1. **初期 CSS `font-size` を上書きしないでください。** デフォルトを medium(約 16 px)に設定するか、パーセンテージ値を使用します。 2. **コンテンツ要素にはフォント相対単位(em, rem)のみを使用してください。** 必要がない限り、マージン・パディング・ギャップには使用しません。 3. **開発者ツールで 320 px ビューポートに 200 % テキストスケールをシミュレートし、`env(preferred-text-scale)` 関数を使ってテストしてください。** 未解決の質問があります:大きな見出しは本文より低い倍率で拡大すべきでしょうか(例:32 px → 64 px)? ブラウザは今年後半に `<meta name="text‑scale">` をサポートする可能性がありますが、他のエンジンについては確認されたタイムラインはありません。 追加議論とドキュメントは CSS Day 2026(6 月)で予定されています。 広く採用されれば、デザインを壊すことなくアクセシビリティ設定に対応できるようになります—ただしレイアウトの崩れを防ぐためにスペーシング単位を管理する必要があります。

2026/01/28 5:35

タイムステーション・エミュレータ

## Japanese Translation: > ## 要約 > タイムステーションエミュレーターは、スマートフォンやタブレットを低周波ラジオ送信機に変換し、ほとんどの原子時計や腕時計の同期に使用できる時間信号を放送します。NTP スタイルのアルゴリズムを用いて ±24 h のオフセットを許容し、自動的に夏時間変更と DUT1 うるう秒補正(適宜)を適用することで、BPC、DCF77、JJY、MSF、および WWVB の5つの公式局をエミュレートします。ツールは WebAssembly を介してブラウザ上で完全に動作し、インストールやデータ収集は不要です。また、44.1 kHz PCM 出力以上の DAC サポートがあれば十分です。 > > パフォーマンスは内蔵スピーカーで最も優れています。有線ヘッドホンでも動作しますが、Bluetooth やオーディオフィーバー機器では搬送波のサブハーモニック変調に必要な高周波共振子を歪めることがあります。2024 年初頭時点で iOS の Safari と Android の Firefox は不具合があり、機能しません。ユーザーは希望する局を選択し時計パラメータを設定した後、電話のスピーカーを時計のアンテナに近づけます。音声波形は、搬送波周波数のサブハーモニック変調によって実際のタイムステーション放送を模倣する RF ノイズを生成するよう設計されています。 > > エミュレーターは最大ボリュームで再生すると永久的な聴覚障害を引き起こす可能性があるため、スピーカーを直接聞くことを避けるよう警告します。ホストサイトは <https://timestation.pages.dev/> であり、そのソースコード(Unicode とアイコン資産を含む)は MIT ライセンスに準拠し、適切な帰属要件が課されています。

2026/01/28 3:57

レナート・ポッタリングとクリスチャン・ブラウナーは新しい会社を設立しました。

## Japanese Translation: まとめはすでにKey Pointsリストと完全に一致しているため、変更の必要はありません。