帮一个朋友分享一下他的大作,我觉得这个Agent+Serverless架构在工程层面是一个很棒的实现,希望各位佬友能够指教.
省流
一种远程部署Agent的方法:
基于FileSystem持久化的无状态容器Agent部署架构.
实现Serverless部署有状态Agent,基本无单点故障,成本500-1000刀/月降到30刀/月。
让Agent无痛上云而不必要单点部署!
项目源码
项目简介
为了解决部署AI Agent的两难问题:
- 单机部署有状态但“不容易负载均衡”“成本高”“各个功能耦合”问题.
- Serverless便宜,很多即开即用的组件,不需要管理底层架构,但每次调用丢失状态(对话历史等)。
本项目实现Lambda + S3 + DynamoDB来部署Claude Agent,实现成本30刀/月的有状态Agent,彻底解决以上问题。
这个架构打破了"Serverless=无状态"的固有观念。通过在S3中维持会话历史,Lambda获得了有状态Agent的能力,同时保持按需计费的成本优势。
状态管理不需要绑定在容器上,可以与计算完全分离。结合DynamoDB的映射、S3的持久化、Lambda的弹性计算,用更少的钱,更耦合的组件实现了更好的可靠性。
适用场景
- Telegram/微信/Slack Bot(本项目用TelegramBot做示例的,Client还可以实现其他)
- SaaS应用中的AI助手(需要重新写Client)
- 多租户平台
Agent为什么难以Serverless化
Claude Agent SDK需要维护对话状态,与无状态API完全不同:
- 每个Agent需要持久shell、工作目录、完整对话树
- Lambda环境是无状态的:每次调用都是干净环境,/tmp会被清空
- 官方推荐四种部署模式中,Hybrid Sessions(临时容器+状态恢复)成本最优
项目框架(这个只是当前我需要集成到TG,各位大佬如果有需要可以把Client改为其他客户端.欢迎Fork或者提PR来兼容更多客户端!)
Telegram User → Bot API → API Gateway → Producer Lambda → SQS Queue → Consumer Lambda
↓ ↓
Return 200 agent-server Lambda
immediately ↓
DynamoDB (Session mapping) + S3 (Session files) + Bedrock (Claude)