ドメイン指向エージェント

2026/08/30 4:28

ドメイン指向エージェント

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

要約

日本語訳:

大規模言語モデル(LLM)を複雑なレガシーコードベースに直接適用することは、技術的負債が曖昧さを生み出し、AI が誤ったスペルを発明したり、暗黙的なシステムルールを見落としたりする原因となるため、しばしば失敗します。最も重要な洞察は、単独でモデルに依存するのではなく、戦略的人間意思決定と戦術的 AI 実行を分離した専門的なワークフローが必要であるということです。従来型の技術的負債の解決は、単なるクリーンアップのためにエンジニアリング予算の 10〜20% を消費しますが、このアプローチでは

.workflow.json
マニフェストと生きている用語集を使用して、正確な用語とプロジェクトの範囲を定義し、意思決定に対する機械的なリファクタリングのコストを大幅に削減します。システム各部分間の語彙を統合すること(例えば、Rust のバックエンドが製品言語の用語を所有し、ウェブフロントエンドはバックエンドの OpenAPI ドキュメントから直接引用されたスクリーン用語を使用するなど)により、明瞭性にとって不可欠な共有言語が確立されます。この分離により、AI エージェントは困難なタスクを効果的に処理でき、人間は高レベルの設計に専念することで、一般的なモデルのハルシネーションを防ぐことができます。最終的に、この方法はドメイン駆動設計(DDD)のプリミティブを使用して複雑なアーキテクチャを安全に移行することを可能にし、戦略層がコンテキストの境界を確定させ、戦術層が定義された変更を実行します。これには、コンテキスト間の境界における機械的なチェックが含まれ、発見された問題は DDD イシューとして記録されます。

本文

LLM を活用したレガシーコード改修:戦略的・戦術的分離と DDD による定石化

近年、ソフトウェアエンジニアリングにおいて大規模言語モデル(LLM)を多用するようになりました。グリーンフィールドな新規プロジェクトや小規模案件では LLM は効果的ですが、大量の依存関係や技術的負債を抱えたレガシーコードベースへの導入では生産性が著しく低下します。

本記事では、そのような「ブラウンフィールド」プロジェクトにおける失敗パターンから、LLM を効率的に活用するための戦略と戦術の分離、そして DDD(ドメイン駆動設計)を基盤とした準備手法を紹介します。

レガシーコード改修における LLM の課題

既存システムへのエージェント導入において頻発する失敗には明確なパターンがあります。

  • 記述の一貫性の欠如
    • グリーンフィールドでは「求人状況ステータス」という要求に対し、即座に生成されます。
    • しかしレガシーコードでは、3 つの異なる表記が存在する概念に対し、LLM が 4 つ目の(誤った)綴りを発明してしまいます。
    • 原因: コードベース自体がどの表記を「真実」とすべきか決定していないためです。
  • 不適切な設計の提案
    • 単純な関数呼び出しで済む場所に、過度に複雑なアダプターを記述させることがあります。
    • アダプターの本来の役割を無視し、直結した呼び出しを行わせることがあります。
  • 推測への依存
    • システムが回答していない問いかけに対し、モデルは誤推測を多発します。

これにより、技術的な深さだけでなく、混乱や意味の欠落、共有言語の不在という第二の層に陥ってしまいます。解決策はモデルのアップグレードではなく、**コードベースそのものの「準備状態」**を整えることです。これをインクリーメンタル(漸進的)に行う必要があります。

戦略と戦術の分離

ソフトウェアエンジニアリングにおける課題は、かつて「技術的負債」全体でしたが、現在は役割を分割して対応可能です(ジョン・アウスターハウター『ソフトウェア設計の哲学』より)。

1. 従来のアプローチとの対比

アспект従来の解決策現在の状況 (LLM 活用時)
決定
(何を改めるか)
エンジニアリング予算の 10〜20% を割当て
(コストは高い)
ほぼ unchanged
依然として重要な判断が必要
実装
(タイピング作業)
手動でのコーディング
(時間がかかる)
著しく低下
LLM が機械的な半分を安価に実行
  • 結論: LLM は「決定」よりも「実装」の部分を安価かつ高速で処理します。エンジニアは**「決定」**の部分に専念できます。

2. ストラテジック vs タクティカル

私は作業を以下のように分割・役割分担しています。

  • ストラテジック(戦略的):決定する
    • システム全体を理解し、何を変更すべきか思索する。
    • 変更がビジネス要件を満たすか判断する。
    • 私が行う主要な役割
  • タクティカル(戦術的):実装する
    • 決定事項をファイルに反映させる作業。
    • コストが安価になった領域。
    • AI エージェントやレビューラーとして AI に任せる

