Skip to content

feat: add memory module implementation#36

Open
huanshenyi wants to merge 2 commits intoaws:mainfrom
huanshenyi:feature/memory-client
Open

feat: add memory module implementation#36
huanshenyi wants to merge 2 commits intoaws:mainfrom
huanshenyi:feature/memory-client

Conversation

@huanshenyi
Copy link
Copy Markdown

Description

This PR implements the memory module by porting the functionality from the Python SDK.
This addition is a prerequisite for enabling AgentCore memory usage within the Strands framework, addressing the requirements discussed in strands-agents/sdk-typescript#332.

It introduces the MemorySessionManager and MemoryControlPlaneClient to handle session management and interaction with the Bedrock Agent control plane.

Changes

  • New Components:
    • MemorySessionManager: Manages session lifecycle and operations.
    • MemoryControlPlaneClient: Handles communication with the control plane service.
    • DictWrapper: Utility for dictionary-like object handling.
    • Type definitions and constants for memory operations.
  • Project Structure:
    • Added src/memory/ directory containing all memory-related implementations.
    • Added comprehensive unit tests in src/memory/__tests__/.
  • Dependencies:
    • Added uuid and @aws-sdk/client-bedrock-agentcore-control.

Testing

  • Unit tests have been added and cover the new functionality.

Related Issue

Related to strands-agents/sdk-typescript#332

@sh-ueda-beep
Copy link
Copy Markdown

HI @sundargthb ,could you please take a look at this PR when you have a chance?

@JUSTINMKAUFMAN
Copy link
Copy Markdown

FWIW - if this feature were already included in the Typescript SDK, it would have made AgentCore a contender for my platform.

aidandaly24 added a commit to aidandaly24/bedrock-agentcore-sdk-typescript that referenced this pull request Jan 22, 2026
* chore: remove examples directory

Remove all example files and update package.json scripts to exclude examples from linting and formatting.

* chore: enable linting for test directories and fix all lint errors

- Remove __tests__ from ESLint ignores to enable linting on test files
- Add tests_integ to lint and format scripts in package.json
- Exclude test files from main src ESLint config to avoid tsconfig errors
- Add missing globals for test files (setTimeout, Buffer, URL)
- Fix all unused parameter errors by prefixing with underscore
- Fix empty catch blocks with ignore comments
- Remove unused imports
aidandaly24 added a commit to aidandaly24/bedrock-agentcore-sdk-typescript that referenced this pull request Jan 22, 2026
* chore: remove examples directory

Remove all example files and update package.json scripts to exclude examples from linting and formatting.

* chore: enable linting for test directories and fix all lint errors

- Remove __tests__ from ESLint ignores to enable linting on test files
- Add tests_integ to lint and format scripts in package.json
- Exclude test files from main src ESLint config to avoid tsconfig errors
- Add missing globals for test files (setTimeout, Buffer, URL)
- Fix all unused parameter errors by prefixing with underscore
- Fix empty catch blocks with ignore comments
- Remove unused imports
aidandaly24 added a commit to aidandaly24/bedrock-agentcore-sdk-typescript that referenced this pull request Jan 22, 2026
* chore: remove examples directory

Remove all example files and update package.json scripts to exclude examples from linting and formatting.

* chore: enable linting for test directories and fix all lint errors

- Remove __tests__ from ESLint ignores to enable linting on test files
- Add tests_integ to lint and format scripts in package.json
- Exclude test files from main src ESLint config to avoid tsconfig errors
- Add missing globals for test files (setTimeout, Buffer, URL)
- Fix all unused parameter errors by prefixing with underscore
- Fix empty catch blocks with ignore comments
- Remove unused imports
aidandaly24 added a commit that referenced this pull request Jan 22, 2026
* chore: remove examples directory

Remove all example files and update package.json scripts to exclude examples from linting and formatting.

* chore: enable linting for test directories and fix all lint errors

- Remove __tests__ from ESLint ignores to enable linting on test files
- Add tests_integ to lint and format scripts in package.json
- Exclude test files from main src ESLint config to avoid tsconfig errors
- Add missing globals for test files (setTimeout, Buffer, URL)
- Fix all unused parameter errors by prefixing with underscore
- Fix empty catch blocks with ignore comments
- Remove unused imports
@huanshenyi huanshenyi requested a review from a team January 24, 2026 11:30
@huanshenyi
Copy link
Copy Markdown
Author

HI @aidandaly24 ,could you please take a look at this PR when you have a chance?

@jariy17
Copy link
Copy Markdown
Contributor

jariy17 commented Jan 26, 2026

@huanshenyi

Thanks for the PR! This looks good and we'll consider it when we designing the memory modules for the TypeScript SDK.

Regarding the linked issue (strands-agents/sdk-typescript#332), we want to clarify that AgentCoreMemorySessionManager cannot be fully implemented until the Strands TypeScript SDK supports SessionManagement capabilities. The full session manager integration with Strands requires additional support on the Strands side first.

Once SessionManagement is available in the Strands TypeScript SDK, we'll do a fast follow to add AgentCoreMemorySessionManager functionality, bringing this to feature parity with our Python SDK implementation.

@jariy17
Copy link
Copy Markdown
Contributor

jariy17 commented Jan 26, 2026

@JUSTINMKAUFMAN We'd like to better understand which specific memory features from the Python SDK you're looking for:

  1. MemorySessionManager - Basic memory session management functionality
  2. MemoryControlPlaneClient - Direct control plane interaction for memory operations
  3. AgentCoreMemorySessionManager for Strands - Integrated session manager for the Strands framework

If you're specifically looking for AgentCoreMemorySessionManager for Strands (option 3), please note that this cannot be implemented until the Strands TypeScript SDK supports SessionManagement capabilities first. We'll do a fast follow once that support is available on the Strands side.

If this is what you need, please consider upvoting strands-agents/sdk-typescript#332 to help prioritize this feature in the Strands TypeScript SDK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants