google.adk.cli.utils.agent_loader.AgentLoader
https://github.com/google/adk-python/blob/v1.2.1/src/google/adk/cli/utils/agent_loader.py
サポート
agents_dir/{agent_name}/agent.py (with root_agent defined in the module)
_load_from_submodule()
agents_dir/{agent_name}.py (with root_agent defined in the module)
_load_from_module_or_package()
agents_dir/{agent_name}/__init__.py (with root_agent in the package)
_load_from_module_or_package()
load_agent()
_perform_load() (Internal logic)
まず _load_from_module_or_package()
importlib.import_module(agent_name)
見つからなければ _load_from_submodule()
importlib.import_module(f"{agent_name}.agent")
例:
"stop-loop"(ハイフン使用)を渡したら、importlib.import_module("stop-loop.agent")の方でloadした
importlib.import_module("stop-loop")自体はできる(stop-loop/__init__.pyがある)
stop-loop/__init__.pyにroot_agentを宣言するとimportlib.import_module("stop-loop")でloadできるようになる
https://github.com/google/adk-python/blob/v1.2.1/tests/unittests/cli/utils/test_agent_loader.py
興味:ADKのAgentをsite-packages下にインストールして、それをloadできる? ーできた
importlib.import_moduleしているため気になった