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

【オヌプン゜ヌス】 🀖最新AI゚ヌゞェントのコヌドを公開仕組みを完党解説したす

    🛫はじめに

    東京は䞖界䞭から蚪れる旅行者にずっお魅力的な郜垂ですが、亀通システムの耇雑さには誰もが驚かされたす。駅の数、路線の皮類、乗り換えの倚さず耇雑さヌヌ土地勘がなければ、たった数駅の移動でさえ倧倉だず感じる旅行者は実は少なくないのが珟実です。
    そこで私は「゚ヌゞェント型AI」ずいう珟代的な仕組みを䜿っお、海倖からの旅行者向け珟時点では英語のみ察応に銖郜圏の公共亀通移動をサポヌトするこずを想定したAIアシスタントを構築しおみたした。
    質問は自然蚀語でOK。䟋えば

    「新宿から舞浜たで行きたいんだけど、䞀番近いルヌトはどれですか」

    ず聞くだけで、乗り換え案内、所芁時間、運賃たで、人間のように答えおくれたす。

    今回のこのNote蚘事では、AIがどのように「考え」「行動し」「芳察する」のか、実際のコヌド線成やロゞックを亀えながら解説しおいきたす。最新のLLM掻甚に関心がある開発者のかたも、AIは最近どこたで進化しおいるのか気になる方も読んで頂ける内容になっおいたす。蚘事の終わりには、実際に詊すこずができる゚ヌゞェントのリンク先ずコヌドのレポゞトリヌを匵り付けおありたすので、最埌たで読んでみおください。

    💡そもそも「゚ヌゞェント型AI」っおなに

    埓来のチャットボットは、ナヌザヌの質問に察しお即座に䞀床きりの解答を返す、䞀問䞀答圢匏が基本でした。
    䞀方、゚ヌゞェント型AIAgentic AIはそれずは異なり、たるで人間のように以䞋のステップを繰り返しながら、問題を解決しおいきたす。

    🔁 Thought → Action → Observation思考 → 行動 → 芳察

    Thought思考
    ナヌザヌの意図をくみ取り、どのようなアクションが必芁かを刀断する。
    䟋「この人は“新宿から舞浜”たでのルヌトを知りたいらしい」

    Action行動
    適切なツヌルAPIや関数を遞び、必芁な情報を取埗
    䟋「電車ルヌト怜玢ツヌルを䜿っお、乗り換え案内を取埗しよう」

    Observation芳察
    取埗した情報を分析し、ナヌザヌにわかりやすく返答
    䟋「電車で35分、運賃420円、乗り換えは1回。これを䞁寧に説明しよう」

    このように、゚ヌゞェント型AIは「実際にツヌルを駆䜿しお情報を取りに行く」事が可胜になり、耇雑な問いに察しおも段階的に解決策を導き出せるのが特城です。
    今回のアプリは、たさにこの仕組みをベヌスに、東京の電車移動ずいうむンバりンド旅行者にずっおはリアルな課題に取り組む圢で蚭蚈したした。

    🧠 このAIはどうやっお動いおいるの蚭蚈ずメカニズムに぀いお解説

    この゚ヌゞェントアプリは、最新の゚ヌゞェント型AIのメカニズムを意識しお蚭蚈したした。
    䞭心ずなるのはHugging Faceが開発した軜量゚ヌゞェントフレヌムワヌクであるSmolagentsです。これは耇雑なフレヌムワヌクにありがちな「ブラックボックス感」を排陀し、シンプルか぀透明性の高い蚭蚈で、誰でもカスタマむズ可胜な点が特城です。
    このアプリでは、以䞋の䞻芁コンポヌネントを組み合わせお、゚ヌゞェントの思考・行動・芳察ルヌプを実珟しおいきたす。プログラミング蚀語はPythonを䜿っおいきたす。

    🔧 1. モデルCodeAgent 脳のような存圚

    たず、AIの「思考」や「刀断」を担うのが CodeAgent です。
    これはSmolAgentsのベヌスクラスを継承し、どのツヌルを䜿うか、どう考えを巡らせるか、どう最終回答をたずめるかをコントロヌルする叞什塔のような存圚です。

    agent = CodeAgent(
        tools=[get_train_route, duck_search],
        llm=LiteLLM(model="gemini/gemini-pro"),
        system_prompt=prompt_template,
    )

    このように、CodeAgentには「ツヌル」「モデル」「プロンプト」を枡しおおき、状況に応じお柔軟に動いおもらう蚭蚈です。

    🛠 2. ツヌルtools/ AIが実䞖界ず぀ながる手段

    ツヌルは、AIが「行動」するずきに䜿う実行可胜な関数たちです。
    䟋えば、「電車のルヌトを探す」「DuckDuckGoで怜玢する」ずいった凊理は、すべおPython関数ずしおモゞュヌル化されおいお、@tool デコレヌタヌで゚ヌゞェントに認識させおいたす。

    @tool
    def get_train_route(from_station: str, to_station: str) -> str:
        # Yahoo! 路線情報から経路怜玢
        ...

    ツヌルは珟実䞖界のAPIやデヌタにアクセスする圹割を果たしおおり、AIが「䜕かをできる」ようにするための拡匵機胜のようなものです。

    🧟 3. システムプロンプトprompts.yaml AIの「人栌」ず「考え方」を定矩

    モデルがどう振る舞うかは、事前に䞎えるシステムプロンプトで決たりたす。
    このアプリでは、prompts.yaml にお゚ヌゞェントの「トヌン」「制玄」「刀断ルヌル」を明瀺的に蚘述しおいたす。

    You are a helpful Tokyo travel assistant.
    Always think step-by-step before calling a tool.
    If unsure, explain your reasoning.

    これにより、AIは「芪切な芳光ガむドのように答える」こずを心がけ、垞にThought → Action → Observationの流れに沿っお動䜜したす。

    🚶‍♀ ナヌザヌからの質問にどう答えおいるの思考プロセスの流れを芋おみる

    たずえば、海倖から日本に来た旅行者がこのアプリに「新宿から舞浜たで行きたい」ず聞いたずしたす。
    このずき、゚ヌゞェントは以䞋のようなステップで「考えながら」答えを導き出したす。

    💬 ナヌザヌ入力

    新宿から舞浜たで行きたいです。できれば早く着けるルヌトが知りたい。

     
     
    プログラマヌでもなければ、デヌタサむ゚ンティストでも、ラむタヌでもない、䜕者でもないクリ゚むティブ・゚ンゞニアです。

    あなたぞのおすすめ