In 5. 🧪 Testing in Isolation
in Step 1. Run the Researcher interactively. Note we point to the specific agent directory:
uv run adk run agents/researcher
I get the error:
chris@cloudshell:~/prai-roadshow-lab-1-starter (project_id)$ uv run adk run agents/researcher
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Log setup complete: /tmp/agents_log/agent.20260430_192311.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Traceback (most recent call last):
File "/home/chris/prai-roadshow-lab-1-starter/.venv/bin/adk", line 10, in
sys.exit(main())
^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 127, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 598, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 680, in cli_run
asyncio.run(
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli.py", line 174, in run_cli
agent_or_app = agent_loader.load_agent(agent_folder_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 359, in load_agent
agent_or_app = self._perform_load(agent_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 268, in _perform_load
if root_agent := self._load_from_submodule(module_base_name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 162, in _load_from_submodule
raise e
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 123, in _load_from_submodule
module_candidate = importlib.import_module(f"{agent_name}.agent")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/chris/prai-roadshow-lab-1-starter/agents/researcher/agent.py", line 4, in
researcher = Agent(
^^^^^
NameError: Fail to load 'researcher.agent' module. name 'Agent' is not defined
chris@cloudshell:/prai-roadshow-lab-1-starter (cknyco-dev)$ cd ..
chris@cloudshell: (cknyco-dev)$
chris@cloudshell:~ (cknyco-dev)$ uv run adk run agents/researcher
error: Failed to spawn: adk
Caused by: No such file or directory (os error 2)
chris@cloudshell:~ (cknyco-dev)$ cd prai-roadshow-lab-1-starter
chris@cloudshell:/prai-roadshow-lab-1-starter (cknyco-dev)$ cd agents
chris@cloudshell:/prai-roadshow-lab-1-starter/agents (cknyco-dev)$ uv run adk run agents/researcher
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Usage: adk run [OPTIONS] AGENT
Try 'adk run --help' for help.
Error: Invalid value for 'AGENT': Directory 'agents/researcher' does not exist.
chris@cloudshell:/prai-roadshow-lab-1-starter/agents (cknyco-dev)$ cd ..
chris@cloudshell:/prai-roadshow-lab-1-starter (cknyco-dev)$ uv run adk run agents/researcher
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Log setup complete: /tmp/agents_log/agent.20260430_192428.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Traceback (most recent call last):
File "/home/chris/prai-roadshow-lab-1-starter/.venv/bin/adk", line 10, in
sys.exit(main())
^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 127, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 598, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 680, in cli_run
asyncio.run(
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli.py", line 174, in run_cli
agent_or_app = agent_loader.load_agent(agent_folder_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 359, in load_agent
agent_or_app = self._perform_load(agent_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 268, in _perform_load
if root_agent := self._load_from_submodule(module_base_name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 162, in _load_from_submodule
raise e
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 123, in _load_from_submodule
module_candidate = importlib.import_module(f"{agent_name}.agent")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/chris/prai-roadshow-lab-1-starter/agents/researcher/agent.py", line 4, in
researcher = Agent(
^^^^^
NameError: Fail to load 'researcher.agent' module. name 'Agent' is not defined
In 5. 🧪 Testing in Isolation
in Step 1. Run the Researcher interactively. Note we point to the specific agent directory:
uv run adk run agents/researcher
I get the error:
chris@cloudshell:~/prai-roadshow-lab-1-starter (project_id)$ uv run adk run agents/researcher
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Log setup complete: /tmp/agents_log/agent.20260430_192311.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Traceback (most recent call last):
File "/home/chris/prai-roadshow-lab-1-starter/.venv/bin/adk", line 10, in
sys.exit(main())
^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 127, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 598, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 680, in cli_run
asyncio.run(
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli.py", line 174, in run_cli
agent_or_app = agent_loader.load_agent(agent_folder_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 359, in load_agent
agent_or_app = self._perform_load(agent_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 268, in _perform_load
if root_agent := self._load_from_submodule(module_base_name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 162, in _load_from_submodule
raise e
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 123, in _load_from_submodule
module_candidate = importlib.import_module(f"{agent_name}.agent")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/chris/prai-roadshow-lab-1-starter/agents/researcher/agent.py", line 4, in
researcher = Agent(
^^^^^
NameError: Fail to load 'researcher.agent' module. name 'Agent' is not defined
chris@cloudshell:
/prai-roadshow-lab-1-starter (cknyco-dev)$ cd ..(cknyco-dev)$chris@cloudshell:
chris@cloudshell:~ (cknyco-dev)$ uv run adk run agents/researcher
error: Failed to spawn:
adkCaused by: No such file or directory (os error 2)
chris@cloudshell:~ (cknyco-dev)$ cd prai-roadshow-lab-1-starter
chris@cloudshell:
/prai-roadshow-lab-1-starter (cknyco-dev)$ cd agents/prai-roadshow-lab-1-starter/agents (cknyco-dev)$ uv run adk run agents/researcherchris@cloudshell:
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Usage: adk run [OPTIONS] AGENT
Try 'adk run --help' for help.
Error: Invalid value for 'AGENT': Directory 'agents/researcher' does not exist.
chris@cloudshell:
/prai-roadshow-lab-1-starter/agents (cknyco-dev)$ cd ../prai-roadshow-lab-1-starter (cknyco-dev)$ uv run adk run agents/researcherchris@cloudshell:
/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/features/_feature_decorator.py:72: UserWarning: [EXPERIMENTAL] feature FeatureName.PLUGGABLE_AUTH is enabled.
check_feature_enabled()
Log setup complete: /tmp/agents_log/agent.20260430_192428.log
To access latest log: tail -F /tmp/agents_log/agent.latest.log
Traceback (most recent call last):
File "/home/chris/prai-roadshow-lab-1-starter/.venv/bin/adk", line 10, in
sys.exit(main())
^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 127, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 598, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli_tools_click.py", line 680, in cli_run
asyncio.run(
File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/cli.py", line 174, in run_cli
agent_or_app = agent_loader.load_agent(agent_folder_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 359, in load_agent
agent_or_app = self._perform_load(agent_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 268, in _perform_load
if root_agent := self._load_from_submodule(module_base_name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 162, in _load_from_submodule
raise e
File "/home/chris/prai-roadshow-lab-1-starter/.venv/lib/python3.12/site-packages/google/adk/cli/utils/agent_loader.py", line 123, in _load_from_submodule
module_candidate = importlib.import_module(f"{agent_name}.agent")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/init.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 995, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/chris/prai-roadshow-lab-1-starter/agents/researcher/agent.py", line 4, in
researcher = Agent(
^^^^^
NameError: Fail to load 'researcher.agent' module. name 'Agent' is not defined