Check a dataset before analysis
Find missing values, inconsistent formats, duplicates, and questions that could invalidate results.
Read-only Unity runtime performance snapshots — FPS, frame time, batches/draw calls, triangles/vertices, memory (total/mono/per-asset), object counts, AssetBundle stats. Exact signatures via GET /skills/schema.
---
name: unity-profiler
description: Capture read-only Unity runtime performance snapshots
---
> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
## Triggers
- Checking runtime performance
- Taking a profiler snapshot
- Inspecting memory/frame stats
- 查看运行时性能、抓取 profiler 快照、检查内存/帧率统计
# Profiler Skills
Get performance statistics.
## Operating Mode
- **Approval / Auto / Bypass**: 所有 skill 直接执行。本模块**全部**标 `ReadOnly = true, Mode = SkillMode.SemiAuto`,三档模式下都不需要 grant。
- **本模块不含 Delete / PlayMode / Reload / RiskLevel=high 类 skill** —— 没有 `IsForbiddenInSemi` 拦截。
- 注:本组 skill 仅做"瞬时快照"读取,不是 Profiler 录制控制;持续采样请用 Unity Profiler 窗口。
**DO NOT** (common hallucinations):
- `profiler_start` / `profiler_stop` do not exist → profiler skills are read-only snapshots, not recording controls
- `profiler_record` does not exist → use Unity Profiler window for recording
- `profiler_analyze` / `profiler_get_fps` do not exist → use `profiler_get_stats` (FPS, batches, draw calls) or `profiler_get_memory` (heap sizes)
**Routing**:
- For scene performance hints → use `perception` module's `scene_performance_hints`
- For memory info → `debug_get_memory_info` (debug module) or `profiler_get_memory` (this module)
- For optimization suggestions → use `optimization` module
## Skills
### `profiler_get_stats`
Get performance statistics (FPS, Memory, Batches).
**Parameters:** None.
**Returns:**
```json
{
"fps": 60.0,
"triangles": 1500,
"batches": 12,
"memory": { "totalAllocatedMB": 256.5, ... }
}
```
### `profiler_get_memory`
Get memory usage overview (total allocated, reserved, mono heap).
**Parameters:** None.
**Returns:** `{ success, totalAllocatedMB, totalReservedMB, unusedReservedMB, monoHeapMB, monoUsedMB }`
### `profiler_get_runtime_memory`
Get top N objects by runtime memory usage in the scene.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 20 | Maximum number of objects to return |
**Returns:** `{ success, totalTrackedMB, showing, objects: [{ name, type, sizeKB }] }`
### `profiler_get_texture_memory`
Get memory usage of all loaded textures.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of textures to return |
**Returns:** `{ success, totalCount, totalMB, topTextures: [{ name, type, sizeKB, width, height }] }`
### `profiler_get_mesh_memory`
Get memory usage of all loaded meshes.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of meshes to return |
**Returns:** `{ success, totalCount, totalMB, topMeshes: [{ name, sizeKB, vertices, triangles }] }`
### `profiler_get_material_memory`
Get memory usage of all loaded materials.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of materials to return |
**Returns:** `{ success, totalCount, totalMB, topMaterials: [{ name, shader, sizeKB }] }`
### `profiler_get_audio_memory`
Get memory usage of all loaded AudioClips.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of clips to return |
**Returns:** `{ success, totalCount, totalMB, topClips: [{ name, sizeKB, length, channels, frequency }] }`
### `profiler_get_object_count`
Count all loaded objects grouped by type.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| topN | int | No | 20 | Number of top types to return |
**Returns:** `{ success, totalObjects, topTypes: [{ type, count }] }`
### `profiler_get_rendering_stats`
Get rendering statistics (batches, triangles, vertices, etc.).
**Parameters:** None.
**Returns:** `{ success, frameTime, renderTime, triangles, vertices, batches, setPassCalls, drawCalls, dynamicBatchedDrawCalls, staticBatchedDrawCalls, instancedBatchedDrawCalls, shadowCasters }`
### `profiler_get_asset_bundle_stats`
Get information about all loaded AssetBundles.
**Parameters:** None.
**Returns:** `{ success, count, bundles: [{ name, isStreamedSceneAssetBundle }] }`
## Exact Signatures
Exact names, parameters, defaults, and returns are defined by `GET /skills/schema` or `unity_skills.get_skill_schema()`, not by this file.
---
name: unity-profiler
description: Capture read-only Unity runtime performance snapshots
---
> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
## Triggers
- Checking runtime performance
- Taking a profiler snapshot
- Inspecting memory/frame stats
- 查看运行时性能、抓取 profiler 快照、检查内存/帧率统计
# Profiler Skills
Get performance statistics.
## Operating Mode
- **Approval / Auto / Bypass**: 所有 skill 直接执行。本模块**全部**标 `ReadOnly = true, Mode = SkillMode.SemiAuto`,三档模式下都不需要 grant。
- **本模块不含 Delete / PlayMode / Reload / RiskLevel=high 类 skill** —— 没有 `IsForbiddenInSemi` 拦截。
- 注:本组 skill 仅做"瞬时快照"读取,不是 Profiler 录制控制;持续采样请用 Unity Profiler 窗口。
**DO NOT** (common hallucinations):
- `profiler_start` / `profiler_stop` do not exist → profiler skills are read-only snapshots, not recording controls
- `profiler_record` does not exist → use Unity Profiler window for recording
- `profiler_analyze` / `profiler_get_fps` do not exist → use `profiler_get_stats` (FPS, batches, draw calls) or `profiler_get_memory` (heap sizes)
**Routing**:
- For scene performance hints → use `perception` module's `scene_performance_hints`
- For memory info → `debug_get_memory_info` (debug module) or `profiler_get_memory` (this module)
- For optimization suggestions → use `optimization` module
## Skills
### `profiler_get_stats`
Get performance statistics (FPS, Memory, Batches).
**Parameters:** None.
**Returns:**
```json
{
"fps": 60.0,
"triangles": 1500,
"batches": 12,
"memory": { "totalAllocatedMB": 256.5, ... }
}
```
### `profiler_get_memory`
Get memory usage overview (total allocated, reserved, mono heap).
**Parameters:** None.
**Returns:** `{ success, totalAllocatedMB, totalReservedMB, unusedReservedMB, monoHeapMB, monoUsedMB }`
### `profiler_get_runtime_memory`
Get top N objects by runtime memory usage in the scene.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 20 | Maximum number of objects to return |
**Returns:** `{ success, totalTrackedMB, showing, objects: [{ name, type, sizeKB }] }`
### `profiler_get_texture_memory`
Get memory usage of all loaded textures.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of textures to return |
**Returns:** `{ success, totalCount, totalMB, topTextures: [{ name, type, sizeKB, width, height }] }`
### `profiler_get_mesh_memory`
Get memory usage of all loaded meshes.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of meshes to return |
**Returns:** `{ success, totalCount, totalMB, topMeshes: [{ name, sizeKB, vertices, triangles }] }`
### `profiler_get_material_memory`
Get memory usage of all loaded materials.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of materials to return |
**Returns:** `{ success, totalCount, totalMB, topMaterials: [{ name, shader, sizeKB }] }`
### `profiler_get_audio_memory`
Get memory usage of all loaded AudioClips.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| limit | int | No | 50 | Maximum number of clips to return |
**Returns:** `{ success, totalCount, totalMB, topClips: [{ name, sizeKB, length, channels, frequency }] }`
### `profiler_get_object_count`
Count all loaded objects grouped by type.
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| topN | int | No | 20 | Number of top types to return |
**Returns:** `{ success, totalObjects, topTypes: [{ type, count }] }`
### `profiler_get_rendering_stats`
Get rendering statistics (batches, triangles, vertices, etc.).
**Parameters:** None.
**Returns:** `{ success, frameTime, renderTime, triangles, vertices, batches, setPassCalls, drawCalls, dynamicBatchedDrawCalls, staticBatchedDrawCalls, instancedBatchedDrawCalls, shadowCasters }`
### `profiler_get_asset_bundle_stats`
Get information about all loaded AssetBundles.
**Parameters:** None.
**Returns:** `{ success, count, bundles: [{ name, isStreamedSceneAssetBundle }] }`
## Exact Signatures
Exact names, parameters, defaults, and returns are defined by `GET /skills/schema` or `unity_skills.get_skill_schema()`, not by this file.
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.