投稿

Multi AI Agent プログラミング

【 Multi AI Agent プログラミング 】 このセッションでは、AI Agent プログラミングの基本を、あらためて確認したいと思います。これまでの展開とは、少し切り口とトーンが変わっています。 ここでは、AI Agent を用いた実装が、どういう意味で「新しい」のかという、もっとも基本的なポイントを概説しています。 【 現在の技術的焦点 】 AI Agent プログラミングの発展が向いている先が、ソフトウェア開発ライフサイクル(SDLC)の自動化であることは、前回のセッションで見たようにSDLCの「部品」に当たるものの開発が急ピッチで進んでいることからもわかると思います。 ただ、「部品」ではなく、SDLCのそのもののAI エージェント化のコードをずっと探していたのですが、なかなか見つかりません。 そのことは、現時点でのAI Agent プログラミングの技術的焦点が、SDLCそのもののAI Agentかを進めるためにも、ネットワーク上に存在する複数の AI Agent をどのように協調させて、一つの統合されたサービスを作るのかにあることを意味していると思います。 部品から全体を構成する方法を明確にすることが必要なのです。その課題に、当面、フォーカスしようと思います。 【 具体的なプログラムから考えよう 】 セミナーのタイトルに掲げたテーマ「ソフトウェア開発サイクルの変革 」からは、回り道になりますが、今後のいくつかのセッションで、複数の AI Agentを利用する Multi AI Agentプログラミングの基本を確認したいと思います。 切り口を変えたついでに、しばらくの間、技術を紹介するスタイルも変えてみようと思っています。具体的なプログラムのサンプルから、Multi AI Agentプログラミングの基本を確認するスタイルを取ってみようと思います。 例えば、Multi AI Agent の協調と統合を支える基本的なプロトコルは、A2A(Agent-to-Agent)、MCP(Model Context Protocol)なのですが、これらのプロトコルを形式的に説明する前に、こうした技術を必要としたプログラムのサンプルを説明したいと思います。 A2A,MCPのキチンとした説明は、後のセッションで行います。 【 具体的なコードから気づいたこと 】 いくつかの...

ソフトウェア開発へのAI Agent導入の動向

【 ソフトウェア開発へのAI Agent導入の動向 】 #SDLC 先のセッションでは、AIの能力の飛躍的な発展がさまざまな分野で進む中で、AIが持つcode生成能力をソフトウェア開発に利用しようという関心が高まっていることを見てきました。 その関心のフォーカスは、個別のプログラムの個別的な開発でのAIの利用にとどまらず、もっと広いソフトウェア開発サイクルそのものでのAIの利用の可能性に向かっています。 AIをソフトウェア開発に利用しようという流れ、あるいは、AIそのものを開発しようという流れの中で、一つの変化が起きました。それは、AIの働きを「AI エージェント」として捉える見方が急速に広がったことです。 【 「AI エージェント」 と 「マルチ・モーダルAI」 】 「AI エージェント」論が登場するのに、少し先行して、大規模言語モデルベースのAIにも大きな変化が起きました。それは、テキスト・ベースのチャットAIから、「読むことも書くことも、聞くことも話すことも、目で見ることも絵を描くこともできる」「マルチ・モーダルAI」への変化です。 「マルチ・モーダルAI」の成立は、機械の中に人間の「身体性」を含む感覚運動的諸能力の対応物を見つける可能性を開きました。それは、機械論としては、一つの画期をなすものです。 二つの変化は、ほぼ同時に起きました。二つは、相補的ですが関連しています。 「AI エージェント」論は、我々人間が、具体的な人間の諸能力の中に機械によって現実的に代替可能なものの候補を見つける過程と結びついています。 従来の人間中心のSDLCでは、各フェーズで人間の判断と作業が主体でした。しかし、プロジェクトの複雑化、市場投入までの時間短縮への要求、エンジニアの負担増といった課題が顕在化しています。AIエージェントは、これらの課題に対する解決策として期待されています。 例えば、AIエージェントは24時間365日稼働でき、反復的なタスクを疲れ知らずにこなし、人間が見落としがちなパターンやエラーを検出する能力を持つ可能性があります。 【 AIエージェントの登場と進化 】 このセッションでは、ソフトウェア開発におけるAIエージェントの導入の現状を、特にコード補完、テスト、デバッグ、コードレビューの各領域に焦点を当てて見ていきたいと思います。 次の4つのセクションの詳細は...

5月マルレク

