Site icon imageTomoMemo.dev

Memo on programming for Junior SWE. Provided by Tomo with passion.

AI Agentの仕組みを理解する

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
  • データベース
    • 通常の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の仕組みが体系的にわかりそう。ひとまず勉強したことを言葉で残しておく。

Powered by Tomo with passion.