実行フロー

  1. コードベースの分析: GitHub Issue を作成し、実施すべき変更と機能との整合性を評価する。
  2. AI による実装と処理:
    • Issue は AI システムが「スキル(手順)」および「サブエージェント」で処理します。
    • 「スキル」はタスク固有の Markdown ファイルとして定義されます。
    • 「サブエージェント」は限定的な任務を持ち、フルコンテキストをダンプしません。
  3. レビューとマージ: AI が Pull Request (PR) を作成し、私がテストカバレッジや影響範囲を確認してレビューします。

DDD(ドメイン駆動設計)を基盤とする準備

戦略的な層を固めるために、**DDD(ドメイン駆動設計)**を導入し、ビジネス要件と技術実装の間に「共通語」を作ります。

ドメイン・マニフェストの導入

各リポジトリのルートに

.workflow.json
を配置し、リポジトリが自身を定義する宣言書(マニフェスト)を作成します。

  • 機能: 保持言語、エージェントの読み取り順序、チェック項目などを定義。
  • 重要要素: ドメインに関する声明(プロジェクト名の唯一のレジストリ)。

実装例:
job-offer-box
フロントエンドマニフェスト

{
  "domain": {
    "project": "job-offer-box",
    "contexts": [
      {
        "name": "job-box-web",
        "docs": "CONTEXT.md",
        "subdomain": "supporting",
        "edges": [
          {
            "to": "hyperion/job-offer-backend",
            "direction": "outbound", // Web が Backend を呼び出すため外向き
            "pattern": "unclassified",
            "owner": "supplier", // 紛争時は Backend (supplier) が優先
            "shape": "codegen from the backend's document...", 
            "note": "conformist on write and an anticorruption layer on read..."
          }
        ]
      }
    ]
  }
}

コンテキストと用語の標準化

マニフェストを基盤に、各コンテキストごとに

CONTEXT.md
を配置します。

  • 生きた辞書: 用語の正確な意味と、意図的に排除すべき同義語を定義。
  • 上下関係の整理:
    • コードを所有するリポジトリ上にファイルを配置。
    • コンテキストマップ(
      CONTEXT-MAP.md
      )は生成器スクリプトにより作成され、使い捨て・再生成可能。
  • 所有権の明確化:
    • バックエンド (
      hyperion
      ) にはプロダクト言語(Job Offer, Profile など)を所有させる。
    • フロントエンド (
      job-box-web
      ) には画面用語(View Model など)のみを所有し、他は
      [published]
      と标记する。

両側による宣言と自動整合性チェック

各エッジ(接続)について、両側のリポジトリで宣言を行います。

  • 重複のメリット: この二重宣言が全体の意味を構成します。
  • 自動照合: スキルとして、マニフェスト変更時やオンボーディング時などに実行。
    • サプライヤー側(定義元)とコンシューマー側(利用元)の不一致を検出。
    • 不一致は「発見」として記録され、該当リポジトリに DDD Issue として開票されます。
  • 自己修復: Issue を修正後、スキルを再実行することで自動的に閉じられます。

まとめ:今後は何が起こるか

この手法により、コードベースの戦略的層が確立されます。

  1. マップと辞書が定義された後: コードベースに集中してドメインモデルを実装できます。
  2. LLM の役割変化:
    • システム全体の共有理解を可能にするため、LLM は「推測」から「答え」を与える存在へ変化します。
    • 「この単語の意味は何か」「誰が所有しているか」「コンテキストの境界はどこか」という問いに対して、コードベース自身が明確な回答を提供します。
  3. 効果: エージェントの誤推測を防ぎ、レガシーコードへの安全な侵入を可能にします。

同じ日のほかのニュース

一覧に戻る →

2026/08/30 4:33

騰訊發布並開源騰訊Hy4預覽版

## Japanese Translation: 以下の改良版は、完全性を保ちながら読みやすさを維持するため、不足していた技術仕様と性能指標を組み込んでいます。 ## 改善された要約 Tencent は次世代の 770B パラメータを持つ大規模言語モデル(アクティブパラメータ:49B)「Hy4 preview」をローンチしました。このモデルは高生産性タスクに特化して最適化されており、1M トークンを超える広大なコンテキストウィンドウを備えています。Hy4 はシリーズ初となる自主的なトレーニングおよび推論システムの最適化を実現し、オペレーターフュージョンによりエンドツーエンドのスループットを 31.8% 向上させました。内部での盲目評価において、203 のエンジニアリングタスクにわたる 163 名の専門家によって行われ、GLM-5.3(2.92)および Kimi K3(2.94)に対してそれぞれ 2.99/4.00 と高いスコアを記録し、主要競合他社を上回りました。 ソフトウェアエンジニアリング、ゲーム、金融、科学の分野で Tencent の専門家によって共同作成された高品質なデータを用いてトレーニングされた Hy4 は、長文脈開発、単一のプロンプトからのゲームプロトタイピング、分子動力学や物理学などの科学研究分野において明確な優位性を発揮します。現在、Hy4 は Tencent Cloud TokenHub および OpenRouter を介して世界中で利用可能であり、競合的 API 料率(入力トークンあたり 83.4 米セント)で提供されています。同モデルは WorkBuddy および CodeBuddy の Tencent プラットフォーム上で 2 週間無料利用が可能ですが、前世代の Hy3 は引き続き 9 月 30 日までの間アクセス可能です。