【 マルレク「ソフトウェア開発サイクルの変革とAI Agent の動向」予告編 】 #SDLC 5月のマルレクは、「ソフトウェア開発サイクルの変革とAI Agent の動向」というテーマで開催します。 MaruLaboでは、この間、ソフトウェア開発とAIとの接点について、マルラ・ボエームさんの 「AIエージェント講座」を始めてきました。 今回のセミナーは、この流れを受け継ぐものです。 【 今回のセミナーの二つの直接的なきっかけ 】 今回、「ソフトウェア開発サイクルの変革とAI Agent の動向」というテーマで、マルレクを開こうと思ったのには、直接的には、二つのきっかけがあります。 最初のきっかけは、5月初めの Metaのザッカーバーグ氏の「今後、18ヶ月でコードの100%をAIが生成する」という発言を目にしたことです。 https://www.ndtv.com/world-news/ai-will-do-most-of-coding-soon-better-than-top-coders-mark-zuckerberg-8311461   「そんな、予測が本当にできるの?」 よく読むと、世の中のコードがそうなるというわけではなく、「MetaのLlamaプロジェクト向けのコードの大部分がAIによって書かれるだろう」という話だったのですが。 ただ、調べてみると他のAIベンダーのビジネス上の発言も、強気なものでした。 もう少し詳しく背景を調べてみようと思いました。 【 攻撃者としてのAI 】 もう一つのきっかけは、4月28日から5月1日まで、サンフランシスコで開催された、RSAC 2025の 栄藤さんのレポートを読んだことです。 「RSAC2025 ルポ(3日目午前の途中速報、Exhibition巡りはこれから)」 https://note.com/mick_etoh/n/neb6bae3782b7   衝撃を受けました。 論点は多岐にわたるのですが、「AIが攻撃者になれば、セキュリティの最大の敵はAiになるだろう。その時、人間は勝てるだろうか?」という危機意識を多くの人が抱いていることは理解できました。 【 二つのトレンドをどう考えるか?】 問題は、この間僕が強い印象を受けた二つのトレンドが向いてる、方向が必ずしも一致しているわけではないということ...

音声による概要紹介

【 音声による概要紹介 】 #Column マルレクのコラム「現在・過去・未来」の音声による概要紹介を始めました。 「ショート・ムービー」と言いながら30分を超えて誰もみてくれなかったり、「リール動画」は話の最初の数十秒で切れて何も伝わらなかったり。マルレクのたびに、その概要を伝えるのに苦労していました。 AIが生成した、音声による概要のまとめは違います。 充分短いですが、ちゃんと完結したストーリーで概要を語ってくれます。 素晴らしい! 【 5月のマルレク・コラム 】 5月には、次の四つのコラムを投稿しました。  ・「145億年間、宇宙を旅した光子の物語」  ・「1 + 196883 = 196884」  ・「ラマヌジャンのMoonshine」  ・「不思議な数」 【 音声による概要へのアクセス 】 次のリンクを辿っても、playerが開いて、音声による概要を聞けます。  ・「145億年間、宇宙を旅した光子の物語」 https://drive.google.com/file/d/1beTEfZeYsMGefYcwr3y_v_aVNX1S2_Oq/view?usp=sharing  ・「1 + 196883 = 196884」 https://drive.google.com/file/d/1bMpmK72S1_aBmyEwfP3141D18OYAl3Pg/view?usp=sharing  ・「ラマヌジャンのMoonshine」 https://drive.google.com/file/d/1bRe8DGEsZghnVQXKTd4zfdxBE4lPMACo/view?usp=sharing  ・「不思議な数」 https://drive.google.com/file/d/1beTEfZeYsMGefYcwr3y_v_aVNX1S2_Oq/view?usp=sharing ただ、コラムの「まとめページ」に、直接、音源を埋め込みました。こちらからのアクセスの方が簡単です。 https://www.marulabo.net/docs/column 【 音声概要のサンプルを紹介しています 】 AIが生成した音声概要のサンプルをビデオでは紹介しています。 冒頭の部分だけを切り出したものですが、僕の「ショート・ムービー」や「リール」とは、全く違うのがわかるとと思います。 と...

不思議な数

【 不思議な数 −− e の (π√163)乗 】 今回も、数の一致の話です。ただ、これまでの例とは違って、厳密な一致ではなく計算から非常に近いことが予想されるという近似的な一致です。 ラマヌジャンは、数ページにわたる複雑な計算をして、どう見ても整数には見えない e の (π√163)乗という数が、整数262537412640768744 に極めて近いことを確認しました。 この整数に見えないけど整数かもしれない数は、「ラマルジャンの定数」と呼ばれることもあります。もっともこの呼び方は、人気の数学コラム「数学ゲーム」で1975年にマーティン・ガードナーがつけたものですが、この数を紹介した回は、エープリル・フールに当たっていて、冗談・フェークが満載です。彼のコラムにあるように、ラマルジャンがこの「定数」を整数だと推論した事実はありません。 【 他にもある、整数に「近い」数 】 この一致(正確にいうと近似がなりたつこと)は、偶然でしょうか、それとも他の理由があるのでしょうか? 実は、整数に「近い」とされる数は、他にもあります。先の例を含めてまとめてみましょう。   e の (π√163)乗 : 262537412640768744   e の (π√67)乗   : 147197952744   e の (π√43)乗   : 884736744 これらの数には共通点があります。それは、末尾の3桁がいずれも 744  になっていることです! この一致は、偶然でしょうか、それとも他の理由があるのでしょうか? 【 744 は特別な数 】 コラムの後半では、今回取り上げた「ラマヌジャンの定数」と前々回紹介した「Moonshine予想」との世界には深い結びつきがあることを紹介したいと思います。 簡単にいうと、Moonshine予想」の世界にも、特別な数として 744  という数字が現れるのです。 二つの世界を、744 という数字が結びつけているというのは言い過ぎですが、二つの世界には、744という数字を含む共通の数学的構造が横たわっています。 【 163 も特別な数 】 「ラマヌジャンの定数」に現れる 163 という数字も、実は、特別な数です。 そのことを説明するためには、ラマルジャンと同じように、数字と数式に対して特別に鋭敏な洞察力を持って...

