ブログ

技術的な学びや日々の気づきを記録しています。

System DesignDistributed SystemsDatabaseAlgorithmsAPI DesignInteractive

Instagram のグリッド並べ替えをシステム設計として考える

2026 年 6 月に全ユーザー向けの提供が始まった Instagram のグリッド並べ替えを題材に、時系列順を前提にしてきた大規模サービスへ任意の並び順を加える設計を考えます。データモデル、並び順キーのアルゴリズム、並行更新、ページネーション、キャッシュ、後方互換性を、動かして確かめたコードとともに説明します。

Agent Host ProtocolAI AgentProtocolVS CodeJSON-RPCDistributed SystemsArchitecture

Agent Host Protocol を読み解く — エージェントのセッションを複数の画面で共有するための状態同期プロトコル

VS Code の Agent Host が採用した Agent Host Protocol(AHP)v1.0.0 は、エージェントのセッションを、ホストが順序を決める複製状態として複数の画面で共有する。クライアントは自分の操作を先に反映し、ホストから返るエコーで確定させる。仕様・公式のリデューサー・各言語の SDK・VS Code の実装をもとに、チャネルとアクション、serverSeq による再接続、楽観的更新(write-ahead)の実装、リデューサーが不変条件を守らないことの意味、送り直してよい操作と危ない操作、クライアントが提供するツール、認証とセキュリティー、ACP・MCP・AG-UI との違いまで、クライアントやホストを実装する人のために整理する。

AILLMAI InfrastructureEconomicsSemiconductorsOpenAIAnthropicMicrosoft

AI 産業はどこへ向かうのか —— 資本から FCF までの因果チェーンを 2023 年と 2026 年で比べる

OpenAI の資金調達が目標の半分に届かなかったという WSJ の報道、Anthropic の S-1、Microsoft・Amazon・Alphabet の 2026 年 9 月期 10-Q をもとに、フロンティア AI ラボが次の巨額資本を集めるには何を示す必要があるのか、次に何をスケールすれば能力が予測できる形で伸びるのかを、3 年前と比べて考える。資本から FCF までの因果チェーン、事業環境、電力・低精度化・半導体プロセス・HBM・先端パッケージ・モデルアーキテクチャの制約と 2030 年までの次の手、Microsoft と OpenAI の違いを扱う。

LLMLLM-as-JudgeEvaluationMLOpsHuman-in-the-LoopRecommender SystemsEnterprise AIPaper Reading

LLM-as-a-Judge を「育てて運用する」—— Netflix の推薦説明ジャッジに学ぶライフサイクル設計と、エンタープライズ実装フレームワーク

Netflix の論文「The Lifecycle of LLM-as-a-Judge for Large-Scale Recommendation Explanations」を読む。誕生・訓練・配備・監視の 4 フェーズ、理由の一致まで最適化する RART、ゲートと批評家を兼ねる配備、評価者間の不一致を物差しにしたドリフト検知を数式とアルゴリズムで追い、リトライによる見逃しの増幅と監視統計の落とし穴を分析する。最後に、このライフサイクルを企業に適用するためのフレームワーク(憲章・勘所・成熟度・ロードマップ・チェックリスト)を示す。

OntologyMicrosoft FabricFabric IQKnowledge GraphDDDData IntegrationSemantic Layer

オントロジーとは結局何なのか — 学術的定義から Microsoft Fabric IQ まで、「JOIN を書けない場所のビュー」という仮説を検証する

オントロジーは、テーブル定義に意味の説明を付けるものなのか、異なるデータソース間の意味マッピングなのか。哲学と知識工学における定義、データ統合理論の GAV/LAV と OBDA、DDD の境界付けられたコンテキストとコンテキストマップを手がかりに、Microsoft Fabric IQ の Ontology が何を引き受け、何を引き受けないのかを整理する。

AlgorithmsStable MatchingMarket DesignGame TheoryInteractive

ゲール–シャープレー・アルゴリズム — «仮の保留» が安定マッチングを生む理由を、動かして確かめる

研修医の配属や学校選択で使われている Gale–Shapley(受入保留)アルゴリズムを、ブロッキングペア、停止性・安定性・提案側最適性の証明、安定マッチングの束、嘘の申告、ランダム市場の非対称性、多対一への拡張まで、動くデモで掘り下げます。

BlazorAG-UI.NETMicrosoft.Extensions.AIAgentic UIArchitectureAPI Design

Agentic UI のランタイムは何を抽象化すべきか — Blazor AI コンポーネントと AG-UI .NET SDK が引いた境界線を読む

Blazor の新しい AI コンポーネントと AG-UI .NET SDK を、「エージェントと人間が同じアプリケーション状態を操作するとき、UI ランタイムは何を抽象化すべきか」という問いへの回答として読む。UIAgent・ContentBlock・IInteractiveBlock・AgentState の実装から、同一性とライフサイクル、中断点、副作用の実行場所、状態の確定、更新ログと再生という抽象を読み解き、まだ抽象化されていないものと、interface と class の使い分けの理由も整理する。

