AI Agentを使うからこそ、どんな仕組みで動いているのかを言語化してみる。
AI Agentの仕組み
チャート化してみる。
flowchart TD %% User部分 User["User(ユーザー)"] %% AI Agent部分の点線囲い subgraph AI_Agent_Area["AI Agent Area"] AI_Agent["AI Agent(AIエージェント)"] LLM["LLM(大規模言語モデル)"] Database["Database(データベース)"] VectorDB["Vector Database(ベクトルデータベース)"] Action["Action(アクション)"] DataFlywheel["Data Flywheel(データフライホイール)"] ModelCustomization["Model Customization(モデルカスタマイズ)"] AI_Agent -- "① 入力内容を伝える" --> LLM LLM -- "② 必要な情報を取得" --> Database Database -. "③ 情報提供" .-> LLM LLM -- "④ 必要な情報を取得" --> VectorDB VectorDB -. "⑤ 情報提供" .-> LLM LLM -- "⑥ 応答または行動の決定" --> Action Action -- "⑦ 実行内容・履歴を記録" --> DataFlywheel DataFlywheel -- "⑧ 履歴データを蓄積" --> ModelCustomization ModelCustomization -. "⑨ モデルの賢さアップ" .-> LLM DataFlywheel -. "⑩ やりとり履歴を活用" .-> LLM end %% User <-> AI Agentのやりとり User -- "質問・指示" --> AI_Agent Action -- "実行結果" --> User %% 点線枠用スタイル classDef dashed stroke-dasharray: 5,5 class AI_Agent_Area dashed
ざっくりいうと、上から順番にこの流れになる。
- 人がAI(cf. AI Agent)に質問
- AIが知能を使って答える
- AIが答えを出すためにデータを繰り返し使う
- AIはどんどん賢くなる
上のチャートを踏まえて具体化してみる。
- ユーザーが質問や命令を送る
- AI Agentが受け取り、LLM(AIの脳)に伝える
- LLM(脳)が意味を考え、必要な情報をデータベースやベクトルデータベースから取ってくる
- LLMが答え・やること(アクション)を決める
- ユーザーに答えを返す(または、実際にアクションを起こす)
- やり取りやデータがたまる(データフライホール)
- AIがデータフライホールの仕組みを使い、AIがさらに賢くなる(モデルカスタマイズ)
AI Agentで知っておきたい用語
- User
- ユーザー、AIを使う人
- 質問や命令を出す
- AI Agent
- ユーザーからの質問や命令を受け取る受付窓口
- LLM(Large language Model)
- 大規模言語モデル、AIの脳みそ
- 質問の意味を理解し、答えを考え、次の行動を決める
- Database
- データベース、規則にのっとりデータを並べて保存する場所
- Vector Database
- ベクトルデータベース
- AIが理解しやすいVectorという形でテキスト情報などを保存する場所
- 似ている情報をすぐに探せる
- Action
- LLMが決めたやることを指す
- メールを送る、文字を書く、調べる etc.
- Data Flywheel
- データフライホイール(車輪に例えて命名された表現)
- やり取りやAIの行動などの記録データがたまるサイクルを指す
- Model Customization
- Data Flywheelを使い、AIの脳みそ(LLM)をさらに賢くしていくことを指す
コンテナ環境で自分専用のAI Agentを構築する場合の要件(例)
コンテナ環境でAI Agentを自作するときに何が最低限必要なのか?まとめていく。
- ユーザーとのやりとり部分(Web view, API Gateway)
- チャット画面やAPI受付 etc.
- WebアプリやAPIサーバー(例:FastAPI, Flask etc.)
- AI Agentのコア部分
- LLM(大規模言語モデル:例 ChatGPT, LLama, Mistral, Manus etc.)
- ここはOSSのモデルをつかうとよさそう
- LLMを呼び出すためのサーバーやAPI
- LLM(大規模言語モデル:例 ChatGPT, LLama, Mistral, Manus etc.)
- データベース
- 通常のRDB(MySQL, PostgreSQL, SQLite etc.)
- ベクトルデータベース(Pinecone, Weaviate, Qdrant, Milvus etc.)
- ドキュメントやFAQをベクトル化して保存しておく
- アクション実行部分
- 外部サービス連携(メール送信API、検索API、業務システムとの連携が必要)
- プログラムで自動実行できる各種タスク
- データフライホイール管理・ログ収集
- やりとりの履歴、アクションの実行結果、フィードバックなどを保存する仕組み
- ログを保存するサーバー(例:Elasticsearch、Cloud Logging etc.)
- モデルカスタマイズ用の仕組み
- LLMの再学習やファインチューニングのためのパイプライン
- 学習用データを整理・蓄積する仕組み(バッチ処理やストレージ)
- AWSなら、Amazon SageMaker Pipelines
- 各コンポーネントをつなぐためのネットワーク/オーケストレーション
- Docker ComposeやKubernetesで複数コンテナを連携
- API認証や通信のルール設定
環境を作って動かせばAI Agentの仕組みが体系的にわかりそう。ひとまず勉強したことを言葉で残しておく。