ラマヌジャンのMoonshine

【 ラマヌジャンのMoonshine 】 #Column 今回も、前回のコラムと同様に、思いがけない「数の一致」の発見についての物語です。 【 「数の一致」の不思議 】 数の一致の観察自体は、誰にも説明可能で、誰にも理解可能なものです。振ったサイコロの目が丁なのかなのか半なのか、ルーレットのボールが39に落ちたのか38に落ちたのか皆の認識が一致しないのなら、ギャンブルは成り立ちません。 不思議なのは、この個別的で具体的で客観的な出来事が、観察者の主観に、個別性を超えた抽象的な、しかも正しい洞察を生み出すことがあるということです。 今回のコラムで紹介するのも、そうした例の一つです。 確かに、経験からの帰納と演繹的な推論の間には、ギャップがあります。 ただ、人間のものであれ機械のものであれ「知能」と呼ばれる能力の、大きなそして不思議な特徴の一つは、そのギャップを飛び越える力があることだと、僕は感じています。 もっとも、哲学的には、そうした議論は古色蒼然としたテーマなのですが、「考える機械」の登場という時代のコンテクストの中で、あらためて、認識の飛躍する力、新しい認識を生み出す能力、想像し創造する人間の力について考えてみたいと思っています。 【 1729 は面白い数? 】 世の中には、数字について並外れた直感を生まれつき備えている人がいます。インド生まれの数学者ラマヌジャンも、そうした天才の一人だったと言われています。 彼は、乗ってきたタクシーのナンバー 1729 を、「何の変哲もない数だよね」という友人に対して、即座に 「1729は、とても面白い数字です。それは2通りの2つの立方数の和で表せる最小の数です」と答えたそうです。     1729 = 12^3 + 1^3 = 10^3 + 9^3 と表せますし、そうした数では最小になるので、これは正しいんです。 子供の頃、このエピソードを初めて聴いた時、なんて素晴らしい能力なのだろうと驚嘆したことを覚えています。 ただ、やがて次のことに気づきました。ラマヌジャンは、9の三乗が729で、12の三乗が 1728 であることを、知っていたんだと。    1729 = 1728 + 1 = 1000 + 729 おそらく彼は、二桁程度の数の二乗、三乗、四乗くらいまでは、みな頭の中に 入っていたのだと思...

1 + 196883 = 196884

【 1 + 196883 = 196884  −− ある数学的認識の飛躍の物語 】 このコラムのタイトル「1 + 196883 = 196884」 は、当たり前すぎて、かえって意味不明かもしれません。 ただ、もしも、あなたのクレジット・カードの最初の6桁の数字に1を足したものが、あなたのマイナンバーカードの最初の6桁の数字と完全に一致していたとすれば、この式は、単なる足し算以上の意味を持ちます。 もっとも、クレジット・カードとマイナンバー・カードの場合、こうした数字の一致は、全くの偶然と考えていいと思います。 このコラムの「1 + 196883 = 196884」の場合も、左側に現れる数字196883と右側に現れる数字196884は、実は、数学の別の分野から取られたものです。 ただ、クレジット・カードとマイナンバー・カードの数字の偶然の一致とは異なって、この等式は、一見無関係に見える数学の分野間の驚くべき繋がりを示唆する、重要な発見の糸口となりました。 1 + 196883 = 196884 という一見自明の等式は、20世紀の数学的認識のある飛躍の物語の、最初の主人公なのです。 【  John McKayが気づいたこと 】 1978年ごろ、McKayは、あることに気づきます。 当時は、「モンスター群」の存在は証明されていなかったのですが、FischerとGriessは、モンスター群が「存在するならば」、その最小の非自明な既約表現(最も基本的な「対称性のパターン」を捉える方法)の次元は 196883 であると予想していました。 McKayは、この数字 196883 が、数論の分野で基本的な対象である j-不変量 j(τ) の q-展開(フーリエ級数展開に類似したもの)に現れる係数 196884 に極めて近いことに気づきます。     「1 + 196883 = 196884 だろう ! 」 そればかりではありません。McKayは、さらにj(𝜏) の最初のいくつかの項の係数が、モンスター群 M の既約表現の次元 r(n) の単純な線型結合として表現できることに気づきます。 【 数学者の直感 】 先に進む前に、あらためて問題を整理しておきましょう。 第一。ここでの議論には、二つの全く異なる数学的対象、「j-不変量」と「Monster...