bedrock-agentcore-starter-toolkit 0.1.15__tar.gz → 0.1.17__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bedrock-agentcore-starter-toolkit might be problematic. Click here for more details.
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/CHANGELOG.md +16 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/PKG-INFO +1 -1
- bedrock_agentcore_starter_toolkit-0.1.17/documentation/docs/examples/semantic_search.md +94 -0
- bedrock_agentcore_starter_toolkit-0.1.17/documentation/docs/user-guide/memory/quickstart.md +181 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/mkdocs.yaml +12 -12
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/pyproject.toml +1 -1
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/strategy_validator.py +27 -14
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/configure.py +1 -1
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/memory/test_strategy_validator.py +47 -6
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/memory/memory-manager.ipynb +105 -29
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/uv.lock +1 -1
- bedrock_agentcore_starter_toolkit-0.1.15/documentation/docs/user-guide/memory/quickstart.md +0 -353
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/CODEOWNERS +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/branch-protection.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/dependabot.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/pull_request_template.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/deploy-docs.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/integration_testing.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/pr-automerge.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/release.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/security-scanning.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/security.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.github/workflows/test-pypi-release.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.gitignore +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.pre-commit-config.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/.python-version +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/CODE-OF-CONDUCT.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/CONTRIBUTING.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/LICENSE.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/NOTICE.txt +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/SECURITY.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/buildspec-lambda-package.yml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/.gitignore +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/api-reference/cli.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/api-reference/identity.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/api-reference/memory.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/api-reference/runtime.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/api-reference/tools.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/agentcore-quickstart-example.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/async-processing.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/gateway-integration.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/memory_gateway_agent.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/runtime-framework-agents.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/examples/session-management.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/index.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/mcp/agentcore_runtime_deployment.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/stylesheets/extra.css +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/builtin-tools/quickstart-browser.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/builtin-tools/quickstart-code-interpreter.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/gateway/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/identity/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/import-agent/configuration.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/import-agent/design.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/import-agent/overview.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/import-agent/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/observability/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/runtime/async.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/runtime/notebook.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/runtime/overview.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/runtime/permissions.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/docs/user-guide/runtime/quickstart.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/documentation/overrides/main.html +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/scripts/bump-version.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/scripts/prepare-release.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/scripts/setup-branch-protection.sh +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/scripts/validate-release.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/cli.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/common.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/gateway/commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/agent_info.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/import_agent/commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/runtime/commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/cli/runtime/configuration_manager.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/notebook/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/notebook/runtime/bedrock_agentcore.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/constants.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_lambda.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/create_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/gateway/exceptions.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/constants.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/manager.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/DictWrapper.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/Memory.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/MemoryStrategy.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/MemorySummary.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/base.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/custom.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/semantic.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/summary.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/memory/models/strategies/user_preference.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/create_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/destroy.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/invoke.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/launch.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/models.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/operations/runtime/status.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/codebuild.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/ecr.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/memory_manager_template.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_langchain.j2 +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/requirements_strands.j2 +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/assets/template_fixtures_merged.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/base_bedrock_translate.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_langchain.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/scripts/bedrock_to_strands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/import_agent/utils.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/runtime.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/services/xray.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/endpoints.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/logging_config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/container.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/entrypoint.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/logs.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/policy_template.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/schema.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/Dockerfile.j2 +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/dockerignore.template +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_policy.json.j2 +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/src/bedrock_agentcore_starter_toolkit/utils/runtime/templates/execution_role_trust_policy.json.j2 +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/gateway/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/gateway/test_commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/runtime/test_commands.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/runtime/test_configuration_manager.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/cli/test_common.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/conftest.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/conftest_mock.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/fixtures/project_config_multiple.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/fixtures/project_config_single.yaml +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/notebook/runtime/test_bedrock_agentcore.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/gateway/test_gateway_client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/gateway/test_gateway_client_init.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/gateway/test_gateway_create_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/memory/test_manager.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/memory/test_strategy_types.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_configure.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_create_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_destroy.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_invoke.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_launch.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/operations/runtime/test_status.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/import_agent/data/bedrock_config.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/import_agent/data/bedrock_config_multi_agent.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/import_agent/data/bedrock_config_no_schema.json +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/import_agent/test_import_agent.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/test_codebuild.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/test_ecr.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/test_runtime.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/test_runtime_conflict_error.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/services/test_xray.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/runtime/test_config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/runtime/test_container.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/runtime/test_entrypoint.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/runtime/test_policy_template.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/test_endpoints.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests/utils/test_logging_config.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/cli/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/cli/runtime/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/cli/runtime/base_test.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/cli/runtime/test_simple_agent.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/gateway/README.md +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/gateway/test_cognito_token.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/gateway/test_create_gateway_role.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/gateway/test_egress_auth.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/gateway/test_gateway_cognito.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/identity/access_token_3LO.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/memory/test_create_memory.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/notebook/test_notebook_runtime.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/strands_agent/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/strands_agent/agent_example.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/tools/__init__.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/tools/my_mcp_client.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/tools/my_mcp_client_remote.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/tools/my_mcp_server.py +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/tools/setup_cognito.sh +0 -0
- {bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/tests_integ/utils/config.py +0 -0
{bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/CHANGELOG.md
RENAMED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.17] - 2025-10-01
|
|
4
|
+
|
|
5
|
+
### Changes
|
|
6
|
+
|
|
7
|
+
- chore: sync main with PyPI version 0.1.16 (#242) (c414fe5)
|
|
8
|
+
- fix: initialize ConfigurationManager with non_interactive flag (#240) (3b92653)
|
|
9
|
+
- Add cleanup section and fix documentation links (#239) (cba1169)
|
|
10
|
+
|
|
11
|
+
## [0.1.16] - 2025-10-01
|
|
12
|
+
|
|
13
|
+
### Changes
|
|
14
|
+
|
|
15
|
+
- Update memory quickstart by @mikewrighton in #234
|
|
16
|
+
- chore: make doc titles more meaningful by @theumbrella1 in #229
|
|
17
|
+
- fix: don't fail validation for empty namespaces by @jona62 in #235
|
|
18
|
+
|
|
3
19
|
## [0.1.15] - 2025-10-01
|
|
4
20
|
|
|
5
21
|
### Changes
|
{bedrock_agentcore_starter_toolkit-0.1.15 → bedrock_agentcore_starter_toolkit-0.1.17}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bedrock-agentcore-starter-toolkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.17
|
|
4
4
|
Summary: A starter toolkit for using Bedrock AgentCore
|
|
5
5
|
Project-URL: Homepage, https://github.com/aws/bedrock-agentcore-starter-toolkit
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/aws/bedrock-agentcore-starter-toolkit/issues
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Semantic Search Memory Example
|
|
2
|
+
|
|
3
|
+
This example demonstrates the complete workflow for creating a memory resource with semantic strategy, writing events, and retrieving memory records.
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
# Semantic Search Memory Example
|
|
7
|
+
|
|
8
|
+
from bedrock_agentcore_starter_toolkit.operations.memory.manager import MemoryManager
|
|
9
|
+
from bedrock_agentcore.memory.session import MemorySessionManager
|
|
10
|
+
from bedrock_agentcore.memory.constants import ConversationalMessage, MessageRole
|
|
11
|
+
from bedrock_agentcore_starter_toolkit.operations.memory.models.strategies import SemanticStrategy
|
|
12
|
+
import time
|
|
13
|
+
|
|
14
|
+
memory_manager = MemoryManager(region_name="us-west-2")
|
|
15
|
+
|
|
16
|
+
print("Creating memory resource...")
|
|
17
|
+
|
|
18
|
+
memory = memory_manager.get_or_create_memory(
|
|
19
|
+
name="CustomerSupportSemantic",
|
|
20
|
+
description="Customer support memory store",
|
|
21
|
+
strategies=[
|
|
22
|
+
SemanticStrategy(
|
|
23
|
+
name="semanticLongTermMemory",
|
|
24
|
+
namespaces=['/strategies/{memoryStrategyId}/actors/{actorId}'],
|
|
25
|
+
)
|
|
26
|
+
]
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
print(f"Memory ID: {memory.get('id')}")
|
|
30
|
+
|
|
31
|
+
# Create a session to store memory events
|
|
32
|
+
session_manager = MemorySessionManager(
|
|
33
|
+
memory_id=memory.get("id"),
|
|
34
|
+
region_name="us-west-2")
|
|
35
|
+
|
|
36
|
+
session = session_manager.create_memory_session(
|
|
37
|
+
actor_id="User1",
|
|
38
|
+
session_id="OrderSupportSession1"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
# Write memory events (conversation turns)
|
|
42
|
+
session.add_turns(
|
|
43
|
+
messages=[
|
|
44
|
+
ConversationalMessage(
|
|
45
|
+
"Hi, how can I help you today?",
|
|
46
|
+
MessageRole.ASSISTANT)],
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
session.add_turns(
|
|
50
|
+
messages=[
|
|
51
|
+
ConversationalMessage(
|
|
52
|
+
"Hi, I am a new customer. I just made an order, but it hasn't arrived. The Order number is #35476",
|
|
53
|
+
MessageRole.USER)],
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
session.add_turns(
|
|
57
|
+
messages=[
|
|
58
|
+
ConversationalMessage(
|
|
59
|
+
"I'm sorry to hear that. Let me look up your order.",
|
|
60
|
+
MessageRole.ASSISTANT)],
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
# Get the last k turns in the session
|
|
64
|
+
turns = session.get_last_k_turns(k=5)
|
|
65
|
+
|
|
66
|
+
for turn in turns:
|
|
67
|
+
print(f"Turn: {turn}")
|
|
68
|
+
|
|
69
|
+
# List all memory records
|
|
70
|
+
memory_records = session.list_long_term_memory_records(
|
|
71
|
+
namespace_prefix="/"
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
for record in memory_records:
|
|
75
|
+
print(f"Memory record: {record}")
|
|
76
|
+
print("--------------------------------------------------------------------")
|
|
77
|
+
|
|
78
|
+
# Perform a semantic search
|
|
79
|
+
memory_records = session.search_long_term_memories(
|
|
80
|
+
query="can you summarize the support issue",
|
|
81
|
+
namespace_prefix="/",
|
|
82
|
+
top_k=3
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
for record in memory_records:
|
|
86
|
+
print(f"retrieved memory: {record}")
|
|
87
|
+
print("--------------------------------------------------------------------")
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Cleanup - delete the memory resource
|
|
91
|
+
print("Cleaning up...")
|
|
92
|
+
|
|
93
|
+
memory_manager.delete_memory(memory_id=memory.get("id"))
|
|
94
|
+
```
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Getting Started with AgentCore Memory
|
|
2
|
+
|
|
3
|
+
Amazon Bedrock AgentCore Memory lets you create and manage memory resources that store conversation context for your AI agents. This section guides you through installing dependencies and implementing both short-term and long-term memory features.
|
|
4
|
+
|
|
5
|
+
The steps are as follows
|
|
6
|
+
|
|
7
|
+
1. Create a memory resource containing a semantic strategy
|
|
8
|
+
2. Write events (conversation history) to the memory resource.
|
|
9
|
+
3. Retrieve memory records from long term memory
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
### Before starting, make sure you have:
|
|
14
|
+
|
|
15
|
+
* **AWS Account** with credentials configured (`aws configure`)
|
|
16
|
+
* **Python 3.10+** installed
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
To get started with Amazon Bedrock AgentCore Memory, make a folder for this quick start, create a virtual environment, and install the dependencies. The below command can be run directly in the terminal.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
mkdir agentcore-memory-quickstart
|
|
23
|
+
cd agentcore-memory-quickstart
|
|
24
|
+
python -m venv .venv
|
|
25
|
+
source .venv/bin/activate
|
|
26
|
+
pip install bedrock-agentcore
|
|
27
|
+
pip install bedrock-agentcore-starter-toolkit
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
**Note:** The AgentCore Starter Toolkit is intended to help developers get started quickly. For the complete set of AgentCore Memory operations, see the Boto3 documentation: [bedrock-agentcore-control](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore-control.html) and [bedrock-agentcore](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-agentcore.html).
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
**Full example:** See the [complete code example](../../examples/semantic_search.md) that demonstrates steps 1-3.
|
|
36
|
+
|
|
37
|
+
## Step One: Create a Memory Resource
|
|
38
|
+
|
|
39
|
+
A memory resource is needed to start storing information for your agent. By default, memory events (which we refer to as short-term memory) can be written to a memory resource. In order for insights to be extracted and placed into long term memory records, the resource requires a 'memory strategy' - a configuration that defines how conversational data should be processed, and what information to extract (such as facts, preferences, or summaries).
|
|
40
|
+
|
|
41
|
+
We are going to create a memory resource with a semantic strategy so that both short term and long term memory can be utilized. This will take 2-3 minutes. Memory resources can also be created in the AWS console.
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
from bedrock_agentcore_starter_toolkit.operations.memory.manager import MemoryManager
|
|
45
|
+
from bedrock_agentcore.memory.session import MemorySessionManager
|
|
46
|
+
from bedrock_agentcore.memory.constants import ConversationalMessage, MessageRole
|
|
47
|
+
from bedrock_agentcore_starter_toolkit.operations.memory.models.strategies import SemanticStrategy
|
|
48
|
+
import time
|
|
49
|
+
|
|
50
|
+
memory_manager = MemoryManager(region_name="us-west-2")
|
|
51
|
+
|
|
52
|
+
print("Creating memory resource...")
|
|
53
|
+
|
|
54
|
+
memory = memory_manager.get_or_create_memory(
|
|
55
|
+
name="CustomerSupportSemantic",
|
|
56
|
+
description="Customer support memory store",
|
|
57
|
+
strategies=[
|
|
58
|
+
SemanticStrategy(
|
|
59
|
+
name="semanticLongTermMemory",
|
|
60
|
+
namespaces=['/strategies/{memoryStrategyId}/actors/{actorId}'],
|
|
61
|
+
)
|
|
62
|
+
]
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
print(f"Memory ID: {memory.get('id')}")
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
You can call list_memories to see that the memory resource has been created with:
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
memories = memory_manager.list_memories()
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
## Step Two: Write events to memory
|
|
79
|
+
|
|
80
|
+
Writing events to memory has multiple purposes. First, event contents (most commonly conversation history) are stored as short term memory. Second, relevant insights are pulled from events and written into memory records as a part of long term memory.
|
|
81
|
+
|
|
82
|
+
The memory resource id, actor id, and session id are required to create an event. We are going to create three events, simulating messages between an end user and a chat bot.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
# Create a session to store memory events
|
|
87
|
+
session_manager = MemorySessionManager(
|
|
88
|
+
memory_id=memory.get("id"),
|
|
89
|
+
region_name="us-west-2")
|
|
90
|
+
|
|
91
|
+
session = session_manager.create_memory_session(
|
|
92
|
+
actor_id="User1",
|
|
93
|
+
session_id="OrderSupportSession1"
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# Write memory events (conversation turns)
|
|
97
|
+
session.add_turns(
|
|
98
|
+
messages=[
|
|
99
|
+
ConversationalMessage(
|
|
100
|
+
"Hi, how can I help you today?",
|
|
101
|
+
MessageRole.ASSISTANT)],
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
session.add_turns(
|
|
105
|
+
messages=[
|
|
106
|
+
ConversationalMessage(
|
|
107
|
+
"Hi, I am a new customer. I just made an order, but it hasn't arrived. The Order number is #35476",
|
|
108
|
+
MessageRole.USER)],
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
session.add_turns(
|
|
112
|
+
messages=[
|
|
113
|
+
ConversationalMessage(
|
|
114
|
+
"I'm sorry to hear that. Let me look up your order.",
|
|
115
|
+
MessageRole.ASSISTANT)],
|
|
116
|
+
)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
You can get events (turns) for a specific actor after they’ve been written.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
# Get the last k turns in the session
|
|
125
|
+
turns = session.get_last_k_turns(k=5)
|
|
126
|
+
|
|
127
|
+
for turn in turns:
|
|
128
|
+
print(f"Turn: {turn}")
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
In this case, we can see the last three events for the actor and session.
|
|
133
|
+
|
|
134
|
+
## Step Three: Retrieve records from long term memory
|
|
135
|
+
|
|
136
|
+
After the events were written to the memory resource, they were analyzed and useful information was sent to long term memory. Since the memory contains a semantic long term memory strategy, the system extracts and stores factual information.
|
|
137
|
+
|
|
138
|
+
You can list all memory records with:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
# List all memory records
|
|
142
|
+
memory_records = session.list_long_term_memory_records(
|
|
143
|
+
namespace_prefix="/"
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
for record in memory_records:
|
|
147
|
+
print(f"Memory record: {record}")
|
|
148
|
+
print("--------------------------------------------------------------------")
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Or ask for the most relevant information as part of a semantic search:
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
# Perform a semantic search
|
|
155
|
+
memory_records = session.search_long_term_memories(
|
|
156
|
+
query="can you summarize the support issue",
|
|
157
|
+
namespace_prefix="/",
|
|
158
|
+
top_k=3
|
|
159
|
+
)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
Important information about the user is likely stored is long term memory. Agents can use long term memory rather than a full conversation history to make sure that LLMs are not overloaded with context.
|
|
164
|
+
|
|
165
|
+
## Cleanup
|
|
166
|
+
|
|
167
|
+
When you're done with the memory resource, you can delete it:
|
|
168
|
+
|
|
169
|
+
```python
|
|
170
|
+
# Delete the memory resource
|
|
171
|
+
memory_manager.delete_memory(memory_id=memory.get("id"))
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## What’s Next?
|
|
175
|
+
|
|
176
|
+
Consider the following as you continue your AgentCore journey
|
|
177
|
+
|
|
178
|
+
* Add another strategy to your memory resource
|
|
179
|
+
* Enable observability for more visibility into how memory is working
|
|
180
|
+
* Look at the vast collection of samples to familiarize yourself with other use cases.
|
|
181
|
+
|
|
@@ -72,26 +72,26 @@ nav:
|
|
|
72
72
|
- User Guide:
|
|
73
73
|
- Welcome: index.md
|
|
74
74
|
- Runtime:
|
|
75
|
-
- Quickstart: user-guide/runtime/quickstart.md
|
|
76
|
-
- Overview: user-guide/runtime/overview.md
|
|
77
|
-
- Permissions: user-guide/runtime/permissions.md
|
|
78
|
-
- Async Processing: user-guide/runtime/async.md
|
|
79
|
-
- Notebook: user-guide/runtime/notebook.md
|
|
75
|
+
- Runtime Quickstart: user-guide/runtime/quickstart.md
|
|
76
|
+
- Runtime Overview: user-guide/runtime/overview.md
|
|
77
|
+
- Runtime Permissions: user-guide/runtime/permissions.md
|
|
78
|
+
- Runtime Async Processing: user-guide/runtime/async.md
|
|
79
|
+
- Runtime Notebook: user-guide/runtime/notebook.md
|
|
80
80
|
- Gateway:
|
|
81
|
-
- Quickstart: user-guide/gateway/quickstart.md
|
|
81
|
+
- Gateway Quickstart: user-guide/gateway/quickstart.md
|
|
82
82
|
- Memory:
|
|
83
|
-
- Quickstart: user-guide/memory/quickstart.md
|
|
83
|
+
- Memory Quickstart: user-guide/memory/quickstart.md
|
|
84
84
|
- Identity:
|
|
85
|
-
- Quickstart: user-guide/identity/quickstart.md
|
|
85
|
+
- Identity Quickstart: user-guide/identity/quickstart.md
|
|
86
86
|
- Built-in Tools:
|
|
87
87
|
- Quickstart Browser Tool: user-guide/builtin-tools/quickstart-browser.md
|
|
88
88
|
- Quickstart Code Interpreter: user-guide/builtin-tools/quickstart-code-interpreter.md
|
|
89
89
|
- Observability:
|
|
90
|
-
- Quickstart: user-guide/observability/quickstart.md
|
|
90
|
+
- Observability Quickstart: user-guide/observability/quickstart.md
|
|
91
91
|
- Import Agent:
|
|
92
|
-
- Quickstart: user-guide/import-agent/quickstart.md
|
|
93
|
-
- Overview: user-guide/import-agent/overview.md
|
|
94
|
-
- Configuration: user-guide/import-agent/configuration.md
|
|
92
|
+
- Import Agent Quickstart: user-guide/import-agent/quickstart.md
|
|
93
|
+
- Import Agent Overview: user-guide/import-agent/overview.md
|
|
94
|
+
- Import Agent Configuration: user-guide/import-agent/configuration.md
|
|
95
95
|
- Examples:
|
|
96
96
|
- Overview: examples/README.md
|
|
97
97
|
- Session Management: examples/session-management.md
|
|
@@ -47,6 +47,21 @@ class UniversalComparator:
|
|
|
47
47
|
@staticmethod
|
|
48
48
|
def _deep_compare_normalized(obj1: Any, obj2: Any, path: str = "") -> tuple[bool, str]:
|
|
49
49
|
"""Compare normalized objects recursively."""
|
|
50
|
+
# Special handling for namespaces - check this first before general type/None handling
|
|
51
|
+
if path == "namespaces":
|
|
52
|
+
# Skip validation if either is None/empty or both are None
|
|
53
|
+
# This allows server-side namespace assignment when not provided by user
|
|
54
|
+
if not obj1 or not obj2:
|
|
55
|
+
return True, ""
|
|
56
|
+
# Only validate if both are non-empty lists
|
|
57
|
+
if isinstance(obj1, list) and isinstance(obj2, list):
|
|
58
|
+
set1 = set(obj1) if obj1 else set()
|
|
59
|
+
set2 = set(obj2) if obj2 else set()
|
|
60
|
+
if set1 != set2:
|
|
61
|
+
return False, f"{path}: mismatch ({sorted(set1)} vs {sorted(set2)})"
|
|
62
|
+
return True, ""
|
|
63
|
+
# If not both lists, fall through to normal comparison
|
|
64
|
+
|
|
50
65
|
# Handle None equivalence - treat None and empty values as equivalent
|
|
51
66
|
if obj1 is None and obj2 is None:
|
|
52
67
|
return True, ""
|
|
@@ -69,12 +84,18 @@ class UniversalComparator:
|
|
|
69
84
|
val1 = obj1.get(key)
|
|
70
85
|
val2 = obj2.get(key)
|
|
71
86
|
|
|
72
|
-
# Special handling for namespaces -
|
|
73
|
-
if key == "namespaces"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if
|
|
77
|
-
|
|
87
|
+
# Special handling for namespaces - only validate when both are non-empty lists
|
|
88
|
+
if key == "namespaces":
|
|
89
|
+
# Skip validation if either is None/empty or both are None
|
|
90
|
+
# This allows server-side namespace assignment when not provided by user
|
|
91
|
+
if not val1 or not val2:
|
|
92
|
+
continue
|
|
93
|
+
# Only validate if both are non-empty lists of strings
|
|
94
|
+
if isinstance(val1, list) and isinstance(val2, list):
|
|
95
|
+
set1 = set(val1) if val1 else set()
|
|
96
|
+
set2 = set(val2) if val2 else set()
|
|
97
|
+
if set1 != set2:
|
|
98
|
+
return False, f"{key_path}: mismatch ({sorted(set1)} vs {sorted(set2)})"
|
|
78
99
|
continue
|
|
79
100
|
|
|
80
101
|
matches, error = UniversalComparator._deep_compare_normalized(val1, val2, key_path)
|
|
@@ -84,14 +105,6 @@ class UniversalComparator:
|
|
|
84
105
|
return True, ""
|
|
85
106
|
|
|
86
107
|
elif isinstance(obj1, list):
|
|
87
|
-
# Special case: if this is a namespaces list at the root level, compare as sets
|
|
88
|
-
if path == "namespaces":
|
|
89
|
-
set1 = set(obj1) if obj1 else set()
|
|
90
|
-
set2 = set(obj2) if obj2 else set()
|
|
91
|
-
if set1 != set2:
|
|
92
|
-
return False, f"{path}: mismatch ({sorted(set1)} vs {sorted(set2)})"
|
|
93
|
-
return True, ""
|
|
94
|
-
|
|
95
108
|
if len(obj1) != len(obj2):
|
|
96
109
|
return False, f"{path}: list length mismatch ({len(obj1)} vs {len(obj2)})"
|
|
97
110
|
|
|
@@ -119,7 +119,7 @@ def configure_bedrock_agentcore(
|
|
|
119
119
|
if verbose:
|
|
120
120
|
log.debug("Prompting for memory configuration")
|
|
121
121
|
|
|
122
|
-
config_manager = ConfigurationManager(build_dir / ".bedrock_agentcore.yaml")
|
|
122
|
+
config_manager = ConfigurationManager(build_dir / ".bedrock_agentcore.yaml", non_interactive)
|
|
123
123
|
|
|
124
124
|
# New memory selection flow
|
|
125
125
|
action, value = config_manager.prompt_memory_selection()
|
|
@@ -406,7 +406,7 @@ class TestUniversalComparatorEdgeCases:
|
|
|
406
406
|
|
|
407
407
|
def test_deep_compare_normalized_namespaces_special_handling(self):
|
|
408
408
|
"""Test _deep_compare_normalized special handling for namespaces."""
|
|
409
|
-
# Test namespaces at root level
|
|
409
|
+
# Test namespaces at root level - should pass when both are non-empty and match (order independent)
|
|
410
410
|
obj1 = ["namespace1", "namespace2"]
|
|
411
411
|
obj2 = ["namespace2", "namespace1"] # Different order
|
|
412
412
|
|
|
@@ -414,15 +414,15 @@ class TestUniversalComparatorEdgeCases:
|
|
|
414
414
|
assert matches is True
|
|
415
415
|
assert error == ""
|
|
416
416
|
|
|
417
|
-
# Test namespaces with duplicates
|
|
417
|
+
# Test namespaces with duplicates - should pass (sets remove duplicates)
|
|
418
418
|
obj1 = ["namespace1", "namespace2", "namespace1"]
|
|
419
419
|
obj2 = ["namespace2", "namespace1"]
|
|
420
420
|
|
|
421
421
|
matches, error = UniversalComparator._deep_compare_normalized(obj1, obj2, "namespaces")
|
|
422
|
-
assert matches is True
|
|
422
|
+
assert matches is True
|
|
423
423
|
assert error == ""
|
|
424
424
|
|
|
425
|
-
# Test namespaces mismatch
|
|
425
|
+
# Test namespaces mismatch - should fail when both are non-empty but different
|
|
426
426
|
obj1 = ["namespace1", "namespace2"]
|
|
427
427
|
obj2 = ["namespace3", "namespace4"]
|
|
428
428
|
|
|
@@ -430,6 +430,22 @@ class TestUniversalComparatorEdgeCases:
|
|
|
430
430
|
assert matches is False
|
|
431
431
|
assert "namespaces: mismatch" in error
|
|
432
432
|
|
|
433
|
+
# Test empty vs non-empty namespaces - should pass (skip validation)
|
|
434
|
+
obj1 = []
|
|
435
|
+
obj2 = ["namespace1", "namespace2"]
|
|
436
|
+
|
|
437
|
+
matches, error = UniversalComparator._deep_compare_normalized(obj1, obj2, "namespaces")
|
|
438
|
+
assert matches is True
|
|
439
|
+
assert error == ""
|
|
440
|
+
|
|
441
|
+
# Test None vs non-empty namespaces - should pass (skip validation)
|
|
442
|
+
obj1 = None
|
|
443
|
+
obj2 = ["namespace1", "namespace2"]
|
|
444
|
+
|
|
445
|
+
matches, error = UniversalComparator._deep_compare_normalized(obj1, obj2, "namespaces")
|
|
446
|
+
assert matches is True
|
|
447
|
+
assert error == ""
|
|
448
|
+
|
|
433
449
|
def test_deep_compare_normalized_dict_namespaces_special_handling(self):
|
|
434
450
|
"""Test _deep_compare_normalized special handling for namespaces in dicts."""
|
|
435
451
|
obj1 = {"name": "test", "namespaces": ["namespace1", "namespace2"]}
|
|
@@ -1026,7 +1042,7 @@ class TestStrategyComparator:
|
|
|
1026
1042
|
assert "description: value mismatch" in error
|
|
1027
1043
|
|
|
1028
1044
|
def test_compare_strategies_namespaces_mismatch(self):
|
|
1029
|
-
"""Test comparing strategies with namespaces mismatch."""
|
|
1045
|
+
"""Test comparing strategies with namespaces mismatch - should fail when both are non-empty."""
|
|
1030
1046
|
existing = [
|
|
1031
1047
|
{
|
|
1032
1048
|
"type": "SEMANTIC",
|
|
@@ -1048,8 +1064,33 @@ class TestStrategyComparator:
|
|
|
1048
1064
|
|
|
1049
1065
|
matches, error = StrategyComparator.compare_strategies(existing, requested)
|
|
1050
1066
|
|
|
1051
|
-
assert matches is False
|
|
1067
|
+
assert matches is False # Should fail when both namespaces are non-empty but different
|
|
1052
1068
|
assert "namespaces: mismatch" in error
|
|
1069
|
+
def test_compare_strategies_namespaces_skip_validation(self):
|
|
1070
|
+
"""Test comparing strategies with namespaces - should skip validation when one is empty."""
|
|
1071
|
+
existing = [
|
|
1072
|
+
{
|
|
1073
|
+
"type": "SEMANTIC",
|
|
1074
|
+
"name": "SemanticStrategy",
|
|
1075
|
+
"description": "Test strategy",
|
|
1076
|
+
"namespaces": [], # Empty namespaces
|
|
1077
|
+
}
|
|
1078
|
+
]
|
|
1079
|
+
|
|
1080
|
+
requested = [
|
|
1081
|
+
{
|
|
1082
|
+
"semanticMemoryStrategy": {
|
|
1083
|
+
"name": "SemanticStrategy",
|
|
1084
|
+
"description": "Test strategy",
|
|
1085
|
+
"namespaces": ["different/{actorId}"], # Non-empty namespaces
|
|
1086
|
+
}
|
|
1087
|
+
}
|
|
1088
|
+
]
|
|
1089
|
+
|
|
1090
|
+
matches, error = StrategyComparator.compare_strategies(existing, requested)
|
|
1091
|
+
|
|
1092
|
+
assert matches is True # Should pass when one namespace is empty
|
|
1093
|
+
assert error == ""
|
|
1053
1094
|
|
|
1054
1095
|
def test_compare_strategies_custom_extraction_mismatch(self):
|
|
1055
1096
|
"""Test comparing custom strategies with extraction config mismatch."""
|