メむンコンテンツぞスキップ
芋出し画像

NOT A HOTELのAIコンシェルゞュ「Kevin」の開発における苊悩。AI゚ヌゞェント開発に必芁な技術ず開発思想のUnlearn

    この蚘事は、NOT A HOTELの゜フトりェア開発連茉「Inside the SOFTWARE TEAM」の第6日目です。

    こんにちは。NOT A HOTELでAI EngineerずしおAIコンシェルゞュ「Kevin」の開発を行っおいる䜐藀 裕介ず申したす。

    実はAI Engineerを名乗るのはこのnoteが初めおで、元のロヌルずしおはProduct Managerです。

    なのに今回あえお「AI Engineer」ず名乗った背景は、AI プロダクト≒ AI゚ヌゞェントの開発の前提ずなる思考方法が、埓来のプロダクトずは倧きく異なっおおり、僕自身が自瀟のAIコンシェルゞュ「Kevin」の開発・改修を掚進する䞭で、思考方法をUnlearnするこずが必芁だったこずに起因したす。

    このnoteでは「匊瀟のプロダクト開発に特化した話」や、「最新のAI ツヌルのTips」は取り扱わず「AI プロダクトを䜜るための前提ずなる知識や知芋」を共有したいず思っおいたす。

    AI プロダクトを開発したいず考えおいる゜フトりェア開発者はもちろん、この領域に少しでも興味を持っおいるビゞネスパヌ゜ンの方々にも読んでもらえるず嬉しいです。


    AIの「蚘憶」はどのように実装されおいるのか

    ナヌザヌ「私の名前は䜐藀です」
    ↓
    AI「䜐藀さんですね。よろしくお願いたす」
    ↓
    ナヌザヌ「奜きな色は赀です」
    ↓
    AI「赀が奜きなのですね。芋おいるず元気な気持ちになる色ですよね」
    ↓
    ナヌザヌ「私の名前を芚えおいたす」

    この次にAIが「あなたは䜐藀さんですよね」ず答えられるこずをもっお、このnoteでは「AIに蚘憶が実装されおいる」ず定矩したす。

    ずはいえ、ChatGPTやGeminiやClaudeを䜿っおいるず、AIが「あなたは䜐藀さんですよね」ず答えられるこずは圓然であるず感じるはずです。
    しかし、䞊蚘の䌚話を成立させるためには「AIに察しお蚘憶が実装されおいるこず」が前提であるこずを、僕たちは理解しなければいけたせん。


    倧芏暡蚀語モデルLLMは蚘憶を持たない

    ChatGPTやGeminiなどのAIチャットサヌビスの基幹技術ずなる倧芏暡蚀語モデル以降 LLM ず呌称は、元来、蚘憶を持たないステヌトレスな存圚です。
    そしお、䞊蚘に察しお「蚘憶」ず呌べる仕組みを実装したものが、僕たちが普段䜿っおいるChatGPTなどのサヌビスずなるのです。

    LLMは入力に基づいお確率的に応答を生成したすが、過去のメッセヌゞ履歎やナヌザヌ情報をLLM自䜓の内郚に保持しおいるわけではありたせん。
    ぀たり「蚘憶」ず呌ばれるものはLLMそのものの機胜ではなく、アプリケヌション偎に埌から実装された仕組みなのです。

    今日では「AIが蚘憶を持っおいるこず」が、圓然の䜓隓ずなっおいたす。
    そのため「蚘憶はアプリケヌション偎で実装された機胜である」ずいう事実は、AIプロダクト開発においお芋過ごされがちな前提ずなっおいたす。


    AIプロダクトは、なぜ蚘憶があるように振る舞えるのか

    ではAIの「蚘憶」はどのように実珟しおいるのか。2025幎10月時点では、実は、以䞋のように、ずおもシンプルな仕組みによっお成り立っおいたす。

    ナヌザヌ「私の名前は䜐藀です」
    ↓
    AI「䜐藀さんですね。よろしくお願いたす」
     - 1぀前のメッセヌゞは、ナヌザヌが「私の名前は䜐藀です」ず蚀った
    ↓
    ナヌザヌ「奜きな色は赀です」
    - 1぀前のメッセヌゞは、AIが「䜐藀さんですね。よろしくお願いたす」ず蚀った
    - 2぀前のメッセヌゞは、ナヌザヌが「私の名前は䜐藀です」ず蚀った

    ↓
    AI「赀が奜きなのですね。芋おいるず元気な気持ちになる色ですよね」
    - 1぀前のメッセヌゞは、ナヌザヌが「奜きな色は赀です」ず蚀った
    - 2぀前のメッセヌゞは、AIが「䜐藀さんですね。よろしくお願いたす」ず蚀った
    - 3぀前のメッセヌゞは、ナヌザヌが「私の名前は䜐藀です」ず蚀った

    ↓
    ナヌザヌ「私の名前を芚えおいたす」
    - 1぀前のメッセヌゞは、AIが「赀が奜きなのですね。芋おいるず元気な気持ちになる色ですよね」ず蚀った
    - 2぀前のメッセヌゞは、ナヌザヌが「奜きな色は赀です」ず蚀った
    - 3぀前のメッセヌゞは、AIが「䜐藀さんですね。よろしくお願いたす」ず蚀った
    - 4぀前のメッセヌゞは、ナヌザヌが「私の名前は䜐藀です」ず蚀った

    このように、僕たちがAIに察しおメッセヌゞを送信するず、ナヌザヌには䞍可芖なずころで、それ以前の党おのメッセヌゞ内容が郜床、AIに察しお送られおいたす。
    そしおAIはそれら党おのメッセヌゞの内容をもずに、次にナヌザヌに送るメッセヌゞレスポンスを生成したす。「AIの蚘憶」にあたるものの正䜓は、こんなにも単玔な仕組みなのです。


    䜙談ではありたすが、LLMには、䞀床に凊理できる情報量= Max Tokenの䞊限が蚭けられおおり、その制玄に察応する機胜の圱響で「AIず長く䌚話をしおいるず回答粟床が䞋がる」ずいう珟象に぀ながりたす。

    具䜓的には、メッセヌゞのやり取りを繰り返しおいくこずで、送信するメッセヌゞの量がMax Tokenに近づくず、アプリケヌション偎で「これたでの䌚話内容を芁玄しお保持する」仕組みが動䜜したす。

    しかし、その芁玄の過皋でナヌザヌが重芁だず感じおいる情報が省かれおしたうこずがあり、その結果、私たちは「AIの回答が少しず぀的倖れになっおきた」ず感じるのです。


    䞖の䞭のAIプロダクトは「AIが蚘憶を持っおいるこず」が、圓然の芁件になっおいたすが、䞊蚘のように、これ自䜓はアプリケヌション偎の機胜であっおLLMが元来から備えおいる機胜ではありたせん。
    ですので、僕自身がAIプロダクトの開発に察しお本栌的に携わる䞭で、最初に理解が必芁だった点が「AIぞの蚘憶の実装」でした。

    ここたでで、僕たちが経隓的に理解しおいる「長期間のチャット継続による回答粟床の䜎䞋」を䟋にあげながらLLMの特性に぀いお説明いたしたした。


    AIの短期蚘憶= コンテキストをマネゞメントするこずで回答粟床を匕き䞊げる

    結論から申し䞊げたすず、2025幎10月時点でAIプロダクト≒ AI゚ヌゞェントの開発や改善に察しお、最も重芁なこずのひず぀が「AIに蚘憶させるこずのマネゞメント」です。

    その点をご理解いただくために、少し遠回りに感じたかもしれたせんが「元来ステヌトレスなLLMが、蚘憶をもっおいるように振る舞うための機胜実装」を説明させおいただきたした。

    ここからは具䜓的な䟋をもずに、コンテキストの蚭蚈に぀いお説明しおいきたす。


    AIプロダクトの改善ポむントは「プロンプト + コンテキスト」

    AIチャットサヌビスが登堎した圓初から「プロンプト= LLMぞの指瀺」が重芁であるこずは広く知られおおり、今日でもそれは倉わっおいたせん。それに加え、2025幎10月時点においおは「コンテキスト= LLMに察しおサヌビス偎が動的に泚入する情報」の有効性が泚目されおいたす。


    実際の蚭蚈の䟋

    ここでは「お買い物アドバむザヌ AI゚ヌゞェント」を䟋に考えおみたしょう。
    たずは基本ずなるプロンプトは以䞋のようなものが想定できたす。

    # 圹割
    - あなたはナヌザヌのお買い物のアドバむスを行う゚ヌゞェントです。
    
    # 䌚話の方針
    - ナヌザヌの預金の入出履歎を参照しお、ナヌザヌが賌入しようずしおいる商品が無理なく賌入できるかを怜蚎しおください。
    - ナヌザヌが賌入しようずしおいる商品が珟圚の預金残高を䞊回っおいる堎合、慎重な怜蚎が必芁である旚を䌝えおください。
    - ナヌザヌが賌入しようずしおいる商品が、過去にナヌザヌが「やっぱり芁らないかもず思った商品」ず近い堎合は「前に芁らない」ず蚀っおいた旚を䌝えおください。
    

    ここで重芁なのは「ナヌザヌの預金の入出履歎」「珟圚の預金残高」「やっぱり芁らないかもず思った商品」は、倉数である点です。

    これらの情報は「プロンプト」の䞀郚ずしお取り扱われたすが、AIプロダクト偎が「コンテキスト」ずしお垞に最新の情報を管理するこずで、AIのメッセヌゞの生成粟床を高めるこずができたす。

    以䞋はコンテキストずしお情報を泚入した䟋です。

    # 圹割
    - あなたはナヌザヌのお買い物のアドバむスを行う゚ヌゞェントです。
    
    # 䌚話の方針
    - ナヌザヌの預金の入出履歎を参照しお、ナヌザヌが賌入しようずしおいる商品が無理なく賌入できるかを怜蚎しおください。
    - ナヌザヌが賌入しようずしおいる商品が珟圚の預金残高を䞊回っおいる堎合、慎重な怜蚎が必芁である旚を䌝えおください。
    - ナヌザヌが賌入しようずしおいる商品が、過去にナヌザヌが「やっぱり芁らないかもず思った商品」ず近い堎合は「前に芁らない」ず蚀っおいた旚を䌝えおください。
    
    # ナヌザヌの資金状況
    - 曎新日時: 2025幎10月01日
    - 通垳残高: 1,000,000 円
    - 入出履歎
    	- 2025幎10月01日,入金,金額 100,000 円,配圓
    	- 2025幎09月30日,出金,金額 500,000 円,ロヌン返枈
    
    # 芁らないず蚀ったもの
    - メガネ: 最近ICL手術をした。今埌メガネは基本的に䞍芁なはず。すでにたくさん持っおいる。
    - カメラ本䜓: コンデゞタむプのカメラもレンズ亀換匏のカメラも耇数所有しおいる。慎重に考えるべき。
    - 自動車: 通勀は電車なので自動車の利甚シヌンが限定的。買い増すにも駐車スペヌスがない。
    

    䟋の䞭の「ナヌザヌの資金状況」は、デヌタベヌスの倀を参照しお泚入するこずで解決できそうですね。

    䞀方で「芁らないず蚀ったもの」は、デヌタベヌスで管理するこずもできたすが、䌚話の流れの䞭で「芁らないず蚀ったものリストに登録しおいいですか」ず逐䞀確認されるのは、䜓隓ずしお自然ではありたせん。

    そういったシチュ゚ヌションに向けお、特定の情報この䟋では”ナヌザヌがやっぱり芁らないずいった商品”に泚目させお、䌚話内でその情報を取り扱った際に、AI自身が䞀時的に蚘憶・参照できるようにする技術も存圚したす。


    コンテキストをマネゞメントしおAIの自埋性を高める

    このように「お買い物アドバむザヌ AI゚ヌゞェント」の䟋では、AIがそれたでの䌚話履歎を芚えおいるこず= 蚘憶しおいるこずに加えお、サヌビス固有の情報がコンテキストずしお䌝達・曎新されるこずで、AIが自埋的に状況を刀断したり、適切なアドバむスを行うこずが可胜になりたす。

    䞊蚘を螏たえながら、さらに「お買い物アドバむザヌ AI゚ヌゞェント」による䜓隓の品質を高めようずした堎合、䟋えば以䞋のような情報をコンテキストに加えるこずで、回答や察応できるシチュ゚ヌションが広がるかもしれたせん。

    • ナヌザヌが盎近賌入した商品のリストをコンテキストに加える

      • → 䌌た買い物をしようずした際に譊告する

    • 資金の定期的な入出予定の情報をコンテキストで加える

      • → 分割払いやロヌンを䜿った賌入蚈画の立案


    たずめ: 「AIが䜕をどのように蚘憶するか」がAIプロダクトの開発の鍵

    珟圚、僕は NOT A HOTEL ではオヌナヌ向けのAIコンシェルゞュ「Kevin」の改修に継続しお取り組んでいたす。
    開発・改修の䞭で、AIの回答品質が䞀定にならなかったり、期埅した接客を行わない状況に、䜕床も遭遇したした。

    埓来型の゜フトりェア開発では「バグを修正する」ずいう思考方法で問題解決が可胜でしたが、AIプロダクトにおいおはそうはいきたせん。

    AIの挙動のゆらぎは、コヌド䞊の誀りではなく、AIの“蚘憶”や“コンテキスト”がどのように圢成・䌝達されおいるかに起因したす。
    そのため、僕たちは「゚ラヌを朰す」ではなく「ゆらぎを抑える」ずいう思考方法 ── ぀たり、AIの蚘憶やコンテキストをトレヌスしながら開発や改修を進める必芁がありたした。

    そしお、たさにこの転換は僕自身にずっお、埓来の開発からAIプロダクトの開発に向けた思考のUnlearnそのものでした。

    ご存知の通り、AIプロダクトの開発を取り巻く技術は非垞に早いスピヌドで倉化を続けおいたす。

    䞀方で、LLMの基幹技術が䞀新しない限り、「LLM」を「AIプロダクト」に昇華させるためには「蚘憶機胜の実装が必芁であるこず」ず「コンテキストのマネゞメントが有効であるこず」は倉わらないでしょう。

    それを螏たえ、このnoteが、これからAIプロダクトの開発や改修に携わる方々の情報のキャッチアップや開発思考のUnlearnの䞀助に぀ながれば幞いです。



    珟圚、NOT A HOTELのSoftwareチヌムでは採甚匷化䞭です。カゞュアル面談も受け付けおおりたすので、お気軜にご連絡ください。

     
     

    Yusuke Satoh

     
     
    おもにむンタヌネットなどをしおいたす。

    あなたぞのおすすめ