MineContext 是字节开源的「上下文中台」,把用户/环境/行为的动态状态,统一抽象为可查询、可订阅、可扩展的共享服务,让业务再也不用各自造轮子。
Github : https://github.com/volcengine/MineContext
一、核心价值
把“上下文”从业务代码里抽出来,变成基础设施,像数据库一样调用。
- 以前:每个推荐、搜索、对话模块自己埋点、拼逻辑、存缓存
- 现在:调个
getContext("user_last_click")
或 subscribe("device_os")
,完事儿 - 当前:一个在后台默默截屏的软件,支持doubao和openai 的key
二、架构本质(5个核心组件)
组件 | 作用 | 关键词 |
---|
元模型 | 定义上下文长啥样(key、scope、type) | 结构化 |
采集器 | 接入埋点、日志、事件,转成上下文 | 输入适配 |
存储层 | Redis/内存/分布式缓存,支撑高并发读 | 快读 |
更新引擎 | 事件驱动更新,支持延迟/批量/优先级 | 异步 / 一致性 |
接口层 | SDK / RPC / PubSub,业务无感调用 | 无侵入 |
有插件机制,能加新来源 | 有监控/审计,避免黑洞
三、适用场景
场景 | 为什么需要 MineContext |
---|
推荐系统 | 实时知道“刚点过A,正看B”,才不推重复内容 |
多端协同 | 手机上收藏,PC端要能感知 |
对话机器人 | 上下文 = 对话历史 + 用户情绪 + 设备类型 |
广告定向 | “用户刚搜索过咖啡机” → 立刻推送咖啡相关ads |
大型微服务集群 | 9个服务都需要“用户登录态+设备型号+地区”,别每个人从DB拉 |
不适合:简单静态配置、单模块应用、低频系统 —— 你扛不动这复杂度。
四、潜在风险
风险 | 原因 | 如何避免 |
---|
上下文膨胀 | 1000个业务各自加5个字段 → 5000个key | 强制审批 + 命名规范 + 生命周期自动清理 |
陈旧数据 | 异步更新导致“你看的是3秒前的你” | 设置TTL + 增量更新 + 缓存穿透防护 |
权限泄露 | 上下文含手机号/浏览记录 | 接入RBAC,字段脱敏,审计日志 |
调试地狱 | “为啥我拿不到context?” → 8个服务在改它 | 传traceID + 上下文变更链路可视化 |
五、开源意义
- 内部已验证:字节内部早用这套,降本增效显著
- 行业通用痛点:没人把“上下文”当基础设施做,大家都抄来抄去
- 生态钩子:吸引开发者用火山引擎,反哺云服务(如EventBridge、DataHub)
它不是“AI模型”,它是AI的神经系统——没有它,再强的模型也看不懂用户在干嘛
六、总结
MineContext = 上下文的 Kubernetes
一键接入、统一管理、弹性扩展、业务无感
不是工具,是新范式:把“状态”变成可复用的公共服务
标签:infra, ai