シグナル:自己修復するソフトウェアの鍵

Article by: (読了時間:7分)

 

 

いま、この業界の歴史上かつてないほど大量のコードが書かれています。1 年分のソフトウェアが 1 か月で生み出されるようになり、しかもその大半はもう人間が書いたものではありません。GitHub COO の Kyle Daigle は先日、こう述べています

2025年のコミット数は10億件でした。現在は週2億7,500万件のペースで増えており、このまま線形成長が続くとすれば、今年は140億件に達する計算です(もっとも、線形成長のままにとどまるとは考えにくいですが)。

Anthropic、Cursor、OpenAI のコーディングエージェントは、スタックトレースを読み、絡み合ったコードを追い、人間が該当ファイルを見つけるより速く実際に機能する修正を書き上げます。この「速さ」こそ、いま誰もが語っている物語です。しかし、それ以上に重要なのは、コードがリリースされた後に何が起きるかです。

コードの量が増え、リリースが速くなるほど、実際のユーザーのもとへ届く不具合も増えていきます。そして、壊れたソフトウェアは技術的な問題であるだけでなく、ビジネス上の成果を左右する問題でもあります。顧客は離れ、解約し、その理由を周囲に語ります。Sentryは20万の組織にわたり、年間594兆件のイベントを処理しています。これこそが、自己修復を支える、他では得られないコンテキストです。つまり、ソフトウェアが実際に壊れた、その瞬間の記録です。ソフトウェアが現実世界と出会うことで生まれる、生のシグナルなのです。

だからこそ、いまソフトウェアは、これまで越えたことのない一線を越えつつあります。本番環境で、自らを修復し始めているのです。エラーを検知して人間のトリアージへ回すだけでも、修正案を提示して作業を人間に委ねるだけでもありません。自ら壊れていることに気づき、その理由を理解し、修正を書きます。もちろん、すべてが自動化されているわけでも、完全に実現しているわけでもありません。単純で原因の明らかな障害は自動的に解消される一方で、アーキテクチャ上の判断や複雑なインシデントは、依然としてエンジニアが担います。そして、その境界線は毎月動いています。この業界の歴史を通じて、信頼性は人間が担うものでした。それがいま、ソフトウェア自身の性質へと変わりつつあります。

業界はこれを自己修復するソフトウェア(self-healing software)と呼びます。もはや仮説ではありません。Sentry 社内でも、私たちが協働するチームの間でも、本番環境での実践は日ごとに現実味を増しています。これは、その意味を理解しているチームとそうでないチームとをはっきりと分ける転換点です。

 

何が必要か

ここに到達するには 3 つの要素が必要でした。買うもの、自分で作るもの、そしてもう 1 つは自ら勝ち取らなければならないもの。実はすべてがこの 3 つ目に懸かっています。

Agent(エージェント) — モデルは急速に優秀になり、いまや基本的に「買う」ものになりました。ただしそれ単体では十分ではありません。速く何かを成し遂げることは、それが正しく、あるいは最善のやり方で成されたことを意味しないからです。モデルが正解にたどり着くのは、適切なコンテキストを与えられたときだけです。そして、エージェントの足を引っ張っているのがモデル自身であることは、めったにありません。

Harness(ハーネス) — 診断された修正をマージまで運ぶための配管であり、エディタ、CI、Slack、そして開発者自身のエージェントといった、開発者がすでにいる場所に届けるための仕組みです。これを構築するのは本物のエンジニアリングです。最も難しいのは修正を書くことではなく、それを検証することです。コードがコンパイルを通りテストが通ったことではなく、ユーザーが実際に踏んだ障害が消えたことを確かめなければなりません。そして、指し示すべき「真実」がなければ、そのどれもが機能しません。

Signal(シグナル) — ソフトウェアが自らを修復するには、まず自分が壊れていることを知らなければなりません。理論の上ではなく、現実世界で、です。あらゆるテストを通過したコードが、一晩で更新されたブラウザでは崩れ、広告ブロッカーがあなたのドメインを遮断した環境では動かず、一度もテストしていない端末で失敗する。その破綻はコードの中にはありません。あなたのリポジトリを見つめるだけのモデルには、それを見つけることはできません。そこには存在しないからです。それは、あなたが作ったものと、ユーザーが実際に体験しているものとの間にあります。エージェントは直感ではなく、シグナルに基づいて動きます。適切なコンテキストがなければ、推測に頼るしかありません。修正を試し、失敗し、また試す。本来なら避けられたはずの試行に、時間と費用を費やしてしまいます。一方、十分なシグナルがあれば、エージェントは賭けをやめ、何が、誰に対して、どのリリースから壊れたのかという実際の診断に基づいて行動します。

本当に希少なのはシグナルです。知性は買うことができ、ハーネスは作れます。しかしシグナルだけは、現実世界で本当にソフトウェアが壊れた、その瞬間からしか得られません。それこそがモデルを有用にし、ハーネスを現実に即したものにします。そしてこれこそ、Sentryが10年以上かけて築いてきたものです。

 

実際にどう動いているのか

これは予測ではありません。ご存じの 3 社が、すでにこのループを回しています。

