Код: Выделить всё
gemini-2.5-flash-liteВот вспомогательная функция, которую я использую для запуска агента:
Код: Выделить всё
import asyncio
from google.adk.agents.llm_agent import Agent
from google.adk.runners import InMemoryRunner
from google.adk.sessions import InMemorySessionService
from google.genai.types import Content, Part
_APP_USER_ID = "system"
_APP_SESSION_ID = "default"
_SESSION_SERVICE = InMemorySessionService()
async def _run_agent(agent: Agent, prompt: str) -> str:
# Attempt to create a session
session = await _SESSION_SERVICE.create_session(
app_name="duck_pa",
user_id=_APP_USER_ID,
session_id=_APP_SESSION_ID
)
runner = InMemoryRunner(agent)
input_content = Content(parts=[Part(text=prompt)])
async for event in runner.run_async(
new_message=input_content,
user_id=session.user_id,
session_id=session.id
):
if event.is_final_response():
return "".join(
part.text for part in event.content.parts if getattr(part, "text", None)
)
raise RuntimeError("Agent did not return a final response")
Когда я запускаю агент с помощью этой функции, я получаю следующую ошибку:
Код: Выделить всё
Session not found: default
- используется для создания сеанса.
Код: Выделить всё
InMemorySessionService - Те же user_id и session_id передаются в runner.run_async.
- Объект Content сконструирован правильно.
Вопрос:
Как правильно запустить агент LLM с помощью InMemoryRunner и InMemorySessionService, чтобы сеанс распознавался, и я не получал сообщение «Сессия не найдена»: default?
Будем очень признательны за любые рекомендации или рабочие примеры.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ner-with-l
Мобильная версия