2026/08/24 14:09

Tether:Linux での iMessage や SMS の利用

## Japanese Translation: テザー(Tether)は、iPhone とペアリングされた際の macOS の「Continuity」機能——iMessage、SMS、コンタクト同期、通知、ファイル共有、クリップボード同期、ワンタイムパスワード(OTP)の自動入力——を Linux へ統合し、KDE Connect など既存ソリューションが補えていないギャップを埋めています。セキュリティは当初から最優先事項であり、iOS と Linux の通信には mTLS 暗号化を採用し、定期的に Opus および Fable のセキュリティスキャンを実施することで実現しました。他のメールクライアントへの広範なサポートはまだ利用できません。開発者はバックエンド開発を優先し、拡張子の移植には集中しないためです。OTP の自動入力は、Zen Browser(Firefox)と Betterbird(Thunderbird)向けのブラウザおよびメール拡張機能を通じて行われ、メールからコードを拡張機能へ送ってログインフォームの自動埋め込みを実現します。 直接の iMessage/SMS アクセスのための Bluetooth 統合は、GPL ベースのプロジェクト(例:ancs4linux や BlueFerry)とのライセンス衝突を避けるために、独自のカスタム C++「クリーンルーム」手法を用いて実装されています。テザーは引き続き MIT ライセンスを採用しています。現在の Linux ベースのデーモンは、Tailscale などの earlier プロキシ方式と比べてより優れた直接的な接続体験を提供しており、ユーザーからは不快であると評価されていました。iOS アプリが先に登場し、当初は基本的なクリップボード同期のみを処理し、その後に広範な Continuity スタックが構築されました。 ファイル共有およびプッシュ通知は直ちに利用可能ですが、ハードウェア制約や Bluetooth 切断の問題など、将来のアップデートにおける課題依然存在しています。特に Bluetooth の実装は 2026 年においてもエッジケースが多いため困難です。本プロジェクトは金銭的利益よりも真なる価値と満足感を提供することを目指しており、シームレスなクロスプラットフォーム接続を求める技術愛好家にとってユニークなツールとなっています。バグレポート、機能要望、翻訳、ドキュメントなどの貢献をコミュニティから歓迎します。

2026/08/30 3:22

vLLM 0.28.0

## Japanese Translation: このリリースは、主要なアーキテクチャ変更と拡張ハードウェアサポートにより AI 推論を加速することに焦点を当てた決定的なアップグレードです。主なパフォーマンス向上としては、ファインズドカーネルによって大きなモデル(特に MegaMoE)で最大 1.5〜3 倍の高速化、推論の最適化(DFlash2/DSpark)、GPU ごとに約 17 GiB のメモリ節約を実現する共有エキスパートシャッディングなどがあります。この更新はハードウェア互換性を大幅に拡大し、NVIDIA アーキテクチャ(Blackwell SM90/B12X を含む、ネイティブな DSA/FlashInfer パスを備えたもの)および AMD ROCm プラットフォーム(gfx950/gfx120x)、MLA および FP8 推論向けの特定の最適化を可能にします。 機能面では、Weight Offloading、マルチレイヤー MTP KV キャッシュ、アテンション不要なモデルサポートといった機能を備えた Model Runner V2 が導入されました。また、バッチトークン上限値を 16384 に倍増させたり、Mamba モデルにデフォルトでプレフィックスキャッシュを有効化したりするなどの推論デフォルトも標準化されています。エコシステムの主要な更新としては、PyTorch 2.12 と Transformers 5.15.0 への移行が必須となり、ディスクオフローディングをサポートする階層型 KV キャッシュシステムが追加されました。さらに、gRPC を通じたネイティブ Rust フロントエンドサポートが追加され、Muse Glimmer、Ling 3.0 Flash、Qwen3.8 など多数の新しいモデルへの対応も開始(AMD 向け)。組織は、これらの高度な機能を利用するために、非推奨化された関数や特定の依存関係に関する破壊的な変更に対応する必要があります。