Make agent and compaction model IDs configurable via SSM
This commit is contained in:
25
agentclaw/app/agent_claw_main/config.py
Normal file
25
agentclaw/app/agent_claw_main/config.py
Normal file
@@ -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']
|
||||||
@@ -11,6 +11,7 @@ from bedrock_agentcore.runtime import BedrockAgentCoreApp
|
|||||||
from channels.telegram import TelegramAdapter
|
from channels.telegram import TelegramAdapter
|
||||||
from prompt_builder import build_system_prompt, invalidate_prompt
|
from prompt_builder import build_system_prompt, invalidate_prompt
|
||||||
import memory_manager
|
import memory_manager
|
||||||
|
import config
|
||||||
from tools import web as web_tools
|
from tools import web as web_tools
|
||||||
from tools import workspace as ws_tools
|
from tools import workspace as ws_tools
|
||||||
from tools import messaging
|
from tools import messaging
|
||||||
@@ -378,7 +379,7 @@ async def main(payload: dict, context):
|
|||||||
# NOTE: extended thinking disabled — causes retry/duplicate issues with streaming
|
# NOTE: extended thinking disabled — causes retry/duplicate issues with streaming
|
||||||
from botocore.config import Config as BotoConfig
|
from botocore.config import Config as BotoConfig
|
||||||
model = BedrockModel(
|
model = BedrockModel(
|
||||||
model_id="us.anthropic.claude-sonnet-4-6",
|
model_id=config.AGENT_MODEL_ID,
|
||||||
region_name="us-east-1",
|
region_name="us-east-1",
|
||||||
boto_client_config=BotoConfig(read_timeout=600, connect_timeout=10),
|
boto_client_config=BotoConfig(read_timeout=600, connect_timeout=10),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -10,13 +10,14 @@ import boto3
|
|||||||
|
|
||||||
from bedrock_agentcore.memory.client import MemoryClient
|
from bedrock_agentcore.memory.client import MemoryClient
|
||||||
|
|
||||||
|
import config
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
MEMORY_ID = 'agentclaw_AgentClawMemory-i7Csf776AH'
|
MEMORY_ID = 'agentclaw_AgentClawMemory-i7Csf776AH'
|
||||||
SESSION_WINDOW_SIZE = 100
|
SESSION_WINDOW_SIZE = 100
|
||||||
USERS_TABLE_NAME = os.environ.get('USERS_TABLE_NAME', 'agent-claw-users')
|
USERS_TABLE_NAME = os.environ.get('USERS_TABLE_NAME', 'agent-claw-users')
|
||||||
LTM_SESSION_ID = 'ltm-extractions'
|
LTM_SESSION_ID = 'ltm-extractions'
|
||||||
HAIKU_MODEL_ID = 'us.anthropic.claude-3-5-haiku-20241022-v1:0'
|
|
||||||
|
|
||||||
_memory_client: MemoryClient | None = None
|
_memory_client: MemoryClient | None = None
|
||||||
|
|
||||||
@@ -110,7 +111,7 @@ def _call_claude_extraction(conversation_text: str) -> dict:
|
|||||||
'Conversation:\n' + conversation_text
|
'Conversation:\n' + conversation_text
|
||||||
)
|
)
|
||||||
resp = bedrock.converse(
|
resp = bedrock.converse(
|
||||||
modelId=HAIKU_MODEL_ID,
|
modelId=config.COMPACTION_MODEL_ID,
|
||||||
messages=[{'role': 'user', 'content': [{'text': prompt}]}],
|
messages=[{'role': 'user', 'content': [{'text': prompt}]}],
|
||||||
inferenceConfig={'maxTokens': 1024},
|
inferenceConfig={'maxTokens': 1024},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user