diff --git a/agentclaw/app/agent_claw_main/config.py b/agentclaw/app/agent_claw_main/config.py new file mode 100644 index 0000000..79cc58b --- /dev/null +++ b/agentclaw/app/agent_claw_main/config.py @@ -0,0 +1,25 @@ +"""Config loader — fetches model IDs from SSM Parameter Store at cold start.""" + +import boto3 + +_DEFAULTS = { + '/agent-claw/config/agent_model_id': 'us.anthropic.claude-sonnet-4-6', + '/agent-claw/config/compaction_model_id': 'us.anthropic.claude-3-5-haiku-20241022-v1:0', +} + + +def _load(): + ssm = boto3.client('ssm', region_name='us-east-1') + names = list(_DEFAULTS.keys()) + try: + resp = ssm.get_parameters(Names=names) + found = {p['Name']: p['Value'] for p in resp['Parameters']} + except Exception: + found = {} + return {name: found.get(name, default) for name, default in _DEFAULTS.items()} + + +_params = _load() + +AGENT_MODEL_ID: str = _params['/agent-claw/config/agent_model_id'] +COMPACTION_MODEL_ID: str = _params['/agent-claw/config/compaction_model_id'] diff --git a/agentclaw/app/agent_claw_main/main.py b/agentclaw/app/agent_claw_main/main.py index 382d593..c093cca 100644 --- a/agentclaw/app/agent_claw_main/main.py +++ b/agentclaw/app/agent_claw_main/main.py @@ -11,6 +11,7 @@ from bedrock_agentcore.runtime import BedrockAgentCoreApp from channels.telegram import TelegramAdapter from prompt_builder import build_system_prompt, invalidate_prompt import memory_manager +import config from tools import web as web_tools from tools import workspace as ws_tools from tools import messaging @@ -378,7 +379,7 @@ async def main(payload: dict, context): # NOTE: extended thinking disabled — causes retry/duplicate issues with streaming from botocore.config import Config as BotoConfig model = BedrockModel( - model_id="us.anthropic.claude-sonnet-4-6", + model_id=config.AGENT_MODEL_ID, region_name="us-east-1", boto_client_config=BotoConfig(read_timeout=600, connect_timeout=10), ) diff --git a/agentclaw/app/agent_claw_main/memory_manager.py b/agentclaw/app/agent_claw_main/memory_manager.py index 9dd7d2c..d308302 100644 --- a/agentclaw/app/agent_claw_main/memory_manager.py +++ b/agentclaw/app/agent_claw_main/memory_manager.py @@ -10,13 +10,14 @@ import boto3 from bedrock_agentcore.memory.client import MemoryClient +import config + logger = logging.getLogger(__name__) MEMORY_ID = 'agentclaw_AgentClawMemory-i7Csf776AH' SESSION_WINDOW_SIZE = 100 USERS_TABLE_NAME = os.environ.get('USERS_TABLE_NAME', 'agent-claw-users') LTM_SESSION_ID = 'ltm-extractions' -HAIKU_MODEL_ID = 'us.anthropic.claude-3-5-haiku-20241022-v1:0' _memory_client: MemoryClient | None = None @@ -110,7 +111,7 @@ def _call_claude_extraction(conversation_text: str) -> dict: 'Conversation:\n' + conversation_text ) resp = bedrock.converse( - modelId=HAIKU_MODEL_ID, + modelId=config.COMPACTION_MODEL_ID, messages=[{'role': 'user', 'content': [{'text': prompt}]}], inferenceConfig={'maxTokens': 1024}, )