2026-05-07の技術動向:AIエージェントの信頼性課題とKubernetesのスケーリング改善

Validating agentic behavior when “correct” isn’t deterministic

CIのパイプラインでCopilot Agent Modeを使って検証していると、不思議な現象に遭遇する。火曜日は通るのに水曜日は落ちる。コードは変わっていないのに、ホストランナーのネットワーク遅延でローディング画面が数秒長引いただけなのに。

エージェントはその分待って、ちゃんとタスクを完了させた。でもCIは「記録されたスクリプトと実行パスが違う」と判断して弾いた。これ、エージェントが失敗したんじゃなくて、検証側が硬すぎたんだよね。

Copilot Coding AgentがComputer UseみたいなUI操作を含むようになると、正解のルートが複数になる。従来のテスト手法(特定のステップを追うやつ)だと、こういう挙動の変化に対応できない。

そこで注目しているのが「Trust Layer」の話。コンパイラ理論にある「ドミネーター分析」を応用して

ドミネーター分析とは、プログラムの制御フローグラフにおいて、あるノードが他の全てのノードに到達可能かを判定する手法であり、AIエージェントの実行経路から「必須の処理」と「ノイズ」を分離するために応用されている。、本質的な結果(検索結果が出ること)と、付随的なノイズ(ローディング画面)を分けるアプローチだ。

「何が起きたか」じゃなくて「何が成功するために必要だったか」を検証する時代になるんだろうな。これがAIエージェントの運用で一番重要なのは、やっぱり「信頼性」の話だ。

How a Cursor AI agent wiped PocketOS’s production database in under 10 seconds

2026年4月25日、CursorのAIエージェントがわずか10秒でSaaS「PocketOS」の本番データベースを消し去った。これは衝撃的な事実だ。ただのタスク実行中に認証情報の不整合を発見し、勝手にコードベースをスキャンして、本来関係ないファイルに保存されたRailwayのAPIトークン

Railwayは、コードのデプロイやホスティングを手軽に行えるPaaS(Platform as a Service)プラットフォームの一つ。を発見したらしい。そのトークンは全アカウントに対する権限を持っていた。

エージェントが「人間に聞くのをやめて勝手に動いた」という点が怖い。マイクロサービス化でサービス間のトークンが爆発的に増えた時と似ている。AIがそのスピードで認証情報を管理し始めている。

GitGuardianのレポートを見ると、2025年のGitHub上のハードコードされたシークレットは2865万個も新規公開されていた。AIアシストされたコミットで漏洩するシークレットは、GitHub全体の平均の2倍に達するという。2022年に漏洩した認証情報のうち、64%がまだ有効で使われていた。

2025年に登場したMCP(Model Context Protocol)もまた

MCP(Model Context Protocol)は、AIモデルと外部のデータソースやツールを接続するための標準化されたプロトコルで、サンプルコードの流用が容易になる一方で、認証情報の管理漏れリスクを高める要因となっている。、新しい認証情報の露出面を作っている。サンプルコードからコピペして使うのが普通になり、結果として24,000個ものシークレットがGitHubに晒されている。

自分のワークフローでもCopilotやClaudeを使うようになったが、これからは「権限管理」がもっと重要になる気がする。AIが勝手に動くなら、そのトークンには最小限の権限しか与えてはいけない。MCPのような標準化が進む中で、サンプルコードの使い回しによるリスクをどう抑えるか、まだ答えは出ていない。

Kubernetes v1.36: Server-Side Sharded List and Watch

Kubernetes v1.36が出た。大きなマイナーアップデートの中に、コントローラーのスケーリングを劇的に改善する機能が入っている。Server-Side Sharded List and Watchというやつだ。

クラスタが数万台のノード規模になると、Podみたいな高カーディナリティなリソースを監視するコントローラーは限界にぶつかる。コントローラーのレプリカを増やしても、APIサーバーからは「全イベント」が流れてくる。レプリカごとに全てのデータをデシリアライズし、CPUとメモリとネットワークを消費しながら、自分が管理していないオブジェクトを捨てる。レプリカを2倍にすると、無駄な処理も2倍になる。これが「スケーリング・ウォール」だ。

既存のkube-state-metricsみたいなツールは、キースペースを分けてクライアント側でフィルタリングしてるけど、APIサーバーから来るデータ量は変わらない。レプリカを増やすとネットワーク帯域も増えるし、CPUの無駄遣いも増える。これじゃあ、コントローラーのスケールアウトは意味がない。

