MemoryStrategy Class
Factory class for creating memory strategies If you need long-term memory for context recall across sessions, you can setup memory extraction strategies to extract the relevant memory from the raw events.
Use built-in strategies for quick setup, use built-in strategies with override to specify models and prompt templates.
Example
// Create a custom semantic memory strategy
const customSemanticStrategy = agentcore.MemoryStrategy.usingSemantic({
strategyName: "customSemanticStrategy",
description: "Custom semantic memory strategy",
namespaces: ["/custom/strategies/{memoryStrategyId}/actors/{actorId}"],
customConsolidation: {
model: bedrock.FoundationModel.fromFoundationModelId(this, 'ConsolidationModel',
bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0,
),
appendToPrompt: "Custom consolidation prompt for semantic memory",
},
customExtraction: {
model: bedrock.FoundationModel.fromFoundationModelId(this, 'ExtractionModel',
bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0,
),
appendToPrompt: "Custom extraction prompt for semantic memory",
},
});
// Create memory with custom strategy
const memory = new agentcore.Memory(this, "MyMemory", {
memoryName: "my-custom-memory",
description: "Memory with custom strategy",
expirationDuration: cdk.Duration.days(90),
memoryStrategies: [customSemanticStrategy],
});
# Create a custom semantic memory strategy
custom_semantic_strategy = agentcore.MemoryStrategy.using_semantic(
strategy_name="customSemanticStrategy",
description="Custom semantic memory strategy",
namespaces=["/custom/strategies/{memoryStrategyId}/actors/{actorId}"],
custom_consolidation=agentcore.OverrideConfig(
model=bedrock.FoundationModel.from_foundation_model_id(self, "ConsolidationModel", bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0),
append_to_prompt="Custom consolidation prompt for semantic memory"
),
custom_extraction=agentcore.OverrideConfig(
model=bedrock.FoundationModel.from_foundation_model_id(self, "ExtractionModel", bedrock.FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0),
append_to_prompt="Custom extraction prompt for semantic memory"
)
)
# Create memory with custom strategy
memory = agentcore.Memory(self, "MyMemory",
memory_name="my-custom-memory",
description="Memory with custom strategy",
expiration_duration=cdk.Duration.days(90),
memory_strategies=[custom_semantic_strategy]
)
// Create a custom semantic memory strategy
ManagedMemoryStrategy customSemanticStrategy = MemoryStrategy.usingSemantic(ManagedStrategyProps.builder()
.strategyName("customSemanticStrategy")
.description("Custom semantic memory strategy")
.namespaces(List.of("/custom/strategies/{memoryStrategyId}/actors/{actorId}"))
.customConsolidation(OverrideConfig.builder()
.model(FoundationModel.fromFoundationModelId(this, "ConsolidationModel", FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0))
.appendToPrompt("Custom consolidation prompt for semantic memory")
.build())
.customExtraction(OverrideConfig.builder()
.model(FoundationModel.fromFoundationModelId(this, "ExtractionModel", FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0))
.appendToPrompt("Custom extraction prompt for semantic memory")
.build())
.build());
// Create memory with custom strategy
Memory memory = Memory.Builder.create(this, "MyMemory")
.memoryName("my-custom-memory")
.description("Memory with custom strategy")
.expirationDuration(Duration.days(90))
.memoryStrategies(List.of(customSemanticStrategy))
.build();
// Install: dotnet add package Amazon.CDK.Lib
// Create a custom semantic memory strategy
var customSemanticStrategy = MemoryStrategy.UsingSemantic(new ManagedStrategyProps {
StrategyName = "customSemanticStrategy",
Description = "Custom semantic memory strategy",
Namespaces = new [] { "/custom/strategies/{memoryStrategyId}/actors/{actorId}" },
CustomConsolidation = new OverrideConfig {
Model = FoundationModel.FromFoundationModelId(this, "ConsolidationModel", FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0),
AppendToPrompt = "Custom consolidation prompt for semantic memory"
},
CustomExtraction = new OverrideConfig {
Model = FoundationModel.FromFoundationModelId(this, "ExtractionModel", FoundationModelIdentifier.ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0),
AppendToPrompt = "Custom extraction prompt for semantic memory"
}
});
// Create memory with custom strategy
var memory = new Memory(this, "MyMemory", new MemoryProps {
MemoryName = "my-custom-memory",
Description = "Memory with custom strategy",
ExpirationDuration = Duration.Days(90),
MemoryStrategies = new [] { customSemanticStrategy }
});
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// Create a custom semantic memory strategy
customSemanticStrategy := agentcore.MemoryStrategy_UsingSemantic(&ManagedStrategyProps{
StrategyName: jsii.String("customSemanticStrategy"),
Description: jsii.String("Custom semantic memory strategy"),
Namespaces: []*string{
jsii.String("/custom/strategies/{memoryStrategyId}/actors/{actorId}"),
},
CustomConsolidation: &OverrideConfig{
Model: bedrock.FoundationModel_FromFoundationModelId(this, jsii.String("ConsolidationModel"), bedrock.FoundationModelIdentifier_ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0()),
AppendToPrompt: jsii.String("Custom consolidation prompt for semantic memory"),
},
CustomExtraction: &OverrideConfig{
Model: bedrock.FoundationModel_*FromFoundationModelId(this, jsii.String("ExtractionModel"), bedrock.FoundationModelIdentifier_ANTHROPIC_CLAUDE_3_5_SONNET_20241022_V2_0()),
AppendToPrompt: jsii.String("Custom extraction prompt for semantic memory"),
},
})
// Create memory with custom strategy
memory := agentcore.NewMemory(this, jsii.String("MyMemory"), &MemoryProps{
MemoryName: jsii.String("my-custom-memory"),
Description: jsii.String("Memory with custom strategy"),
ExpirationDuration: cdk.Duration_Days(jsii.Number(90)),
MemoryStrategies: []IMemoryStrategy{
customSemanticStrategy,
},
})
Initializer
new MemoryStrategy()
MemoryStrategy()
new MemoryStrategy()
new MemoryStrategy()
NewMemoryStrategy()
Methods
usingBuiltInEpisodic(): ManagedMemoryStrategy@staticmethod def using_built_in_episodic() -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingBuiltInEpisodic()public static ManagedMemoryStrategy UsingBuiltInEpisodic()func UsingBuiltInEpisodic() ManagedMemoryStrategystatic#notes · returns
Captures meaningful slices of user and system interactions, preserve them into compact records after summarizing. Extracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.
Returns: A ManagedMemoryStrategy.
usingBuiltInSemantic(): ManagedMemoryStrategy@staticmethod def using_built_in_semantic() -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingBuiltInSemantic()public static ManagedMemoryStrategy UsingBuiltInSemantic()func UsingBuiltInSemantic() ManagedMemoryStrategystatic#notes · returns
Distills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format. Extracted memory example: In-context learning = task-solving via examples, no training needed.
Returns: A ManagedMemoryStrategy.
usingBuiltInSummarization(): ManagedMemoryStrategy@staticmethod def using_built_in_summarization() -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingBuiltInSummarization()public static ManagedMemoryStrategy UsingBuiltInSummarization()func UsingBuiltInSummarization() ManagedMemoryStrategystatic#This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall. Extracted memory example: Users confused by cloud setup during onboarding.
returns
Returns: A ManagedMemoryStrategy.
usingBuiltInUserPreference(): ManagedMemoryStrategy@staticmethod def using_built_in_user_preference() -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingBuiltInUserPreference()public static ManagedMemoryStrategy UsingBuiltInUserPreference()func UsingBuiltInUserPreference() ManagedMemoryStrategystatic#Captures individual preferences, interaction patterns, and personalized settings to enhance future experiences. Extracted memory example: User needs clear guidance on cloud storage account connection during onboarding.
returns
Returns: A ManagedMemoryStrategy.
usingEpisodic(config: ManagedStrategyProps): ManagedMemoryStrategy@staticmethod def using_episodic(config: ManagedStrategyProps) -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingEpisodic(ManagedStrategyProps config)public static ManagedMemoryStrategy UsingEpisodic(ManagedStrategyProps config)func UsingEpisodic(Config ManagedStrategyProps) ManagedMemoryStrategystatic#notes · 1 parameter · returns
Captures meaningful slices of user and system interactions, preserve them into compact records after summarizing. Extracted memory example: User first asked about pricing on Monday, then requested feature comparison on Tuesday, finally made purchase decision on Wednesday.
Parameters
configconfigconfigconfigConfig— - The configuration for the episodic memory strategy.
Returns: A ManagedMemoryStrategy.
usingSelfManaged(config: SelfManagedStrategyProps): SelfManagedMemoryStrategy@staticmethod def using_self_managed(config: SelfManagedStrategyProps) -> SelfManagedMemoryStrategypublic static SelfManagedMemoryStrategy usingSelfManaged(SelfManagedStrategyProps config)public static SelfManagedMemoryStrategy UsingSelfManaged(SelfManagedStrategyProps config)func UsingSelfManaged(Config SelfManagedStrategyProps) SelfManagedMemoryStrategystatic#A self-managed strategy gives you complete control over your memory extraction and consolidation pipelines.
1 parameter · returns
Parameters
configconfigconfigconfigConfig— - The configuration for the self-managed memory strategy.
Returns: A SelfManagedMemoryStrategy.
usingSemantic(config: ManagedStrategyProps): ManagedMemoryStrategy@staticmethod def using_semantic(config: ManagedStrategyProps) -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingSemantic(ManagedStrategyProps config)public static ManagedMemoryStrategy UsingSemantic(ManagedStrategyProps config)func UsingSemantic(Config ManagedStrategyProps) ManagedMemoryStrategystatic#notes · 1 parameter · returns
Distills general facts, concepts, and underlying meanings from raw conversational data, presenting the information in a context-independent format. Extracted memory example: In-context learning = task-solving via examples, no training needed.
Parameters
configconfigconfigconfigConfig— - The configuration for the semantic memory strategy.
Returns: A ManagedMemoryStrategy.
usingSummarization(config: ManagedStrategyProps): ManagedMemoryStrategy@staticmethod def using_summarization(config: ManagedStrategyProps) -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingSummarization(ManagedStrategyProps config)public static ManagedMemoryStrategy UsingSummarization(ManagedStrategyProps config)func UsingSummarization(Config ManagedStrategyProps) ManagedMemoryStrategystatic#This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall. Extracted memory example: Users confused by cloud setup during onboarding.
1 parameter · returns
Parameters
configconfigconfigconfigConfig— - The configuration for the summarization memory strategy.
Returns: A ManagedMemoryStrategy.
usingUserPreference(config: ManagedStrategyProps): ManagedMemoryStrategy@staticmethod def using_user_preference(config: ManagedStrategyProps) -> ManagedMemoryStrategypublic static ManagedMemoryStrategy usingUserPreference(ManagedStrategyProps config)public static ManagedMemoryStrategy UsingUserPreference(ManagedStrategyProps config)func UsingUserPreference(Config ManagedStrategyProps) ManagedMemoryStrategystatic#Captures individual preferences, interaction patterns, and personalized settings to enhance future experiences. Extracted memory example: User needs clear guidance on cloud storage account connection during onboarding.
1 parameter · returns
Parameters
configconfigconfigconfigConfig— - The configuration for the user preference memory strategy.
Returns: A ManagedMemoryStrategy.