仓库:https://github.com/OwnSecurityGuard/gametrace
(创作不易,给颗 star 当作鼓励,skr~)
各位对平台或者这类功能有什么见解可以在讨论区一起讨论一波~~
GameTrace 抓实时或回放的游戏流量,用独立的解码插件把报文还原成结构化协议事件,再投影成请求/响应配对、服务端推送、协议错误、字段级状态变更。人在 Web 面板上看这份 trace,自动化脚本和 AI Agent 通过 MCP 查同一份 trace。
与其说它是「抓包平台」,不如说想成为游戏网络的调试证据层——重点不是存了多少 pcap,而是这条链路:
packet → 协议事件 → 请求/响应配对 → 状态变更 → trace → Agent 查询

图:「协议事件」视图——请求与响应成对、协议错误带原因、服务端推送,以及每条事件引发的状态变更。

path + 一个 op(eq/neq/exists/not_exists/gt/in/contains/prefix…),在每条解码事件上实时求值,命中就写进会话的「命中提醒」并弹桌面通知。检查发生在抓包过程中,而不是事后翻报告,同时会协带了客户端发了什么请求,以确保能快速定位问题packet 变成 protocol event / request-response / push / state change,Agent 就不需要吞几百兆 pcap,只需要查询已经结构化的 trace:这个 session 里有哪些协议? → login 相关请求 → 它的 response 是什么?
→ 之后发生了哪些 state change? → 为什么 Player:1001 的 hp 从 100 变成了 65?
这是我比较想强调的一点:新协议接入不是「自己啃文档」的过程,平台自带 Skill。
skills/decoder-plugin-guide —— 指引用户或 AI Agent 用 Go 编写解码插件(gt.decoder/v2,基于 gametrace/sdk):协议分析、必想的处理链路、Event 字段与持久化声明、插件骨架、TCP 重组与握手、plugin.yaml、解码诊断指标、单测与验证,并附一条 Agent 执行工作流(scaffold → connect → test → verify 的工具时序)。skills/protocol-lineage-analysis —— 协议血缘分析,从规则反查能力。read_skill 直接读取(也注册为 MCP resource),配合现成模板 examples/http-decoder、examples/ws-decoder、examples/lp-decoder,Agent 可以自己走完「发现未知协议 → 生成插件 → 本机构建运行 → 接入 → 验证」。插件形态是一个 Go 二进制 + 一个 plugin.yaml,作为独立 gRPC 进程运行:可热加载、可热替换,与管线崩溃隔离。而且插件源码、二进制和进程都在你自己的机器上——平台不保存源码、不编译、也不拉起插件。
GameTrace 把抓包、查询、插件开发都通过 MCP 暴露,且和人看到的是同一份证据:
get_capabilities / read_skill 发现能力
start_capture / get_session_status 抓包与状态
sample_bytes_plugin / get_protocol_catalog 观察流量、确认协议形态
list_decoded_data / list_connections 查结构化事件与连接
list_state_changes / list_session_alerts 追状态变更与规则命中
scaffold_plugin / connect_plugin / test_plugin / verify_plugin 写插件、接入、验证
Agent 应该操作 GameTrace 的证据,而不是自己重新发明一套抓包、解析和分析流程。
否则最后会变成「平台 + Agent 自己的抓包脚本 + Agent 自己的 parser + Agent 自己的数据格式」,平台反而没有意义。所以 GameTrace 更希望成为 Agent 的网络调试工作台。
现在 GameTrace 解决的是「看得见」——真实流量变成结构化协议事件。下一步想解决「测得动」:把同一条 trace 变成可以直接复用的测试资产,让它从观测层长成一个游戏接口自动化测试平台。
一次真实抓包
↓
请求模板 + 断言基线 (从 session 里的 request / response 提取)
↓
Agent 生成接口用例 (字段级断言:状态变更的 before / after 天然就是断言点)
↓
回归执行 → 响应差异比对
↓
失败时直接回落到网络证据 (哪一帧不对、上一帧是什么、对应的请求是谁)
这里想守住的一条边界是:GameTrace 不重造通用执行引擎,而是让协议语义、用例、断言和证据都落在同一份 trace 上,执行可以继续跑在你现有的测试框架里。
如果你也在做游戏测试、协议分析或 Agent 工程,欢迎来看看,顺手给颗 star:
https://github.com/OwnSecurityGuard/gametrace(MIT License)