GoConcurrencyBackpressureArchitecture

Go の並行処理は実務でどこに効くのか — channel を選ぶ判断基準と本番パターン

goroutine と channel の文法を知っている人に向けて、実務のどこで並行処理を使い、channel と mutex のどちらを選ぶかを説明します。並行化の 4 つの動機と、fan-out・有界並行・背圧・graceful shutdown・所有権の直列化・バッチング・購読といった本番パターンを、Go 1.27 で検証したコードとともに扱います。

GitHub CopilotCopilot SDKArchitectureScalabilityAgentDistributed Systems

GitHub Copilot SDK をサーバーサイドで動かす — ステートレスに設計できるのか

GitHub Copilot SDK をバックエンドに組み込むとき、水平スケールするステートレス設計は成立するのか。ランタイムの状態モデル、セッション永続化、単一ライター制約、resume コスト、ストリーミング、容量計画まで、実運用の観点で検討する。

DuckDBDatabaseOLAPVectorized ExecutionStorage EngineC++

DuckDB の内側 — ベクトル化実行・モーセル並列・単一ファイルストレージをコードから読む

「SQLite の OLAP 版」と呼ばれる DuckDB が、なぜプロセス内に閉じたまま分析クエリーを高速に処理できるのか。ベクトル化実行、push ベースのパイプライン、モーセル駆動並列化、列指向ストレージ、MVCC、ART インデックスまで、実際のソースコードから読み解きます。

LLMLoad BalancingDistributed SystemsAgentsSchedulingInteractive

LLM 呼び出しの負荷分散 — ラウンドロビンが効かない理由から KV キャッシュ考慮ルーティングまで

LLM 呼び出しは 1 件のコストが 2 桁ばらつき、レプリカはプレフィックスキャッシュを持つため、ラウンドロビンでは負荷が揃いません。エージェントを含む LLM アプリで、クライアントからエンジンまでの各層が局所性と均衡をどう選んでいるかを、動くシミュレーター付きで説明します。

データベースPostgreSQLクエリ最適化パーサ実行エンジンストレージ

SQL はどうやってディスク上のバイト列に届くのか — クエリーエンジンをスクラッチで実装する

1 本の SELECT 文が、字句解析・構文解析・束縛・論理プラン・カーディナリティー推定・コストベース最適化・物理プラン・Volcano 実行・アクセスメソッド・バッファープール・スロット付きページを経て pread(2) に到達するまでを、各段を Python で実装しながら追いかけます。work_mem を超えたときの溢れ方と、並列プランのコスト計算も扱います。

AILLMAI AgentEvaluationAI InfrastructureEconomicsMicrosoft

フロンティアはモデルからシステムへ — cost-to-outcome曲線とMicrosoftの垂直統合

Microsoft AIの『Optimizing the frontier performance curve』を、Nadellaの2本のエッセイ、FY26決算、OpenAIとの新契約と突き合わせて読む。フロンティアの単位はモデルからシステム全体へ移り、その優位はタスク難易度のばらつきと検証の安さから生まれる。成果/ドルで測る経済性(カスケードの損益分岐、モデル非依存、学習ループの所有、A100と減価償却)と、Microsoftの垂直統合戦略としての意味を説明する。

AlgorithmsSchedulingOperating SystemsLLMInteractive

タスクスケジューリングの系譜 — FIFO から公平キューイング、LLM 推論まで

「次に何を実行するか」の正解は、平均遅延・応答性・締切・公平性のどれを優先するかで変わります。FCFS、SJF、Round Robin、EDF、CFS、WFQ、SFQ、DRR から LLM 向け VTC までを目的・仕組み・適用条件でたどり、出力長が分からない LLM リクエストの投入順序に SFQ が合う理由を、動くシミュレーターとともに説明します。

AIAgentAgent HarnessCodexClaude CodeGitHub CopilotOpen Source

Agent Harness 比較2026 — Copilot・Codex・Claude Code・Cursor・OSS を12の軸で比べる

GitHub Copilot、OpenAI Codex、Anthropic Claude Code、Cursor、Cline、Aider、OpenHands、SWE-agent/mini-SWE-agent を、実行場所、オーケストレーション、拡張、権限、コンテキスト、長時間実行、マルチエージェント、Git/PR、観測性、企業統制、OSS 透明性、評価容易性の12軸で比較し、各製品がどの設計責務を引き受け、どこを利用者に残しているかを整理する。

LLMChatbotEvaluationLLM-as-JudgeNLPQuality Assurance

LLM チャットボットの「ブレ」をどう測るか —— 出力差異の 7 層分類と応答品質の評価設計

