PS:由于我这台破电脑硬件配置太渣,录屏卡成了 PPT,视频画质有点惨不忍睹。非常建议大家直接去 GitHub 仓库克隆代码,本地亲自跑一下体验,效果绝对完爆视频!https://github.com/BrennanOwYong/TikTokTechJam2026

Inspiration 说实话,以前我也超爱直接把 Credentials 塞进 Prompt 上下文里,毕竟图个方便嘛!但天下哪有免费的午餐,方便的代价懂得都懂。不过我觉得“追求便捷”和“承担风险”绝对不是非黑即白的二选一,这纯粹就是个工程攻坚问题!

What it does 我做了一个机制,能让 Agent 自动生成表单,直接把凭证注入到 Docker 容器的环境变量里。重点来了:这对 Agent 的上下文窗口是完全盲隐(Blind)的,你可以把它理解成某种简易版的“零知识证明”。 系统的打法很巧妙——直接给凭证做混淆处理,通知 Agent:“Hey,已经给你挂载好了名为 DUMMY_API_KEY 的环境变量,拿去用吧!” 同时,我还给容器上了整套硬核安全协议,彻底封死 Agent 搞小动作或走野路子的可能: 非 Root 用户运行:直接削弱 Agent 被劫持后的破坏力,想当容器管理员?门都没有。 剥夺 Linux Kernel Capabilities:抹去额外的内核特权,比如改命名空间、挂载文件系统或访问底层设备,统统不行。 开启 no-new-privileges:防止进程通过 setuid 等工具偷偷翻墙提权。 限制 CPU & 内存:给 Agent 套上紧箍咒,防止单只 Agent 榨干主机资源导致系统崩溃。 限制进程数(Limit Processes):物理防范 Fork 炸弹,严格控制 Agent 能创建的进程上限。 杜绝凭证文件挂载:.env、OAuth、各种机密文件一律不许进 Agent 的文件系统。 封锁 Docker Socket 访问:防止 Agent 反客为主控制 Docker,跑去偷偷建无防备的“亲儿子”容器。 模型 API Key 隔离在容器外:Agent 别想偷看模型提供商的 Key。我们搞了个宿主机侧的代理(Proxy),只有在转发请求时才会把 Key 塞进去。

那如果 Agent 现场写脚本、自己造工具怎么办? 简单!我连工具的输出也一并做混淆,且全在沙盒里执行。执行完后,把成果归档到独立的服务器上,直接给下一代 Agent 沉淀出可复用的最佳实践。

How we built it 我把整个系统拆成了三块:控制平面(Control Plane)、Agent 运行时、以及独立的工具运行时。 控制平面是老大哥,统筹 Agent、对话、凭证、工具、策略和历史事件。Agent 跑在自己的 Docker 容器里,配合持久化工作区(Workspace)实现跨 Session 的文件存取。

Agent 可以在容器里折腾自己的工作区,但绝对触碰不到凭证库。Codex 的运行时状态也按 Agent 做了隔离,数据互不干扰。至于凭证库,为了安全和复用,我直接把它踢到了 Agent 容器外面:API Key 存放在受保护的环境变量文件里,OAuth 凭证则放在另一个加密文件里。 Agent 只能通过一个极简函数去检测环境变量是否存在(再次打出“零知识证明”这张牌),然后用工具去验证 Key 是否有效。服务端会对数据做超强力的清洗——不管是在传输中、静止时,还是 Agent 试图自力更生去搜寻,它都永远别想读到真实的凭证数值!

Challenges we ran into UI/UX 的微妙平衡:怎么把凭证表单做得像聊天的一部分,而不是个死板的设置面板?这确实卡了我很久。后来我借鉴了 TUI(终端用户界面)索取权限的逻辑:只在 Agent 真正需要凭证的当下,才弹出表单。这样既保证了流畅度,又能潜移默化地改变用户习惯——大家用顺手了,自然就不再往聊天框里硬塞 Key 了。

多消息并发冲突:Agent 正在疯狂干活,用户又发了新消息把 Chat 挤爆了怎么办?我整了一套类似 Codex TUI 的消息队列系统,甚至允许用户直接编辑已经在排队的消息。功能改动不大,但体验感直接拉满!

Docker 状态的硬伤:Codex 运行时需要写 SQLite 文件,如果把 Codex 的 Home 目录设为只读,系统直接罢工。解决办法是给每个 Agent 分配独立的写权限状态目录,同时保持凭证依旧隔离在容器外。

性能与持久化的拉锯战:随用随抛的“一次性工具容器”确实安全,但根本没法留存用户的干货产出,而且每发一条消息就新建个 Docker 容器,不仅贵得离谱,速度还慢成狗。最后的方案是:搞预热(Warm-up)容器,让前端、后端和 Docker 容器全程保持常驻。只要防护做得够硬,容器根本不需要用完即丢!

Accomplishments that we're proud of 最让我爽到的是:我把以前在 DeepSeek Harness 和 Nvidia 各种沙盒项目里学到的硬核安全手段,真正落地到了 Agentic 系统里!不再是低效地用 Prompt 去“祈祷”Agent 听话——咱不搞低三下四那一套,直接上硬核防护!

What we learned 容器安全原理(Container security principles)。

UX 核心法则:研究“感知”如何影响产品价值的交付,以及如何通过重塑用户习惯,让这些价值爆发出更高的 ROI。

便捷即航向:把“便捷性(Convenience)”直接打造成指导产品 Feature Roadmap 的核心指标。

What's next for Brennan 带我晋级下一轮,你就知道了!😉

Built With

  • agentic
  • agents
Share this project:

Updates