Skip to content

Commit b0bb3dd

Browse files
WilliamDennisscopybara-github
authored andcommitted
fix(cli): explicitly set memory_service_uri='memory://' when --in_memory is passed
When `adk run --in_memory` is used, `_setup_runner_context` sets `session_service_uri` and `artifact_service_uri` to `'memory://'`, but previously omitted `memory_service_uri`. While `create_memory_service_from_options(None)` currently defaults to in-memory, setting `memory_service_uri='memory://'` explicitly ensures that user intent is preserved across all state services and is not superseded by platform auto-configuration. Co-authored-by: William Denniss <wdenniss@google.com> PiperOrigin-RevId: 974115133
1 parent 8128b84 commit b0bb3dd

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

src/google/adk/cli/cli.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ def _setup_runner_context(
312312
if in_memory:
313313
session_service_uri = 'memory://'
314314
artifact_service_uri = 'memory://'
315+
memory_service_uri = 'memory://'
315316
use_local_storage = False
316317

317318
session_service = create_session_service_from_options(

tests/unittests/cli/utils/test_cli.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,3 +549,39 @@ def test_print_event_preserves_non_ascii_in_jsonl(
549549
assert len(echoed) == 1
550550
assert "日本語の回答" in echoed[0]
551551
assert "\\u" not in echoed[0]
552+
553+
554+
@pytest.mark.asyncio
555+
async def test_run_cli_in_memory_flag_sets_memory_service_uri(
556+
fake_agent, tmp_path: Path, monkeypatch: pytest.MonkeyPatch
557+
) -> None:
558+
"""run_cli with in_memory=True should configure memory_service_uri='memory://'."""
559+
parent_dir, folder_name = fake_agent
560+
input_json = {"state": {}, "queries": []}
561+
input_path = tmp_path / "in_memory_input.json"
562+
input_path.write_text(json.dumps(input_json))
563+
564+
captured_factory_args: dict[str, Any] = {}
565+
566+
def _memory_factory(
567+
*,
568+
base_dir: Path | str,
569+
memory_service_uri: str | None = None,
570+
) -> object:
571+
captured_factory_args["memory_service_uri"] = memory_service_uri
572+
return object()
573+
574+
monkeypatch.setattr(
575+
cli, "create_memory_service_from_options", _memory_factory
576+
)
577+
578+
await cli.run_cli(
579+
agent_parent_dir=str(parent_dir),
580+
agent_folder_name=folder_name,
581+
input_file=str(input_path),
582+
saved_session_file=None,
583+
save_session=False,
584+
in_memory=True,
585+
)
586+
587+
assert captured_factory_args["memory_service_uri"] == "memory://"

0 commit comments

Comments
 (0)