AI-Agent開発における文脈知識の獲得とモデリングの活用
ここ数日でいくつか書いたメモでは、AIによる開発支援が一般化した昨今において、ジュニアエンジニアの成長をどのように担保すればよいだろうか?ということを課題に感じていた。
特に問題になるのは「文脈知識」 だろう。
AI-Agentの開発事例をいくつか聞くようになってきて、改めて文脈知識の必要性がフォーカスされているように思う。
なぜなら、例えばカスタマサポートエージェント(CS-Agent)を実装するとして、業務マニュアルを網羅的にプロンプトとして落とし込むのは現実的ではないだろう。だってそもそも業務マニュアルが完全に揃ってる現場なんてほとんどないだろうし、あったとして網羅的に落とし込むならソフトウェアで対応すればいいのだから。
必要なのは、「お客さまがどんな感情を持ち」「何を要求されていて」「それにどう対処すべきか」をCS-Agentが判断できるようになることで、さらに回答の不確実性をいかに減らすか?がプロダクトとしての成否を分けるんだと思う。
その判断に必要となるのが「文脈知識」。
つまり、なぜそのような判断をすべきなのか?業務として目指すべきゴールは?ビジネスとしてお客さまに提供する価値は?といった「意味の構造」と、お客さまはこれまでどのようにサービスを利用し、何を期待されているのか?という「関係の構造」(抽象化されたナラティブとでも言うべきだろうか)。
これらをうまくエージェントにインプットすることができれば、不確実性をぐっと減らせるはずだ。
ところが、この「文脈知識」は往々にして言語化されておらず、業務担当者の無意識下にしかないのでは?というのが、長いこと事業会社で業務システム開発をやってきた私の所感。
なので業務担当者にヒアリングしよう!となるが、やっぱり上手くいかない。だって無意識を言語化するのは難しく、忙しい業務担当者に言語化トレーニングを受けるヒマがあるわけがないし、トレーニングを積んだエンジニアでも他人の無意識を言語化するまでのケイパビリティを得るには至らないから。
じゃどうするか?
モデリングでしょ。
AI-Agentに業務の全体像や各ステップの「なぜ?」(意味の構造)を与えるために、その構造をモデリングによって可視化する
業務担当者自身も、意味の構造を意識していないことがあるので、無意識下から読み取って業務担当者も含むチーム全体でオーソライズしていかなければならない
つまりチーム(エンジニア・業務担当者)は、生成AIとともに各プロセスをモデリングすべき
ここでいう「モデリング」とは、個々のプロセスを可視化し、構造化・抽象化を経て、チーム全体の共通認識とすること
構造化・抽象化の過程では IAD&Pループ を用いてマニュアルの表面的な理解に留まらず、業務の意義を見出す マニュアルを読む(Observe/Induction)
「これはなぜ?」「もっと良い方法は?」と問い(Abduction)
モデルを描き(Deduction)
LLMや関係者と議論により検証する(Proof)
そしてこの過程で得られた意味の構造をこそプロンプト化し、AI-Agentの判断基準として運用できれば、AI-Agentシステムの不確実性を低減させることができる(はず)
各工程は生成AIによる支援を受けながら進め、チームの脳内を可視化・共有し、プロンプトを生成していく
この工程を経ることでジュニアエンジニアも深い文脈知識を獲得する機会を得られる。
また一方で、すでにこの工程を経てLLMが文脈知識を獲得済みであれば、ジュニアエンジニアは遠慮なくLLMに質問し放題となる。(シニアエンジニアのメンタリングコストを下げられる)
ただし、LLMから得た文脈知識の検証・刷新を行うにあたっては、業務担当者との協働は依然として不可欠 である(ビジネス環境は目まぐるしく変わり、その変化を知るのは最前線にいる業務担当者を置いて他にいない)ため、LLMから得た文脈知識は 業務担当者と会話するための前提知識 であると位置づけておく必要があるだろう。