首頁 > 技術 > 正文

SmartPerfetto 开源:面向 Android Trace 分析的 Perfetto AI Assistant

2026-10-30  ·  閱讀:237
  1. 前端把问题、traceId、分析模式发给后端。
  2. 后端判断场景,例如 scrolling、startup、anr、memory、pipeline、general。
  3. Prompt Builder 注入对应的 .strategy.md、架构模板、输出格式和必要知识。
  4. Agent 先提交计划,再调用 MCP 工具。
  5. 首选 invoke_skill 跑预定义分析;Skill 不覆盖时再用 lookup_sql_schema 和 execute_sql 补查询。
  6. Skill 和 SQL 结果以 DataEnvelope、Artifact、表格或摘要形式返回。
  7. Verifier 检查证据支撑、假设狀態、场景覆盖和常见遗漏项。
  8. 后端通过 SSE 推送進度、工具结果、answer token、conclusion 和最终 report。

最终使用者会看到自然語言结论,也会看到表格、時間戳跳转、报告 URL 和可继续追问的 session。

怎么跑起来

想试一條自己的 trace,按最短路径跑起来即可。仓库已经带了预构建 Perfetto UI,普通试用不需要初始化 perfetto/ submodule,也不需要本机准备 C++ 构建环境。

1
2
git clone https://github.com/Gracker/SmartPerfetto.git
cd SmartPerfetto

当前默认开发环境按 macOS 梳理。Windows 用户建议使用 Docker Desktop,并启用 WSL2 backend;如果要从源码跑打造脚本,也提议放在 WSL2 里,不要用原生 Windows shell。Ubuntu 等 Linux 发行版还缺少充分测试,遇到难题可以带上环境信息提 Issue 或 PR。

只想先跑起来,推薦使用 Docker Hub 镜像。这个路径只需要 Docker Desktop/Engine 和一个大模型 API Key,不需要安装 Node.js;镜像内已经包含后端、预构建前端和固定版本的 trace_processor_shell:

1
2
3
4
5
6
cp backend/.env.example .env
# 编辑 .env,设置 ANTHROPIC_API_KEY;
# 或配置 ANTHROPIC_BASE_URL + ANTHROPIC_API_KEY 接入 API 代理。

docker compose -f docker-compose.hub.yml pull
docker compose -f docker-compose.hub.yml up -d

启动后打开 http://localhost:10000,加载 .pftrace 或 .perfetto-trace 文件,再打开 AI Assistant 面板。后端健康检查地址是 http://localhost:3000/health。上传文件和日志儲存在 Docker volume 中,容器重启后仍会保留。

如果要停止容器:

1
docker compose -f docker-compose.hub.yml down

只有测试 Dockerfile 改动,或者构建还没發布到镜像的本地代码,才需要走源码构建:

1
2
cp backend/.env.example backend/.env
docker compose up --build

源码构建仍然使用仓库里的 frontend/ 预构建产物,不会重新编译 perfetto/ submodule。

本地从源码 checkout 启动,用 ./start.sh。这个脚本会使用仓库里的 frontend/ 预构建产物,并在需要时下載固定版本的 trace_processor_shell:

1
2
3
4
5
cp backend/.env.example backend/.env
# 编辑 backend/.env,设置 ANTHROPIC_API_KEY;
# 或配置 ANTHROPIC_BASE_URL + ANTHROPIC_API_KEY 接入 API 代理。

./start.sh

只有要改 AI Assistant 插件 UI,例如 ai_panel.ts、styles.scss,才需要初始化 Perfetto submodule 并使用前端开发脚本:

1
2
git submodule refresh --init --recursive
./scripts/start-dev.sh

两种本地脚本都会启动两个服务:

  • 前端:http://localhost:10000
  • 后端:http://localhost:3000

日常改后端、Skill、策略或普通文档,优先用 ./start.sh;改 Perfetto 插件 UI,再切到 ./scripts/start-dev.sh。

模型接入以 Anthropic 直连或 Anthropic Messages 兼容代理为主。第三方模型需要通过代理层适配,并稳定提供 streaming 和 tool/function calling;如果模型只能聊天,不能稳定调用工具,SmartPerfetto 的 SQL 查询和 Skill 调用就跑不完整。

适合从哪里贡献

如果这个项目后续能变得可靠,最需要的是可复现的 trace、能跑的 SQL、能解释失败原因的 Skill 和持续补進来的回归样本。

可以从这些地方开始:

SmartPerfetto 开发阶段共建入口

  • 提供小 trace 和复现难题:一條能說明问题的 trace,比一段抽象描述更容易转成测试和 Skill。
  • 改進 YAML Skill:补充 SQL、显示列、空数字提示、厂商差异、边界條件。
  • 改進场景策略:让 scrolling、startup、anr 等策略覆盖更多常见分析步骤。
  • 修 Perfetto 插件 UI:AI 面板、表格、图表、跳转、场景導航都在前端插件里。
  • 补回归测试:项目已有 6 條 canonical trace 回归门禁,新的失败样本可以变成长期保护。

开发阶段更新很快。参与打造前先同步 SmartPerfetto 主仓库;如果改 AI Assistant 插件 UI,再同步 perfetto/ submodule。发现问题、改進项,或者已经在 fork 里修了 bug,优先开 Issue 或 PR,把复现 trace、期望输出和测试结果写清楚。

如果想长期参与 Skill、Agent 或前端研发,可以通过 README 里的聯絡方式沟通协作,附上 GitHub 账号和信箱,方便后续加到核心打造协作里。

提交 PR 前,按改动类型跑对应检查:

1
2
3
4
5
6
cd backend
npm run build
npm run test:scene-trace-regression
npm run validate:skills
npm run validate:strategies
npm run test:core

不同 PR 跑的检查不一样。代码改动至少跑 scene trace regression;Skill 改动跑 validate:skills 加回归;策略和模板改动跑 validate:strategies 加回归;类型或构建问题要补 npx tsc --noEmit。

许可证和当前边界

本文由News整理發布,僅供參考。

1234
評論載入中…

友情連結申請友鏈

聯盟矩陣53