news 2026/10/2 12:44:49

Gajae-Code隐私与可观测性:遥测白名单模型与本地Stats仪表盘完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gajae-Code隐私与可观测性:遥测白名单模型与本地Stats仪表盘完全指南

Gajae-Code隐私与可观测性:遥测白名单模型与本地Stats仪表盘完全指南

【免费下载链接】gajae-codeGajae Code MVP项目地址: https://gitcode.com/gh_mirrors/ga/gajae-code

Gajae-Code 的隐私与可观测性设计非常克制:内置遥测采用白名单模型且默认关闭,AI 用量数据则由本地stats 仪表盘统计展示。本文面向新手,带你快速搞懂 Gajae-Code 到底收集什么、如何一键关闭遥测,以及如何用本地 stats 仪表盘查看 Token、成本与工具调用趋势。

一、遥测白名单模型:默认关闭,只发固定事件

Gajae-Code 内置了一条最小化的更新与采用情况遥测通道,核心原则是:

  • 🔒默认关闭:不显式开启,任何数据都不会发送;
  • 📋固定事件白名单:目前仅允许 5 种事件名(update_check_started、update_check_completed、update_install_started、update_install_completed、update_install_failed);
  • 🚫未知字段直接丢弃,白名单外的取值在传输前即被拒绝。

每个事件只能包含:schema 版本号、固定的事件名、本地随机生成的 UUIDv4 安装 ID、ISO 时间戳、更新通道(stable/nightly)、固定结果值(available / up_to_date / installed / failed / skipped)以及固定更新方式(bun / npm / binary / migrate)。

永远不会被收集的内容

官方在 docs/telemetry.md 中明确列出了"永不采集"清单:提示词、命令行参数、路径、环境变量、密钥、账号身份、模型或服务商身份、仓库身份、错误文本、主机名、用户名、机器 ID、IP 派生身份。安装 ID 是纯随机生成,与设备、网络、账号、仓库数据无关,并以私有文件权限保存在本地用户目录的telemetry-install-id文件中。

白名单校验的实现可以直接在源码中阅读,序列化函数会在任何含"禁用键"(如 prompt、path、secret、hostname 等)的数据出现时直接失败:events.ts。

二、一键开关:如何控制遥测(含紧急杀开关)

遥测通过常规配置项控制,默认为false:

gjc config set telemetry.enabled true # 开启(可选) gjc config set telemetry.enabled false # 关闭(默认) gjc config get telemetry.enabled # 查看当前状态

此外还有一个进程级紧急杀开关,优先级高于一切配置,在事件被调度之前即被评估:

GJC_DISABLE_TELEMETRY=1 gjc update

该开关接受1、true、yes、on四种取值。

传输行为:不阻塞、不留存

事件通过 HTTPS POST 发送,采用"尽力而为"策略:调用不阻塞更新命令、最多 2 个请求在途、单请求 1500ms 超时。离线、超时、队列饱和等失败不影响 GJC 的正常行为,也不保留任何本地事件队列或日志。

三、本地 Stats 仪表盘:AI 用量可观测性

与"上报到云端"的遥测相反,Gajae-Code 的可观测性能力全部留在本地——由@gajae-code/stats包提供:解析~/.gjc/agent/sessions/下的 JSONL 会话日志,用 SQLite(~/.gjc/stats.db)增量聚合,再渲染成 Web 仪表盘。

核心指标一览

指标计算方式
Tokens/soutput_tokens / (duration / 1000)
缓存命中率cache_read / (input + cache_read) * 100
错误率count(stopReason=error) / total_calls * 100
总成本usage.cost.total求和
平均延迟 / TTFTduration/ttft均值

快速启动本地统计仪表盘

gjc stats # 启动仪表盘,默认 http://localhost:3847 gjc stats --port 8080 # 自定义端口 gjc stats --summary # 控制台打印摘要(按角色拆分用量) gjc stats --json # 输出 JSON,方便脚本处理

仪表盘提供:总体指标卡片(请求数、成本、缓存命中率、错误率、Tokens/s 等)、时间序列图、按模型/按文件夹/按智能体(executor、planner、architect、critic 等)的拆分表格,并每 30 秒自动刷新。服务端 API 也全部本地可用(/api/stats、/api/stats/costs等,支持?range=1h|24h|7d|30d|90d|all),详见 packages/stats/README.md 与 server.ts。

💡 隐私要点:仪表盘只绑定 127.0.0.1,不支持跨域请求,也不信任转发的主机头——它天生就是一个纯本地工具。

四、深入分析:会话语料的 SQLite 分析流

如果你想在仪表盘之上做更细的挖掘,仓库内置了session-stats分析工具链:先把会话语料增量同步进同一个~/.gjc/stats.db(带ss_前缀的表),再用短小的 Python 脚本做按工具/按天/按会话的查询,重跑只需亚秒级。常用命令如bun run stats:tools(按工具统计 Token 总量)、stats:edits(编辑工具可靠性审计)等,完整说明见 scripts/session-stats/README.md。

下图展示的是分析流产出的"Top 10 工具 Token 用量趋势"六宫格图:日 Token 量、日调用数、每次调用均值、累计 Token、周中位数与单次调用直方图,可以直观看出read、search、task等工具在整体用量中的占比与演化。

五、新手常见问题 FAQ

Q1:默认情况下 Gajae-Code 会上传我的代码或提示词吗?不会。遥测默认关闭;即使开启,白名单机制也保证只发送 5 种更新事件及固定字段,提示词、路径、密钥等永远不序列化。

Q2:本地统计数据库会被上传吗?不会。~/.gjc/stats.db与仪表盘服务器都只在本机运行和访问(仅绑定回环地址)。

Q3:仪表盘没数据怎么办?检查~/.gjc/agent/sessions/下是否存在会话日志;端口冲突时可用--port换端口启动。更多排障内容见 packages/stats/README.md。

总结:隐私优先 + 本地可观测的完整方案

Gajae-Code 用两套机制回答了"AI 编程助手如何既透明又安全"这个问题:

  1. 遥测白名单模型——默认关闭、固定事件、禁用键失败即拒,配合GJC_DISABLE_TELEMETRY紧急杀开关,把控制权完全交给用户;
  2. 本地 stats 仪表盘——会话日志、SQLite 聚合、仅回环访问的 Web 面板,让 Token、成本、缓存命中率与工具调用趋势全部在你本机可见。

想进一步阅读原始设计文档,可以从 docs/telemetry.md 与 packages/stats/README.md 入手;白名单序列化逻辑见 events.ts,仪表盘 API 见 server.ts。

【免费下载链接】gajae-codeGajae Code MVP项目地址: https://gitcode.com/gh_mirrors/ga/gajae-code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 12:43:53

QuickBlue:面向AI工程化的Java底座架构解析

1. QuickBlue 不是又一个“AI 中台”,而是一套可落地的工程化底座QuickBlue 这个名字刚出现在技术群里的时候,我第一反应是——又来了,某个厂商包装的新概念。直到我花三天时间把它的 GitHub 仓库 clone 下来、跑通 demo、翻完全部 starter 源…

作者头像 李华
网站建设 2026/10/2 12:43:36

瑞芯微工业方案内存选型:为什么消费级内存一到高温就掉链子?

做工业级产品的硬件工程师,大概率都踩过这个坑:开发板上跑消费级内存,常温下怎么测都没问题,memtester跑一夜也不出错。结果产品到了客户现场,夏天机柜里温度一高,就开始随机死机、数据错乱、重启后又好。查…

作者头像 李华
网站建设 2026/10/2 12:39:36

通达信捕捉人气牛选股指标公式源码副图

AA:(HHV(H,3)LLV(L,3))/2;A:IF(C>AA,vol,0);B:IF(C< AA,VOL,0);VAR0:(A-B);VAR01:EMA(VAR0,3)/SUM(VOL,5)*100;S1:VAR01>0;ABC3:(2*CLOSEHIGHLOW)/4;ABC4:LLV(LOW,34);ABC5:HHV(HIGH,34);趋势:EMA((ABC3-ABC4)/(ABC5-ABC4)*100,13);人气1:EMA(0.667*REF(趋势,1)0.333*…

作者头像 李华
网站建设 2026/10/2 12:38:20

wifit3 WlanFrameParser解析器:纯Python解析802.11帧的完整实现

wifit3 WlanFrameParser解析器&#xff1a;纯Python解析802.11帧的完整实现 【免费下载链接】wifit3 Wifite but USB-only & cross-platform. 项目地址: https://gitcode.com/GitHub_Trending/wi/wifit3 wifit3 是一款纯 Python 实现的跨平台无线网络扫描工具&#…

作者头像 李华
网站建设 2026/10/2 12:38:02

家装选门窗别光听品牌,先看自家想要什么

选门窗别光听品牌性能参数&#xff0c;先看房子到底卡在哪。临街盯隔音&#xff0c;高层盯抗风压&#xff0c;北方盯保温&#xff0c;南方多雨多台风重点看防水。想接入全屋智能的&#xff0c;直接找能打通生态的品牌。派雅、皇派、威克纳和旭格主攻隔音&#xff1b;墨瑟专做被…

作者头像 李华