TraceStudio-dev/.github/copilot-instructions.md
2026-01-09 21:37:02 +08:00

5.3 KiB
Raw Blame History

每次回复之前,请确认一定要以中文进行回复与思考。 🏛️ 宏观愿景 (High-Level Vision)

TraceStudio 的目标是将 Unreal Insights 从一个“只读的查看器”进化为“可编程的实验室”。它不是在做数据展示,而是在做分析逻辑的资产化。

🎨 核心风格范式 (The Design Philosophy)

  1. ComfyUI 化的交互逻辑

    一切皆图:所有的分析路径必须通过节点连线可见。禁止隐藏复杂的黑盒逻辑。

    原子化算子提倡将复杂的分析拆解为极简的算子Loader -> Filter -> Aggregator -> Visualizer

    实时反馈环:就像 Stable Diffusion 生成图像一样,性能数据的处理也应该是“点击运行 -> 节点流动 -> 结果即现”的感官体验。

  1. “数据精炼厂”定位

    不造轮子:底层解析交给 Unreal Insights我们只做Unreal Insights解析导出后的数据二次加工。

    采样驱动交互:宏观上坚持“预览用采样,生产用全量”的策略,确保海量数据下依然有丝滑的图表交互。

  1. 专家级审美

    极简工程风:界面参考 shadcn/ui 的工业感,配色方案必须保护长期盯着数据的工程师视力(深色模式、低饱和度连线)。

    逻辑即文档:保存的工作流文件(.tsflow本身就是一份完美的分析报告。

🕹️ 核心原则 (Guiding Principles)

    协议优先于实现: Agent 关心的是节点之间如何“对话”(数据契约),而不是具体的算子内部用了哪个库。

    可扩展性边界:任何新功能必须考虑“如果用户想用 Python 自己写这个逻辑,接口是否足够友好?”。

    透明性:当数据流通过程中出现错误或参数缺失,系统必须能够宏观地在图面上定位问题,而不是仅仅打印控制台报错。

⚠️ 负面约束 (What We Avoid)

    拒绝“报表化”:如果一个功能做成了不可拆解的巨大 DashBoardAgent 必须予以否决。

    拒绝“中心化”:避免将过多的配置项埋在全局设置里,尽可能让配置项出现在节点面板上。

    拒绝“黑盒化”:严禁出现无法追溯数据源头的计算步骤。

📡 如何与用户合作

    决策咨询当用户在两个技术路线间纠结时Agent 依据“ComfyUI 风格一致性”给出建议。

    逻辑审查用户提出功能设想时Agent 审查该设想是否破坏了“计算图”的纯粹性。

项目核心结构强烈建议多多参考comfyui TraceStudio/ ├── web/ # React + React Flow (npm 环境) └── server/ # FastAPI + Polars (Python 环境 conda activate tracestudio)

🧑‍💻 TraceStudio AI Coding Agent Instructions

1. 项目架构总览

  • TraceStudioweb/ (React + TypeScript + Vite) 前端 和 server/ (FastAPI + Python + Polars) 后端组成。
  • 设计理念参考 ComfyUI所有分析逻辑以节点图方式表达禁止黑盒和中心化。
  • 主要数据流:前端通过 API 与后端交互,后端负责数据解析、节点执行和文件管理。

2. 关键开发流程

  • 一键启动
    • cd server && conda activate tracestudio && pip install -r requirements.txt
    • cd ../web && npm install
    • cd .. && ./start.ps1 (Windows)
  • 前端开发
    • npm run dev 启动本地开发服务器,访问 http://localhost:5173
    • API 地址由 VITE_API_BASE_URL 环境变量控制,详见 web/README.md
  • 后端开发
    • 后端环境位于虚拟环境中 conda activate tracestudio; python -m uvicorn server.main:app --reload --host 127.0.0.1 --port 8000
    • python main.py 启动主服务,或 python tests/web1.1_server.py 启动旧版测试服务
    • 配置项集中于 server/system_config.yaml

3. 代码组织与约定

  • 前端
    • 组件、状态、工具函数分别在 src/components/, src/stores/, src/utils/
    • 所有 API 调用统一在 src/utils/api.ts
    • 采用深色工程风格UI 参考 shadcn/ui
  • 后端
    • 核心代码在 app/core/, API 路由在 app/api/, 节点实现在 app/nodes/, 扩展节点在 custom_nodes/
    • 文件名用 snake_case.py,类名用 PascalCase
    • 路径安全、文件名验证见 app/core/security.py
    • 云存储结构见 cloud/users/{username}/

4. 扩展与自定义

  • 新节点插件放在 server/custom_nodes/,需继承 TraceNode 并实现 get_metadata()execute()
  • 前端节点库和类型系统与后端保持一致,建议参考 ComfyUI 节点设计

5. 重要约束与风格

  • 禁止黑盒逻辑和不可拆解的报表式功能
  • 配置项优先出现在节点面板,避免全局中心化
  • 错误需在图面上可定位,避免仅控制台报错
  • 采样驱动交互:预览用采样,生产用全量

6. 典型场景示例

  • 性能分析:UTraceLoader → TimeRangeFilter → FrameTimeChart
  • 内存监控:UTraceLoader → MemoryStatsAggregator → TimeSeriesChart
  • 自定义处理:CSVLoader → FilterRows → CustomPython → Export

7. 参考与文档

  • 设计理念与风格见 .github/agents/utrace.agent.md
  • 后端 API 详见 server/README.md
  • 前端开发说明见 web/README.md
  • 安装与配置见 SETUP.md

如有不清楚或遗漏之处,请反馈以便补充完善。