架构全景
五大核心服务
Web 前端
基于 Next.js 构建的全栈 Web 应用,承载用户交互界面、服务端渲染、BFF 代理层。多副本水平扩展,支持 Canary 发布。
Core API
业务逻辑中枢,基于 Hono 框架提供 REST + tRPC 双轨 API。负责认证、计费、专家管理、审核流水线、订阅系统等所有业务编排。
智能体运行时
Python 构建的 AI 推理引擎,基于 LangGraph 实现 Agent Loop。负责上下文构建、工具调度、流式输出、自进化等 AI 核心能力。
云端沙盒
为每次 AI 对话提供隔离的云容器环境,预装开发工具链。支持文件持久化、网络访问、进程隔离,亚秒级热启动。
官网 & 开发者平台
官网采用 SSR/ISR 模式部署,支持博客实时发布。开发者平台提供 API Key 管理、调用日志、用量统计。
数据流:从用户到 AI
一次典型的专家对话经过以下路径:1
用户发送消息
用户在浏览器/IM/IDE 中发送消息,经 Nginx 路由到 Web 前端。
2
Core 编排请求
Web 将请求转发到 Core API。Core 完成身份认证、积分校验、专家配置加载、沙盒准备,然后将完整的运行时负载发送给智能体运行时。
3
Agent 推理循环
Runtime 构建上下文(历史消息 + 记忆 + 技能 + 工具声明),调用大模型进行推理。如果模型决定使用工具,Runtime 将在沙盒中执行操作,并将结果送回模型继续推理。
4
流式响应
整个过程通过 Server-Sent Events (SSE) 实时流式输出到客户端——用户看到 AI 一边思考一边回复,工具执行结果实时展现。
Monorepo 结构
整个代码库采用 Monorepo 组织,共享类型和基础设施:三层环境与发布策略
每个环境独立的 Kubernetes namespace,共享负载均衡入口但完全隔离数据。关键服务(Web、Core、Runtime)支持 Canary 副本,新版本先在小流量中验证再全量切换。
多 Provider 模型路由
袋袋不绑定单一大模型供应商。Core 内置统一的 Provider 管理系统,支持:- 多供应商接入:同时对接 DashScope、火山引擎、Anthropic、OpenAI 等
- 智能路由:根据 RPM/TPM 配额、余额、健康状态自动选择最优 Key
- Token 感知调度:滑动窗口限流,避免单 Key 被打满
- 差异化参数:不同模型按各自能力声明传参(如 temperature 兼容性)
支撑基础设施
PostgreSQL — 业务数据持久化
PostgreSQL — 业务数据持久化
所有业务数据的持久化存储,采用 Drizzle ORM 管理 Schema 迁移。支持乐观锁并发控制、Advisory Lock 分布式互斥、分区索引优化查询性能。
Redis — 缓存与实时通信
Redis — 缓存与实时通信
承载会话缓存、限流计数器、分布式锁、Worker 任务队列、实时状态同步等。采用多 Key 命名空间隔离不同业务域。
COS 对象存储 — 文件与媒体
COS 对象存储 — 文件与媒体
所有用户上传文件、AI 生成的媒体资源、静态资产均存储在腾讯云 COS 中。按环境隔离 Bucket,支持预签名 URL 直传和 CDN 加速。
IM 网关 — 多平台消息桥接
IM 网关 — 多平台消息桥接
统一接入飞书、钉钉、企业微信等 IM 平台,将消息协议转换为标准的 Agent 调用,让专家可以「活在」用户日常使用的通信工具中。
设计哲学
袋袋的架构遵循几个核心原则:- 关注点分离:每个服务只做一件事——Core 不做推理,Runtime 不管计费,Sandbox 不碰业务逻辑
- 声明式优于命令式:专家的能力通过声明(技能 Manifest、工具配置)组合,而非硬编码
- 渐进式降级:任何外部依赖不可用时,核心对话能力不应中断——沙盒挂了走无沙盒模式,Redis 挂了走数据库兜底
- 可观测性优先:每个请求携带完整链路追踪,Agent 的每一步决策都有审计日志
这是一个活跃演进中的架构。我们持续在三个方向投入:降低 AI 推理延迟、提升沙盒冷启动速度、增强多租户隔离安全性。

