ERROR: Traceback (most recent call last):
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/starlette/routing.py", line 692, in lifespan
async with self.lifespan_context(app) as maybe_state:
~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/usr/local/Cellar/python@3.13/3.13.3/Frameworks/Python.framework/Versions/3.13/lib/python3.13/contextlib.py", line 214, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/main.py", line 17, in lifespan
runner, exit_stack = await create_main_agent()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/app/agent.py", line 123, in create_main_agent
session_service = DatabaseSessionService("postgresql+asyncpg://postgres:postgres@localhost:5432/test_mcp")
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/google/adk/sessions/database_session_service.py", line 274, in __init__
self.inspector = inspect(self.db_engine)
~~~~~~~^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/inspection.py", line 140, in inspect
ret = reg(subject)
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py", line 313, in _engine_insp
return Inspector._construct(Inspector._init_engine, bind)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py", line 246, in _construct
init(self, bind)
~~~~^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/reflection.py", line 257, in _init_engine
engine.connect().close()
~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 3274, in connect
return self._connection_cls(self)
~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
~~~~~~~~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/base.py", line 3298, in raw_connection
return self.pool.connect()
~~~~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 1264, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 713, in checkout
rec = pool._do_get()
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py", line 179, in _do_get
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/impl.py", line 177, in _do_get
return self._create_connection()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 390, in _create_connection
return _ConnectionRecord(self)
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 675, in __init__
self.__connect()
~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 901, in __connect
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/pool/base.py", line 897, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/create.py", line 646, in connect
return dialect.connect(*cargs, **cparams)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/engine/default.py", line 625, in connect
return self.loaded_dbapi.connect(*cargs, **cparams) # type: ignore[no-any-return] # NOQA: E501
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/dialects/postgresql/asyncpg.py", line 961, in connect
await_only(creator_fn(*arg, **kw)),
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/Volumes/Work/RD/A2A-Demo/Test Agent/.venv/lib/python3.13/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 123, in await_only
raise exc.MissingGreenlet(
...<2 lines>...
)
sqlalchemy.exc.MissingGreenlet: greenlet_spawn has not been called; can't call await_only() here. Was IO attempted in an unexpected place? (Background on this error at: https://sqlalche.me/e/20/xd2s)
async def create_main_agent():
tools, exit_stack = await get_tools_async()
# Sub agent here
main_agent = LlmAgent(
model="gemini-2.0-flash-001",
name="coordinator_agent",
description="Coordinates tasks between product consulting and order processing.",
instruction="""
You are a smart coordination assistant.
- Analyze the user's request.
- Route it to the product_consultant_agent if the user is asking for product recommendations or availability.
- Route it to the order_processor_agent if the user wants to place an order.
- Always route it to the product_consultant_agent first.
""",
sub_agents=[
product_consultant_agent,
order_processor_agent,
],
)
# session_service = InMemorySessionService()
session_service = DatabaseSessionService("postgresql+asyncpg://postgres:postgres@localhost:5432/agent_app")
runner = Runner(
agent=main_agent,
app_name=os.getenv("APP_NAME", "coordinator_agent_app"),
session_service=session_service,
)
return runner, exit_stack
Describe the bug
I used postgres database to store my agent session. But Its seems not work:
This is err:
My code:
Desktop: