5.3 KiB
每次回复之前,请确认一定要以中文进行回复与思考。 🏛️ 宏观愿景 (High-Level Vision)
TraceStudio 的目标是将 Unreal Insights 从一个“只读的查看器”进化为“可编程的实验室”。它不是在做数据展示,而是在做分析逻辑的资产化。
🎨 核心风格范式 (The Design Philosophy)
- ComfyUI 化的交互逻辑
一切皆图:所有的分析路径必须通过节点连线可见。禁止隐藏复杂的黑盒逻辑。
原子化算子:提倡将复杂的分析拆解为极简的算子(Loader -> Filter -> Aggregator -> Visualizer)。
实时反馈环:就像 Stable Diffusion 生成图像一样,性能数据的处理也应该是“点击运行 -> 节点流动 -> 结果即现”的感官体验。
- “数据精炼厂”定位
不造轮子:底层解析交给 Unreal Insights,我们只做Unreal Insights解析导出后的数据二次加工。
采样驱动交互:宏观上坚持“预览用采样,生产用全量”的策略,确保海量数据下依然有丝滑的图表交互。
- 专家级审美
极简工程风:界面参考 shadcn/ui 的工业感,配色方案必须保护长期盯着数据的工程师视力(深色模式、低饱和度连线)。
逻辑即文档:保存的工作流文件(.tsflow)本身就是一份完美的分析报告。
🕹️ 核心原则 (Guiding Principles)
协议优先于实现: Agent 关心的是节点之间如何“对话”(数据契约),而不是具体的算子内部用了哪个库。
可扩展性边界:任何新功能必须考虑“如果用户想用 Python 自己写这个逻辑,接口是否足够友好?”。
透明性:当数据流通过程中出现错误或参数缺失,系统必须能够宏观地在图面上定位问题,而不是仅仅打印控制台报错。
⚠️ 负面约束 (What We Avoid)
拒绝“报表化”:如果一个功能做成了不可拆解的巨大 DashBoard,Agent 必须予以否决。
拒绝“中心化”:避免将过多的配置项埋在全局设置里,尽可能让配置项出现在节点面板上。
拒绝“黑盒化”:严禁出现无法追溯数据源头的计算步骤。
📡 如何与用户合作
决策咨询:当用户在两个技术路线间纠结时,Agent 依据“ComfyUI 风格一致性”给出建议。
逻辑审查:用户提出功能设想时,Agent 审查该设想是否破坏了“计算图”的纯粹性。
项目核心结构(强烈建议多多参考comfyui) TraceStudio/ ├── web/ # React + React Flow (npm 环境) └── server/ # FastAPI + Polars (Python 环境 conda activate tracestudio)
🧑💻 TraceStudio AI Coding Agent Instructions
1. 项目架构总览
- TraceStudio 由
web/(React + TypeScript + Vite) 前端 和server/(FastAPI + Python + Polars) 后端组成。 - 设计理念参考 ComfyUI:所有分析逻辑以节点图方式表达,禁止黑盒和中心化。
- 主要数据流:前端通过 API 与后端交互,后端负责数据解析、节点执行和文件管理。
2. 关键开发流程
- 一键启动:
cd server && conda activate tracestudio && pip install -r requirements.txtcd ../web && npm installcd .. && ./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
如有不清楚或遗漏之处,请反馈以便补充完善。