AIAgent / init_agent
源码版本v2026.7.20
職務
init_agent は agent の「組み立て工房」:provider、toolsets、圧縮閾値、カスタム provider の extra_body、記憶と学習コンポーネントなどを agent インスタンスに注入し、一往復の対話に必要な依存を全て整える。AIAgent クラス自体はその産物の薄い殻に過ぎない。
主要ファイル
class AIAgent:400-497— クラス定義、フィールド即ち設定__init__ 転送:497-560—from agent.agent_init import init_agent; init_agent(...)def init_agent:276— 組み立てメイン関数入口カスタム provider extra_body 補助:183-275—_normalized_custom_base_url/_custom_provider_model_matches/_merge_custom_provider_extra_body_resolve_compression_threshold:93-127— 圧縮閾値解析補助関数域:62-91—_ra、autoraise notice など
データフロー
AIAgent.__init__(run_agent.py:423) は構築引数をそのまま収集する。init_agent:276を呼び、順に:- provider 名と base_url を解析(
agent/agent_init.py:183) - カスタム provider の
extra_bodyをマージ(agent/agent_init.py:257) - 圧縮閾値を解析(
agent/agent_init.py:93) - toolsets、記憶マネージャ、学習グラフなどを注入
- provider 名と base_url を解析(
- 組み立て完了した agent は
run_conversationメソッド(run_agent.py:6350)を露出し、モジュールレベルのagent/conversation_loop.py:588に転送する。 - ゲートウェイの
GatewayRunner(gateway/run.py:3029)が組み立て済み agent を保持し、入站メッセージを渡す。
まとめ
init_agent は設定→実行時の翻訳層であり、起動期の意思決定(provider 選択、圧縮戦略、toolsets のオンオフ)はすべてここで一度に確定する。以後 agent はステートレスな「メッセージを投げ→ループを回す」リズムに入り、設定を戻って変更することはない。