-
Notifications
You must be signed in to change notification settings - Fork 78
Description
Bug: update_memory_strategies fails when modifying certain strategy types
Summary
The update_memory_strategies method (and modify_strategy) fail when attempting to modify configurations for:
- CUSTOM strategies with SELF_MANAGED type - crashes with ValueError
- Built-in strategies (SEMANTIC, USER_PREFERENCE) - API rejects the request
Bug #1: Cannot modify CUSTOM strategies with SELF_MANAGED type
Problem: Calling update_memory_strategies or modify_strategy on a SELF_MANAGED strategy with configuration crashes with ValueError: 'SELF_MANAGED' is not a valid OverrideType
Reproduce:
from bedrock_agentcore.memory import MemoryClient
client = MemoryClient(region_name='us-west-2')
Assume you have a CUSTOM strategy with SELF_MANAGED configuration
client.modify_strategy(
memory_id='BasicTestMemory2-q8ughRAgdr',
strategy_id='self_managed_v4ze2-G2RJC0H1bA',
configuration={
'extraction': {
'historicalContextWindowSize': 10,
'triggerEveryNMessages': 5
}
}
)
Error:
ValueError: 'SELF_MANAGED' is not a valid OverrideType
File "bedrock_agentcore/memory/client.py", line 1945, in _wrap_configuration
override_enum = OverrideType(override_type)
Expected: Should successfully modify the SELF_MANAGED strategy configuration
Bug #2: Cannot modify extraction configs on built-in strategies
Problem: Calling update_memory_strategies or modify_strategy to update extraction configuration on built-in strategies (SEMANTIC, USER_PREFERENCE, SUMMARIZATION, EPISODIC) fails with API validation error
Reproduce:
from bedrock_agentcore.memory import MemoryClient
client = MemoryClient(region_name='us-west-2')
Try to modify extraction config on USER_PREFERENCE strategy
client.modify_strategy(
memory_id='BasicTestMemory2-q8ughRAgdr',
strategy_id='PreferenceLearner-ZBpZgK98UJ',
configuration={
'extraction': {
'historicalContextWindowSize': 15
}
}
)
Error:
botocore.exceptions.ParamValidationError: Parameter validation failed:
Unknown parameter in memoryStrategies.modifyMemoryStrategies[0].configuration.extraction:
"userPreferenceExtractionConfiguration", must be one of: customExtractionConfiguration
What works vs what doesn't (verified by testing):
- ✅ Modifying description and namespaces on built-in strategies works
- ❌ Modifying extraction or consolidation on built-in strategies fails
- ✅ Modifying extraction or consolidation on CUSTOM strategies with override types works
Expected: Either should work, or should fail with a clear error message before calling the API
Impact
- Bug migrate from staging #1: Users cannot modify ANY CUSTOM strategy that has a SELF_MANAGED configuration
- Bug ci(deps): bump trufflesecurity/trufflehog from 3.63.1 to 3.90.0 #2: Users get confusing API errors when trying to modify extraction/consolidation on built-in strategies