Compare commits
2 Commits
bdd334b6fb
...
f31d732cb9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f31d732cb9 | ||
|
|
62862f00f0 |
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 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),
|
||||
)
|
||||
|
||||
@@ -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},
|
||||
)
|
||||
|
||||
@@ -4,7 +4,9 @@ agent-claw Runtime 1 — main assistant agent.
|
||||
Entrypoint for AgentCore CodeZip deployment.
|
||||
"""
|
||||
import os
|
||||
import boto3
|
||||
from strands import Agent, tool
|
||||
from strands.models import BedrockModel
|
||||
from bedrock_agentcore.runtime import BedrockAgentCoreApp
|
||||
|
||||
from channels.telegram import TelegramAdapter
|
||||
@@ -15,6 +17,10 @@ from tools import messaging
|
||||
|
||||
app = BedrockAgentCoreApp()
|
||||
|
||||
# Read model ID from SSM once at module load (cached for warm invocations)
|
||||
_ssm = boto3.client("ssm", region_name=os.environ.get("AWS_REGION_NAME", "us-east-1"))
|
||||
_model_id = _ssm.get_parameter(Name="/agent-claw/model-id")["Parameter"]["Value"]
|
||||
|
||||
|
||||
# ── Tool definitions ──────────────────────────────────────────────────────
|
||||
|
||||
@@ -77,6 +83,7 @@ def main(payload: dict, context) -> dict:
|
||||
|
||||
# Create and run Strands agent
|
||||
agent = Agent(
|
||||
model=BedrockModel(model_id=_model_id),
|
||||
system_prompt=system_prompt,
|
||||
tools=[send_message, web_search, web_fetch, read_workspace_file, write_workspace_file],
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user