daniel
|
893c110729
|
multi-tenant Phase 1: user registry + per-user memory
- CDK: add agent-claw-users DynamoDB table (actor_id PK, RETAIN policy)
- CDK: grant agent-runner read/write on users table; add USERS_TABLE_NAME env
- CDK: fix cdk.json app field (was object, must be command string)
- CDK: add UsersTableName output
- agent-runner: get_or_create_user() auto-registers users on first contact
(stores display_name, telegram_username, created_at, allowed)
- agent-runner: pass user_profile in AgentCore payload
- prompt_builder: split base prompt (cached) from per-user context (injected per-call)
removes USER.md/MEMORY.md from shared load; user name/username injected dynamically
- main.py: extract user_profile from payload, build user_context string for prompt
|
2026-05-06 20:36:22 -05:00 |
|
daniel
|
38905bb1e9
|
Phase 0: CDK stack + Lambdas + AgentCore Runtime 1 scaffold
- CDK TypeScript stack (AgentClawStack):
- S3 workspace bucket with BucketDeployment seed
- DynamoDB session-store (actor_id → session_id, TTL)
- SQS FIFO message queue (serialized per actor)
- Lambda: tg-ingest (webhook validation, typing action, SQS enqueue)
- Lambda: agent-runner (SQS → InvokeAgentRuntime, session management)
- API Gateway HTTP: POST /telegram → tg-ingest
- AgentCore Runtime 1 IAM execution role
- CDK outputs: WebhookUrl, WorkspaceBucketName, Runtime1RoleArn
- Runtime 1 (Python + Strands + BedrockAgentCoreApp):
- main.py: entrypoint, Strands agent, tool wiring
- channels/: ChannelAdapter Protocol + TelegramAdapter (decoupled)
- tools/: web_search (Brave), web_fetch, read/write_workspace_file, send_message
- prompt_builder.py: loads SOUL.md/AGENTS.md/USER.md from S3 (cached)
- Lambdas:
- tg-ingest: validate X-Telegram-Bot-Api-Secret-Token, send typing, enqueue FIFO
- agent-runner: session lookup/create in DDB, bundle batched messages, InvokeAgentRuntime
- workspace/: seed files (SOUL.md, AGENTS.md, USER.md, IDENTITY.md, HEARTBEAT.md)
NOTE: AgentCore Runtime 1 creation via CfnResource deferred — deploy CDK first,
create runtime manually with the output Role ARN, then redeploy with runtime1Arn context param.
|
2026-05-04 09:00:23 -05:00 |
|