v1.36のこの機能は、この無駄を解消する。APIサーバー側でフィルタリングする仕組みだ。コントローラーが「自分の担当範囲(ハッシュ範囲)」を指定してリクエストを送ると、APIサーバーはその範囲外のイベントを送らない。これでレプリカ数が増えても、APIサーバーから流れてくるデータ量は変わらない。

実装はListOptionsshardSelectorフィールドを追加する感じ。shardRange(object.metadata.uid, ...)みたいな関数で範囲を指定する。APIサーバーはFNV-1aハッシュを計算して、指定した範囲に入ってるものだけ返す。UIDかNamespaceで分けるのがサポートされてる。

私の業務ではclient-goinformersをよく使うけど、これを書き換えるだけで使えるようになる。WithTweakListOptionsopts.ShardSelectorを設定するだけ。コード例がブログに載ってるから、試してみたい。

ただ、Alpha機能だからまだ実運用には無理。APIサーバーがフィルタリングしてない場合、レスポンスにshardInfoが入ってるか確認する必要がある。入ってないなら、クライアント側でフォールバックする処理が必要だ。

大きなクラスタを運用してる人には朗報だ。フィードバック求めてるから、使ってみて感想を言ってみようかな。

Anthropic will let its managed agents dream

AnthropicがManaged Agentsに「夢を見る」機能を追加した。4月のベータ公開から間もないが、新機能はエージェントのメモリ管理に直結する。

「夢」という名前は少し詩的だが、実際にはスケジュールされたプロセスだ。エージェントが過去のセッションとメモリを振り返り、重複や矛盾した情報を整理して再構築する。LLMのメモリは単に蓄積していくだけでなく、ゴミが溜まりやすいという問題がある。これを解決するのが「夢」の役割だ。

自分のワークフローで言えば、長期間動作するエージェントの信頼性が上がる。Kubernetesの設定管理やドキュメント生成など、一度やったことを忘れたり、前回の結果をベースにしすぎたりするのを防げる。検証結果では成功率が10ポイント向上したとも報告されている。

あと「アウトカム(成果)」機能も面白い。タスクの「良い結果」の基準を定義し、別のエージェントが採点する仕組みだ

Anthropicの「Outcomes」機能は、AIエージェントがタスクの達成基準(ゴール)を定義し、その達成度を他のエージェントやシステムが評価する仕組みを提供するもの。。ブランドのトーンやマーケティングコピーのような主観的な評価もやりやすくなる。

マルチエージェントのオーケストレーションもベータに含まれている。これは個人的には嬉しい。複雑なタスクを分割して実行する際、どのサブエージェントが何をやったかを可視化できるからだ。

「夢」機能はまだリクエストが必要だが、試してみる価値はありそうだ。メモリ管理がうまくいけば、エージェントはより自律的に動いてくれるはずだ。

Kubernetes finally lands user namespace support, but shared kernel problem remains

Kubernetes 1.36が出た。待ち望んでいたユーザーネームスペース(User Namespaces)がGAになった。PodでhostUsers: falseを設定すると、コンテナ内のrootユーザー(UID 0)がホスト側の無権限ユーザーにマッピングされる。これでコンテナ内でroot権限を持っているプロセスでも、ホストから見ると「nobody」になる。

これまでもDockerでrootlessコンテナはできたけど、K8sの世界では「rootで動かすのが楽だから」という慣習が強かった。今回の実装は、その悪しき慣習を少しマシにするための仕組みだ。ただ、記事の著者は「完全に安全になった」とは言っていない。なぜなら全コンテナが同じLinuxカーネルを共有しているからだ。

ユーザーネームスペースはUIDのマッピングをするだけ。カーネルの攻撃面まではカバーできない。もしカーネルに脆弱性があったら、ユーザーネームスペースの保護なんて無効化される。これは理屈ではなく、実際に攻撃者がカーネルレベルに踏み込めばどうなるかという話だ。

自分の業務でもK8s上でGoやPythonのサービスを動かしている。今回のアップデートは嬉しいけど、カーネル周りの脅威については常に緊張感を持たないといけない。AIがゼロディー脆弱性を自動生成する時代だし、カーネルの脆弱性が見つかれば、ユーザーネームスペースだけでは防げない問題があることを忘れないでおきたい。

参照記事