Cursor は、いまや多くのエンジニアが一日中開きっぱなしにしている AIエディタを作っています。それだけ多くのプロセスと、それだけ長いセッションをまたいでデスクトップクライアントを安定させるのは難しく、壊れるときは本番環境で壊れます。そこで Cursor のクライアントインフラチームは、Sentry のクラッシュデータの上に日次の自動化を構築しました。Sentry からシグナルを取り出してエージェントに渡し、どの機能が壊れたのか、そしてスタックトレースが本当に修正可能な根本原因を指しているのか、それともたまたま近くで動いていただけのコードなのかを問います。エージェントの確信度が十分に高ければ、第2のエージェントを呼び出して修正案を作成させます。自動マージは一切ありません。すべての PR に人間のレビューが入ります。

最も頻発する障害であるメモリ不足によるクラッシュについては、このループによって発生率をピーク時から最大 80% 削減できました。アプリ安定性の改善のうち 30% が Sentry によるものとされています。

Factory はさらに一歩進んでいます。同社の製品は Droid と呼ばれる自律エージェントの集団で、実際のエンジニアリング業務をこなします。そして Sentry を、それらのエージェントが依拠する本番環境のコンテキストとして組み込んでいます。エラーが発生すると、Droid が issue を取得し、影響を受けたユーザー数を確認し、セッションをリプレイし、修正案を提示します。人間が一度もブラウザを開くことなく、です。同じことが顧客自身の Sentry 環境の中でも起こります。Droid がエラーを読み、根本原因をたどり、多くの場合そのままプルリクエストを作成します。Factory はプラットフォーム全体で、8 つのプロジェクトにわたり月間数億件のイベントを処理しています。

調子の悪い日には、こんなことが起こります。あるリリースの後、リリースされたばかりのコードパスから発生した missing-index エラーを Sentry が検知しました。修正内容、つまりそのクエリが必要としていたインデックスそのものが、エラーの中に含まれていました。そのため Factory のインシデントエージェントはインデックスを作成し、数分で issue を解決しました。Factory の Alvin Sng は、Droid にとってエラーは容易にアクセスできるものであり、エンドツーエンドで自律的に処理できると語っています。

Ramp は Inspect という独自のバックグラウンドコーディングエージェントを構築しました。そして最も難しい部分、すなわち検証に意識的に取り組みました。Inspect はコードを書くだけでなく、その変更が正しく機能することを証明するところまでループを閉じます。しかも Ramp のエンジニアが使うのと同じコンテキストとツールを使ってです。Sentry はそのツールの 1 つとして組み込まれており、エージェントは推測ではなく本番環境のテレメトリを確認できます。

Sentry を利用する数千社が、同じパターンを目にしています。シグナルが診断を運びます。エージェントは推測ではなく、それに基づいて動きます。人間は修正を探し回るのではなく、修正をレビューします。Factory の言葉を借りれば、モニタリングはエンジニアが開くダッシュボードであることをやめ、エージェントが消費するインフラストラクチャになるのです。

 

何が変わるのか

ソフトウェアを作り始めて以来ずっと、信頼性は人間が供給するものでした。コードが壊れ、人間がそれに気づき、手を止めて修復する。その仕組みが終わろうとしています。シグナルが十分に良質であれば、ループは自ら閉じます。破綻は実際のユーザーに届いたその瞬間にシグナルとして捉えられ、何が誰に対して壊れたのかというコンテキストの中で理解され、推測ではなく実際の診断に基づいてエージェントによって修正されます。そして人間のもとに届くのは、せいぜい承認すべき修正だけです。チケットもなく、スプリントもなく、ストーリーポイントもなく、キューで待ち続ける PR もなく、独立した QA フェーズもなく、リリーストレインもありません。

多くのチームが静かに払い続けてきたコストがあります。最も優秀な人材が、最も価値ある時間を、次を作ることではなくバグの追跡に費やすというコストです。そのコストは、もはや避けられないものではなくなります。そして、そこで生まれた余力が失われることはありません。その余力は、何を作るかを決め、それを作るという、本当に価値を生む仕事へと振り向けられます。

これらはすべて、シグナルなしには成立しません。自律的な「壊れる→直す」のループの質は、本番環境で何が壊れたのかをどれだけ理解しているかによって決まります。そしてその理解こそが希少な要素であり、既製品として買うことも、コードベースだけから生成することもできないものです。ソフトウェアが現実世界と出会ったその瞬間に、現実世界から捉えるしかありません。それこそ Sentry が存在してきた期間をかけて築いてきたものであり、Cursor、Factory、Ramp のエージェントが自らの仕事を検証し解決するためにすでに Sentry に依拠している理由です。Sentry はシグナルのレイヤーを担っています。自己修復するソフトウェアとは、そのシグナルが可能にするものであり、それはすでにここにあります。

 

 


 

 

Original Page: Signal: The key to Self-Healing SoftwareSignal: The key to Self-Healing Software

 

 

 




IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談は「お問い合わせ」からお気軽にお問い合わせください。

 

シェアする

Recent Posts

;