“我本来没想查隐私问题。我只是想知道我的AI智能体到底有多慢。”
就是这样一个简单的念头,让一位开发者在一次黑客马拉松中,意外撞见了一个让所有产品人脊背发凉的问题——用户每一次打字的内容,都被原封不动地、以一种永久可读的形式,沉淀在数据库的某一行里。
![]()
事情要从他为“SigNoz智能体”黑客松构建的那个小工具讲起。那是一个由OpenAI驱动的、调用四个工具的迷你智能体:一个天气查询、一个计算器、一个故意睡2.5秒的“伪网页搜索”,还有一个故意报错的“伪API调用”。作者手动用OpenTelemetry接入了追踪(tracing)、日志和指标,并把所有数据指向了一个用Docker自建的SigNoz实例。他给自己立了一条规矩:所有写出来的东西,必须是亲手跑出来的。所以下文里的每一条信息,都是他坐在电脑前一步步验证过的。
搭建过程并不全是一帆风顺。SigNoz最近刚刚弃用了老式的docker-compose安装方式,改成了一个叫Foundry的新命令行工具(foundryctl)。如果你翻到一篇旧教程,你会发现和现在实际部署的样子完全对不上——这让他在刚开始时吃了不少迷惑。他用的版本是SigNoz v0.133.0,底层数据库ClickHouse版本为25.12.5.44。更恼人的是,Homebrew安装的python@3.14缺少可用的SSL模块,导致pip根本无法连接PyPI,报出的信息直接就是“因为SSL模块不可用,无法连接HTTPS链接”。最后他索性放弃折腾,改用系统自带的Python 3.9.6来创建虚拟环境,一切才顺畅跑通。这种琐碎的坑,也只有在亲自下场动手时才会碰到。
当追踪数据开始流入SigNoz后,他打开了智能体某单次运行的瀑布图(waterfall view)。这个视图会把单次请求拆分成所有执行步骤,并按每步耗时的长短从左到右排列。和他过去用过的Grafana仪表盘完全不同,过去他只能看到一个数字越过阈值,现在他可以精确锁定是哪一步、哪一次请求拖了后腿。而这张图所揭示的事实,令他第一次重新理解了“慢”这个词。
在一次典型的运行中,他自己的工具代码——比如计算器、天气查询——的执行时间连0.1毫秒都不到。但每一次对OpenAI的调用,耗时都在1200毫秒到3700毫秒之间。对于一个AI智能体来说,模型调用几乎就是全部延迟,而自己写的代码相比之下几乎可以视为免费。这是过去他从未主动去测量、也无从直观感知的数字,但瀑布图直接把这一切平铺在了眼前。
然而真正让他心头一紧的,不是这些延迟数字,而是他无意间扫到的另一行记录。在检查被追踪的数据时,他突然停在了数据库的某一行上——那里,正安静地躺着用户输入给智能体的完整明文文本。没有脱敏,没有遮盖,就这样以一种永远不会自动消失的方式保存着。那一瞬间,他才意识到:一个原本只是用来查性能的工具,竟然把每一次用户对话的原始内容,毫无保留地记录了下来。
这次发现的价值不在于技术有多高深,而在于它揭示了一个极易被忽略的事实:当我们在追求系统可观测性时,如果没有对数据隐私设定明确的边界,追踪本身就会成为最大的隐私泄漏源。这个小小的意外,或许比任何精心规划的合规审查都更能提醒开发者——有时候,你不得不亲眼看到那一行明文,才能真正开始思考该不该把它扔掉。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.