LLM をバックエンドに持つチャットボットで、生成条件を固定しても生じる出力差異を「ブレ」と定義し、契約・表層・語彙・構造・情報選択・意味・語用の 7 層に分類する。完全一致、編集距離、ROUGE-L、埋め込み類似度、NLI/LLM 判定を組み合わせ、Ground Truth との差分から応答を許容できるかを判定する評価設計を説明する。

AIAgentMicrosoft Agent FrameworkAgent HarnessC#.NETTools

同じ発想を Microsoft Agent Framework で — Agent Harness でツールを足すだけの文書レビューエージェントを作る

GitHub Copilot SDK で作った「オーケストレーションはランタイムに任せ、ツールを足すだけ」の文書レビューエージェントを、Microsoft Agent Framework の Agent Harness(HarnessAgent)で C# に実装し直す。HarnessAgent は計画・TODO・コンテキスト圧縮・ツール承認を備えた自律エージェントを 1 行で構成する。能力を実行時の承認ではなく構成時に絞る点など、Copilot SDK 版との設計の違いも論じる。

Conversation UXLLM AgentEvaluationVoice AIDialogue SystemsLLM-as-JudgeHCI

会話 UX をどう測るか —— LLM エージェントと人間の対話を評価する、構造・内容・体験と決定論の地図

LLM をバックエンドに持つ会話エージェントの「会話 UX」を評価するフレームワーク。構造・内容・体験という分離可能な 3 つの品質軸に安全性の制約軸を加えて評価ルールを MECE に分類し、決定論的に測れるものと測れないものを切り分ける。人間のターンテイキングに関する研究をもとに、音声対話ではテキストと違って応答のタイミングが体験を左右することを示す。

AIAgentGitHub CopilotSDKTypeScriptTools

オーケストレーションを手放す — GitHub Copilot SDK でツールを足すだけの文書レビューエージェントを作る

エージェントの計画とツール呼び出しのループ(オーケストレーション)を自分で書かず、GitHub Copilot SDK に任せる。レビューに必要な処理をツールとして渡すだけで文書レビューエージェントを作り、権限制御・SSE サーバー・UI まで実装する。この設計のメリットとデメリットも論じる。

AI AgentLLMClaude CodeArchitecturePaper ReadingMCPContext Engineering

本番 AI エージェントの設計空間 —— Claude Code 51 万行の解析から読むハーネス中心の設計

arXiv:2604.14228『Dive into Claude Code』の解説。単純な while ループの周りに、コードの推定 98.4% を占める決定論的なハーネスを積み上げた Claude Code の設計を、安全性・文脈管理・拡張性・マルチエージェント・永続化の各軸で整理し、AI エージェント製品を作るうえでの示唆をまとめます。

GraphRAGRAGKnowledge GraphLLMC#Agent Framework

GraphRAG 徹底解説 ─ 知識グラフを使う検索拡張生成の仕組みと実装

Microsoft Research の GraphRAG が、知識グラフとコミュニティーレポートを使って、ベクトル検索型の RAG が苦手な「文書をまたぐ質問」や「データ全体を問う質問」にどう答えるかを説明します。Leiden アルゴリズムによるコミュニティー検出と Global/Local/DRIFT Search の仕組みを扱い、Microsoft Agent Framework (C#) による実装例も示します。

MCPAIProtocolArchitecture

Model Context Protocol (MCP) 詳解 ─ アーキテクチャから MCP Apps まで

AI アプリケーションと外部システムをつなぐ Model Context Protocol (MCP) の仕組みを、現行仕様 2026-07-28 に基づいて説明します。Host/Client/Server の関係、3 つのサーバープリミティブ(Tools・Resources・Prompts)、トランスポートレイヤー、Sampling・Elicitation などのクライアント機能を扱い、MCP Apps 拡張と microsoft/mcp-interactiveUI-samples の実装例も紹介します。

TestingPythonSoftware EngineeringArchitectureInteractive

テストフレームワークの裏側 — ゼロから理解するテストランナーの設計と実装

pytest や unittest などのテストフレームワークは、テストを見つけてから結果を報告するまでに何をしているのか。小さなテストランナーを Python で実装しながら、ディスカバリー・収集・ライフサイクル・アサーション・モック・レポートの仕組みを説明します。

Distributed SystemsConsensusPaxosRaftPBFT

合意アルゴリズムの系譜 — 2PC から Paxos、Raft、PBFT まで

Paxos は 2PC と違って単一障害点を持たず、Raft は Paxos と同じ安全性のまま理解しやすさを設計目標にしました。PBFT は、ノード数とメッセージ量が増える代わりに、嘘をつくノードにも耐えます。各方式がなぜ安全に合意できるのかを、メッセージの流れを追えるシミュレーターとともに解説します。