3dsmax-mcp
Provides tools for controlling Autodesk 3ds Max, enabling AI agents to perform modeling, shading, rigging, animation, rendering, baking, and engine export directly in the 3ds Max scene.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@3dsmax-mcpcreate a cylinder with 16 segments and apply a chrome material"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
3dsmax-mcp
让 AI 智能体直接驱动 Autodesk 3ds Max —— 建模、材质、绑定、动画、渲染、烘焙、导出。
An MCP (Model Context Protocol) plugin that gives AI agents full control of Autodesk 3ds Max for modelling, shading, rigging, animation, rendering, baking and engine export.
目录
Related MCP server: 3dsmax-mcp
这是什么
3dsmax-mcp 由两部分组成:
部分 | 运行位置 | 职责 |
MCP 服务端 | 独立 Python 进程(stdlib-only) | 对 AI 客户端讲 MCP/JSON-RPC,对外暴露 375 个工具 |
MAXScript 桥接 | 3ds Max 进程内(主线程) | 监听本地 TCP,执行真实场景操作 |
AI 客户端(Cursor / Claude Desktop / 任意 MCP 客户端)→ MCP 服务端 → 本地 TCP → 3ds Max 桥接 → 场景。
一句话:装上之后,你对着 AI 说"给这个角色绑个骨骼并自动蒙皮",它真的能在你的 Max 里做出来。
为什么不用 pymxs
官方同类项目普遍依赖 3ds Max 内置的 pymxs(Python 桥)。这条路有三个硬伤:
Python 版本地狱 —— 3ds Max 2020/2021 内置 Python 2.7,2022+ 才升到 Python 3。要写一份同时兼容的 pymxs 代码非常痛苦。
主线程不安全 —— pymxs 从后台线程访问场景会崩溃。绕过它需要
pymxs.runtime.execute+ 消息泵,复杂度高且脆弱。覆盖面窄 —— pymxs 并未暴露 Max 的全部功能,很多操作还是要回头写 MAXScript。
本项目完全放弃 pymxs,走纯 MAXScript 桥接:
只要求 Max 里有 MAXScript(2020 到 2027 都有)。
桥接的 TCP 监听用
TcpListener+WinForms Timer在主线程泵,天然没有跨线程问题。MAXScript 能碰到的东西,插件就能暴露 —— 覆盖率更高。
代价是 MAXScript 语言能力较弱(无 struct、无闭包),所以我们重写了一个纯 MAXScript 的 JSON 引擎,见 docs/BRIDGE_CONVENTIONS.md。
架构
┌────────────────────┐ MCP / JSON-RPC 2.0 ┌──────────────────────────┐
│ AI client │ ◀── stdio / HTTP ────▶ │ maxmcp (Python) │
│ Cursor / Claude │ │ · catalog: 375 tools │
│ WorkBuddy / Cline │ │ · i18n: zh / en / auto │
│ 国产 AI 客户端 │ │ · wire codec (ANSI) │
└────────────────────┘ └────────────┬─────────────┘
├── stdio (客户端拉起的本地进程)
├── POST /mcp (Streamable HTTP)
└── GET /sse (旧版 HTTP+SSE)
│ TCP 127.0.0.1:8765
│ newline-delimited JSON
┌────────────▼─────────────┐
│ mcp_bridge.ms │
│ TcpListener + WinForms │
│ Timer pump (main thread)│
├──────────────────────────┤
│ mcp_json.ms JSON 引擎 │
│ mcp_core.ms 注册/派发 │
│ mcp_net.ms TCP 泵 │
│ ... 14 个功能模块 │
└────────────┬─────────────┘
│
3ds Max scene线协议
ASCII-only,换行分隔 JSON。所有非 ASCII 字符(中文、日文……)在 Python 侧用 本地 ANSI 代码页字节转义成
\u00XX序列往返,避免任何编码歧义。Max 侧单字节解码,Python 侧用
mbcs(Windows)编码/解码。每个工具调用自动包在
theHold里(由调度器按注册表的undoable标志决定),所以 AI 的每一步都可撤销。
兼容性
项目 | 支持范围 |
3ds Max | 2020 – 2027+(64-bit) |
Max 语言版本 | ENU / CHS / CHT / JPN / KOR / DEU / FRA / ESP / ITA / PTB / RUS |
Python(服务端) | 3.8+,纯标准库,零运行时依赖 |
MCP 传输 | stdio、Streamable HTTP( |
MCP 协议 |
|
客户端 / 模型 | 不限。客户端支持 MCP 即可 —— Claude、GPT、GLM、DeepSeek、Kimi、通义 等都行 |
操作系统 | Windows 10 / 11 |
关于 pymxs:不使用,所以 2020 的 Python 2.7 完全不是问题。
快速开始
1. 安装
cd 3dsmax-ai-mcp
python scripts/install.py --yes安装器会:
扫描所有 3ds Max 用户脚本目录(
%LOCALAPPDATA%\Autodesk\3dsMax\<年份> - 64bit\<语言>\scripts)。把 17 个 MAXScript 模块复制到
<scripts>\3dsmax-mcp\。写入启动自动加载器
<scripts>\startup\3dsmax-mcp-bridge.ms与端口/语言配置<scripts>\3dsmax-mcp\3dsmax-mcp.ini。把 Python 服务端复制到
%LOCALAPPDATA%\3dsmax-mcp\maxmcp。注册 MCP 客户端(Cursor / Claude Desktop)。
写安装清单
%LOCALAPPDATA%\3dsmax-mcp\install-manifest.json(供诊断与卸载使用)。
常用参数:
python scripts/install.py --list # 只看检测结果,不安装
python scripts/install.py --client workbuddy cursor cline --yes
python scripts/install.py --client print # 只打印 JSON,贴到任何客户端
python scripts/install.py --port 9000 --language en --profile modeling
python scripts/install.py --http-port 8770 # 额外提供 HTTP 端点(云端客户端用)
python scripts/install.py --uninstall # 卸载2. 重启 3ds Max
自动加载器只在 Max 启动时扫描 scripts\startup。所以装完必须重启 Max。
重启后打开 MAXScript Listener,应看到类似横幅:
========================================================
3ds Max MCP bridge
----------------------------------------------------
Status : listening
Address : 127.0.0.1:8765
3ds Max : 2020 (major 22)
Commands : 346
Language : zh
Pump timer : true
----------------------------------------------------
Stop with : mcpBridgeStop()
Diagnose : mcpSelfTest()
========================================================不重启也行:在 Listener 里执行
fileIn @"C:\Users\<你>\AppData\Local\Autodesk\3dsMax\2020 - 64bit\ENU\scripts\3dsmax-mcp\mcp_bridge.ms"
3. 自检
python scripts/doctor.py逐环检查并给出结论:
-- environment
[ok] Python 3.13.14 at ...\python.exe
[ok] MCP server package (installed)
375 tools (animation=59, files=8, modeling=77, ...)
-- 3ds Max side
[ok] 3ds Max 2020 [CHS]: 17 bridge modules + autoloader
[ok] 3ds Max 2020 [ENU]: 17 bridge modules + autoloader
[ok] 3ds Max is running
-- connectivity
[ok] Bridge listening on port 8765
[ok] Live handshake succeeded
handlers=346 language=zh 3ds Max year=2020
[ok] Language: zh from Max UI 'CHS' (auto)
The server follows this while its own language is 'auto'.
-- MCP clients
[ok] WorkBuddy: 3dsmax-mcp registered
[ok] Cursor: 3dsmax-mcp registered
[ok] Registered with 3 MCP client(s)Max 未运行时对应的一行是 [warn] No bridge listening on 8765, 8766, ...,其余检查照常通过。
没装的客户端不会报警告,只有"装了但没注册"才会提示。
在 AI 客户端中使用
Cursor
安装器会写入 ~\.cursor\mcp.json:
{
"mcpServers": {
"3dsmax-mcp": {
"command": "C:\\Users\\<你>\\AppData\\Local\\Programs\\Python\\Python313\\python.exe",
"args": ["-m", "maxmcp", "--port", "8765", "--language", "auto", "--profile", "full"],
"env": {
"PYTHONPATH": "C:\\Users\\<你>\\AppData\\Local\\3dsmax-mcp",
"MAXMCP_PORT": "8765",
"MAXMCP_LANGUAGE": "auto"
}
}
}
}重启 Cursor,在 Settings → MCP 里应看到 3dsmax-mcp 已连接、375 个工具。
Claude Desktop
%APPDATA%\Claude\claude_desktop_config.json,结构同上。
任意其他 MCP 客户端
python -m maxmcp --no-stdiostdio 上的 JSON-RPC 服务端,initialize → tools/list → tools/call 标准流程。
不限定模型:客户端用 Claude、GPT、GLM、DeepSeek 还是 Kimi 都一样。
可以这样跟 AI 说
「创建一个 6 面盒子,加 3 级 TurboSmooth,然后转成可编辑多边形。」
「给这个角色生成一套脊椎+四肢骨骼链,绑上 Skin 并自动权重。」
「把这个高模的细节烘焙成法线贴图,输出 2048。」
「布置一个三点布光,建一个物理相机,渲一张 1920×1080 的静帧到 D:\renders。」
「把选中对象导出成 FBX,用 UE5 预设,单位改成厘米。」
「把场景里所有以
SM_开头的对象列出来,统计每个的面数。」
工具一览
共 375 个工具,分 8 类:
分类 | 数量 | 覆盖内容 |
| 33 | 桥接控制、握手、脚本逃逸仓、undo/redo 事务、单位与时间配置、内省 |
| 17 | 场景新建/打开/保存/合并、图层、资源与丢失贴图重链 |
| 8 | 文本读写、目录列举、复制/删除、文件信息 |
| 61 | 基础体与样条、变换/对齐/镜像/轴心、层级与父子、组、选择、隐藏冻结、克隆阵列、布尔/ProBoolean |
| 77 | 可编辑多边形(点/边/面全套操作)、修改器栈管理与 30+ 常用修改器、放样/扫掠/路径变形 |
| 69 | 材质读写与赋给、PBR/Arnold/V-Ray/Corona/FStorm 材质、贴图节点、材质库、UVW 贴图与 Unwrap、灯光、相机、环境 |
| 59 | 关键帧与曲线、控制器与表达式、约束、骨骼与 IK、蒙皮权重、Morpher |
| 51 | 渲染引擎与设置、单帧/帧序列/批渲染、渲染元素、视口截图、烘焙(AO/法线/光照/贴图)、导入导出(FBX/OBJ/glTF/USD/ABC/STL/3DS)与引擎预设 |
查看完整列表:
python -m maxmcp --list-tools几个值得一提的:
bridge_status/bridge_selftest—— 连接状态;Max 内 13 项自检(JSON 往返、中文往返、界面语言探测、对象创建、undo、TCP 监听)。execute_maxscript—— 逃逸仓。任何没被工具覆盖的操作,AI 可以直接写 MAXScript 执行(asOneUndo包裹)。undo_last/begin_undo/end_undo/cancel_undo—— 显式事务,方便让 AI 把"一整套建模操作"合成一步撤销。bridge_capabilities—— 运行时报告桥接模块、命令数、当前语言、Max 版本,AI 可以自己发现能力边界。find_missing_assets/relink_assets—— 换机器打开工程时的贴图重链。
工具档位
375 个工具全塞进上下文会明显占额度。用 --profile 按需裁剪:
档位 | 工具数 | 包含分类 |
| 119 | system + scene + objects + files |
| 196 | core + modeling |
| 188 | core + shading |
| 178 | core + animation |
| 170 | core + pipeline |
| 375 | 全部(默认) |
python -m maxmcp --profile modeling
# 或改配置持久化
python -m maxmcp --list-profiles也可以在客户端配置的 args 里加 "--profile", "lookdev"。
中英双语切换
两种语言同时生效,不需要重启,而且默认自动跟随 3ds Max 的界面语言。
每个工具都带
description_zh和description_en。参数描述内联为
中文 | English。set_language("zh" | "en" | "auto")是普通工具调用,AI 自己就能切。
自动语言(默认)
安装时 --language 默认是 auto:服务端和桥接都会去读 3ds Max 的界面语言
(ENU / CHS / CHT / JPN …,从 Max 的用户配置目录名读出),然后自动选用中文或英文。
3ds Max 界面语言 | 插件使用 |
| 中文 |
| 中文(给的是简体,比英文更可读) |
| English |
其他( | English(没有对应词条,退回英文) |
所以一台中文 Max 的机器和一台英文 Max 的机器,用同一份安装、同一份配置, 各自看到自己语言的消息 —— 不需要任何手动设置。
// AI 也可以随时显式切换,或交回自动
{ "name": "set_language", "arguments": { "language": "en" } } // 固定英文
{ "name": "set_language", "arguments": { "language": "auto" } } // 跟随 Max固定 vs 自动的规则:
默认
auto。服务端在initialize时和首次成功调用后各探测一次桥接语言,采纳它。一旦显式
set_language("zh"|"en"),就固定下来(写入config.json),不再跟随。set_language("auto")交回自动。
固定启动语言(不再跟随):
python -m maxmcp --language en # 或 zh
# 或环境变量 MAXMCP_LANGUAGE=en
# 或安装时 python scripts/install.py --language en
# 或改 %USERPROFILE%\.3dsmax-mcp\config.json 里的 "language"桥接端自己的提示信息(Listener 横幅、错误文本)同样双语,由 max\3dsmax-mcp.ini
的 language= 控制(auto / zh / en)。横幅会直接告诉你它选了哪个:
Language : zh (auto: CHS)
Language : en (pinned)接入国产 AI 客户端
MCP 是"客户端能力",不是"模型能力"。 智谱 GLM、DeepSeek、Kimi、通义 都是模型; 真正挂载 MCP 工具的是客户端。所以只要客户端支持 MCP,用哪个模型都无所谓。
两种接入方式
方式 | 适用 | 传输 |
客户端拉起本地进程 | WorkBuddy、Cursor、Claude Code、Cline、Roo Code、Windsurf、DeepSeek Harness(本地) | stdio(默认,无需额外配置) |
按 URL 注册 | 智谱 BigModel、阿里云百炼等云端 Agent 平台,以及任何跑在浏览器/云端的客户端 | Streamable HTTP 或 HTTP+SSE |
云端平台不可能拉起你本机的进程,所以它们只吃 HTTP。插件为此内置了 HTTP 传输。
stdio 接入(推荐,零额外配置)
python scripts/install.py --client workbuddy cursor cline --yes安装器会自动检测机器上装了哪些客户端并写入各自的配置。目前认识这些:
客户端 | 配置文件 |
WorkBuddy |
|
Cursor |
|
Claude Desktop |
|
Claude Code |
|
Cline (VS Code) |
|
Roo Code (VS Code) |
|
Windsurf |
|
写入是合并的(不动其他 server),并且每次写入前先备份成 .bak。
看看检测到什么:
python scripts/install.py --list其他客户端(Cherry Studio、Chatbox、LobeChat、DeepSeek Harness…)拿现成的 JSON:
python scripts/install.py --client printHTTP 接入(云端平台 / 按 URL 注册)
python scripts/install.py --client print --http-port 8770这会输出 URL 形式的配置,并生成一个启动器
%LOCALAPPDATA%\3dsmax-mcp\start-http.bat:
{
"mcpServers": {
"3dsmax-mcp": {
"type": "http",
"url": "http://127.0.0.1:8770/mcp"
}
}
}双开这个启动器(或它里面的命令)并保持窗口开着,然后:
端点 | 用途 |
| Streamable HTTP(2025-03-26+ 规范)。也支持批量请求 |
| 旧版 HTTP+SSE(2024-11-05),老客户端和部分国产平台还在用 |
| 探活,返回服务状态 |
手动启动:
python -m maxmcp --transport http --http-port 8770
python -m maxmcp --transport both # stdio + http 同进程
# 需要暴露到局域网/公网时,务必加令牌
python -m maxmcp --transport http --http-host 0.0.0.0 --http-token 你的密钥⚠️ 安全:HTTP 端点默认只绑
127.0.0.1。一旦改绑到其他地址, 任何能访问该端口的人都能在你的 Max 里执行任意 MAXScript。 只在可信网络这么做,并且一定设置--http-token(客户端用Authorization: Bearer <token>)。绑到非回环地址时服务端会打印醒目警告。
云端平台要访问你本机的
127.0.0.1,需要自己做端口转发(frp / ngrok / 反向代理)。 这属于网络暴露,风险自负 —— 建议只在内网使用。
工具名长度
部分客户端会把工具名规范成 mcp__<服务器名>__<工具名> 并按 64 字符截断。
本插件最长的工具名是 28 字符,加前缀后 48 字符,在截断线以内。
配置
优先级:环境变量 > 用户配置 > 内置默认。
用户配置:%USERPROFILE%\.3dsmax-mcp\config.json(可用 MAXMCP_HOME 改目录)。
{
"host": "127.0.0.1",
"port": 8765,
"port_scan": 10,
"timeout_s": 120.0,
"connect_timeout_s": 2.0,
"language": "auto",
"bilingual": true,
"tool_profile": "full",
"max_response_chars": 200000,
"disabled_categories": [],
"transport": "stdio",
"http_host": "127.0.0.1",
"http_port": 8770,
"http_token": "",
"http_path": "/mcp"
}环境变量 | 说明 |
| 桥接端口,默认 |
|
|
| 工具档位 |
|
|
| 单次调用超时(秒) |
| 默认 |
| 配置目录 |
|
|
| HTTP 绑定地址与端口 |
| HTTP 访问令牌( |
| HTTP 端点路径,默认 |
port_scan 让服务端在 8765 被占用时自动往后试 8766…8774。
端口必须两边一致。 桥接从
3dsmax-mcp.ini读端口,服务端从config.json读端口。 两者不一致时服务端会在错误的端口上找桥接,每次调用都报"没有桥接在监听"。 安装器是唯一同时知道两边的地方,所以它会自动同步port/language/tool_profile到config.json(其余键保持不动)。手动改端口后重跑一次install.py即可。另外,运行时的
--port/--profile是一次性的,不会被写回配置文件 —— 只有set_language会持久化,且只持久化语言本身。
示例
examples/ 里有:
prompts.md—— 16 条可直接粘给 AI 的提示词(建模 / 材质 / 灯光 / 动画 / 绑定 / 烘焙 / 导出 / 场景整理),每条都注明预期调用的工具。mcp-config.samples.json—— Cursor 与 Claude Desktop 的配置样例。python/direct_bridge.py—— 绕过 MCP,直接用 Python 跟桥接对话,适合调试和批处理。maxscript/listener_cheatsheet.ms—— Max Listener 可用的函数速查(mcpSelfTest()、mcpNetStatus()、编码自检等)。
故障排查
先跑诊断:
python scripts/doctor.py症状 | 原因与处理 |
| Max 没开,或装完没重启 Max。重启,或在 Listener 里手动 |
工具调用超时 | 桥接的 |
中文变成 | 服务端与 Max 的 ANSI 代码页不一致。跑 |
语言不对(该中文却出英文) | 跑 |
|
|
端口被占用 | 改 |
工具太多、上下文爆 | 换小档位 |
HTTP 客户端连不上( | HTTP 端点不是常驻服务,得先跑 |
HTTP 返回 401 | 服务端设了 |
国产平台(智谱/百炼)加不上 | 它们按 URL 注册,只吃 HTTP/SSE,且访问不到你本机的 127.0.0.1。需要端口转发把端点暴露出去。 |
Max 重启后语言变了 | 若 |
Max 内自检:连上之后让 AI 调 bridge_selftest,或在 Listener 里
mcpSelfTest()项目结构
3dsmax-ai-mcp/
├── src/maxmcp/ # Python MCP 服务端(stdlib-only)
│ ├── server.py # JSON-RPC 分发、tools/list、tools/call、自动语言
│ ├── http_transport.py # Streamable HTTP (/mcp) + 旧版 HTTP+SSE (/sse)
│ ├── bridge.py # TCP 客户端与错误类型
│ ├── protocol.py # 无依赖 JSON-RPC + stdio 传输
│ ├── wire.py # ANSI 线编解码(中文往返的关键)
│ ├── i18n.py # 双语消息层 + Max 语言码映射
│ ├── config.py # 配置加载
│ └── catalog/ # 375 个工具定义
│ ├── schema.py # Tool 类 + 档位 + DSL
│ ├── core.py # system / scene / files
│ ├── objects.py # objects
│ ├── modeling.py # modeling
│ ├── shading.py # shading
│ ├── animation.py # animation
│ └── pipeline.py # pipeline
├── max/ # MAXScript 桥接(装到 Max 用户脚本目录)
│ ├── mcp_bridge.ms # 入口:加载 17 个模块、启停桥接、语言解析
│ ├── mcp_json.ms # 纯 MAXScript JSON 引擎
│ ├── mcp_core.ms # 命令注册表、消息表、节点解析、语言探测
│ ├── mcp_net.ms # TCP 监听 + 主线程 Timer 泵 + 调度
│ ├── mcp_system.ms # 系统 / undo / 单位 / 脚本逃逸仓
│ ├── mcp_objects.ms # 对象与样条
│ ├── mcp_poly.ms # 可编辑多边形
│ ├── mcp_modifiers.ms # 修改器栈与修改器
│ ├── mcp_shading.ms # 材质 / 贴图 / UVW
│ ├── mcp_lights.ms # 灯光 / 相机 / 环境
│ ├── mcp_animation.ms # 动画 / 控制器 / 约束
│ ├── mcp_rigging.ms # 骨骼 / IK / 蒙皮 / Morpher
│ ├── mcp_render.ms # 渲染
│ ├── mcp_bake.ms # 烘焙
│ ├── mcp_export.ms # 导入导出
│ ├── mcp_scene.ms # 场景 / 图层 / 资源
│ └── mcp_selftest.ms # Max 内 13 项自检
├── scripts/
│ ├── install.py # 安装 / 卸载 / 客户端注册(7 种客户端)
│ ├── doctor.py # 逐环诊断
│ ├── verify.py # 静态完整性校验(括号、禁用构造、工具↔handler、速查表符号)
│ └── test_e2e.py # 端到端 MCP 测试(stdio + HTTP + SSE + 自动语言)
├── docs/BRIDGE_CONVENTIONS.md # 桥接契约与编码规范
├── skills/3dsmax-mcp-dev/ # 给 AI 智能体用的开发 skill
│ └── SKILL.md
├── examples/
│ ├── prompts.md # 16 条可直接使用的提示词
│ ├── mcp-config.samples.json
│ ├── python/direct_bridge.py
│ └── maxscript/listener_cheatsheet.ms
├── pyproject.toml
├── CHANGELOG.md
└── LICENSE开发
服务端零第三方依赖,直接跑:
git clone git@github.com:vino3dx/3dsmax-ai-mcp.git && cd 3dsmax-ai-mcp
# 命令行
python -m maxmcp --help # 全部参数
python -m maxmcp --list-tools # 当前档位暴露的工具
python -m maxmcp --list-profiles # 各档位规模
# 静态校验:括号平衡、禁用构造、工具↔handler 一一对应、模块加载列表、
# Listener 速查表引用的桥接符号是否仍存在
python scripts/verify.py
# 服务端自检:catalog 完整性 + 双语描述 + 线编解码往返(含中文)
PYTHONPATH=src python -m maxmcp --selftest-python
# 端到端:用 MockBridge 顶替 Max,验证 initialize / tools/list / tools/call /
# 中文往返 / 错误透传 / 语言切换 / 配置持久化
PYTHONPATH=src python scripts/test_e2e.py修改 MAXScript 时的硬约束
MAXScript 在本机无法用批处理可靠验证(3dsmaxbatch.exe 在本环境不执行脚本),所以我们主动禁用了一批无法静态验证的语法,全部由 verify.py 强制:
❌
struct❌ lambda / closure
❌
fn = (...)形式的函数赋值❌ 行尾反斜杠续行
❌
.NET泛型集合❌ 手动
theHold(仅mcp_core.ms例外,由它统一包裹)
新增工具时:
在
max/mcp_*.ms里mcpRegister <命令名> <handler> undoable:<bool> label:<string>在
src/maxmcp/catalog/*.py里用tool(...)定义同名工具(中英双语描述 + schema)跑
python scripts/verify.py—— 它会检查两边一一对应
细节见 docs/BRIDGE_CONVENTIONS.md。
许可
MIT,见 LICENSE。
Available Tools
375 toolsalign_objectsADestructive
把多个对象对齐到目标对象(位置/旋转/缩放可分别开关)。用于批量摆放道具、对齐相机与瞄准点。 [English] Align several objects to a target (position/rotation/scale toggles). Great for placing props or aligning cameras.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | 是否对齐缩放,默认否。 | Align scale, default false. | |
| target | Yes | 对齐目标对象名。 | Target object name. | |
| objects | No | 要对齐的对象列表;省略则用当前选择。 | Objects to align; omit for the selection. | |
| position | No | 是否对齐位置,默认是。 | Align position, default true. | |
| rotation | No | 是否对齐旋转,默认否。 | Align rotation, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the mutation risk is known. The description adds that position, rotation, and scale can be toggled independently, which is useful. However, it does not disclose how alignment is computed (e.g., pivot vs. bounding box) or whether existing transforms are overwritten in place.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly short and front-loaded, but it repeats the same content in Chinese and English, adding redundant length. The core information is present, but the duplication prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The parameter schema covers the inputs well, and the description supplies practical use cases. However, for a tool that modifies objects, it lacks detail about alignment reference (pivot, center, bounding box), coordinate space, and whether the operation is reversible beyond the destructiveHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described including defaults. The description merely restates the existence of position/rotation/scale toggles without adding meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'align' and the resource ('several objects to a target'), and gives concrete use cases like placing props and aligning cameras. It does not explicitly differentiate from sibling tools such as cam_align_to_view or light_align_to_object, but the object-target framing is sufficiently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: batch alignment for props, cameras, and aim points. It does not mention alternatives or when not to use the tool, but the use cases are clear enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_bakeADestructive
把程序化/约束驱动的轨迹按帧采样并写入显式关键帧——这正是导出到游戏引擎前必须做的事。引擎无法求值 Max 的程序化控制器、约束、表达式,所以 FBX 导出前一定要先烘焙。返回写入的关键帧数量。 [English] Sample a procedural/constraint-driven track per frame and write explicit keyframes - this is exactly what you must do before exporting to a game engine. Engines cannot evaluate Max's procedural controllers, constraints or expressions, so ALWAYS bake before FBX export. Returns the number of keys written.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | 采样步长,默认 1。 | Sampling step, default 1. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| endFrame | No | 结束帧,默认动画范围终点。 | Last frame, default animation range end. | |
| properties | No | 要烘焙的属性;省略则烘焙 position/rotation/scale。 | Properties to bake; omit for position/rotation/scale. | |
| startFrame | No | 起始帧,默认动画范围起点。 | First frame, default animation range start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses concrete behavior beyond annotations: per-frame sampling, writing explicit keyframes, and returning the key count. It aligns with the destructiveHint annotation and adds valuable rationale about engine limitations. It could mention that existing keys may be overwritten, but the destructive hint already covers the risk profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bilingual description is compact and purposeful, with each sentence contributing either the action, the rationale, or the return value. The English/Chinese repetition is not waste given the dual-language audience, and the key info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the operation, the rationale, and the return value, while the schema handles all parameter defaults. The only notable gap is not mentioning the closely related sibling anim_bake_range, which could leave an agent unsure which bake tool to choose in some scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (step, objects, endFrame, properties, startFrame) documented in the schema itself. The description adds no parameter-specific semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the specific operation: sampling a procedural/constraint-driven track per frame and writing explicit keyframes, with a clear purpose of preparing for game engine export. It also states the return value (number of keys written). However, it does not explicitly distinguish itself from the sibling tool anim_bake_range, so it doesn't fully earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong when-to-use guidance: 'ALWAYS bake before FBX export' because engines cannot evaluate procedural controllers, constraints, or expressions. This is clear and actionable context. It does not mention alternatives or when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_bake_rangeADestructive
对整个层级(对象及其所有子对象)在帧范围内逐帧烘焙为显式关键帧。烘焙重骨骼/约束驱动的角色后再导出,可避免引擎端动画丢失。返回写入的关键帧数量。 [English] Bake an entire hierarchy (object and all descendants) into explicit keys over a frame range. Bake heavily rigged/constrained characters before export so the animation survives. Returns the number of keys written.
| Name | Required | Description | Default |
|---|---|---|---|
| step | No | 采样步长,默认 1。 | Sampling step, default 1. | |
| objects | No | 层级根对象名列表;省略则用当前选择。 | Hierarchy root names; omit for the current selection. | |
| endFrame | No | 结束帧,默认动画范围终点。 | Last frame, default animation range end. | |
| properties | No | 要烘焙的属性;省略则烘焙 position/rotation/scale。 | Properties to bake; omit for position/rotation/scale. | |
| startFrame | No | 起始帧,默认动画范围起点。 | First frame, default animation range start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the mutation aspect is covered. The description adds the purpose (export survival) and the return value (number of keys written), which is useful context. However, it does not describe what happens to existing keys or other side effects beyond the annotation. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core action, and structured in two sentences (in both Chinese and English). It avoids fluff and every sentence earns its place: first states what it does, second gives usage context and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 optional parameters, the description covers the main behavior, usage scenario, and return value. The schema already explains all parameters, so the description does not need to repeat them. It lacks explicit mention of default selections or frame ranges, but those are in the schema. Overall, it is sufficiently complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%—every parameter has a description in the input schema. The tool description does not mention any parameter details, so it adds no meaning beyond the schema. With high schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('bake') on a specific resource ('entire hierarchy') with explicit scope ('object and all descendants') and outcome ('explicit keys over a frame range'). It also distinguishes itself from the sibling anim_bake by emphasizing the hierarchy scope, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete scenario: 'Bake heavily rigged/constrained characters before export so the animation survives.' This implies the appropriate context and purpose, though it does not explicitly mention alternatives like anim_bake or state when not to use this tool. The guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_clear_animationADestructive
清除对象上的动画关键帧。给定 properties 只清这些轨道,否则清空 position/rotation/scale 三条变换轨道。 [English] Clear animation keys on an object. With properties only those tracks are cleared, otherwise the position / rotation / scale transform tracks are.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| properties | No | 要清除的属性名列表;省略则清 position/rotation/scale。 | Tracks to clear; omit for position/rotation/scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag destructiveHint=true, and the description adds important behavioral detail about what is affected: only the specified tracks, or the three transform tracks by default. This helps the agent understand exactly what will be removed and what will be preserved, beyond the annotation's simple destructive flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded, and bilingual without redundancy. Every sentence contributes meaningful information: what is cleared, when properties narrows the scope, and the default track set.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description and schema together cover the essential call details: target objects, optional property list, default transform tracks, and destructive behavior. It could be more explicit about whether all keyframes on a track are removed or whether undo is supported, but for a simple two-parameter tool this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description largely mirrors the schema's parameter explanations. It reinforces the semantics of properties and the default object selection, but adds little beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: clearing animation keys on an object, with a specific resource (animation tracks). It also defines the fallback scope (position/rotation/scale) when no properties are given, which distinguishes it from generic animation tools like anim_delete_keys or anim_offset_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear conditional rule: if properties is provided, only those tracks are cleared; otherwise position/rotation/scale are cleared. It does not explicitly name alternative sibling tools or state when not to use it, but the context is unambiguous for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_delete_keysADestructive
删除某个属性的关键帧。给定 frames 则只删这些帧,否则删除该轨道上的全部关键帧。 [English] Delete keyframes of a property. With frames, only those frames are removed; otherwise every key on the track is deleted.
| Name | Required | Description | Default |
|---|---|---|---|
| frames | No | 要删除的帧号列表;省略则清空整条轨道。 | Frames to delete; omit to clear the whole track. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds valuable precision about what gets destroyed: either only the supplied frames or every key on the track. This is exactly the kind of destructive scope detail that helps an agent avoid accidentally clearing more animation than intended.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences deliver the core action and the destructive conditional up front with no filler. The English version mirrors the Chinese text efficiently, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all three parameters, and the description covers the essential operation-level behavior: partial deletion via frames versus full track deletion. Since there is no output schema and the destructive effect is the key information, nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has detailed descriptions, so the baseline is 3. The description restates the frames behavior and confirms the property operand, but it does not add new constraints, examples, or semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact operation ('Delete keyframes of a property') and adds the key conditional behavior: with frames, only those frames are removed; otherwise the whole track is cleared. This makes it clearly distinguishable from sibling tools like anim_set_keys, anim_get_keys, and anim_clear_animation even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful conditional guidance for the frames parameter: pass frames to delete only those frames, or omit frames to clear the entire property track. However, it does not explicitly explain when to use this tool versus related alternatives such as anim_clear_animation or anim_set_keys, so tool-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_easeBDestructive
设置某一帧关键帧的进出切线类型(smooth/linear/step/slow/fast)及可选手柄值,用于控制缓动。 [English] Set the in/out tangent type (smooth/linear/step/slow/fast) and optional handle values of the keyframe at a frame, to shape easing.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | 关键帧所在帧。 | Frame of the keyframe. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| inHandle | No | 入手柄值(可选)。 | In handle value (optional). | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. | |
| inTangent | No | 入切线类型。 | In tangent type. | |
| outHandle | No | 出手柄值(可选)。 | Out handle value (optional). | |
| outTangent | No | 出切线类型。 | Out tangent type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description does not need to repeat that. However, it does not disclose key behavioral details such as whether the keyframe must already exist, what happens if the handle value conflicts with the tangent type, or whether existing easing is overwritten. These are significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two lines (bilingual). It front-loads the action and the key parameters, and every sentence serves a purpose. There is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and the rich schema (all params documented), the description covers the core purpose. However, it omits important operational details like the requirement of an existing keyframe and the semantics of handle values relative to tangent types. This could lead to incorrect usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds a general purpose ('to shape easing') but does not elaborate on the interplay between tangent types and handle values, nor does it clarify the meaning of 'handle' beyond what the schema states. It does not compensate for any missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'set' and a specific resource: the in/out tangent type of a keyframe at a frame, with optional handle values. It is unambiguous about what it does. However, it does not explicitly differentiate itself from sibling animation tools like anim_set_interpolation or anim_set_key, though the focus on tangent types makes it distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is specifically for easing, nor does it contrast with anim_set_interpolation or other animation tools. The context signal shows many sibling animation tools, but the description gives no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_get_controllerARead-only
返回某个属性当前使用的控制器类名及其关键帧数量。 [English] Return the controller class name currently used by a property and its key count.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则取选择中的第一个。 | Object names; the first of the selection if omitted. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the output content (class name and key count) but does not disclose edge-case behavior such as missing controllers, invalid properties, or whether the fallback to selection affects results beyond the schema note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact bilingual statement with no filler. The Chinese and English versions each convey the same core information in two clauses, and the key output is stated up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool, the description together with the schema covers what is needed: the property to inspect, the optional object list, and the returned information. Since there is no output schema, naming the two return values helps, but the exact return structure is still left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description repeats the property examples but adds no new meaning beyond what the input schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('return') and names the exact resource: the controller class name and key count currently used by a given property. This clearly distinguishes it from the sibling anim_set_controller, which performs the opposite write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read-only nature and 'currently used' phrasing imply this is a query/inspection tool, but the description never explicitly states when to prefer it over alternatives or mentions the corresponding setter. No exclusion guidance is provided, though the intent is reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_get_frameARead-only
读取当前时间轴帧号与时间值。做关键帧操作前先确认当前帧,避免把关键帧写错位置。 [English] Read the current timeline frame and time value. Check it before keying, otherwise keys land on the wrong frame.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive. The description adds value beyond annotations by specifying that it returns both the frame number and time value, and by explaining the practical risk of skipping this read before keying.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the core action appears in the first line, followed by a practical caution. The bilingual repetition is slightly redundant, but not enough to hurt clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool, the description is complete: it states what is read, what the output contains, and when to use it. No output schema exists, but the description sufficiently covers the expected return semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 and there is nothing for the description to add about parameter meanings. The description correctly implies that no configuration is needed to read the current frame.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('current timeline frame and time value'), making the tool's purpose clear. It does not explicitly name or contrast a sibling like anim_goto_frame, but 'current' versus 'goto' is enough to differentiate in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: check the current frame before keying to avoid placing keys on the wrong frame. It does not mention when not to use it or point to an alternative for moving the time slider, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_get_keysARead-only
读取某个属性的所有关键帧(帧号、值、进出切线类型),支持 limit/offset 分页。 [English] Read every keyframe of a property (frame, value, in/out tangent type). Paginated with limit/offset.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. | |
| objects | No | 对象名列表;省略则取选择中的第一个。 | Object names; the first of the selection if omitted. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation readOnly/non-destructive; the description adds the concrete read payload (frame, value, tangent types) and pagination behavior via limit/offset. It doesn't mention empty-result or error behavior, but the annotation lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences convey the core function exactly, with no filler. The key action and return values are front-loaded before the pagination note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool returns, and the schema/annotations cover parameters and safety. No output schema exists, but the return shape is stated, so the agent has enough to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including defaults and the objects fallback to selection. The description only restates pagination and property scope, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('read/读取'), resource ('every keyframe of a property'), and the returned data shape (frame, value, in/out tangent type). It is clear, but it does not explicitly contrast with sibling tools such as anim_get_key_stats or anim_get_controller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: when you need all keyframes of a property, this is the tool. However, the description gives no explicit when-to-use guidance or alternatives, leaving the agent to infer selection from the name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_get_key_statsARead-only
统计每个对象各变换轨道的关键帧数量,烘焙重角色前先评估规模很有用。支持分页。 [English] Count keyframes per object across transform tracks - useful to gauge the cost before baking a heavy rig. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. | |
| objects | No | 对象名列表;省略则统计整个选择。 | Object names; the current selection if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it operates per object, counts transform-track keyframes, and is paginated, which goes beyond the raw annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and adds a relevant use case. The bilingual duplication costs a small amount of conciseness, but it remains efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only statistics tool with fully documented parameters, the description covers what it counts, why it is useful, and that it is paginated. With annotations covering safety, nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents limit, offset, and objects. The description mentions pagination and object-level counting but does not add meaningful parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: count keyframes per object across transform tracks. This clearly identifies what the tool does and distinguishes it from sibling animation tools like anim_get_keys or anim_delete_keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete use case: gauging cost before baking a heavy rig. It also notes pagination, but does not explicitly mention alternatives or when not to use the tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_goto_frameADestructive
跳到指定帧(设置当前时间滑块位置)。不播放,仅定位。 [English] Jump to a frame (set the current time slider). Locates only, does not play.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | 目标帧。 | Target frame. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and has a destructive hint. The description adds meaningful detail beyond that: it sets the current time slider position and does not trigger playback. This clarifies the practical effect of the mutation, though 'locates only' could downplay the destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact, with the core action and the key behavioral caveat ('does not play') front-loaded. Both English and Chinese versions serve the same clear purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple single-parameter tool with a clear action, and the description covers the essential behavior. There is no output schema, but none is needed for a navigation/setting operation; minor details like frame range clamping or return value are not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description ('Target frame') already explains frame. The tool description reinforces the meaning by linking the frame to the time slider but adds no significant semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (jump/set), a clear resource (current time slider/frame), and an explicit boundary: 'does not play.' This distinguishes it from playback and frame-reading siblings like anim_play and anim_get_frame without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Locates only, does not play' gives a clear usage context: use it to position the time slider without starting playback. It provides a relevant exclusion, though it does not name alternative tools such as anim_play or anim_get_frame explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_offset_keysADestructive
把整条轨道在时间上整体平移 offset 帧(可为负),所有关键帧一起移动。 [English] Shift a whole track in time by offset frames (may be negative); every key moves together.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | Yes | 平移的帧数(可为负)。 | Frames to shift (may be negative). | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description explicitly states the operation is non-destructive in terms of key values, but shifts timing. It mentions all keys move together, implying uniformity, and implies offset can be negative. This adds valuable behavioral context beyond the annotations, clarifying the nature of the destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences (one in Chinese, one in English) with zero redundancy. It front-loads the main action and includes the critical note about all keys moving together. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that shifts animation keys, the description covers the main operation and parameters. Since there's no output schema, it doesn't explain return values, but that's not critical for a transformation tool. It could mention boundary conditions (e.g., offset beyond frame range) but that's likely handled elsewhere. Adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes offset, objects, and property. The description's phrase 'offset frames' adds a tiny bit of context (frames), but it's mostly redundant. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'shift' and the resource 'a whole track in time by offset frames', and explicitly notes that all keys move together. It distinguishes itself from related tools like anim_scale_keys and anim_goto_frame by focusing on time offset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage: apply when you need to shift animation keys uniformly in time. It doesn't explicitly exclude alternatives like anim_scale_keys (which scales key timing), but the clarity of 'shift' vs 'scale' makes the choice evident. No explicit when-not guidance is provided, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_playCDestructive
播放 / 暂停 / 停止动画。action=play 开始播放,pause 暂停,stop 停止。 [English] Play / pause / stop the animation. action=play starts, pause pauses, stop stops.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | 操作。 | Action. | |
| toFrame | No | 播放结束帧(可选)。 | Playback end frame (optional). | |
| fromFrame | No | 播放起始帧(可选)。 | Playback start frame (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds no behavioral context beyond restating the three actions; it does not disclose side effects, what happens on stop, or any state changes beyond playback control.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loaded, with the operation summary before the action mapping. The bilingual repetition and the redundant action= sentence add slight noise, but overall it remains appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core actions are covered and the optional frame parameters are documented in the schema. The description is incomplete in that it never specifies viewport versus preview playback, the effect of fromFrame/toFrame during pause/stop, or expected return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's action= mapping only restates the enum names and does not add meaningful semantics beyond what the schema already provides for action, fromFrame, or toFrame.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names a specific resource ('the animation') with explicit verbs: play, pause, stop. However, it does not distinguish itself from the closely named sibling anim_play_preview or clarify whether it controls viewport playback, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as anim_play_preview or anim_goto_frame. The action enum implies playback control, but no conditions, exclusions, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_play_previewADestructive
生成一段实时预览动画文件(avi/影序)。可指定输出路径与帧范围。生成的预览用于快速检查,不是最终渲染。 [English] Generate a real-time preview animation file (avi / image sequence). Output path and frame range are optional. The preview is for quick checks, not final render.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | 输出文件路径;省略则用临时目录。 | Output path; the temp folder if omitted. | |
| percent | No | 分辨率百分比,默认 100。 | Resolution percent, default 100. | |
| endFrame | No | 结束帧,默认动画范围终点。 | Last frame, default animation range end. | |
| startFrame | No | 起始帧,默认动画范围起点。 | First frame, default animation range start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the write/destructive nature. The description adds useful context that output is a low-quality quick preview, but it doesn't disclose additional traits such as overwrite behavior or resource cost. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core function, then optional parameters, then usage caveat. The bilingual format doubles the length but is justified by the mixed-language audience. No filler or redundant sentences beyond the translation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 optional parameters fully documented in the schema and destructive behavior flagged in annotations, the description covers purpose, scope, and usage intent. No output schema exists, but for a file-generation tool the output is the written file, so return-value documentation is not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—each parameter already documents defaults and meaning. The description's mention that 'Output path and frame range are optional' simply restates the schema. No additional semantic depth is provided, so it earns the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Generate a real-time preview animation file (avi / image sequence)'. It also clarifies the tool is for quick checks, not final render, which positions it among animation/render siblings. It doesn't explicitly name an alternative tool, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit when-not: 'The preview is for quick checks, not final render.' This tells the agent this is for iteration, not final output. However, it doesn't name a specific alternative like render_animation or render_preview, so while clear, it lacks explicit sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_scale_keysADestructive
时间拉伸整条轨道:以 pivotFrame 为锚点,把所有关键帧时间乘以 factor(factor<1 变快,>1 变慢)。 [English] Time-stretch a whole track about pivotFrame: every key time is multiplied by factor (factor<1 speeds up, >1 slows down).
| Name | Required | Description | Default |
|---|---|---|---|
| factor | Yes | 时间缩放系数,1.0 不变。 | Time scale factor, 1.0 = unchanged. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. | |
| pivotFrame | No | 锚定帧,默认 0。 | Pivot frame, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, so the description doesn't need to restate that. It adds useful behavioral context: all key times are multiplied, factor<1 speeds up, factor>1 slows down, and pivotFrame serves as the anchor. This makes the mutation concrete beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the action and key semantics in the first sentence. Bilingual duplication is acceptable for accessibility and doesn't add material bulk or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers the operation, the factor behavior, and the pivot anchor, while the input schema fully documents all parameters. For a mutation tool without an output schema, this is sufficient for an agent to call it correctly. The only missing piece is explicit guidance on choosing among sibling animation-timing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds relational meaning beyond the schema by explaining that factor scales time and that pivotFrame acts as the anchor point. It could clarify the exact formula when pivotFrame is nonzero, but the core semantics are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'time-stretch a whole track', with a precise mathematical definition (every key time multiplied by factor around pivotFrame). This clearly distinguishes it from sibling animation-timing tools like anim_offset_keys (shifting) and anim_set_keys (setting key values).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description: use this when you want to speed up or slow down an entire track's key times around an anchor. However, there is no explicit guidance about when not to use it or which sibling tool to prefer for shifting vs. scaling keys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_set_controllerADestructive
给某个属性指定控制器:Linear / Bezier / TCB / Euler / Position XYZ / List 等。位置用 bezier_position,旋转用 euler_xyz 或 tcb_rotation,标量用 bezier_float。切换控制器会清空该轨道已有的关键帧。 [English] Assign a controller to a property: Linear / Bezier / TCB / Euler / Position XYZ / List. position uses bezier_position, rotation euler_xyz or tcb_rotation, scalars bezier_float. Switching controllers clears existing keys on the track.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. | |
| controller | Yes | 控制器类型关键词。 | Controller type keyword. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly says switching controllers clears existing keys on the track, which adds specific destructive behavior beyond the generic destructiveHint=true annotation. The mutation implied by 'assign/switch' is consistent with readOnlyHint=false, so there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose, selection guidance, and destructive warning in that order. The bilingual repetition is redundant for an agent but not excessive, so the structure is only mildly penalized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating 3-parameter tool, the description plus fully covered schema cover the main inputs and the key side effect. However, it leaves the controller value mismatch between enum and suggested examples unresolved and does not clarify effects when multiple objects are targeted, so an agent could still call it incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds property-type-to-controller mappings, but the suggested values (bezier_position, euler_xyz, tcb_rotation, bezier_float) do not align cleanly with the enum values (Bezier, Euler, TCB, List), and bezier_float appears nowhere in the enum or examples; this added guidance may lead to invalid calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: assigning a controller to a property, and lists the supported controller types. It is distinguishable from nearby animation tools like anim_set_key or anim_set_interpolation by emphasizing controller assignment and the key-clearing side effect, though it does not explicitly name a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete controller recommendations per property kind (bezier_position for position, euler_xyz/tcb_rotation for rotation, bezier_float for scalars), which helps choose parameters. However, it does not state when to prefer this tool over alternatives such as anim_set_interpolation or anim_set_key, or when not to use it; the choice is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_set_interpolationADestructive
设置整条轨道(或指定帧)每个关键帧的插值切线类型:smooth/linear/step 等。 [English] Set the interpolation tangent type (smooth/linear/step ...) of every key on a track, or only the given frames.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 切线类型。 | Tangent type. | |
| frames | No | 只对这些帧设置;省略则作用于整条轨道。 | Only these frames; omit for the whole track. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive (destructiveHint=true), and the description adds useful scope context: it applies to every key unless frames is specified. It does not mention reversibility, undo behavior, or side effects, but the annotation lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core operation and scope. The Chinese/English duplication slightly reduces conciseness, but the content is efficient and every substantive point serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complete schema documentation and no output schema, the description plus schema provides enough context for an agent to invoke the tool correctly. It identifies the operation, the possible scope (whole track vs frames), and the optional object selection, though it does not go into deeper animation workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains type, frames, objects, and property. The description adds no semantic information beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('set') and resource ('interpolation tangent type') for every key on a track or specified frames. It distinguishes this tool from animation siblings like anim_set_key, anim_set_controller, and anim_ease by naming the exact operation and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when an agent needs to change key interpolation tangents on a track or specific frames. However, it does not explicitly name alternative tools or state when not to use them, so selection guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_set_keyADestructive
在指定帧为对象的某个属性写入一个关键帧(position / rotation / scale,或任意命名属性)。rotation 用欧拉角(度)表示。mode=relative 时在当前值上叠加。欧拉旋转无法插值超过 180°:车轮、转盘要改用 Quaternion/TCB 控制器,否则会出现瞬移。 [English] Write one keyframe for a property (position / rotation / scale, or any named property) at a given frame. Rotation is given as Euler angles in degrees. With relative=true the value is added on top of the current value. Euler rotation cannot interpolate past 180 degrees - spinning wheels and turntables must use a Quaternion/TCB controller or they will snap.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | Yes | 关键帧所在的帧(基于场景帧率,不要假设 30fps)。 | Frame of the keyframe (respects the scene frame rate, do not assume 30 fps). | |
| value | Yes | 属性值。position/scale 为 [x,y,z],rotation 为 [x,y,z] 欧拉角(度),标量属性为单个数。 | Property value. position/scale as [x,y,z], rotation as [x,y,z] Euler degrees, scalar properties as a single number. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. | |
| relative | No | true=在当前帧的值上叠加,false=绝对值。 | true=add to the value at that frame, false=absolute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds valuable behavioral context: rotation is Euler degrees, relative=true adds to current value, and the critical limitation that Euler rotation cannot interpolate past 180° (causing snapping). This goes beyond the annotation and helps the agent anticipate failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bilingual and somewhat longer due to repetition, but every sentence carries meaning. The primary action is front-loaded, and the Euler warning is placed at the end where it is easy to notice. No filler or tautological phrasing; the length is justified by the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, full schema coverage, and destructive annotations, the description covers the key contextual aspects: property types, rotation units, relative semantics, and a critical pitfall. It lacks explicit mention of overwriting behavior or error conditions, but these are partially implied by the destructive annotation and not essential given the schema details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces parameter meaning ('rotation as Euler angles in degrees', 'relative=true adds to current value'), but does not add information beyond what the schema already states. It does not introduce new details about value formats or frame handling beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Write one keyframe for a property (position / rotation / scale, or any named property) at a given frame.' It is specific about the verb (write) and resource (keyframe on a property). It does not explicitly differentiate from siblings like anim_set_keys, but the singular 'one keyframe' and property focus are sufficiently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as anim_set_keys or anim_delete_keys. The Euler rotation warning suggests using Quaternion/TCB controllers for large rotations, but that is about controller selection, not tool selection. No when-to-use or when-not-to-use criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_set_keysADestructive
一次性为某个属性写入多个关键帧:keys 是 [{frame, value}] 列表。一个完整的行走循环用一次调用即可完成,比反复调 anim_set_key 高效得多。 [English] Write many keyframes for one property in a single call: keys is a list of {frame, value}. A whole walk cycle is one call, far cheaper than repeated anim_set_key invocations.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | 关键帧列表,每项 {frame, value}。 | Keyframe list, each item {frame, value}. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. | |
| relative | No | true=在每个帧的当前值上叠加。 | true=add on top of the value at each frame. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the mutation/destructive profile. The description adds efficiency context but does not disclose what happens to existing keyframes on the property, such as whether they are overwritten, merged, or appended.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bilingual but compact: each version is two sentences with no filler. It front-loads the verb, resource, and key-list format, then adds a concrete walk-cycle usage example that strengthens the purpose without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and annotations carrying the destructive read/write profile, the description is nearly complete for invocation. The main missing context is an explicit statement of overwrite/replacement semantics for existing keyframes, which destructiveHint only hints at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all parameters. The description repeats the keys format ({frame, value}) but adds no new meaning about frame encoding, value types, objects selection, or the relative flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Write many keyframes for one property in a single call.' It explicitly contrasts with the singular sibling anim_set_key, so an agent can immediately distinguish the bulk operation from the per-key version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use guidance by naming whole walk cycles as the ideal case and pointing out that it is cheaper than repeated anim_set_key calls. It does not explicitly state the inverse case—use anim_set_key for a single keyframe—but the context strongly implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anim_set_out_of_rangeBDestructive
设置控制器在动画范围之外的行为:loop(循环)/ cycle(往复周期)/ pingpong(乒乓)/ constant(保持)/ linear(线性外推)。 [English] Set a controller's out-of-range behaviour: loop / cycle / pingpong / constant / linear.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 类型。 | Type. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale,或任意命名属性。 | Property name: position / rotation / scale, or any named property. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, so the agent knows this operation modifies state. The description adds the behavioral detail that it sets behavior 'outside the animation range', which clarifies the scope of the effect. However, it does not disclose whether this overwrites existing out-of-range settings, whether it applies to all keyframes or only selected ones, or any side effects on the animation. With destructiveHint already present, the description provides some additional context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one sentence in Chinese and one in English, with the core action and enum values front-loaded. The bilingual repetition is somewhat redundant but serves a clear audience purpose. No filler words; every clause carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with 3 parameters and full schema coverage, the description is mostly adequate. However, it lacks context about the relationship to animation controllers: does this affect the whole controller or a specific track? Is 'cycle' a synonym for 'pingpong' or distinct? The destructiveHint annotation covers the mutation risk, but the description doesn't explain what 'out-of-range' means in practical terms (e.g., before first keyframe and after last keyframe). An agent might need more context to invoke it correctly on the right controller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds the meaning of the 'type' enum values (loop/cycle/pingpong/constant/linear) by naming them, but the schema already lists them. The description does not add detail about the 'property' parameter beyond what the schema says (position/rotation/scale or named property), nor about the 'objects' parameter's selection fallback, which the schema already covers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: setting a controller's out-of-range behavior, and lists the five possible modes (loop/cycle/pingpong/constant/linear). It is specific about the resource (controller) and the action (set out-of-range behavior). It doesn't explicitly distinguish from sibling animation tools like anim_set_controller or anim_set_interpolation, but the unique 'out-of-range' concept makes it identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is for configuring out-of-range animation behavior, which is a distinct animation task. However, it does not explicitly state when to use this tool versus alternatives like anim_set_controller or anim_set_interpolation, nor does it mention prerequisites (e.g., the controller must exist, or the property must be animatable). The bilingual format adds clarity but no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
array_objectsADestructive
按 1D/2D/3D 网格(grid)或绕轴环形(radial)阵列复制对象。grid 用 count1/2/3 与 spacing1/2/3;radial 用 count1、axis、radius 绕轴均布。 [English] Array-clone objects in a 1D/2D/3D grid or radially around an axis. grid uses count1/2/3 + spacing1/2/3; radial uses count1, axis, radius.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | radial 模式下的旋转轴 x/y/z,默认 z。 | radial rotation axis x/y/z, default z. | |
| mode | No | grid=网格阵列,radial=绕轴环形。 | grid or radial. | grid |
| center | No | 阵列中心 [x,y,z]。 | Array center [x,y,z]. | |
| count1 | No | 第 1 轴数量,默认 3。 | Count on axis 1, default 3. | |
| count2 | No | 第 2 轴数量,默认 1。 | Count on axis 2, default 1. | |
| count3 | No | 第 3 轴数量,默认 1。 | Count on axis 3, default 1. | |
| radius | No | radial 模式下的环形半径。 | radial ring radius. | |
| objects | No | 要阵列的对象列表;省略则用当前选择。 | Objects to array; omit for the selection. | |
| spacing1 | No | 第 1 轴间距。 | Spacing on axis 1. | |
| spacing2 | No | 第 2 轴间距。 | Spacing on axis 2. | |
| spacing3 | No | 第 3 轴间距。 | Spacing on axis 3. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With destructiveHint=true, the description is expected to clarify mutating behavior. 'Array-clone' implies creating copies rather than moving, but it does not state whether originals are preserved, how selection changes, or other side effects. The annotation already warns about destructiveness, so the description is not misleading, but it adds limited behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler. The bilingual duplication is redundant but compact and useful, and the mode-specific parameter mapping is organized efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers every parameter and default, so basic calls are feasible. Yet the description leaves ambiguities such as whether count includes the original object, what spacing measures, and how center factors into radial arrays—important details for a destructive operation with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 11 parameters already have schema descriptions, so the baseline is met. The description adds a valuable mode-to-parameter mapping and names the core parameters for each mode; it omits center from that mapping, but the schema documents it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Array-clone objects' and immediately scopes the tool to 1D/2D/3D grids or radial distributions. This clearly distinguishes it from sibling duplication/scatter/transform tools even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful within-tool guidance by pairing each mode with its relevant parameters ('grid uses count1/2/3 + spacing1/2/3; radial uses count1, axis, radius'). However, it never explicitly says when to prefer this over clone_objects or scatter_objects, and gives no 'do not use' conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_to_layerADestructive
把指定对象移动到目标层。层不存在时会自动创建。 [English] Move objects into a target layer, creating the layer if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | Yes | 目标层名称。 | Target layer name. | |
| objects | No | 对象名称列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as readOnlyHint=false and destructiveHint=true. The description adds useful context beyond that: a missing layer is automatically created as a side effect, and 'move' implies objects leave their original layer. It does not discuss undo behavior or effects on objects already in the target layer, but the core mutating side effect is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, front-loaded with the action, and contains no filler. The bilingual phrasing is compact and both versions carry the same essential information without excessive duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool with no output schema, the description plus fully documented input schema is largely sufficient. The auto-create behavior and the optional object list are covered. A minor gap is that the description itself does not state the current-selection default, though the schema already does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: layer is documented as the target layer name, and objects as an optional list defaulting to the current selection. The description adds no major parameter meaning beyond rephrasing the layer concept and the auto-create behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: moving objects into a target layer, with the notable auto-create behavior. It implicitly distinguishes itself from siblings like move_objects_to_new_layer by emphasizing 'target' layer rather than 'new' layer, and from create_layer by combining creation with assignment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as move_objects_to_new_layer, create_layer, or set_layer_properties. The auto-create note implies a use case, but no explicit when/when-not conditions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_objectsADestructive
把一个或多个样条合并进目标样条(Editable Spline 的 attach),用于把多条线合成一条轮廓再挤出。 [English] Attach one or more splines into a target spline (Editable Spline attach); combine profiles before extruding.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 目标样条名,会被转为可编辑样条并接收其余样条。 | Target spline; converted to editable spline and receives the others. | |
| objects | No | 要并入的样条列表;省略则用当前选择。 | Splines to attach; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description adds useful behavioral detail: the target is converted to an editable spline and receives the other splines. This tells the agent that the target will be mutated into a new editable-spline state, going beyond the annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. The bilingual phrasing is redundant for a single-language reader, but each version serves a different audience and the English sentence adds the purpose clause. There is no filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool, the description plus schema covers the target, the objects, the default selection behavior, and the conversion side-effect. The destructive hint handles the risk disclosure. Nothing essential is missing, though it could have stated what happens to the source splines after attach.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'target' and 'objects' including the behavior of omitting objects to use the current selection. The description adds general context about the attach operation but does not meaningfully enhance the parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: attaching one or more splines into a target spline using Editable Spline attach, with an explicit purpose of combining profiles before extrusion. It is specific enough to distinguish this from sibling spline/modification tools even without an explicit alternative mention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool when you need to merge multiple splines into a single editable spline contour before extruding. It does not explicitly name alternative tools or list exclusions, but the usage scenario is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_aoBDestructive
把环境光遮蔽(AO)烘焙成一张贴图。同 bake_texture 的要求:对象需有 UVW 通道与壳。 [English] Bake ambient occlusion (AO) into a single map. Same requirement as bake_texture: the objects need a UVW channel and a shell.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素),默认 512。 | Map edge size in pixels, default 512. | |
| folder | No | 输出文件夹;省略用上次设置或渲染输出目录。 | Output folder; omit to use the last setting or render output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal destructiveHint=true and readOnlyHint=false, so the description is not required to restate mutation risk. It adds context about object prerequisites, which is helpful beyond the structured data. It does not disclose overwrite behavior, file output location, or whether existing maps are replaced, but the destructive hint partially covers that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded with purpose, but it duplicates the entire content in Chinese and English with a '[English]' marker. The bilingual duplication is not zero-waste for an AI agent, though it remains compact and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description needs to explain what the tool returns or produces; it only says a map is baked, not the return format or path. It also sits among many bake_* siblings without explaining how it relates to bake_set_output or bake_objects, leaving the agent to infer workflow context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents size, folder, format, and objects. The description adds no extra meaning for these parameters and does not mention defaults or relationships between them. Per the calibration baseline, this is an adequate score when the schema carries the parameter documentation weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific action: '把环境光遮蔽(AO)烘焙成一张贴图' and 'Bake ambient occlusion (AO) into a single map.' It clearly names the resource (AO map) and the verb (bake), and the mention of AO differentiates it from other bake_* siblings by map type. However, it does not explicitly contrast itself with bake_texture, bake_normals, or bake_lighting beyond the AO focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete precondition: objects need a UVW channel and a shell, and it says this is the same requirement as bake_texture. This is useful context for when the tool can be invoked. But it does not explicitly say when to choose bake_ao over sibling baking tools, nor does it give when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_get_settingsARead-only
返回烘焙的当前全局输出设置(文件夹、尺寸、格式、填充、模板)。 [English] Return the current global bake output settings (folder, size, format, padding, template).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnlyHint and destructiveHint already cover the safety profile. The description adds meaningful context by stating the settings are 'global' and enumerating folder, size, format, padding, and template, which clarifies scope and content beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action word, and contains no filler. The bilingual repetition is purposeful and the parenthetical field list is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter without an output schema, the description adequately identifies what will be returned. It does not specify value types or default behavior, but that is a minor gap given the tool's simplicity and the readOnly annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter descriptions are unnecessary. The description still adds value by naming the domains covered by the returned settings, matching the baseline for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a specific resource ('current global bake output settings'), and it enumerates the included fields. This clearly identifies the tool as a getter and distinguishes it from sibling setters like bake_set_output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The getter semantics imply the tool should be used when you need to read current bake output settings, but there is no explicit when-to-use guidance or mention of alternatives such as bake_set_output. This is adequate but relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_lightingADestructive
把灯光/完整贴图(LightingMap 或 CompleteMap)烘焙成贴图,用于静态光照。要求对象有 UVW 通道。 [English] Bake lighting / a complete map (LightingMap or CompleteMap) for static lighting. Requires a UVW channel on the objects.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素),默认 512。 | Map edge size in pixels, default 512. | |
| folder | No | 输出文件夹;省略用上次设置或渲染输出目录。 | Output folder; omit to use the last setting or render output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description does not need to repeat that. It adds the UVW channel requirement, which is a behavioral prerequisite, but does not disclose other side effects (e.g., file overwriting, render engine requirements, or performance implications). The description adds some context beyond annotations but is not rich; a 3 reflects this minimal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences per language, and front-loads the core action and purpose. It is efficient, though the bilingual duplication doubles the length without adding new information. This is a minor inefficiency but not a significant distraction; a 4 fits the appropriately sized and front-loaded criteria.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward baking tool with all-optional parameters and no output schema, the description covers the essential context: what it does, the purpose, and the key prerequisite (UVW channel). It does not mention potential pitfalls like render engine requirements or overwriting behavior, but given the annotations already flag destructiveness, these are not critical gaps. The description is adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all four parameters (size, folder, format, objects). The description does not add any additional parameter-specific guidance beyond what the schema already states. Since the schema handles parameter documentation, the baseline of 3 is appropriate; the description contributes nothing further here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('bake lighting / a complete map'), the target resource ('LightingMap or CompleteMap'), and the purpose ('for static lighting'). It also distinguishes itself from sibling tools like bake_ao and bake_normals by specifying the lighting map type. The prerequisite (UVW channel) adds specificity. This is a clear, non-tautological purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for static lighting and requires a UVW channel, which tells the agent when it is applicable. It does not explicitly name alternative tools or state when not to use it, but the specific purpose and prerequisite make the use case evident. It stops short of a 5 because it lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_normalsADestructive
把法线贴图从高模烘焙到低模壳(NormalMap)。需对象有 UVW 通道;高低模关系由 Max 的 RTT 投影设置决定。 [English] Bake a normal map from a high-poly cage to a low-poly shell (NormalMap). Requires a UVW channel; the high/low relationship is governed by Max's RTT projection setup.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素),默认 512。 | Map edge size in pixels, default 512. | |
| folder | No | 输出文件夹;省略用上次设置或渲染输出目录。 | Output folder; omit to use the last setting or render output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the write/destructive nature is covered. The description adds valuable context beyond that: the requirement of a UVW channel and that the high/low relationship depends on RTT projection setup. This helps the agent anticipate prerequisites and potential failure points, going beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences, and front-loads the core purpose. It avoids fluff and provides the essential prerequisites in a structured bilingual format. Every sentence contributes to understanding the tool's function and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex, but the description covers the key prerequisites (UVW channel, RTT projection) and the action. It does not mention the output file behavior (e.g., whether the map is assigned to the material or just written to disk) or potential side effects beyond the destructiveHint annotation. However, given the schema covers parameters and annotations cover safety, it is reasonably complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all four parameters with descriptions (100% coverage), so the baseline is 3. The description does not add any additional parameter-specific semantics (e.g., default behavior of 'objects' falling back to selection) beyond what the schema already states, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (bake) and the resource (a normal map) and specifies the source (high-poly cage) and target (low-poly shell). It distinguishes itself from sibling bake tools by explicitly naming 'NormalMap' and mentioning the RTT projection relationship, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear prerequisites: requires a UVW channel and the high/low relationship is governed by RTT projection setup. This tells the agent when the tool is applicable. However, it does not explicitly mention alternatives (e.g., bake_ao, bake_lighting) or state when not to use this tool, so it misses explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_objectsBDestructive
底层烘焙调用:用显式的元素列表烘焙一组对象。elements 为必填(如 #("diffuse","normal"))。返回每个贴图的写入结果,缺失文件会列在 failures/written 里。 [English] Low level bake: bake a list of objects with an explicit element list. elements is required (e.g. ["diffuse","normal"]). Returns per-map write results; missing files appear in failures/written.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素),默认 512。 | Map edge size in pixels, default 512. | |
| folder | No | 输出文件夹;省略用上次设置或渲染输出目录。 | Output folder; omit to use the last setting or render output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit to use the current selection. | |
| elements | Yes | 要烘焙的元素名列表(必填)。 | Element names to bake (required). | |
| template | No | 文件名模板,默认 %s_%e。 | Filename template, default %s_%e. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, and the description does not contradict that, nor does it elaborate on the destructive aspects. It does disclose that returns per-map write results and missing files appear in failures/written, which is useful beyond annotations. However, it doesn't detail what is destructive (overwriting files?) or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with key information up front: 'low level bake', required elements, and return behavior. Bilingual but not redundant. Each sentence adds value, though it could be shorter by dropping the bilingual repetition, but it's not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 params, no output schema), the description covers the essential points but lacks detail on object naming conventions, template placeholders (%s, %e), and potential failure modes beyond listing them. It doesn't explain how missing files are reported or the impact of destructiveHint. With sibling bake tools present, more context on differences would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are described in the schema. The description adds the key point that elements is required and gives an example, which is helpful but not extensive. It doesn't add extra meaning beyond schema for size, folder, format, objects, template.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a low-level bake operation on a list of objects with an explicit element list, and mentions the required parameter. It distinguishes itself from higher-level bake tools like bake_texture, bake_ao, bake_normals, and bake_lighting by being low-level, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies this is the low-level alternative but doesn't explicitly state when to use this vs. the other bake_* tools. It mentions 'low level bake' as a label, which gives context but no exclusions or alternative names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_set_outputADestructive
设置烘焙的全局输出参数:文件夹、贴图尺寸、格式、文件名填充位数与模板(%s=对象名 %e=元素名)。 [English] Set the global bake output parameters: folder, map size, format, filename padding and template (%s=object name, %e=element name).
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素),默认 512。 | Map edge size in pixels, default 512. | |
| folder | No | 默认输出文件夹。 | Default output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| padding | No | 帧号/序号填充位数,默认 4。 | Number padding width, default 4. | |
| template | No | 文件名模板,默认 %s_%e。 | Filename template, default %s_%e. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=true, and the description's 'Set' aligns with mutation. It adds useful context by specifying 'global' scope and explaining the template placeholders (%s=object name, %e=element name). However, it does not describe overwrite semantics or side effects on existing bake settings; annotations carry some of that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences, one Chinese and one English, with the action and resource front-loaded before the parameter list. Every phrase contributes; there is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a setter with five optional parameters, full schema coverage, and no output schema, the description plus annotations are largely sufficient. It could explicitly state that these settings persist and apply to subsequent bake calls, but the term 'global' and the sibling context make that inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explicitly defining the filename template placeholders (%s=object name, %e=element name), which an agent needs to construct correct templates. This extra semantic detail justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb ('Set') and a specific resource ('global bake output parameters'), and enumerates the five configurable aspects: folder, map size, format, filename padding, and template. The word 'bake' clearly distinguishes it from render output setters like render_set_output, and it pairs naturally with bake_get_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals that this is the configuration step for bake output: it sets global parameters before bake operations. It does not explicitly name alternatives or state when not to use it, but the intended context is unambiguous and no exclusion is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bake_textureADestructive
Render To Texture:把选中对象当前材质的贴图烘焙到目标文件夹——把一个 Max 资产带外观送进游戏引擎最常用的工具。要求对象有 UVW 通道与合理的壳/偏移;否则会得到重叠 UV 与糊掉的贴图(可用 bake_set_output 先设输出)。 [English] Render To Texture: bake the selected objects' current material maps into a target folder - the single most used tool for getting a Max asset into a game engine with its look intact. The objects must have a UVW channel and a clean shell/offset, otherwise you get overlapping UVs and a smeared map. Set the output first with bake_set_output.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | 贴图边长(像素);省略用上次设置,默认 512。 | Map edge size in pixels; omit to use the last setting, default 512. | |
| folder | No | 输出文件夹;省略用上次 bake_set_output 的值或渲染输出目录。 | Output folder; omit to use the last bake_set_output value or the render output folder. | |
| format | No | 贴图格式,默认 png。 | Map format, default png. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit to use the current selection. | |
| elements | No | 要烘焙的元素;省略为 diffuse+lighting。 | Elements to bake; omit for diffuse+lighting. | |
| template | No | 文件名模板,%s=对象名 %e=元素名。 | Filename template, %s=object name %e=element name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true, and the description adds the UVW prerequisite and the smeared-map failure mode, which is useful. However, it does not disclose what the destructive behavior actually involves, such as overwriting existing files in the target folder or changing the scene's render output settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and organized into Chinese and English halves, which is likely intentional for this Max tool. It is compact, but the English section repeats the Chinese content and phrases like 'the single most used tool' add little functional value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive batch tool with six optional parameters and no output schema, the description covers the main preconditions (UVs, output setup) and the result (baked maps in a target folder). It could mention overwrite behavior and return status, but the annotations and schema carry enough of that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all six parameters already described bilingually in the input schema. The description adds little beyond the schema, only reinforcing the output-folder concept and the 'current material maps' idea, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation: bake selected objects' current material maps into a target folder, with the pipeline goal of getting a Max asset into a game engine with its look intact. It does not explicitly contrast with sibling tools like bake_objects, bake_normals, or bake_ao, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete usage context: objects must have a UVW channel and a clean shell/offset, otherwise the result is overlapping UVs and a smeared map. It also instructs the agent to set the output first with bake_set_output. It lacks an explicit when-not-to-use comparison with the other bake_* siblings, so it is not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
begin_undoARead-only
开启一个跨多次调用的撤销事务。之后的所有改动会合并为一次撤销,直到 end_undo。适合「建一个角色并绑定」这类多步骤操作。 [English] Open an undo transaction spanning several MCP calls. Everything you do until end_undo collapses into a single undo step - ideal for multi-step tasks such as building and rigging a character.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | 事务名称,会显示在 Max 的撤销菜单里。 | Transaction label shown in Max's undo menu. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes a stateful operation that modifies the undo stack ('Everything you do until end_undo collapses into a single undo step'), yet the annotations declare readOnlyHint=true, which typically indicates no state changes. This is a direct contradiction, undermining the agent's trust in the tool's side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and includes a concrete example. No unnecessary words, despite the bilingual duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description covers the operation's purpose, scope, and the pairing with end_undo. It could additionally mention cancel_undo or the necessity of closing the transaction, but the current detail is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema includes a full description for the only parameter 'label' (coverage 100%). The description adds no extra semantics about this parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Open an undo transaction spanning several MCP calls.' It clearly distinguishes the tool from siblings like undo_last and end_undo by describing its role as a transaction opener, not an undo operation itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'ideal for multi-step tasks such as building and rigging a character.' It also references end_undo as the necessary closing pair, implying when to use it. However, it does not explicitly mention alternatives like cancel_undo or warn against using it for single operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boolean_operationADestructive
对选中的两个及以上对象做布尔运算(union/subtract/intersect/merge)。第 1 个对象是 A,其余依次作用于它;subtract 即 A 减后面所有。布尔结果依赖水密网格,破面会失败。 [English] Boolean operation on two or more selected objects (union/subtract/intersect/merge). The first object is A; the rest apply to it; subtract = A minus all others. Booleans need watertight meshes; broken faces fail.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 操作对象列表(第 1 个为 A);省略则用当前选择。 | Operands (first is A); omit for the selection. | |
| operation | No | union/subtract/intersect/merge。 | union/subtract/intersect/merge. | union |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context beyond that: the order of operations (subtract = A minus all others) and the failure condition (broken faces fail). This is meaningful supplementary information that helps the agent anticipate outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two bilingual sentences with zero waste. The action, operands, and the critical warning are front-loaded. The bold emphasis on the watertight requirement draws attention to the key constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive boolean tool with no output schema, the description covers the essential operational details: operand order, operation semantics, and failure condition. It doesn't explicitly state the outcome on the original objects (e.g., A is modified), but the destructiveHint annotation implies that. Overall it is reasonably complete, with minor gaps around return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds semantic depth by explaining the subtract operation (A minus all others) and the requirement for watertight meshes, which are not fully covered in the schema. This compensates beyond the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (boolean operation), resource (selected objects), and scope (union/subtract/intersect/merge). It clearly explains the first object is A and others apply to it, distinguishing from sibling tools like attach_objects (which merges without boolean logic) and proboolean (a specific Max tool). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for use: operates on two or more selected objects, and requires watertight meshes. However, it does not explicitly contrast with alternatives like proboolean or attach_objects, nor state when to choose this tool over them. The 'when to use' is implied by the operation type, but no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_capabilitiesARead-only
列出 3ds Max 端实际注册的所有命令及其分类前缀。当你不确定某个工具在当前 Max 版本上是否可用时,先调用它。 [English] List every command actually registered on the 3ds Max side, grouped by prefix. Call it first whenever you are unsure whether a tool exists on this Max version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds useful behavioral context by stating that the command list reflects what is 'actually registered on the 3ds Max side' and that results are 'grouped by prefix,' which implies a dynamic, version-specific inventory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loads the primary action, and immediately follows with the key usage instruction in bold. The bilingual repetition is justified for a multilingual agent context and does not add unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and no output schema, the description only needs to convey what the tool does, how output is organized, and when to use it. All three are addressed clearly, making the definition complete and self-sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is empty and there is nothing for the description to explain. The 0-parameter baseline of 4 applies, and the description does not introduce any confusing or conflicting parameter expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('List every command actually registered... grouped by prefix') and a clear resource, making it obvious this is an introspection tool for the available command set. It distinguishes itself from sibling bridge_* tools by focusing on command registration rather than connection status or ping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to call this tool: 'Call it first whenever you are unsure whether a tool exists on this Max version.' This is a clear, actionable precedence rule that prevents guessing and directly supports tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_pingARead-only
轻量心跳,返回 Max 内部时间戳。用于确认桥接存活,不会改动场景。 [English] Lightweight heartbeat returning the Max internal timestamp. Use it to confirm the bridge is alive; it never touches the scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context beyond that: it is lightweight, returns a timestamp, and has zero scene side effects. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core message is front-loaded in two short sentences covering purpose, usage, and non-mutation. The bilingual repetition is slightly redundant but remains compact and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter heartbeat tool, the description is complete: it states what the tool returns, why to call it, and that it is side-effect-free. The absence of an output schema is mitigated by the explicit note that a timestamp is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is complete with no properties. Per the 0-parameter baseline, the description has no parameter documentation burden and adds no unnecessary parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: a 'lightweight heartbeat' that returns the Max internal timestamp. It clearly identifies the tool's purpose of confirming bridge liveness and explicitly notes it never modifies the scene, distinguishing it from mutation-heavy siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it: 'Use it to confirm the bridge is alive.' It also clarifies that it never touches the scene, implying safe health-check usage. It does not name alternative sibling tools like bridge_status, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_restartARead-only
重启桥接(默认沿用当前端口)。当 AI 客户端断连后无法恢复时使用。 [English] Restart the bridge (keeps the current port by default). Use it when an AI client lost the connection and cannot recover.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | 要绑定的端口;省略则沿用当前端口。 | Port to bind; omit to keep the current one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Restart the bridge,' which is a state-changing operation, but the annotations declare readOnlyHint=true. This directly contradicts the annotation and could mislead an agent relying on read-only semantics. The added detail about keeping the current port is useful, but the contradiction dominates this dimension.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action, default behavior, and use case each appear in short, direct sentences. The bilingual format does not introduce unnecessary verbosity and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the action, default port behavior, and when to invoke it. It does not explain return values or post-restart behavior, but these are not critical for this operation; the main completeness issue is the annotation contradiction already flagged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single optional port parameter with 100% coverage, including the fact that omitting it keeps the current port. The description restates that behavior but does not add new parameter semantics beyond what the schema provides. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Restart the bridge') on a specific resource, and adds the meaningful scope detail that it keeps the current port by default. It is also clearly distinguishable from sibling bridge tools like bridge_status, bridge_ping, and bridge_stop because 'restart' conveys stop-and-start rather than status or connection checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger condition: use it when an AI client lost the connection and cannot recover. This is clear contextual guidance, but it does not mention alternatives or conditions where this tool should not be used, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_selftestARead-only
在 3ds Max 内部运行完整自检:JSON 编解码、中文往返、对象创建、撤销栈、TCP 监听。当任何工具莫名失败时先运行它,返回逐项结果,便于快速定位是环境问题还是参数问题。 [English] Run a full in-Max self test: JSON encode/decode, Chinese round trip, object creation, undo stack, TCP listener. Run it whenever a tool fails oddly - it returns per-check results so you can tell an environment problem from a bad argument.
| Name | Required | Description | Default |
|---|---|---|---|
| echoText | No | 回显文本,用于验证中文/非 ASCII 字符的端到端编码。 | Echo text used to verify end-to-end encoding of non-ASCII characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds what the self-test covers and that it returns per-check results. It does not state whether temporary objects from the object-creation check are cleaned up, but the read-only annotation covers the safety profile and there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact bilingual paragraphs with the core function first, then the usage trigger. No filler; the repetition between Chinese and English is small and does not hurt readability for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-param, read-only diagnostic tool, the description covers the checks performed, the return concept (per-check results), and the recommended use case. With no output schema, it could specify the result format more concretely, but the agent still has enough to invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single optional echoText parameter is already documented as verifying non-ASCII/Chinese encoding. The description mentions Chinese round trip in general but adds no parameter-level information beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Run a full in-Max self test') and enumerates the exact subsystems checked (JSON encode/decode, Chinese round trip, object creation, undo stack, TCP listener). This distinguishes it from status/ping/capability siblings even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the trigger: 'Run it whenever a tool fails oddly' and explains the diagnostic payoff (tell environment problem from bad argument). It lacks an explicit 'do not use bridge_status/bridge_ping for this' exclusion, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_statusARead-only
查询 3ds Max 桥接的实时状态:是否在监听、端口、已连接客户端数、命令总数、Max 版本、当前场景、对象与选择数量。在开始任何操作前调用它确认连接正常。 [English] Report live bridge state: listening, port, connected clients, command count, Max version, current scene, object and selection counts. Call this first to confirm the connection is healthy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description is fully consistent (a read-only status report). The description adds value beyond the annotations by specifying the exact fields reported, which is useful behavioral context. No contradiction exists. It doesn't document error/edge behavior when the bridge is down, but for a status tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: front-loaded field list followed by the 'call first' directive. The bilingual duplication (Chinese + English) adds length, but this appears to be a deliberate convention for the toolset, and both sentences earn their place. No wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter status tool, the description covers purpose, reported fields, and usage timing. No output schema exists, but the enumerated field list partially compensates. It would be marginally improved by noting behavior when the bridge is unreachable, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage (empty properties object). Per the baseline for zero-parameter tools, the description need not explain parameter syntax. It correctly focuses on what the tool reports rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (报告/Report) and resource (live bridge state) and enumerates exactly which data points are returned: listening, port, connected clients, command count, Max version, current scene, object and selection counts. It is clearly distinguished from siblings like bridge_ping, bridge_selftest, and bridge_capabilities by listing its concrete fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Call this first to confirm the connection is healthy' before starting any operation. This gives clear context for the agent. It does not explicitly name alternatives or state when not to use it, but the 'call first' directive is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_stopARead-only
停止桥接并释放端口。停止后所有 MCP 工具都会失败,直到在 3ds Max 中重新运行 mcpBridgeStart()。 [English] Stop the bridge and release the port. Every MCP tool will fail afterwards until mcpBridgeStart() is run again inside 3ds Max.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently discloses a major side effect: 'Every MCP tool will fail afterwards until mcpBridgeStart() is run again.' However, the annotations declare readOnlyHint=true, which implies the tool has no state-changing side effects. This contradicts the description's clear statement that stopping the bridge alters the availability of all other tools, so the score is 1 due to the contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action in both Chinese and English. It uses only two sentences to convey the action and the key consequence. The bilingual duplication is slightly redundant but not bloated, and all information is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main actionainer, the result (release port), and the critical consequence (all tools fail until restart). It does not describe the return value, but for a simple stop operation this is a minor omission. Given the absence of output schema and parameters, the description is sufficiently complete for an agent to understand the tool's impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametersate. With 0 parameters, the baseline is 4, and the description correctly does not waste space on parameter details. The schema already covers the empty parameter set completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Stop the bridge and release the port.' It names the specific resource (bridge) and the effect (releasing the port). The additional consequence of all MCP tools failing clearly distinguishes this from sibling tools like bridge_status, bridge_restart, and bridge_ping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to intentionally stop the bridge) and mentions the recovery path via mcpBridgeStart(). However, it does not explicitly compare it with alternatives like bridge_restart or state when one would NOT want to use it. The guidance is present but not fully developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_align_to_viewADestructive
把一个相机对齐到当前视口:相机位置与朝向匹配活动视图。目标相机会同步移动目标点。 [English] Align a camera to the current view: its position and orientation match the active view. A target camera's target is moved too.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | 相机名称。 | Camera name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as destructive, and the description adds concrete mutation details: the camera's position and orientation change, and a target camera's target moves as well. This goes beyond the annotation by specifying exactly what gets modified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core behavior, followed by the important target-camera nuance. The bilingual duplication is acceptable and does not add meaningful bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one fully documented parameter, no output schema, and annotations covering destructiveness, the description provides enough detail to call the tool correctly. It covers the main effect and the target-camera special case, though broader usage and prerequisite context are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the single 'camera' parameter as the camera name. The description adds no additional parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('align'), resource ('camera'), and target ('current view'), and clarifies what happens to the camera's position, orientation, and target. It is unambiguous, though it does not explicitly differentiate itself from sibling tools like cam_look_through or cam_set_viewport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, and names no related tools or exclusions. An agent must infer intended usage from the name and basic effect, with no help navigating the large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_createADestructive
创建一个相机:free(自由)或 target(目标)。可设位置、目标点、视场角 fov。 [English] Create a camera: free or target. Set position, target and field-of-view.
| Name | Required | Description | Default |
|---|---|---|---|
| fov | No | 视场角(度)。 | Field of view (degrees). | |
| name | No | 相机名称。 | Camera name. | |
| type | Yes | 相机类型。 | Camera type. | |
| target | No | 目标点 [x,y,z](仅目标相机)。 | Target [x,y,z] (target camera only). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal a mutating/destructive operation, and the description is consistent with that. It adds the free/target behavioral variants and the ability to set position, target, and fov, but mostly restates schema information rather than explaining side effects or creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences, opens with a clear verb-object pair, and contains no filler. It is well-structured, scannable, and appropriately sized for a simple creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover the parameters and mutation safety well, but the description does not distinguish cam_create from cam_create_physical or describe what happens after creation. It is sufficient for basic use but incomplete for confident tool selection among camera siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description merely echoes 'position, target and fov' without adding semantics beyond the schema—such as which parameters apply to which camera type or coordinate expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a camera') and names the supported subtypes 'free' and 'target', making the core purpose clear. It does not explicitly differentiate itself from the sibling cam_create_physical, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when creating a standard free or target camera, but it provides no explicit when-to-use versus alternatives or exclusions. Given the close sibling cam_create_physical, the absence of routing guidance is a noticeable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_create_physicalBDestructive
创建一个 Physical Camera(物理相机),可设焦距、光圈 f-stop、快门、ISO、景深 DoF、视场角。 [English] Create a Physical Camera with focal length, f-stop, shutter, ISO, depth of field and FOV.
| Name | Required | Description | Default |
|---|---|---|---|
| fov | No | 视场角(度)。 | Field of view (degrees). | |
| iso | No | ISO。 | ISO. | |
| name | No | 相机名称。 | Camera name. | |
| fStop | No | 光圈 f 值。 | Aperture f-stop. | |
| target | No | 目标点 [x,y,z]。 | Target [x,y,z]. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| focalLength | No | 焦距(mm)。 | Focal length (mm). | |
| depthOfField | No | 是否开启景深,默认否。 | Enable depth of field, default false. | |
| shutterSpeed | No | 快门速度。 | Shutter speed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnlyHint=false and destructiveHint=true, and the description's 'Create' behavior is consistent with that. The description adds the list of adjustable camera attributes, but does not disclose side effects, defaults, or whether a camera object is added to the scene. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and resource, followed by a concise parameter summary. The bilingual repetition is reasonable for the audience, and there is no filler, though the parameter list is somewhat redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no output schema and a destructive annotation, the description gives enough to understand the basic operation. However, it omits usage context relative to cam_create, default behaviors, and any prerequisites or side effects, leaving moderate gaps for an agent deciding how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 9 parameters, so the schema already documents each field. The description provides a high-level summary of parameter categories but adds no additional meaning, constraints, or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Create' plus the resource 'Physical Camera' and enumerates the main configurable settings (focal length, f-stop, shutter, ISO, DoF, FOV). This clearly distinguishes it from camera query/set tools, though it does not explicitly differentiate from the sibling cam_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as cam_create, cam_set, or other camera creation tools. The description implies usage through the name but provides no exclusion conditions or context for choosing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_deleteADestructive
删除一个相机。不可恢复,请谨慎调用。 [English] Delete a camera. Not recoverable, use with care.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | 相机名称。 | Camera name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, and the description strengthens this by specifying that the deletion is not recoverable and should be used with care. This adds permanence context beyond the generic destructive flag, though it does not describe effects on linked scene objects or missing-name behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the action, and includes a clear warning. The bilingual duplication is purposeful for the likely user base and adds no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive operation with a destructiveHint annotation and no output schema, the warning plus the parameter schema is nearly complete. It could mention error behavior for unknown camera names, but that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the only parameter 'camera' already has an explicit name and description. The tool description adds no additional parameter guidance, so the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise action ('Delete a camera') on a specific resource. It clearly distinguishes itself from sibling camera tools like cam_create, cam_get, cam_set, cam_list, and cam_set_viewport by identifying the deletion operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the imperative 'Delete a camera,' but no explicit when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives or exclusions, though no direct deletion sibling exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_getARead-only
读取一个相机的详情:位置、视场角、焦距、是否为当前活动相机。 [English] Read a camera's details: position, field of view, focal length and whether it is the active viewport camera.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | 相机名称。 | Camera name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by specifying exactly which camera properties are returned, which is useful given there is no output schema. It does not mention error behavior for nonexistent cameras, but for a simple read-only getter this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, presenting the core purpose in the first clause and then listing the specific returned attributes. The bilingual repetition is acceptable and does not add unnecessary bulk; every sentence serves to clarify the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one fully documented parameter, no output schema, and a read-only annotation, the description is largely sufficient: it names the parameter and the returned fields. It could be slightly more complete by explicitly noting error behavior or output format, but these are not critical for selecting and invoking this simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single 'camera' parameter with the description 'Camera name.' The tool description does not add further semantic detail about the parameter, so it does not exceed the baseline established by the schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Read'), a resource ('a camera'), and enumerates the exact details returned: position, field of view, focal length, and active viewport status. This distinguishes it from sibling tools like cam_list, cam_set, and cam_create by focusing on read-only retrieval of one camera's properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving details of a specific camera, but it does not explicitly state when to prefer it over alternatives such as cam_list for listing cameras or cam_set for modifying them. There is no explicit when-to-use or when-not-to-use guidance, leaving the usage context inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_listARead-only
列出场景所有相机:名称、类名、位置。结果分页。 [English] List every camera in the scene: name, class and position. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 起始偏移,默认 0。 | Starting offset, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, and the description adds useful behavioral context: results are paginated and include specific fields. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the purpose, the exact data returned, and the pagination behavior in two short bilingual lines. No filler or irrelevant detail is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with annotated read-only safety and fully documented pagination parameters, the description is nearly complete. It could optionally specify the exact output shape or empty-result behavior, but none of that is critical for calling the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with limit and offset already documented including defaults. The description only reinforces pagination without adding new parameter-level semantics, so the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb and resource: 'List every camera in the scene', and names the returned fields (name, class, position). It clearly separates this from sibling camera tools like cam_get or cam_set by emphasizing enumeration of all cameras.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the context: use this tool when you need every camera in the scene, not a single camera's details. It does not explicitly name alternatives or exclusions, but the scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_look_throughADestructive
把当前活动视口切换为透过该相机观察(look-through)。 [English] Make the active viewport look through this camera.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | 相机名称。 | Camera name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=true. The description does not explain why the operation is marked destructive, nor does it disclose side effects such as whether the viewport change is persistent, reversible, or affects only the active view. It adds no behavioral context beyond the annotations themselves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bilingual but concise, containing only two short sentences that front-load the action. There is no unnecessary elaboration or repetition, making it easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate. It defines the action and the parameter, and the scope (active viewport) is explicit. Minor details like error conditions or prerequisites (e.g., an existing camera) are not mentioned but are not critical for a basic viewport operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description for the single 'camera' parameter ('相机名称。 | Camera name.'), covering 100% of parameter semantics. The tool description only references 'this camera' without adding further meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Make the active viewport look through this camera.' It specifies a verb, resource (active viewport), and effect (look through the camera). It is distinguishable from siblings like cam_align_to_view or cam_set_viewport by focusing on the viewport perspective rather than camera alignment or general viewport settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. Sibling tools such as cam_set_viewport and cam_align_to_view exist but are not mentioned, nor are any conditions for exclusion. The purpose is clear but the selection context is left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_setBDestructive
修改相机的属性:名称、位置、目标点、视场角、焦距、光圈、快门、ISO、景深。 [English] Modify a camera: name, position, target, FOV, focal length, f-stop, shutter, ISO and DOF.
| Name | Required | Description | Default |
|---|---|---|---|
| fov | No | 视场角(度)。 | Field of view (degrees). | |
| iso | No | ISO。 | ISO. | |
| name | No | 新名称。 | New name. | |
| fStop | No | 光圈 f 值。 | Aperture f-stop. | |
| camera | Yes | 相机名称。 | Camera name. | |
| target | No | 目标点 [x,y,z]。 | Target [x,y,z]. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| focalLength | No | 焦距(mm)。 | Focal length (mm). | |
| depthOfField | No | 是否开启景深。 | Enable depth of field. | |
| shutterSpeed | No | 快门速度。 | Shutter speed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false and destructiveHint=true, so the description's 'modify' adds no new behavioral information. It does not disclose whether only supplied properties are overwritten, whether the camera must already exist, or what happens on failure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact bilingual sentence front-loads the verb and resource, followed by a complete list of the modifiable properties. There is no filler or unnecessary explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With the schema documenting all 10 parameters and annotations marking the operation as non-read-only/destructive, the description plus schema is largely sufficient. The main missing context is behavior when the named camera does not exist and an explicit pointer to cam_set_viewport for viewport changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter has its own bilingual description, so the baseline is 3. The description simply repeats the same field names and does not add semantics such as coordinate order, units beyond the schema, or relationships among fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair ('Modify a camera') and enumerates exactly which attributes change (name, position, target, FOV, focal length, f-stop, shutter, ISO, DOF). This clearly separates it from read/lookup tools like cam_get, though it does not explicitly call out the viewport-setting sibling cam_set_viewport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: whenever an agent needs to change camera properties, this is the tool. But there is no explicit when-to-use guidance, no mention of alternatives, and no exclusion such as 'for viewport changes, use cam_set_viewport'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cam_set_viewportADestructive
把一个相机设为活动视口(可指定第几个视口 viewport)。等价于进入该相机的视图。 [English] Make a camera the active viewport (optionally a specific viewport index). Equivalent to entering that camera's view.
| Name | Required | Description | Default |
|---|---|---|---|
| camera | Yes | 相机名称。 | Camera name. | |
| viewport | No | 视口编号(>0 时指定具体视口)。 | Viewport index (>0 selects a specific one). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutating nature is disclosed. The description adds context by equating the action to entering the camera's view, which clarifies the side effect on the user's viewpoint. This goes beyond the annotations, providing useful behavioral detail without repetition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences (one bilingual), directly stating the action and its equivalence. No unnecessary detail, front-loaded with the core purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and no output schema, the description is complete. It explains what the tool does, the optional viewport behavior, and the expected outcome. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (camera name and viewport index) already documented in the input schema. The description reiterates the viewport index meaning but adds no new semantics beyond the schema. Baseline 3 is appropriate when the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: setting a camera as the active viewport, with an optional viewport index. It also provides an equivalent metaphor ('entering that camera's view'), which makes the purpose unmistakable and distinguishes it from sibling camera tools like cam_look_through or viewport_set_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the core behavior and the optional viewport parameter, giving enough context for when to use it. It doesn't explicitly mention alternatives or exclusion criteria, but the purpose is clear enough that an agent can infer when to select this tool over similar ones. No misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_undoARead-only
取消 begin_undo 开启的事务并回滚其中的全部改动。 [English] Cancel the transaction opened by begin_undo, rolling back everything inside it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool rolls back all changes, which is a mutating/destructive behavior. This directly contradicts the annotations readOnlyHint=true and destructiveHint=false. Annotation Contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences in Chinese and English with no filler. The core action and effect are front-loaded, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter paired control tool, the description names its counterpart (begin_undo) and the effect (rollback), which is sufficient for an agent to understand the call. The only weakness is that the annotations conflict with the described behavior, which harms overall completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there are no parameter semantics to document. The baseline of 4 applies because the description cannot add meaning where no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('cancel') and resource ('the transaction opened by begin_undo'), and explicitly states the effect: rolling back everything inside it. This clearly distinguishes it from sibling undo/redo/transaction tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly ties this tool to begin_undo, giving the relevant context: it operates on the transaction that begin_undo opened. It does not explicitly name alternatives or exclusions, but the pairing is clear enough for a zero-parameter tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_objectsADestructive
克隆对象:copy 独立副本、instance 关联实例、reference 参考。count>1 时按 offset 间隔摆放。 [English] Clone objects: copy (independent), instance (linked), reference. count>1 spaces them by offset.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | 每个对象克隆几份,默认 1。 | Copies per object, default 1. | |
| offset | No | 多份之间的位移间隔 [x,y,z]。 | Spacing between copies [x,y,z]. | |
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| cloneType | No | copy/instance/reference。 | copy/instance/reference. | copy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations by clarifying that copy is independent, instance is linked, and reference is a reference, and that count>1 arranges clones by offset. The destructiveHint annotation already signals mutation, and the description does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core operation, and uses compact bilingual phrasing. The duplication between Chinese and English is slightly redundant for an AI agent, but it does not significantly bloat the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers the main behavior, clone modes, and offset spacing, and the schema fills in parameter defaults and object selection defaults. There is no output schema, but for a scene-mutation tool with clear annotations and parameter documentation, the description is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all parameters at 100% coverage, providing a baseline of 3. The description goes beyond the schema by giving semantic meaning to cloneType (independent/linked/reference) and explaining the relationship between count and offset (spacing behavior).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool clones objects and defines the three clone modes (copy, instance, reference) plus offset spacing when count > 1. This is a specific verb+resource description with meaningful semantics, though it does not explicitly distinguish clone_objects from related siblings like array_objects or scatter_objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining the clone-type semantics and spacing behavior, so an agent can infer when to use it for copies/instances/references. However, it provides no explicit guidance about when to prefer this tool over alternatives such as array_objects or scatter_objects, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_groupADestructive
关闭(重新合上)之前打开的组。 [English] Close a previously opened group (re-collapse it).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 要关闭的组列表;省略则用当前选择。 | Groups to close; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this is a destructive operation. The description adds the notion of 're-collapse,' which clarifies the specific behavior, but it does not disclose what happens to objects inside the group or any side effects beyond collapsing. It adds a little context but relies on the annotation for the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences, with the English version front-loaded and no redundant wording. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is complete. The destructive hint is in annotations, the parameter is fully documented in the schema, and the operation is clearly described. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter, including its optionality and default to the selection. The description adds no additional parameter information, but given high schema coverage, a baseline of 3 is appropriate. No extra semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: closing a previously opened group (re-collapsing it). It uses a specific verb and resource, and the term 're-collapse' distinguishes it from sibling tools like ungroup_objects or group_objects. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for groups that were previously opened, but it does not explicitly state when to use it versus alternatives like ungroup_objects or open_group. There is no explicit when-not-to-use guidance, but the context is inferable from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collapse_stackADestructive
塌陷(应用并删除)对象上的整个修改器堆栈,把结果烘焙进基础对象。此操作会永久丢失所有修改器的参数可调性,仅在对结果满意时使用。 [English] Collapse (apply and delete) the entire modifier stack of an object, baking the result into the base object. This permanently destroys the editability of every modifier; only do it when you are happy with the result.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While the annotations already set destructiveHint=true, the description adds critical context by explicitly stating that 'This permanently destroys the editability of every modifier.' This goes beyond the bare hint, explaining exactly what is lost (modifier editability) and reinforcing the irreversibility. The description also clarifies the baking process, which is valuable behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences (bilingual). It front-loads the core action and then presents the critical warning. Every sentence earns its place without redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, single-purpose tool with one optional parameter and no output schema, the description is complete. It covers the operation, the irreversible consequence, and the parameter default behavior (via schema). An agent has enough information to invoke it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter 'objects' with 'Object names; omit to use the current selection.' Since schema description coverage is 100%, the description does not need to add parameter details. The description doesn't add further semantic nuance beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Collapse (apply and delete) the entire modifier stack of an object, baking the result into the base object.' It uses a specific verb and resource, and the scope ('entire modifier stack') distinguishes it from sibling tools like mod_remove or mod_disable, which target individual modifiers. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage condition ('only do it when you are happy with the result') but does not explicitly mention alternatives or when not to use it. It implies that it's a final destructive step, but there is no guidance toward sibling tools for less destructive modifier management, such as mod_remove for removing a single modifier. This leaves some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_linkADestructive
给对象加 Link 约束,把对象在指定时间附着到 target(实现拾取/交接动画的关键)。 [English] Add a Link constraint, attaching the object to target at the current time - the key to pick-up / hand-off animations.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 附着发生的帧;省略则用当前帧。 | Frame of attachment; current frame if omitted. | |
| target | Yes | 附着目标对象名。 | Attachment target object name. | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal mutating/destructive behavior (readOnlyHint=false, destructiveHint=true). The description adds the intended operational effect—attaching an object to a target at a time—but does not disclose details like whether existing constraints are replaced, whether keyframes are created, or how the scene changes beyond the attachment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the action and purpose. It is bilingual, which explains the repetition, though there is a slight inconsistency between Chinese '指定时间' (specified time) and English 'current time', causing minor ambiguity about frame handling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the fully described schema and annotations, the description gives enough context for an agent to select and invoke the tool: required target, optional frame/objects, and a clear animation use case. It does not explain return behavior, but there is no output schema and the mutation semantics are covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents target, frame, and objects. The description only repeats the target/frame concept without adding new parameter-level detail, so it meets the baseline but adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a Link constraint, attaching the object to target at the current time'. It clearly distinguishes this from other constraint siblings like constraint_position or constraint_path by naming the Link constraint type and its purpose in pick-up/hand-off animations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: this is the key for pick-up/hand-off animations. However, it does not explicitly mention when not to use it or name alternatives among the constraint_* sibling tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_listARead-only
列出对象上所有约束(控制器类型为 *constraint 的轨道)及其目标。只读,支持分页。 [English] List every constraint on an object (tracks whose controller is a *constraint) and their targets. Read-only, paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. | |
| objects | No | 对象名列表;省略则取选择中的第一个。 | Object names; the first of the selection if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description reinforces this with 'Read-only' and adds context by defining constraints via controller type. It also discloses pagination behavior, which is useful beyond the raw schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core behavior, and every sentence serves a purpose. The bilingual format is efficient and does not introduce redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation, the description covers the essential behavior: what is listed, how constraints are identified, and that pagination is supported. It could mention the default object selection behavior or return structure, but the schema already documents objects, and the annotations cover safety. Minor gaps remain, so not a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, and objects are already well documented. The description mentions pagination and object scope but does not add meaningful parameter details beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('list'), the resource ('constraints on an object'), and clarifies what counts as a constraint ('tracks whose controller is a *constraint'). It also names the output scope ('their targets'), making it distinguishable from sibling constraint manipulation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is a read-only, paginated listing operation on an object's constraints. It does not explicitly name alternatives or say when not to use it, but the read-only indicator and the resource scope make the intended use reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_look_atADestructive
给对象加 LookAt 约束,使其始终朝向 target。可选 upNode 定上方向,keepOffset 保留初始朝向。 [English] Add a LookAt constraint so the object always faces target. Optional upNode sets the up direction; keepOffset preserves the initial orientation.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 朝向目标对象名。 | Look-at target object name. | |
| upNode | No | 上方向参考对象名(可选)。 | Up-vector reference object (optional). | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. | |
| keepOffset | No | true=保留初始相对朝向。 | true=keep the initial relative orientation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation risk is known. The description adds the core runtime behavior (continuous facing of target) and the effect of keepOffset, but it does not disclose what happens to existing constraints, whether the constraint is appended or replaces one, or what error conditions may occur. This is acceptable but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action and result, and includes only relevant modifiers. The bilingual duplication adds length but is purposeful for a mixed-language API; there is no filler or unrelated information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple constraint tool, the combination of the description and fully-covered schema gives an agent what it needs to invoke the tool: target is required, objects defaults to current selection, and optional modifiers are explained. It lacks edge-case behavior such as invalid target handling or effects on existing constraints, but no output schema exists and the operation is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents target, upNode, objects, and keepOffset. The description primarily restates upNode and keepOffset in prose without adding new precision such as defaults, coordinate-space details, or interaction rules between parameters. This matches the baseline of 3 for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('LookAt constraint') and states the effect: 'the object always faces target.' It is immediately distinguishable from sibling constraint tools like constraint_position, constraint_orientation, constraint_path, and constraint_surface because it names the LookAt constraint type explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys the intended use case—making an object always face a target—and mentions selectable behaviors (upNode, keepOffset). It does not explicitly contrast with alternative constraints or state when not to use it, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_orientationBDestructive
给对象加 Orientation 约束,使其匹配 target 的旋转。 [English] Add an Orientation constraint so the object matches target's rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 匹配的目标对象名。 | Matched target object name. | |
| weight | No | 目标权重(0-100),默认 100。 | Target weight (0-100), default 100. | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the primary behavioral effect: the object will match the target's rotation. The annotations already declare destructiveHint=true, so the mutation aspect is covered. However, the description does not add context beyond the annotation, such as whether the constraint replaces existing orientation constraints or how weight affects blending. This is acceptable given annotation coverage, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences (Chinese and English mirror), front-loaded with the main action. Every word earns its place; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three well-documented parameters and no output schema, the description adequately covers the purpose and effect. It doesn't mention selection fallback or weight implications, but these are in the schema. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (target, weight, objects) already described. The description does not add extra semantic detail beyond what the schema provides. It implies the target is the rotation reference, but the schema already states that. No compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an Orientation constraint so the object matches the target's rotation. It uses a specific verb (add) and resource (Orientation constraint) and conveys the core behavior. It doesn't explicitly contrast with sibling constraint tools, but the name and description are unambiguous enough to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like constraint_look_at, constraint_position, or constraint_path. There is no mention of scenarios where this constraint is appropriate or inappropriate, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_pathADestructive
给对象加 Path 约束,使其沿一条样条曲线运动。percent 是可在动画中驱动的运动百分比(0-100)。 [English] Add a Path constraint so the object follows a spline. percent is the animatable travel percentage (0-100) you can drive in the animation.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 路径样条对象名。 | Path spline object name. | |
| follow | No | true=让对象朝向路径切线方向。 | true=orient the object along the path tangent. | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. | |
| percent | No | 初始运动百分比(0-100)。 | Initial travel percentage (0-100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutating nature is covered. The description adds the behavioral effect (object follows a spline) but does not disclose details such as whether existing constraints are preserved, whether the object's transform is overridden, or what happens if the path is invalid. This is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core action, and avoids filler. The bilingual duplication is redundant but not wasteful, and each sentence contributes purpose information or parameter clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool complexity, fully documented schema, and presence of annotations, the description is nearly complete. It covers what the tool does and highlights the animatable parameter. It could be more complete by noting when to choose this over other constraint types, but that gap is minor for a straightforward constraint operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful value beyond the schema by explaining that percent is the animatable travel percentage you can drive in animation, which the schema only describes as an 'initial travel percentage.' This extra semantic context helps the agent know percent can be keyframed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a Path constraint' that makes an object follow a spline. This clearly distinguishes it from sibling constraint tools like constraint_look_at or constraint_position by specifying the spline-following behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use when you want an object to move along a spline. However, the description does not mention when not to use it, nor does it reference alternative constraint tools, so an agent must infer the appropriate context from the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_positionADestructive
给对象加 Position 约束,使其跟随 target 的位置(可多个目标加权混合)。 [English] Add a Position constraint so the object follows target's position (multiple targets can be blended by weight).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 跟随的目标对象名。 | Followed target object name. | |
| weight | No | 目标权重(0-100,UI 同款),默认 100。 | Target weight (0-100, like UI), default 100. | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutating nature of the operation is known. The description adds a useful behavioral detail—multi-target weighted blending—but it does not disclose side effects on existing transforms, the constraint stack, or reversibility beyond what 'Add' implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact parallel sentences in Chinese and English, with the action front-loaded and no filler. The bilingual duplication is intentional and does not add meaningful bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core invocation is clear: a required target, optional weight, and optional object list covered by both description and schema. However, the stated multi-target weighted blending is not fully supported by the schema's single 'target' string and single 'weight' number, leaving a gap that an agent must resolve before calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description reinforces that 'target' is followed and 'weight' controls blending, but it does not clarify how multiple targets are encoded or whether the single 'weight' applies to all targets, leaving the multi-target capability ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Add'), a specific resource ('Position constraint'), and the outcome ('follows target's position'), with an optional multi-target weighted blend. It clearly identifies this as the position variant among the constraint_* sibling tools, though it does not explicitly contrast those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than explicit: use this when an object should follow a target's position, possibly with weighted multi-target blending. The description gives no explicit when-not-to-use guidance and does not mention alternatives such as constraint_orientation, constraint_path, or constraint_link, which would help route among the constraint siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_removeADestructive
移除对象某个属性上的约束,并把控制器恢复为默认的 Bezier 控制器(会丢失该约束产生的动画)。 [English] Remove the constraint on a property and reset its controller to the default Bezier controller (animation produced by the constraint is lost).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | No | 要解除约束的属性;省略则解除 position。 | Property to free; position if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description goes further by specifying exactly what is lost: animation produced by the constraint, and that the controller resets to Bezier. This gives an agent important context for deciding whether the tool is safe to invoke in a given workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences front-load the main behavior and place the data-loss warning immediately after. There is no filler or irrelevant detail, and every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter destructive tool, the description covers the primary behavior and the destructive side effect clearly. It does not state a return value, but no output schema exists and the tool's mutation semantics make that a minor gap rather than a critical omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage, including defaults (objects = current selection, property = position). The description adds no additional parameter semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (remove constraint), a target (a property on objects), and the resulting state (reset to default Bezier controller), which is more than restating the tool name. This clearly distinguishes it from sibling constraint creation/inspection tools like constraint_link and constraint_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance about when to use this tool over alternatives, but the action description makes the intended use apparent for removing an existing constraint. It does not mention inspecting constraints first with constraint_list or other related tools, leaving usage context somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_set_weightADestructive
设置约束中某个目标的权重(0-100,与 UI 一致)。多个目标混合时靠它分配影响力。 [English] Set the weight (0-100, like the UI) of a target in a constraint. With multiple targets this distributes influence between them.
| Name | Required | Description | Default |
|---|---|---|---|
| weight | Yes | 新权重(0-100)。 | New weight (0-100). | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性:position / rotation / scale 等带约束的轨道。 | Property: position / rotation / scale or other constrained track. | |
| targetIndex | Yes | 目标在约束中的序号(从 1 起)。 | Target index in the constraint (1-based). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, covering the mutating nature. The description adds the conceptual effect of distributing influence but not additional side effects, prerequisites, or failure behavior, providing only modest value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the main action and range, and uses a clean bilingual format without unnecessary elaboration. Every sentence contributes meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutating setter, the description plus 100% schema coverage and destructive annotation provides the essential call information. It does not mention return values or error behavior for invalid indices, but that is a minor gap for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented in the input schema. The description mostly repeats the weight range already present in the schema and adds no significant new parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific operation (setting a weight) and resource (a target within a constraint), and clarifies the 0-100 scale and influence-distribution behavior. Sibling differentiation is implicit through the constraint context but no sibling tools are explicitly distinguished, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: with multiple targets, the weight distributes influence between them. It does not state when NOT to use it or name alternatives such as constraint_list for inspection, so exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
constraint_surfaceADestructive
给对象加 Surface 约束,使其贴附在 target 曲面(网格/面片)上并随曲面变形而移动。 [English] Add a Surface constraint so the object sticks to target's surface (mesh/patch) and moves as the surface deforms.
| Name | Required | Description | Default |
|---|---|---|---|
| u | No | U 参数(0-1)。 | U coordinate (0-1). | |
| v | No | V 参数(0-1)。 | V coordinate (0-1). | |
| target | Yes | 曲面对象名。 | Surface object name. | |
| objects | No | 被约束的对象名列表;省略则用当前选择。 | Constrained objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description adds that the object sticks to the surface and moves with deformation. It does not mention side effects such as whether an existing constraint is replaced or whether the operation is reversible, but the annotation covers the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with two short bilingual sentences that front-load the core purpose and behavior. There is no redundant filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple constraint-adding tool, the description covers the essential behavior and target type. It does not explain return values or removal, but those are not essential given the absence of an output schema and the clear sibling toolset for constraint management.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with u/v, target, and objects already documented in the schema. The description adds only the surface behavior context and does not provide additional parameter-level detail beyond what the input schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add') and resource ('Surface constraint') and clarifies the exact behavior: the object sticks to the target's surface and follows deformation. This clearly differentiates it from sibling constraint tools like constraint_position or constraint_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: use this when an object should attach to and deform with a target surface. However, there is no explicit guidance on when not to use it or how it compares to alternative constraint tools such as constraint_link or constraint_path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_editable_meshADestructive
把对象转换为可编辑网格(Editable Mesh)。网格比多边形更老、功能更少,通常优先用 convert_to_editable_poly。仅在需要旧版网格接口时使用。 [English] Convert an object to an Editable Mesh. Mesh is older and less capable than poly; prefer convert_to_editable_poly. Use this only when a legacy mesh interface is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true, so the description does not need to restate that conversion is a modifying operation. It adds useful legacy-vs-poly context, but does not disclose concrete behavioral consequences such as loss of modifier stack or irreversibility, beyond what the annotation already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action and keeps guidance tight. It is bilingual, so the English/Chinese duplication is expected, but it still makes the same comparison and fallback recommendation twice, which prevents a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter conversion command with annotations that already describe the destructive nature, the description fully covers what the tool does, why it differs from the preferred sibling, and the only condition under which it should be used. No output schema is needed for a state-changing command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already explains that 'objects' is a list of names and that omission uses the current selection. The description adds no parameter-specific detail, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and target: 'Convert an object to an Editable Mesh.' It explicitly contrasts with convert_to_editable_poly, noting Mesh is legacy and less capable, so an agent can distinguish this from the sibling without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit recommendation: prefer convert_to_editable_poly, and use this tool 'only when a legacy mesh interface is needed.' This is a clear when-to-use and when-not-to-use rule with the alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_editable_polyADestructive
把对象转换为可编辑多边形(Editable Poly)。这是绝大多数多边形建模操作的前置步骤。该转换会塌陷对象原本的修改器与基础类型,不可撤销为原类型。 [English] Convert an object to an Editable Poly. This is the prerequisite for almost every polygon modeling operation. The conversion collapses the object's base type and modifiers and cannot be reverted to the original class.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds crucial details: it collapses the base type and modifiers and cannot be reverted. This goes beyond the annotation by specifying what is destroyed and irreversibility. It aligns with the destructive hint without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences in each language, front-loading the core function and then explaining the behavioral impact. It contains no filler and is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description covers the purpose, prerequisite role, and destructive nature. It does not mention potential error cases or prerequisites beyond selection, but these are implied. The information is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a full description of the 'objects' parameter (list of object names; omit to use current selection), achieving 100% coverage. The tool description adds no additional parameter information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts an object to an Editable Poly, identifies it as a prerequisite for polygon modeling, and explains the effect (collapses base type and modifiers). It is specific about the resource and action, distinguishing it from mesh or NURBS conversions by naming the exact target type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong usage context by stating it is the prerequisite for almost every polygon modeling operation, guiding agents to use it before such operations. However, it does not explicitly mention when not to use it or contrast with alternatives like convert_to_editable_mesh, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_to_nurbsADestructive
把对象转换为 NURBS 曲面。并非所有对象都能转换(例如普通几何体通常不行),失败时会在 failures 里报告原因,不会中断其他对象。 [English] Convert an object to a NURBS surface. Not every object can be converted (plain primitives usually cannot); failures are reported per object and do not abort the rest.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive behavior, so the description adds value by explaining that failures are reported per object and do not abort the rest of the batch. It also warns that not every object can be converted. This goes beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by a concise limitation and failure-handling note. The bilingual repetition is slightly redundant but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter destructive conversion tool, this description covers the essential behavior, conversion limitations, and error handling. It does not detail the full response shape, but it mentions the 'failures' field, which is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single 'objects' parameter, including the optional selection behavior. The main tool description adds no additional parameter-level meaning, so the baseline 3 applies because the schema handles the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Convert an object to a NURBS surface.' It clearly identifies the target conversion type, which distinguishes it from sibling conversion tools like convert_to_editable_poly and convert_to_editable_mesh without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is appropriate by stating that plain primitives usually cannot be converted, which is a useful exclusion. However, it does not name alternatives or give explicit criteria for choosing this tool over other conversion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_fileADestructive
复制文件(可选覆盖)。 [English] Copy a file (optionally overwriting).
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | 源文件。 | Source file. | |
| overwrite | No | 是否覆盖已存在的目标,默认是。 | Overwrite an existing destination, default true. | |
| destination | Yes | 目标文件或目录。 | Destination file or directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that overwriting is optional, which implies the destination may be replaced while the source remains intact. This adds behavioral context beyond the destructiveHint annotation, though it does not mention permission requirements or failure outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the key behavior stated immediately. It contains minor bilingual redundancy but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file-copy operation with full parameter schema coverage and relevant annotations, the description is adequate. It could be more complete by mentioning behavior when overwrite is false and the destination exists, but the core invocation needs are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter already has a clear description. The tool description only reinforces the overwrite option and adds little beyond the structured schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action (copy), the resource (file), and the optional overwrite behavior. It is clear but does not explicitly contrast with sibling file tools, though the copy action is distinctive enough on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as write_text_file, read_text_file, or delete_file. There are no stated conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_objectsARead-only
统计场景对象数量,可按 superclass 过滤。只读。 [English] Count scene objects, optionally by superclass. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| superClass | No | 按 superclass 统计,例如 GeometryClass、Shape。 | Count by superclass, e.g. GeometryClass, Shape. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description only restates 'read-only' without adding behavioral detail beyond the count/filter semantics. It does not describe return format or edge cases, but for a simple read-only count tool the existing annotations carry the main safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation, the optional filter, and the read-only nature in two short bilingual sentences. Everything present is relevant, and there is no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional documented parameter and safety annotations, the description is sufficiently complete. It defines what is counted and how to filter, and the operation name makes the numeric return type obvious. It does not explicitly state the return format, but that gap is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the parameter fully, including optionality and examples such as GeometryClass and Shape (100% schema coverage). The description does not add meaning beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('count'), a specific resource ('scene objects'), and the optional superclass filter. This naturally distinguishes it from sibling tools like list_objects, find_objects, and select_by_superclass, and the explicit 'read-only' note reinforces its non-mutating role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use the tool: when you need a count of scene objects, optionally filtered by superclass. However, it does not mention alternatives or exclusions, such as preferring list_objects for enumeration or select_by_superclass for selection. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_arcCDestructive
创建一段圆弧样条。radius 半径,from/to 起止角(度);做扇形/弯管截面。 [English] Create an arc spline. radius plus from/to angles in degrees; good for sectors/bent profiles.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度)。 | End angle (degrees). | |
| from | No | 起始角(度)。 | Start angle (degrees). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 半径。 | Radius. | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and the description does not contradict this. However, it doesn't disclose that this is a destructive operation or provide context on side effects. With destructiveHint=true and no additional behavioral details, the description adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, bilingual and efficient. It front-loads the core purpose and parameters. However, it includes some redundancy ('radius plus from/to angles' restates the schema) and could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters and no output schema, the description is inadequate. It doesn't explain which parameters are relevant for arc creation, how the arc is positioned, or what the return value would be. The description assumes domain knowledge and leaves much to inference, especially since the schema includes many non-arc parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description only mentions radius and from/to angles, but the schema lists 17 parameters including many irrelevant to arcs (e.g., text, sides, width). It doesn't clarify which parameters are actually used for arcs nor add semantics beyond what the schema provides, and it fails to warn about irrelevant parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates an arc spline with radius and from/to angles, and mentions use cases (sectors/bent profiles), distinguishing it from generic shape creators. However, it doesn't explicitly contrast with sibling tools like create_circle or create_ellipse, relying on the tool name 'arc' for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning 'good for sectors/bent profiles', but doesn't explicitly state when to use this tool over alternatives like create_ngon or create_line. It lacks exclusion criteria or clear alternative references, though the specific parameters hint at specialized use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boxADestructive
创建一个长方体。长度/宽度/高度可分别设分段;游戏资产分段保持 12-16,烘焙法线前用 reset_transform 清掉非均匀缩放。 [English] Create a box. Set length/width/height and their segment counts; keep 12-16 segments for game assets and call reset_transform before baking normals to clear non-uniform scale.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutation (readOnlyHint=false, destructiveHint=true), and the description's 'create' wording is consistent with that. The description adds useful production behavior context about segment counts affecting poly count and reset_transform being needed before normal baking, going beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and contains no filler. The bilingual duplication makes it slightly longer than strictly necessary, but it remains compact and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool backed by a 23-parameter shared schema and no output schema, the description leaves some ambiguity: it highlights dimensions and segments but does not explicitly say which unrelated params (chamfer, radius, sides, etc.) should be ignored, nor what a successful call returns. The practical workflow tips help, but not enough for full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline is 3. The description repeats the 12-16 segment guidance already present in the schema and adds no new meaning for name, position, or the many schema parameters that do not apply to a Box.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource ('Create a box') and identifies the core parameters (length/width/height and segment counts), so an agent can tell it is a box-creation tool. It does not explicitly contrast it with sibling tools like create_chamferbox or create_primitive, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete when/how guidance: keep 12-16 segments for game assets and call reset_transform before baking normals to clear non-uniform scale. It does not mention alternatives or when not to use this tool, but the provided context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_capsuleADestructive
创建一个胶囊体(拓展基础体)。fillet 控制端盖圆角;常用于角色碰撞体与道具。若当前 Max 未启用拓展基础体则会报错提示。 [English] Create a capsule (extended primitive). fillet controls end caps; common for character collision shapes and props. Errors gracefully if Extended Primitives are not enabled in this Max.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a useful behavioral note that the tool 'errors gracefully if Extended Primitives are not enabled', which goes beyond the annotations. However, it does not explain the destructiveHint=true annotation or what side effects creation may have, leaving some behavioral context to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, key parameter, use case, and error condition all appear in two short bilingual sentences. Every sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool this description is adequate, but given 23 optional parameters and no output schema, an agent still lacks guidance on which parameters actually define a capsule. The dependency warning and use case help, but the description does not clarify the destructive annotation or the relevant parameter subset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 even without extra parameter explanation. The description does add meaning by noting that fillet controls end caps, but with 23 optional parameters and no required ones, it does little to guide which parameters are relevant for creating a capsule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a capsule (extended primitive)', which clearly distinguishes it from sibling primitive creators like create_box and create_cylinder. It also adds capsule-specific details like fillet controlling end caps and common use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: capsules are 'common for character collision shapes and props', which helps an agent decide when to choose this tool. It also warns about the Extended Primitives prerequisite, though it does not explicitly name alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_chamferboxADestructive
创建一个带圆角的长方体(拓展基础体)。chamfer 控制倒角,圆角面会显著增加多边形数。若当前 Max 未启用拓展基础体则会报错提示。 [English] Create a chamfered box (extended primitive). chamfer controls the bevel; bevel faces add many polygons. Errors gracefully if Extended Primitives are not enabled in this Max.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that bevel faces 'add many polygons' and that the tool errors if Extended Primitives are not enabled. This provides useful previewable consequences. It does not contradict the readOnlyHint=false or destructiveHint=true annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it names the object type, explains the key parameter's effect, warns about polygon cost, and states the error condition. The bilingual duplication is purposeful and each clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 23-parameter tool with no output schema, the description covers the core behavior, the key parameter, a performance concern, and a prerequisite condition. It is not exhaustive about ignored parameters or defaults, but the high schema coverage mitigates that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining that chamfer controls the bevel, not just the amount, and warns that bevel faces increase polygon count. This is valuable contextual semantics for the most relevant parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a chamfered box (extended primitive)'. It clearly distinguishes this from a standard box by mentioning 'extended primitive' and 'chamfer', though it does not explicitly name create_box as the alternative for non-chamfered boxes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose: use this when creating a chamfered box. The description adds a prerequisite condition ('Errors gracefully if Extended Primitives are not enabled'), but does not explicitly compare against sibling tools like create_box or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_circleBDestructive
创建一个圆样条。radius 控制大小;常用于轮胎/孔洞轮廓。 [English] Create a circle spline. radius sizes it; common for tyres/hole outlines.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 半径。 | Radius. | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint: true directly contradicts the description's 'create' semantics, which implies an additive, non-destructive operation. The description does not disclose any destructive side effects (e.g., overwriting existing shapes). This is a clear annotation contradiction that leaves the agent confused about tool effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences, packed with the key information (action, key parameter, common uses). No filler; well front-loaded for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 17-parameter schema with 0 required fields, the description is far too sparse. It does not tell the agent which parameters are valid for a circle vs. other shapes, or that most listed parameters are likely ignored. Combined with the destructiveHint contradiction, this leaves the agent without enough context to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 17 parameters with descriptions (100% coverage), so baseline is 3. The description only repeats 'radius sizes it', adding no new meaning beyond the schema's existing '半径. | Radius.' entry. It also fails to clarify that most schema parameters (e.g., text, sides, width) are irrelevant to a circle, which could mislead an agent into passing them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb+resource: 'Create a circle spline' and adds a typical use case ('tyres/hole outlines'). This is unambiguous and distinguishes it from sibling shape tools like create_rectangle or create_ellipse at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: creating a circle spline, with common applications noted. However, it does not explicitly say when not to use this tool (e.g., 'use create_ellipse for elliptical shapes') or mention alternatives, though the sibling list makes that inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_coneADestructive
创建一个圆锥/圆台。radius1 为顶半径、radius2 为底半径,把顶半径设为 0 即为尖锥。 [English] Create a cone / frustum. radius1 is the top radius and radius2 the bottom; set top to 0 for a pointed cone.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool is non-read-only and destructive, so the bar is lower. The description adds useful geometric behavior (top radius 0 yields a pointed cone), but it does not mention scene side effects, what the tool returns, or any destructive implications beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, bilingual, and front-loads the core purpose and the most important parameter behavior. Every sentence earns its place; there is no filler or redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential creation semantics and the key radius behavior, while the schema documents all 23 parameters at 100% coverage. It does not explicitly state return values or warn that many schema params are irrelevant to cones, but the core calling context is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by explicitly mapping radius1/radius2 to top/bottom and revealing the non-obvious 'set top to 0 for a pointed cone' behavior, which is not obvious from the generic radius1/radius2 schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('cone / frustum'), and immediately clarifies the geometric distinction: radius1 is top, radius2 is bottom, and top=0 makes a pointed cone. This is specific enough to differentiate it from the many sibling primitive-creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when a cone or frustum is needed. However, there is no explicit guidance about when NOT to use it or which sibling tools to prefer for other primitive shapes, even though the sibling list contains many create_* alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cylinderBDestructive
创建一个圆柱。可设顶/底盖分段与边数;去掉封顶可当管道用。 [English] Create a cylinder. Control cap segments and sides; drop the caps to use it as a pipe.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is known. The description adds a mild behavioral insight about dropping caps to form an open pipe-like shape, but it does not disclose scene-level effects like object placement or selection changes. With annotations covering the safety profile, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded: it names the action, the two controllable aspects, and a practical use case. The bilingual repetition is intentional localization rather than filler, and every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 23 parameters, no required fields, and no output schema, yet the description mentions only cap segments and sides. It does not tell the agent that radius and height are the core shape dimensions, nor that many parameters such as axis, turns, fillet, and cornerRadius are irrelevant to a plain cylinder. The description leaves too much to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 23 parameters in detail. The description only highlights cap segments and sides, which adds no meaning beyond the schema. It also does not help the agent identify which of the many shape-specific parameters are actually relevant for a cylinder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: '创建一个圆柱' / 'Create a cylinder', and it adds that cap segments and sides are controllable. It does not, however, distinguish this tool from sibling creation tools like create_tube or create_cone, so it stops short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one use context: '去掉封顶可当管道用' / 'drop the caps to use it as a pipe'. This implies a scenario but does not explicitly compare against alternatives such as create_tube, nor does it state when not to use this tool. Usage guidance is present but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_donutADestructive
创建一个圆环(Donut)样条,即两个同心圆。radius1 外、radius2 内。 [English] Create a donut spline (two concentric circles). radius1 outer, radius2 inner.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 半径(Circle/Arc/NGon)。 | Radius (Circle/Arc/NGon). | |
| radius1 | No | 外圆半径。 | Outer radius. | |
| radius2 | No | 内圆半径。 | Inner radius. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the bar for additional disclosure is lower. The description adds that the tool creates a concentric-circle spline and defines radius roles, which is useful context. But it does not explain the reason behind destructiveHint=true (e.g., overwriting an existing object) or other side effects like whether the new object becomes selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler, front-loading the tool's purpose and then defining the key radii. The bilingual formatting is compact and does not distract. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 17 parameters, no required fields, no output schema, and annotations that flag it as destructive, the description is too thin. It does not state which parameters should be set for a normal donut, what the tool returns, or how to handle invalid input like radius2 >= radius1. An agent is left without enough context to invoke the tool correctly beyond the basic geometry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents radius1 as 'Outer radius' and radius2 as 'Inner radius', so the description's mention of these values adds no new semantic information. The description also does not clarify which of the 17 schema parameters are relevant to donut creation (e.g., radius1, radius2, position, segments) versus irrelevant parameters inherited from other primitives (e.g., sides, turns, text). Baseline 3 is appropriate because the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'create', the resource 'donut spline', and defines the geometry as 'two concentric circles' with radius1 outer and radius2 inner. This is specific enough to distinguish it from sibling tools like create_circle or create_torus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: whenever a donut spline is needed. However, it does not explicitly compare to alternatives like create_torus (3D torus) or create_circle, nor does it state when not to use this tool. The purpose is clear enough for basic routing, but the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ellipseCDestructive
创建一个椭圆样条。length/width 分别控制长、短轴。 [English] Create an ellipse spline. length/width are the major/minor axes.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 短轴长度。 | Minor axis length. | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长轴长度。 | Major axis length. | |
| radius | No | 半径(Circle/Arc/NGon)。 | Radius (Circle/Arc/NGon). | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the description does not need to restate mutation. It adds minimal context by implying a creation operation, but it does not disclose any side effects, undo behavior, or requirements. With annotations covering the destructive nature, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, with bilingual content. It is front-loaded with the core purpose. However, it is so minimal that it may under-specify rather than being efficiently concise. It earns a 4 for being compact and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, the description is incomplete. It does not indicate which parameters are applicable, does not describe return values, and does not mention any prerequisites. Even with annotations, the description is insufficient for an agent to call this tool correctly without exploring the schema deeply and guessing at relevance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description only explains length and width. Many parameters in the schema (sides, turns, radius, etc.) are irrelevant to an ellipse and are not filtered out. The description fails to clarify which parameters actually apply to ellipse creation, leaving the agent confused about which of the 17 parameters to use. It adds little value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates an ellipse spline and specifies that length/width control the major/minor axes. It is a specific verb+resource, but it does not differentiate from sibling tools like create_circle or create_ngon beyond the shape type. The purpose is clear but not heavily detailed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention when an ellipse is preferred over other spline primitives, nor any prerequisites or context. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_geosphereADestructive
创建一个几何球体(基于经纬/二十面体细分),比普通 Sphere 更均匀,更适合做行星与碰撞球。 [English] Create a geo sphere (icosa/geodesic subdivision) - more uniform than Sphere, good for planets and collision spheres.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint false and destructiveHint true, so the agent knows this tool modifies the scene. The description adds context about the result (uniformity, suitability) but does not disclose any additional behavioral traits such as side effects or prerequisites. Given the annotations cover the safety profile, a score of 3 is appropriate—it adds some value but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences (bilingual) that front-load the core purpose and differentiation. There is zero waste; every word contributes to understanding what the tool does and when to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 23 optional parameters and full schema coverage, the description sufficiently covers the essential context: what it creates, its advantage, and its use case. It does not explain return values, but creation tools typically do not require that, and the schema handles parameters. The description is complete for an agent to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning every parameter has a description in the schema. The tool description adds no parameter-specific information beyond what the schema provides, so the baseline score of 3 applies. The description does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a geosphere with more uniform distribution than a standard Sphere, and specifies its intended use for planets and collision spheres. It distinguishes itself from the sibling create_sphere by highlighting the uniformity advantage, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when a more uniform sphere is needed (planets, collision). It implies the alternative (Sphere) without naming it directly, but the sibling create_sphere is obvious. It gives a condition for use but does not explicitly state when not to use it, so it's slightly below a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hedraCDestructive
创建一个多面体(异面体),可选 family 与顶点类型,适合做科幻晶体。 [English] Create a hedra (multifaceted solid) with selectable family; good for sci-fi crystals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, and the description's 'create' wording is consistent with those annotations, so there is no contradiction. But the description adds no behavioral context such as whether creation overwrites an existing object, what scene state is mutated, whether the tool requires a target object, or how the created object is returned. It relies entirely on the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main action, which is structurally good. However, the English section directly duplicates the Chinese section, and the key substantive claim about family and vertex type is unsupported by the schema. Brevity is achieved, but the content is partly inaccurate, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 23 optional parameters and no output schema, an agent needs to know the default object behavior, which parameters apply to a given family, and what the call returns. The schema documents individual parameters well, but the description provides none of the connective context needed to choose among the parameters or predict the result of calling with no arguments. This is a major gap for a destructive creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description actively misleads by promising 'selectable family' and 'vertex type' parameters that do not exist in the schema (additionalProperties is false and no such properties are present). It also provides no guidance over the 23 actual parameters, so it fails to add semantic value and instead introduces phantom knobs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action and target: 'Create a hedra (multifaceted solid) with selectable family; good for sci-fi crystals.' That is a specific verb plus resource, and it adds a stylistic use case. However, it does not define what a 'hedra' is beyond a generic multifaceted solid, and it does not distinguish this tool from sibling primitive creators such as create_geosphere, create_pyramid, or create_primitive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'good for sci-fi crystals,' which is a stylistic suggestion, not an operational criterion. The description does not explain when to use create_hedra versus the many other create_* sibling tools, nor does it state when not to use it. There are no exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_helixADestructive
创建一条螺旋线。radius1/radius2 为上下半径,height 高度,turns 圈数;常用于弹簧/楼梯路径。 [English] Create a helix spline. radius1/radius2 top/bottom, height, turns; common for springs/stair paths.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数。 | Turns. | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 半径(Circle/Arc/NGon)。 | Radius (Circle/Arc/NGon). | |
| radius1 | No | 底部半径。 | Bottom radius. | |
| radius2 | No | 顶部半径。 | Top radius. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is carried by structured data. The description adds no behavioral detail beyond 'create': it doesn't explain auto-naming, overwrite-on-duplicate-name semantics, or what makes a creation operation flagged as destructive. No contradiction, but an unexplained destructiveHint on a create tool is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences per language, purpose front-loaded, parameters and use case following. The bilingual duplication is inherent overhead rather than waste, and every clause earns its place. Slightly longer than strictly necessary due to the English/Chinese mirror, but well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, 0 required, no output schema, and a destructiveHint=true annotation, the description is thin: it covers only 4 parameters and a use case. It doesn't guard against misuse of the irrelevant generic-schema parameters (e.g., text, sides, width), doesn't describe default behavior when called with no arguments, and leaves return values and the destructive aspect entirely undisclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds modest value by identifying the four helix-relevant parameters (radius1/radius2, height, turns) within a 17-parameter schema that is clearly a generic multi-shape catch-all (including text, sides, width, cornerRadius). However, it doesn't clarify which of the other 13 parameters are applicable to a helix, and with 0 required parameters it establishes no minimal viable invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Create a helix spline' / '创建一条螺旋线'. It also names the defining parameters (radius1/radius2, height, turns) and typical use cases (springs/stair paths), making it clearly distinguishable from sibling create_box, create_arc, create_line, and the other create_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use-case hint '常用于弹簧/楼梯路径' (common for springs/stair paths) provides implied context for when a helix is the right shape. However, it does not explicitly say when not to use this tool, nor does it route the agent to an alternative among the many sibling creation tools — the name itself does most of the differentiation work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_layerADestructive
新建一个层,可选设置颜色与初始隐藏状态。 [English] Create a layer, optionally with a colour and initial hidden state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 层名称。 | Layer name. | |
| color | No | RGB 颜色 [0-255],可选。 | RGB colour [0-255], optional. | |
| hidden | No | 是否隐藏该层,默认否。 | Hide the layer, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the operation as mutating and destructive (readOnlyHint false, destructiveHint true), and the description does not contradict them. It adds that a colour and initial hidden state can be set, but it does not disclose side effects such as duplicate-name behavior or whether the new layer becomes active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and contains no filler: one Chinese sentence and one English sentence carry the full meaning. The core action and optional parameters are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity creation tool with fully documented parameters and supportive annotations, the description is sufficient for an agent to invoke it correctly. It does not describe the return value or duplicate/active-layer behavior, but those are not essential for a basic create call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage and already documents name, color as an RGB array [0-255], and hidden with a default of false. The description re-states the optional colour and hidden state but provides no additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Create a layer') and the resource, while adding the optional parameters (colour and initial hidden state). This makes it easy to distinguish from sibling layer operations such as list_layers, delete_layer, and set_layer_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like set_layer_properties or delete_layer. The intended context is only implied by the verb 'create' rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lineADestructive
用一组世界坐标点创建一条样条线(Line)。可闭合。点数量越多曲线越精细,之后用 spline_set_points 修改顶点、spline_get_points 读取顶点。闭合样条可倒出成面片。 [English] Create a Line spline from an array of world-space points. Can be closed. More points = finer curve. Edit vertices with spline_set_points and read them with spline_get_points. A closed spline can be capped into a surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| closed | No | 是否闭合样条,默认否。 | Close the spline, default false. | |
| points | Yes | 顶点数组,每项为 [x,y,z]。 | Array of vertices, each [x,y,z]. | |
| position | No | 整体偏移 [x,y,z],会叠加到每个点上。 | Offset added to every point [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavior beyond annotations: the created spline remains editable, point count affects curve fidelity, and a closed spline can be capped into a surface. Annotations already signal readOnly=false and destructiveHint=true, and the description does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by closure, fidelity, and related-tool notes. The bilingual repetition adds length but is justified for the tool's audience, and every distinct piece of information earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter creation tool with no output schema, the description covers the main inputs, the creation workflow, and follow-up operations via spline_set_points/spline_get_points. The main omission is an explicit statement of the returned object handle or name, but the optional-name schema and sibling references make invocation reasonably clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds semantic value: points are in world space, more points produce a finer curve, and closure enables capping. This enriches the parameter meaning beyond the raw schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a Line spline from an array of world-space points.' It also distinguishes this from the many primitive-creation siblings by naming the subsequent spline editing/reading tools and noting that closed splines can be capped into surfaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this tool when you need a point-defined Line spline, adjust fidelity by adding points, and optionally close it. It does not explicitly list when-not-to-use or name creation alternatives, but the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ngonBDestructive
创建一个正多边形(NGon)样条。radius 为外接圆半径,sides 为边数(至少 3)。 [English] Create a regular polygon (NGon) spline. radius is the circumradius, sides the edge count (>=3).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数,至少 3。 | Edge count, >=3. | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 外接圆半径。 | Circumradius. | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context beyond the bare word 'Create'. It does not explain what is destroyed, whether an existing object is overwritten, or how the spline is inserted into the scene.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and free of filler. It states the core purpose first and then the two key parameters, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters and no output schema, this description is too thin. It never explains why the schema contains parameters for Text, Arc, Helix, Donut, and Rectangle, or whether those are accepted and ignored. The destructiveHint annotation is also left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 17 parameters with descriptions, so the baseline is 3. The description adds no new meaning beyond what the schema states for radius and sides, and it does not clarify which of the many unrelated parameters (Arc, Text, Helix, Donut, Rectangle) should be ignored for an NGon.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a regular polygon (NGon) spline.' It distinguishes the tool from siblings like create_circle and create_rectangle by addressing the NGon primitive directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when creating a regular polygon spline. However, it does not explicitly say when not to use it or which sibling tools cover other spline shapes, so the agent is left to infer the alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_planeADestructive
创建一个平面(默认只有 1 段,渲染时常用作地面/水面)。lengthSegs/widthSegs 给细分。 [English] Create a plane (1 segment by default, common as ground/water). lengthSegs/widthSegs add subdivisions.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the description only needs to add behavior beyond that. It adds the default segment count and subdivision control, but does not disclose return behavior, scene insertion side effects, or naming behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the main behavior and default segment count come first, followed by the relevant subdivision parameters. The bilingual repetition adds length without new information, but it is modest and acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 23 optional parameters and no output schema, the description is too thin. It does not mention what the tool returns, how dimensions/position defaults behave, or how the plane is oriented, which leaves an agent under-informed for anything beyond a default plane.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters and the baseline is 3. The description usefully highlights lengthSegs/widthSegs for plane subdivision, but it adds little beyond the schema's existing per-parameter descriptions and does not clarify which of the 23 params actually apply to a plane.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action—create a plane—and adds meaningful specifics: one segment by default and common use as ground/water. It is clear and specific about the resource, though it does not explicitly differentiate from sibling create_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete use context (ground/water) and directs the agent to lengthSegs/widthSegs for subdivisions. It does not name alternatives or state when not to use this tool, so it stops short of explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_primitiveADestructive
按类名创建一个 3ds Max 基础体(Box/Sphere/Cylinder/Cone/ChamferBox/Capsule 等)。不熟悉的类先用 does_class_exist 探测是否可用。分段数越高多边形越多,游戏资产保持 12-16。 [English] Create any 3ds Max primitive by class name (Box/Sphere/Cylinder/Cone/ChamferBox/Capsule...). Probe availability with does_class_exist for unfamiliar classes first. Higher segments mean more polygons; keep 12-16 for game assets.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| class | Yes | 3ds Max 基础体类名,例如 Box、Sphere、ChamferBox、Capsule。 | 3ds Max primitive class name, e.g. Box, Sphere, ChamferBox, Capsule. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is mutating and destructive. The description adds a useful prerequisite (class availability probing) and a performance warning about segment counts, but it does not describe what happens on failure, what gets selected, or what the return value is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core action, names the prerequisite probe, and closes with a bolded performance rule. The bilingual version is intentional and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large parameter surface and the absence of an output schema, the description does not tell the agent what the tool returns or how it behaves on invalid/unavailable class names. The does_class_exist routing and segment warning are helpful, but a generic creator would benefit from at least a brief success/error expectation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 24 parameters, including which primitive types each parameter applies to. The description adds only the general segment/polygon guidance, which is helpful but not necessary for understanding any specific parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete operation: create a 3ds Max primitive from a class name, and gives a representative list of classes (Box, Sphere, Cylinder, Cone, ChamferBox, Capsule). The 'by class name' phrasing clearly distinguishes this generic creator from the many specialized create_box/create_sphere siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs the agent to probe unfamiliar classes with does_class_exist before creating, which is concrete usage guidance. It also provides a segment-count target for game assets, though it does not explicitly discuss when to prefer a specialized create_* sibling instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pyramidCDestructive
创建一个四棱锥(方底金字塔)。用 width/height/depth 控制尺寸;也可当作低面数障碍体。 [English] Create a pyramid (square base). Use width/height/depth for size; handy as a low-poly obstacle.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false and destructiveHint=true, so the description bears little burden for the safety profile. However, destructiveHint=true is surprising for a create operation, and the description does nothing to clarify this — it doesn't say whether creating overwrites an existing object, alters the scene, or has side effects. The description adds only 'create', which is already implied by the tool name and annotations, so it contributes no genuine behavioral context beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded (purpose first, then sizing, then use case), but the entire content is duplicated in Chinese and English, making roughly half the sentences redundant for an AI agent. It's not verbose, yet the bilingual duplication inflates token count without adding information, and the brevity comes at the cost of omitting important parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 optional parameters, no output schema, and a noisy parameter list largely copied from unrelated primitives, the description is far too thin. It does not tell the agent which parameters matter for a pyramid, what the defaults are, what the destructiveHint=true means in practice, or how the object is created in the scene. An agent cannot confidently invoke this tool correctly based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description actively adds misleading semantics: it says 'Use width/height/depth for size' while the schema has no 'depth' parameter at all. It also fails to help the agent navigate a schema full of parameters clearly belonging to other primitives (to, from, axis, turns, fillet, chamfer, radius1, radius2, capSegs, cornerRadius). The one piece of sizing guidance is partly wrong, and the description does not point out which of the 23 parameters actually affect a pyramid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a pyramid (square base)', and the 'square base' detail distinguishes it from other primitive creators like create_cone or create_hedra. The bilingual text is consistent and the purpose is immediately understandable. Minor deduction because mentioning 'depth' as a sizing control introduces ambiguity about the tool's actual parameters, slightly muddying what the tool really creates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'handy as a low-poly obstacle', which is a vague use-case hint. There is no when-to-use vs alternatives guidance (e.g., why choose a pyramid over create_cone or create_hedra), no exclusions, and no prerequisites. An agent cannot tell from the description when this tool is the right choice among the many sibling primitive creators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_rectangleADestructive
创建一个矩形样条。length/width 控制尺寸,cornerRadius 可倒圆角;常作墙体/地面的截面。 [English] Create a rectangle spline. length/width size it; cornerRadius rounds corners. Common as wall/floor profile.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号(Text,对应 size 属性)。 | Font size (Text, maps to size). | |
| text | No | 文本内容(Text)。 | Text content (Text). | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度。 | Width. | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度。 | Length. | |
| radius | No | 半径(Circle/Arc/NGon)。 | Radius (Circle/Arc/NGon). | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细(Text)。 | Stroke thickness (Text). | |
| cornerRadius | No | 圆角半径。 | Corner radius. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds no further behavioral detail, such as whether an existing object is overwritten, how naming works, or what side effects occur in the scene. There is no contradiction, but the description carries little behavioral burden beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action and object, and every sentence contributes either the core behavior or a useful usage context. The bilingual repetition is consistent and not excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 schema parameters and no output schema, the description is somewhat thin. It covers the main dimensions and a common use case, but it does not specify which parameters are actually applicable to a rectangle, nor what the tool returns on success. This leaves room for an agent to misinterpret irrelevant parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by identifying length/width as the size controls and cornerRadius as the rounding control, which is not obvious from the generic schema descriptions alone. It also provides domain context ('wall/floor profile') that helps an agent reason about appropriate values. It does not clarify that many other schema parameters (e.g., text, sides, turns) are irrelevant for a rectangle, but it does highlight the operative ones.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a rectangle spline', and explicitly names the key controlling parameters (length/width, cornerRadius). This clearly distinguishes it from related sibling tools like create_box or create_sphere, which would produce different geometry types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a practical use case ('common as wall/floor profile'), which hints at when this tool is appropriate. However, it does not explicitly compare against alternatives such as create_line, create_ngon, or create_primitive, nor does it state when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sphereBDestructive
创建一个球体。segments 与 sides 共同决定多边形数,游戏资产保持低值。 [English] Create a sphere. segments and sides together drive polygon count; keep low for game assets.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark readOnlyHint=false and destructiveHint=true, and the description's 'Create a sphere' agrees with the mutation. It adds the useful context that segments/sides control polygon count, but it does not disclose scene-level effects such as auto-naming, default placement, or undo behavior; no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two brief bilingual sentences deliver the action first and then the key performance caveat. No filler or redundancy beyond the necessary language doubling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 optional parameters and no output schema, a single creation sentence leaves too much unspecified: there is no indication that all parameters are optional, which subset matters for a sphere, or how this compares to geosphere creation. The schema descriptions compensate for parameter details but not for tool-scope ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds a relationship between 'segments' and 'sides' for polygon count. However, with 23 optional parameters it doesn't clarify which parameters actually apply to spheres, and the 'sides' claim conflicts with the schema's own description of sides as a Cylinder/Cone/NGon/Torus parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the exact operation and object: 'Create a sphere', so the agent immediately knows the action and target. It earns 4 rather than 5 because it doesn't distinguish this from sibling create_geosphere or generic create_primitive, and 'sides' is mentioned as if sphere-specific despite the schema describing it for other primitives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose create_sphere over create_geosphere, create_primitive, or other create_* siblings. The only usage hint, 'keep low for game assets', concerns polygon budgets, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_teapotBDestructive
创建一个茶壶(经典测试模型)。axis 选择壶身/壶盖/壶嘴/壶把,通常保持默认。 [English] Create a teapot (classic test mesh). axis picks body/lid/spout/handle; usually leave default.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, and the description's 'Create a teapot' is consistent with those (no contradiction). The description adds modest context beyond annotations: axis selects which part of the teapot is generated and that defaults are fine. It does not disclose scene-level effects such as object naming, placement, or whether creation can overwrite an existing object — but given annotation coverage, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose before the parameter hint. The bilingual format duplicates content in Chinese and English, which adds some redundancy, but both sentences earn their place and nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple primitive-creation tool with zero required parameters and no output schema, the description adequately conveys that this is a test mesh and that defaults are usually fine. However, it does not warn that most of the 23 schema parameters are shared from other primitives and should be ignored for a teapot — a potential trap for an agent scanning the large schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds genuine value by mapping axis to body/lid/spout/handle, which the schema's 'Teapot axis 1-4' does not spell out. However, it does not clarify that many of the 23 parameters (turns, fillet, chamfer, capSegs) are irrelevant to a teapot, so the added semantics are minimal overall.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource — 'Create a teapot (classic test mesh)' — and adds that the axis parameter selects body/lid/spout/handle. However, it does not distinguish this tool from the many sibling create_* tools (create_box, create_sphere, create_primitive) beyond the name itself, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like create_primitive or the other primitive-specific creators. The only usage hint is 'axis ... usually leave default,' which is a parameter-level tip, not tool-selection guidance. With 23 sibling creation tools, the absence of routing or exclusion guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_textADestructive
创建文字样条(Text)。text 为内容,size 字号,可加厚描边;文字需转样条后才能挤出成面。 [English] Create a Text spline. text is the content, size the font size, thickness the stroke. Text must be a spline before extruding.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 图形名称;省略则自动命名。 | Shape name; auto-generated if omitted. | |
| size | No | 字号。 | Font size. | |
| text | Yes | 要生成的文字内容。 | Text content to generate. | |
| sides | No | 边数(NGon,至少 3)。 | Side count (NGon, >=3). | |
| turns | No | 圈数(Helix)。 | Turns (Helix). | |
| width | No | 宽度(Rectangle/Ellipse)。 | Width (Rectangle/Ellipse). | |
| height | No | 高度(Helix)。 | Height (Helix). | |
| length | No | 长度(Rectangle/Ellipse)。 | Length (Rectangle/Ellipse). | |
| radius | No | 半径(Circle/Arc/NGon)。 | Radius (Circle/Arc/NGon). | |
| radius1 | No | 第一半径(Donut)。 | First radius (Donut). | |
| radius2 | No | 第二半径(Donut)。 | Second radius (Donut). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| segments | No | 分段数。 | Segment count. | |
| thickness | No | 描边粗细。 | Stroke thickness. | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context by explaining that the result is a spline and that extrusion must happen afterward, and it identifies thickness as the stroke control. However, it does not explain the destructiveHint annotation, selection effects, or what happens to existing scene objects; it relies partly on annotations for the mutation/safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with two short bilingual sentences and no filler. The bilingual repetition is a minor cost but serves the audience, so the structure is still appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters and no output schema, the description is adequate for the simple required case of creating a text spline with text/size/thickness, and the extrusion note is valuable. It does not fully cover which of the many shared schema parameters apply to text, nor the output or destructive side effects, leaving clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description highlights text, size, and thickness, which helps orient the agent, but it adds little beyond the schema and does not clarify whether the many other accepted shape parameters—like radius, sides, turns—are relevant or ignored for create_text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '创建文字样条(Text) / Create a Text spline', clearly stating a specific verb and resource. The note that text must be a spline before extruding also separates this creation step from later modeling operations, making it distinct from sibling create_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear workflow context: text must be a spline before extruding, so an agent knows this is the correct tool for creating a text spline that will later be extruded. It does not explicitly name alternatives or exclusion conditions, so it does not reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_torusADestructive
创建一个圆环。radius1 是主管半径、radius2 是管子半径;sides 控制管子圆滑度。 [English] Create a torus. radius1 is the major (ring) radius, radius2 the minor (tube) radius; sides controls tube smoothness.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a mutating operation (readOnly=false, destructiveHint=true), so the core safety profile is covered. The description adds parameter clarification rather than behavioral detail, and does not mention return values or effects on the scene/selection, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the primary action, and uses its second sentence to clarify the three most important parameters. The bilingual duplication is acceptable and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 23 mostly-optional parameters, the description only explains three of them and does not indicate that other parameters may be irrelevant to a torus. The schema covers parameter meanings and annotations cover mutation behavior, making this minimally adequate, but an agent would benefit from clearer guidance about which generic parameters to ignore.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is adequate. The description adds genuine value by specifying that radius1 is the major ring radius and radius2 is the minor tube radius, which the generic schema descriptions do not make clear. It also clarifies that sides controls tube smoothness, going beyond the schema wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Create a torus' and explains the key radius parameters. It is specific enough to identify the tool's purpose, though it does not explicitly differentiate from similar sibling primitives like create_donut or create_tube.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name and description: an agent would use this when it needs a torus. However, there is no explicit guidance about when not to use it or which sibling alternative to choose for similar shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tubeADestructive
创建一个管状几何体。radius1 为外半径、radius2 为内半径;可控制封顶与边数。 [English] Create a tube. radius1 is outer, radius2 inner radius; control caps and sides.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | 结束角(度,Arc)。 | End angle in degrees (Arc). | |
| axis | No | 壶轴类型 1-4(Teapot);忽略通常即可。 | Teapot axis 1-4; usually leave default. | |
| from | No | 起始角(度,Arc)。 | Start angle in degrees (Arc). | |
| name | No | 对象名称;省略则自动命名。 | Object name; auto-generated if omitted. | |
| sides | No | 边数/管径向分段(Cylinder/Cone/NGon/Torus)。 | Side / tube radial segments (Cylinder/Cone/NGon/Torus). | |
| turns | No | 圈数(Helix)。 | Number of turns (Helix). | |
| width | No | 宽度。 | Width. | |
| fillet | No | 圆角量(Capsule)。 | Fillet amount (Capsule). | |
| height | No | 高度。 | Height. | |
| length | No | 长度(Box/Plane/Rectangle/Cone 等)。分段数决定多边形数量,游戏资产保持 12-16。 | Length (Box/Plane/Rectangle/Cone etc). Segments drive poly count - keep 12-16 for game assets. | |
| radius | No | 半径(Sphere/Torus/Cylinder 等)。 | Radius (Sphere/Torus/Cylinder etc). | |
| smooth | No | 是否平滑(Teapot 等)。 | Smooth the surface (Teapot etc). | |
| capSegs | No | 封顶分段(Cylinder/Cone/Tube)。 | Cap segments (Cylinder/Cone/Tube). | |
| chamfer | No | 倒角量(ChamferBox)。 | Chamfer amount (ChamferBox). | |
| radius1 | No | 第一半径(Donut/Tube/Helix/Cone 顶)。 | First radius (Donut/Tube/Helix/Cone top). | |
| radius2 | No | 第二半径(Donut/Tube/Helix/Cone 底)。 | Second radius (Donut/Tube/Helix/Cone bottom). | |
| setName | No | 创建后再改名为此名(name 的兜底写法)。 | Rename after creation (fallback for name). | |
| position | No | 世界坐标位置 [x,y,z]。 | World position [x,y,z]. | |
| segments | No | 分段数;影响多边形数量,游戏资产保持低值。 | Segment count; drives polygon count, keep low for game assets. | |
| widthSegs | No | 宽度方向分段(Box/Plane)。 | Width segments (Box/Plane). | |
| heightSegs | No | 高度方向分段(Box/Cylinder/Cone)。 | Height segments (Box/Cylinder/Cone). | |
| lengthSegs | No | 长度方向分段(Box/Plane)。 | Length segments (Box/Plane). | |
| cornerRadius | No | 圆角半径(Rectangle)。 | Corner radius (Rectangle). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description carries a lower burden. However, it adds no extraneous behavioral context—does not mention what happens to existing objects, whether it modifies the current selection, or any other side effects. It merely restates that it creates a tube.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences (bilingual) with no filler. The essential information—purpose and key parameter identities—is front-loaded and efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 23 parameters, the description highlights radius1/radius2 and mentions 'caps and sides' but does not name the specific parameters (capSegs, sides). It also omits generic parameters like name, position, and segments, which an agent might need. While the schema covers each parameter, the description does not help navigate the large parameter set relevant to a tube.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are 100% covered, but the description adds value by clarifying that radius1 is the outer radius and radius2 is the inner radius—a distinction not explicit in the schema, which only calls them 'first' and 'second'. This mapping helps avoid misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a tube and explicitly identifies radius1 as outer and radius2 as inner, which immediately distinguishes it from other create_* tools (e.g., create_cylinder, create_torus). The verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives or when not to use it. There is no mention of prerequisites, exclusions, or other create_* tools, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_add_listADestructive
给轨道加一个 List 控制器(把程序化噪声叠加在已有动画之上的标准做法)。例如位置轨道叠加 noise_position,再用 constraint_set_weight 调权重。 [English] Add a List controller to a track - the standard way to layer procedural noise on top of an existing animation. E.g. stack noise_position on a position track, then tune the weight with constraint_set_weight.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | 要加入的层控制器类,默认 noise_position。 | Layer controller class, default noise_position. | |
| weight | No | 新层权重(0-100,UI 同款)。 | New layer weight (0-100, like the UI). | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名:position / rotation / scale。 | Property: position / rotation / scale. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds context by explaining it's the standard way to layer noise, which is helpful. However, it does not describe what happens to existing controllers or whether the operation is reversible, though the annotation covers the destructive nature. The added context is useful but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two bilingual sentences, front-loaded with the core purpose followed by a practical example. There is no fluff or redundant information; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 fully documented parameters and no output schema, the description is sufficient. It explains the standard use case and ties to a related tool (constraint_set_weight), which helps the agent understand the workflow. It does not explicitly state that 'objects' defaults to selection, but that is in the schema, so the description does not need to repeat it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds a specific example value for the 'layer' parameter (noise_position) and mentions weight tuning, which slightly enhances understanding beyond the schema. It does not, however, explain the exact syntax or interplay of parameters in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a List controller to a track' – a specific verb, resource, and operation. It also differentiates from the sibling tool ctrl_list by specifying that it adds (vs. lists) controllers, and the example with noise_position and constraint_set_weight distinguishes it from other ctrl_* tools that manipulate weights or list controllers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete use case: layering procedural noise on an existing animation, and explicitly references the companion tool constraint_set_weight for adjusting weight afterwards. While it does not explicitly say 'use this when...' or 'not for...', the example makes the intended usage clear and implies that weight tuning is done by a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_assign_expressionADestructive
给一个标量属性挂一个 Expression(表达式)控制器,用表达式驱动它。注意:表达式控制器对浮点/标量属性最可靠;变换轨道请改用 List 控制器加 Noise 层。 [English] Attach an Expression controller to a scalar property and drive it with an expression. Note: Expression controllers are most reliable on float/scalar properties; for transform tracks use a List controller with a Noise layer instead.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 标量属性名。 | Scalar property name. | |
| expression | Yes | 表达式文本,例如 'x_position * 2.0'。 | Expression text, e.g. 'x_position * 2.0'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal that this is not read-only and is destructive. The description adds a reliability/scope caveat but does not disclose what happens to an existing controller on the property or whether the assignment is a replacement. This is acceptable given the destructiveHint annotation, but some behavioral context is still missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and caveat are front-loaded and the wording is tight. The bilingual repetition is mildly redundant, but the total length is still small and each unique idea is stated clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with complete schema descriptions and annotations, this is mostly complete: it covers the action, target property type, expression usage, and the main alternative. It does not mention whether an existing controller is overwritten or what the return status is, but this is not critical for the core call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add much parameter-level meaning beyond what the schema already provides: property is described as scalar, and expression already includes an example in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that it attaches an Expression controller to a scalar property and drives it with an expression. It also explicitly contrasts this with transform tracks, which should use a List controller with a Noise layer, so it is distinguishable from nearby controller tools like ctrl_add_list and ctrl_wire.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance: Expression controllers are most reliable on float/scalar properties, and transform tracks should instead use a List controller with a Noise layer. This tells an agent exactly when to use this tool and when to choose an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_listARead-only
列出对象所有可动画轨道及其控制器类型与关键帧数。排查『为什么这个属性没动』时先看它。 [English] List every animatable track of an object with its controller type and key count. Check it first when wondering why a property will not animate.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. | |
| objects | No | 对象名列表;省略则取选择中的第一个。 | Object names; the first of the selection if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and non-destructive. The description adds useful behavioral context by stating that it lists all animatable tracks and includes controller type and key count, plus a diagnostic-first recommendation. No side effects or safety contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the primary function appears first, followed by a concrete troubleshooting use case. The bilingual repetition is purposeful for the API's audience and adds no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description covers what the tool returns, why an agent would use it, and when to prioritize it. The input schema covers the parameters, and annotations cover the safety profile, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description does not add parameter-level detail beyond the schema, but the parameters (limit, offset, objects) are already fully documented in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('every animatable track of an object') and states the returned information ('controller type and key count'). The diagnostic framing ('why a property will not animate') clearly separates it from sibling animation tools like anim_set_key or ctrl_set_value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use the tool: 'Check it first when wondering why a property will not animate.' It does not explicitly name alternatives or state when not to use it, but the usage context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_set_propertyBDestructive
设置对象的任意(含非动画)属性值,支持点号路径,如 material.diffuse。可选在指定帧写入。 [English] Set any object property (including non-animatable) with dotted paths such as material.diffuse. Optionally written at a given frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 帧号;省略则用当前帧。 | Frame; current frame if omitted. | |
| value | Yes | 新值(字符串形式,按目标类型自动转换)。 | New value as a string, coerced to the target type. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名或点号路径。 | Property name or dotted path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the mutation risk is covered externally. The description adds useful context by mentioning support for non-animatable properties and optional frame-based writing, which goes beyond the annotations. It does not describe side effects of setting arbitrary properties or whether writes create keyframes, but this is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the core action and key example in the first sentence. The bilingual duplication adds some length but is standard for this tool set, and there is no filler or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, full schema coverage, and a destructive annotation, the description is adequate for invoking the tool: it explains the property path mechanism, optional frame, and object selection fallback. However, it lacks any note on when to use this tool versus nearby setters and does not mention return or error behavior, which matters more given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters. The description adds a useful dotted-path example ('material.diffuse') and clarifies the non-animatable scope, but it does not materially extend parameter meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Set'), a resource ('any object property'), and a key capability (dotted paths such as material.diffuse, including non-animatable properties). It does not explicitly name or differentiate from sibling tools like ctrl_set_value or set_property_value, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool can do but gives no guidance on when to choose it over the many related setters in the sibling list, such as ctrl_set_value, set_property_value, or mat_set_property. There are no exclusions, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_set_valueADestructive
在指定帧把一个可动画轨道的值写入为关键帧(相对 anim_set_key 更偏底层,专用于控制器轨道)。 [English] Write a keyframed value to an animatable controller track at a frame (lower level than anim_set_key, aimed at controller tracks).
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 帧号;省略则用当前帧。 | Frame; current frame if omitted. | |
| value | Yes | 值,标量或 [x,y,z]。 | Value, scalar or [x,y,z]. | |
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. | |
| property | Yes | 属性名(轨道)。 | Property / track name. | |
| relative | No | true=在当前值上叠加。 | true=add to the current value. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructive write intent, and the description adds the low-level controller-track scope. It does not disclose details such as whether an existing key at the frame is overwritten or whether a controller must already exist, but the core behavior is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short parallel sentences (Chinese and English) deliver the action and the distinguishing caveat with no filler. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with fully described schema and a destructive annotation, the description plus schema is sufficient to select and invoke it correctly. It lacks examples or edge-case notes, but those aren't required given the complete parameter docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no parameter-level detail beyond repeating 'controller track' scope; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Write a keyframed value to an animatable controller track at a frame') and explicitly differentiates itself from anim_set_key by calling itself lower-level and aimed at controller tracks. This lets an agent distinguish it from the many sibling animation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names anim_set_key as the higher-level alternative and states that ctrl_set_value is for controller tracks, which gives clear selection context. It stops short of spelling out explicit when-to-use/when-not-to-use rules or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ctrl_wireBDestructive
把两个对象的参数用表达式连线(Wire Parameters)。典型用法:车轮旋转由车体位移驱动。sourceProperty/targetProperty 是相对节点的点号路径,例如 position.x_position 或 rotation.controller.z_rotation。 [English] Wire two objects' parameters together with an expression (Wire Parameters). Classic use: a wheel's rotation driven by the car's position. sourceProperty / targetProperty are dotted paths relative to the node, e.g. position.x_position or rotation.controller.z_rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | 源对象名(驱动方)。 | Source object name (driver). | |
| target | Yes | 目标对象名(被驱动方)。 | Target object name (driven). | |
| expression | No | 连线表达式(可选,默认 1:1 同向)。 | Wire expression (optional, default 1:1). | |
| sourceProperty | Yes | 源属性点号路径。 | Source property dotted path. | |
| targetProperty | Yes | 目标属性点号路径。 | Target property dotted path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions destructiveHint: true in annotations, but the description itself does not elaborate on what destructive side effects the wiring might have (e.g., overriding existing controllers, breaking existing links). It also does not disclose whether the operation is reversible or how it interacts with existing wiring. The description adds some context (expression, dotted paths) but fails to address the destructive nature indicated by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a bilingual structure (Chinese and English) that front-loads the core purpose and example. It is efficient, but the bilingual repetition could be seen as slightly redundant for an English-speaking agent. Still, it is well-organized and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (wiring parameters with expressions), the description is insufficient. It does not explain what 'expression' syntax is expected (e.g., how to reference source and target in the expression), nor how errors are handled (e.g., if properties don't exist). It also doesn't mention whether there are limits on what properties can be wired or how to undo. These gaps are critical for correct usage, especially with a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, providing bilingual descriptions for all five parameters. The description adds context about the purpose of each parameter (source/driver, target/driven) and the format of property paths, which aligns with the schema. However, it adds no extra meaning beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: wire two objects' parameters together with an expression. It provides a concrete typical use case (wheel rotation driven by car position) and explains the key concept of dotted paths with examples. This distinguishes it from siblings like ctrl_set_value or constraint_link, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like constraint_link or ctrl_set_value. There is no mention of prerequisites (e.g., objects must exist, properties must be wireable) or when not to use it. A more experienced agent might infer usage from the example, but it lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_fileBDestructive
删除文件。不可恢复,请谨慎调用。 [English] Delete a file. Not recoverable, use with care.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要删除的文件。 | File to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the nuance that deletion is irreversible ('Not recoverable'), which is context beyond the boolean hint. However, it does not disclose other behavioral aspects such as error handling, permissions, or side effects. With annotations covering the safety profile, the description adds some value but not much more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences in two languages. The warning is front-loaded, which is appropriate for a destructive operation. Every word earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema) and the existing annotations, the description is minimally adequate. It states the action and the warning. However, it does not address edge cases such as file not found, permission issues, or whether the path must be absolute. For a simple deletion tool, this might be sufficient, but it leaves some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the 'path' parameter as 'File to delete'. The description adds no additional parameter information, such as path format, relative vs absolute, or file type constraints. Since the schema fully covers the parameter, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a file' with a specific resource. It distinguishes itself from sibling deletion tools like delete_objects and delete_layer by specifying 'file' as the target. The verb and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention context, exclusions, or any conditions for use beyond the generic warning to be careful. There is no reference to when to prefer this over copy_file or other file operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_layerBDestructive
删除一个层。可选连同层内对象一起删除。 [English] Delete a layer, optionally deleting the objects inside it too.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 层名称。 | Layer name. | |
| deleteObjects | No | 是否同时删除层内对象,默认否(对象会被移到默认层)。 | Also delete the objects it contains, default false (otherwise they move to the default layer). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds no extra behavioral context—it only restates the optional object deletion, which is already detailed in the schema's parameter description. No additional side effects, irreversible consequences, or prerequisites are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary action. It consists of two short sentences (bilingual) with no unnecessary filler. While it could be slightly improved by adding a note about default behavior or alternatives, it is efficient and clearly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool, the description, combined with the schema and annotations, is complete. The schema explains the parameters and default behavior, and the annotations convey the destructive nature. The description itself clearly states the core functionality. No output schema exists, so return values are not expected to be documented. It does not mention error cases or prerequisites, but these are not required for a basic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (name and deleteObjects) are fully documented in the input schema, including the default behavior of deleteObjects. The description does not add any further meaning or context beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: deleting a layer, with an optional flag to also delete its contained objects. This is a specific verb and resource, and it distinguishes itself from sibling tools like create_layer, list_layers, and delete_objects by focusing on the layer as the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as move_objects_to_new_layer or delete_objects. It does not mention conditions like 'if you want to keep the objects, use move_objects_to_new_layer' or any prerequisites. The only context is the action itself, leaving the agent to infer the appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_objectsADestructive
删除指定对象(省略则删除当前选择)。不可恢复,危险操作前建议 hold_scene。 [English] Delete the given objects (or the selection). Not recoverable; call hold_scene before risky deletes.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only. The description adds value by explicitly stating that deletion is not recoverable and by recommending hold_scene as a safety step, going beyond the annotation flags. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action and fallback behavior appear first, followed by the critical irreversibility warning and safety instruction. Bilingual redundancy is minor and does not obscure the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description covers the action, the parameter fallback, and the dangerous side-effect. The suggestion to call hold_scene gives the agent an actionable risk mitigation step, making the definition complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter description already explains that objects is an array of names and that omitting it uses the selection. The tool description mostly restates this behavior without adding new semantic detail, so the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') with a clear resource ('objects') and defines the scope: given objects or the current selection. This clearly separates it from sibling tools like delete_layer or delete_file without needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: delete explicitly named objects or fall back to the current selection. It also recommends calling hold_scene before risky deletes, which is practical pre-deletion guidance. It does not explicitly enumerate exclusions or name alternative deletion tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deselect_allARead-only
清空当前选择。批量操作前先清空可避免误伤上一次选择的对象。 [English] Clear the current selection. Useful before a batch operation so you do not accidentally operate on whatever was selected earlier.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the rationale (preventing accidental operations on a previous selection), which is useful context but not extensive. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences in English (plus a Chinese duplicate). It front-loads the action and then provides the usage rationale. Every word earns its place, and it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool with annotations covering safety, the description provides sufficient information: what it does, when to use it, and why. No additional details are needed for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema is fully descriptive. The baseline is 4 for tools with 0 parameters; the description does not need to add parameter details and appropriately omits them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Clear the current selection' – a clear verb and resource. It differentiates from siblings like select_all and select_objects by implying it deselects all, and the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: 'Useful before a batch operation so you do not accidentally operate on whatever was selected earlier.' This tells the agent when to call it, which is particularly valuable given the context of many sibling tools that operate on the current selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detach_elementsADestructive
把一个可编辑多边形按元素拆分,每个元素拆成独立对象(Det_<原名><序号>)。适合把合并网格重新拆开。 [English] Split an editable poly by element, each element becomes its own object (Det_). Re-separate merged meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 要拆分的 editable poly 对象名。 | Editable poly object name to split. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as destructive (destructiveHint=true), and the description adds behavior by specifying that each element becomes a separate Det_<name>_<n> object. However, it does not explicitly state whether the original object is removed or preserved, relying on the destructive hint to imply the outcome.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation, the naming pattern, and the intended use case in two short sentences per language. The bilingual duplication is reasonable for the tool's audience and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool, the description is nearly complete: it names the input, the action on every element, and the output naming pattern. It could be slightly more explicit about the fate of the original object, but the destructiveHint annotation covers the safety expectation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter (name) with 100% coverage, including that it must be an editable poly object name. The description reinforces this by mentioning editable poly but adds no new parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (split an editable poly by element), the resource (editable poly), and the outcome naming convention (Det_<name>_<n>). This clearly differentiates it from sibling tools like poly_detach_faces, which operate on selected faces rather than every element.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context: use it to re-separate merged meshes by splitting elements into individual objects. It does not explicitly say when not to use it or name an alternative, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
does_class_existARead-only
判断某个类在本机 3ds Max 中是否存在,用于在调用前探测插件可用性。 [English] Check whether a class exists in this 3ds Max installation, so plugin availability can be probed before use.
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | 类名。 | Class name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds the context that this is a pre-use availability probe, but does not disclose details such as return type, error behavior, or whether 'exists' means class is loaded vs. registered. Given annotation coverage, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences, front-loaded with the core action and purpose. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only existence check, the description provides sufficient context. It does not specify the return value, but 'check whether a class exists' strongly implies a boolean result, and the annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter className already has a bilingual description. The tool description adds no additional parameter semantics beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('check whether') and names the exact resource ('a class exists in this 3ds Max installation'), plus the purpose ('plugin availability can be probed before use'). It is clearly distinguishable from siblings like list_max_classes, which enumerate classes rather than test a single named class.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call it before using a plugin or feature to probe availability. It does not explicitly name alternatives or state when not to use it, but the intent is unambiguous enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_undoARead-only
提交 begin_undo 开启的撤销事务。 [English] Commit the transaction opened by begin_undo.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | 事务名称。 | Transaction label. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation contradiction: readOnlyHint=true claims the operation is read-only, while the description says it 'commits' a transaction, which is an explicit state-changing action. The description also fails to note what happens if no undo transaction is currently open.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single bilingual sentence with zero filler and no redundant restating of the tool name. It front-loads the core action and the dependency on begin_undo, making it maximally concise without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter pairing tool, the description covers the essential action and its relationship to begin_undo. However, the annotation contradiction and the lack of guidance about error conditions when no transaction is open leave the definition incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter label is fully described in the schema as '事务名称。 | Transaction label.', so the schema carries the semantic burden. The description adds no additional parameter-specific meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('commit') and a specific resource ('the transaction opened by begin_undo'), making its role unmistakable. It clearly distinguishes itself from begin_undo and cancel_undo by describing the finalization step of an undo transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies the tool must be used after begin_undo, since it commits the transaction that begin_undo opened. However, it does not explicitly mention alternatives like cancel_undo or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
env_getARead-only
读取环境设置:背景色、环境光颜色、背景贴图(类名)、当前曝光控制器。 [English] Read the environment: background colour, ambient colour, background map (class) and the active exposure control.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Read' aligns with this. The description adds the specific set of fields retrieved, which is useful behavioral context, but it does not disclose any side effects, failure modes, or nuances beyond what annotations already convey. It earns a passing score, not more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key fields, but it contains a redundant English/Chinese duplication (the same list is repeated twice). It is efficient but could be half the length, which prevents a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter with no output schema, this description is fully sufficient. It lists all the values returned and carries no prerequisites or edge cases. The annotations supply the safety profile, so nothing an agent needs to call and interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage by default. The description cannot add parameter guidance, so the baseline of 4 applies. It correctly implies that no input arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'read' (读取) with the specific resource 'environment' and enumerates four concrete fields (background color, ambient color, background map class, active exposure controller). This clearly distinguishes it from sibling setter tools like env_set_background_color and other getters such as render_get_engine or get_language, so an agent understands exactly what data is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys its use case (querying current environment settings) but provides no explicit guidance on when to use it versus alternatives. It does not mention that env_set_* tools should be used for modifications or that this is a read-only query, although the name and annotations suggest it. Thus the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
env_set_ambientADestructive
设置环境光颜色(影响所有未照亮区域的补光)。颜色接受 [r,g,b] 或 "#RRGGBB"。 [English] Set the ambient light colour (fills unlit areas). Accepts [r,g,b] or "#RRGGBB".
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | 环境光色 [0-255],也可传 "#RRGGBB"。 | Ambient colour [0-255], or a "#RRGGBB" string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the safety profile. The description adds the useful behavioral scope 'affects all unlit areas,' but it does not describe additional side effects or prerequisites. This is adequate for a simple setter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences, front-loaded with the action and effect, and each sentence earns its place. There is no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter setter with a well-covered schema and clear annotations, the description fully covers purpose, effect, and accepted input formats. No output schema is needed for a setter, and nothing required to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description repeats the same accepted formats ([r,g,b] or '#RRGGBB') already present in the schema's parameter description. It clarifies that a string is acceptable despite the array type, but it adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'set the ambient light colour' with the effect 'fills unlit areas.' This is enough to distinguish it from related siblings like env_set_background_color or env_set_background_map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via its clear purpose and effect but provides no explicit when-to-use guidance or alternatives. Closely related env_set_* siblings exist, so a sentence pointing to when to choose ambient light over background/exposure would improve this dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
env_set_background_colorADestructive
设置场景背景色。颜色接受 [r,g,b](0-255)或 "#RRGGBB"。 [English] Set the scene background colour. Accepts [r,g,b] (0-255) or a "#RRGGBB" string.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | 背景色 [0-255],也可传 "#RRGGBB"。 | Background colour [0-255], or a "#RRGGBB" string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, indicating a write operation. The description adds the accepted colour formats, but does not disclose other behavioral aspects like whether the previous background is overwritten or any side effects. With annotations covering the write nature, a score of 3 is appropriate; the description provides minimal extra context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences in Chinese and English. It front-loads the purpose and immediately specifies the accepted input formats. There is no unnecessary elaboration, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool, the description covers what it does and the parameter format. The lack of an output schema is not an issue since the operation is a setter. However, the type mismatch between the schema (array) and the described accepted string format could cause confusion for an agent relying on schema validation; while the description clarifies the format, the schema itself may reject strings. This minor gap prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema property description already states both accepted formats ([r,g,b] and '#RRGGBB'), matching the tool description verbatim. Since schema coverage is 100%, the description adds no new parameter information. The slight type inconsistency (schema says array, description says string also accepted) is present in the schema itself, so the description does not mislead; it just repeats the existing schema text. Thus, a baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the scene background colour, distinguishing it from sibling tools like env_set_background_map (background map) and env_set_ambient (ambient light). It specifies the exact resource (scene background) and the action (set colour), leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it does not explicitly name alternatives or exclusions, the purpose is self-evident among siblings (env_set_background_map, env_set_ambient, etc.). An agent can infer when to use this tool based on the task of setting a solid background colour, but there is no explicit 'use this instead of X' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
env_set_background_mapBDestructive
设置场景背景贴图(用 path 创建一个位图贴图作为 environmentMap)。 [English] Set the scene background map (creates a bitmap from path as the environmentMap).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 位图文件路径;省略则只创建空位图。 | Bitmap path; omit to create an empty bitmap. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation risk is known. However, the description adds no behavioral context beyond that, such as overwriting the existing background map, requiring an existing file, or what happens on invalid paths. It does not contradict the annotations, but it does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence in both Chinese and English, with no redundant explanation or filler. It front-loads the core action and stays appropriately brief for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter setter, the description is mostly complete: the parameter is fully documented, annotations cover the destructive nature, and the purpose is clear. The main gap is the absence of any guidance about when to choose this tool over env_set_background_color or other environment-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional path parameter is already fully documented in the schema. The description repeats the same information about creating a bitmap from path without adding extra meaning or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and a specific resource ('scene background map'), and further clarifies the action as creating a bitmap from path for use as the environmentMap. It distinguishes itself from nearby siblings like env_set_background_color, env_set_ambient, and env_set_exposure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no guidance on when to use it over alternatives or what conditions warrant calling it. There is no mention of env_set_background_color or other environment-related tools, so the agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
env_set_exposureADestructive
设置曝光控制器:physical / logarithmic / automatic / linear / none,并可设曝光值 EV。none 表示移除曝光控制;physical 为 3ds Max 默认。 [English] Set the exposure control: physical / logarithmic / automatic / linear / none, with an optional exposure value (EV). none removes the control; physical is 3ds Max's default.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | 曝光控制器类型。 | Exposure control type. | |
| exposureValue | No | 曝光值 EV。 | Exposure value (EV). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context by stating that 'none' removes the exposure control and 'physical' is the default. Annotations already flag destructiveHint=true, and the description aligns with that. It does not mention side effects on rendering, but the added specificity justifies a score above the annotation-only baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the action and options, then adds clarifying notes. It is bilingual but not verbose, and every sentence contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters, the description provides all necessary information: the enum values, the optional EV, and special behaviors. No output schema is present, but that is acceptable for a setter. The destructive nature is covered by annotations, and the description is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover both parameters (100% coverage), so the baseline is 3. The description adds value by clarifying the special cases of the 'type' parameter ('none' removes, 'physical' is default), which goes beyond the enum names. The exposureValue parameter is not elaborated beyond the schema, but the added type semantics warrant a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the exposure control, enumerating the allowed types and the optional EV value, and adds clarifying notes about 'none' and 'physical'. It is specific about the verb and resource, though it does not explicitly contrast with sibling env_set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like env_set_background_color or env_set_ambient. The description explains what the tool does but not the context in which it should be invoked, such as prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_maxscriptADestructive
直接执行一段 MAXScript 代码并把结果返回。这是万能逃生舱:当没有现成工具时用它访问任意 Max 功能。设置 asOneUndo=true 可让整段代码成为一步撤销。 [English] Execute a MAXScript snippet and return its result. This is the universal escape hatch: use it to reach any Max feature that has no dedicated tool. Set asOneUndo=true to make the whole snippet a single undo step.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 要执行的 MAXScript 代码。 | MAXScript code to execute. | |
| label | No | 撤销步骤名称。 | Undo step label. | |
| asOneUndo | No | 是否把整段代码包成一步撤销(默认否)。 | Wrap the whole snippet in one undo step (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as potentially destructive and not read-only, so the description does not need to repeat that warning. It adds useful behavioral context beyond annotations: arbitrary code execution, result return, and the asOneUndo grouping behavior. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is compact and front-loaded: purpose, usage condition, and undo behavior appear in two short sentences per language. The bilingual duplication doubles the length, but each language version is tight and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an arbitrary code execution tool, the description covers the essential selection and invocation context: what it does, when to use it, and the key undo option. Schema examples cover code format. It does not detail error handling or result serialization, but annotations mitigate the missing safety warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mentions asOneUndo, but this largely restates what the schema already says. It adds no meaningful semantic detail beyond the schemas for code and label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: execute a MAXScript snippet and return the result. It also positions itself as the 'universal escape hatch' for reaching any Max feature without a dedicated tool, which clearly distinguishes it from the many specialized sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool when there is no dedicated tool for the desired Max feature. It does not name alternatives like execute_python or explicitly list exclusions, but the core routing condition is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_pythonADestructive
在 3ds Max 内置 Python 中执行代码(需要该版本随附 Python)。注意:3ds Max 2020 出厂只有 Python 2.7,2021 及以后是 Python 3。若脚本需要 pymxs,请确认版本支持。 [English] Execute code in the Python interpreter embedded in 3ds Max (if that release ships one). Note: 3ds Max 2020 ships Python 2.7 only, 2021 and later ship Python 3. Check the version if your script needs pymxs.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 要执行的 Python 代码。 | Python code to execute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the agent knows arbitrary code may mutate the scene. The description adds useful environment context (Python 2.7 vs 3, pymxs compatibility) but does not discuss side effects such as undo behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The action and version caveat are front-loaded and compact, with no irrelevant detail. The bilingual duplication is slight overhead but is a reasonable accommodation rather than a meaningful completeness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter arbitrary-code execution tool, the description covers what to pass, release-dependent availability, and pymxs version checking, and the destructive annotation covers risk. An explicit example or output/error behavior note would be nice but is not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'code' is 100% covered by the schema description, and the tool description does not add syntax, examples, or constraints beyond 'Python code to execute.' Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Execute') and resource ('the Python interpreter embedded in 3ds Max'), making the tool's function obvious. The 'if that release ships one' caveat and Python-specific framing distinguish it from the MaxScript execution sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies a condition for use — only releases that ship Python — and a version prerequisite for pymxs scripts. It does not explicitly name an alternative like execute_maxscript, but the Python vs. MaxScript distinction is clear from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_3dsADestructive
导出旧的 3DS 格式。若本机没有对应导出器会报错。 [English] Export the legacy 3DS format. Fails if this Max has no matching exporter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .3ds 文件路径。 | Output .3ds path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses a meaningful failure condition: 'Fails if this Max has no matching exporter.' This is useful behavioral transparency. It does not conflict with readOnlyHint=false or destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the purpose first and adds the failure caveat second. The bilingual repetition is not filler and serves multilingual users without bloating the content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter export tool, the description plus schema covers the essential facts: what format is exported and a key environmental failure mode. It does not explicitly describe success/return behavior, but the path and selection semantics are fully covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters with 100% coverage, including the selected boolean default true. The description adds no new parameter-level detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Export the legacy 3DS format.' This clearly identifies the tool's function and distinguishes it from sibling export tools like export_fbx, export_gltf, and export_obj by target format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The format target makes the usage context clear, and the caveat about missing exporters adds practical guidance. It does not explicitly name alternative export tools or state when not to use this tool, but the format specificity makes confusion unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_abcADestructive
导出 Alembic (.abc)。Alembic 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export Alembic (.abc). Alembic is a plugin - if this Max lacks it the call fails with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .abc 文件路径。 | Output .abc path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and destructive, and the description adds a concrete failure mode: if Alembic is not installed, the call fails with err.class_missing. It does not discuss file overwrite or report return behavior, but the plugin dependency warning is useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the purpose first, then the critical plugin prerequisite. The bilingual repetition is not filler; it serves the likely MaxScript/3ds Max audience without adding unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter export tool with no output schema, the description covers the format, the path parameter, the selection default via the schema, and the most important environmental failure. It could mention return/report behavior, but the plugin warning makes it adequate for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; path and selected are already documented in the input schema. The description does not add extra parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Export Alembic (.abc)'. This identifies the tool as the Alembic export option among many export_* siblings, though it does not explicitly name a sibling or scope beyond the schema's selection parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied use is when an Alembic .abc export is needed, and it gives an important prerequisite warning: the Alembic plugin must be installed or the call fails with err.class_missing. However, it provides no explicit when-not-to-use guidance or alternatives compared to export_fbx, export_usd, or export_selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_engine_presetADestructive
一键为指定目标引擎选好格式与选项的便捷调用:unity / unreal / godot / maya / blender / generic。目前统一走 FBX 并套用对应上轴与预设(Blender/Godot 也用 FBX,更稳)。 [English] One call that picks the right format and options for a named target engine: unity / unreal / godot / maya / blender / generic. Currently routes through FBX with the matching up-axis and preset (Blender/Godot also use FBX for robustness).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出基准路径;省略用导出目录。 | Base output path; omit to use the export folder. | |
| units | No | 单位 automatic/meters/centimeters。 | Units automatic/meters/centimeters. | |
| engine | Yes | 目标引擎。 | Target engine. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. | |
| animation | No | 是否包含动画,默认否。 | Include animation, default false. | |
| bakeAnimation | No | 是否烘焙动画,默认否。 | Bake animation, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the file-writing risk. The description adds useful behavioral context: it currently routes through FBX with presets (including Blender/Godot using FBX for robustness), which is not in the annotations. This exceeds the minimum but doesn't detail side effects like overwriting or file naming conventions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core purpose in both Chinese and English. It covers the essential behavior (FBX routing) without padding. The bilingual format adds length but is a deliberate localization choice; still, each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (six parameters, one required, no output schema), the description is adequate. It clarifies the engine-targeting intent and the FBX routing, and the annotations cover the destructive nature. It doesn't explain return values, but that's not critical for an export tool, and the schema covers parameters. Some might want explicit mention of file overwrite behavior, but annotations suffice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (path, units, engine, selected, animation, bakeAnimation) are already documented in the schema. The description mentions the engine list and FBX routing but adds no extra semantics for parameters like units or bakeAnimation beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a convenience call that selects the right format and options for a named target engine (unity, unreal, godot, maya, blender, generic). It specifies the current behavior (routes through FBX with matching up-axis and preset), which distinguishes it from raw export tools like export_fbx and export_gltf by being engine-aware.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you want a preset export for a specific game engine) but does not explicitly compare it with alternative export tools or state when not to use it. There is no mention of using export_fbx directly for non-engine-specific exports, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_fbxADestructive
主力导出:FBX,可选 Unity/Unreal/Maya 预设、只导出选择、烘焙动画、动画开关、上轴与单位。警告:units=automatic 且场景是 1 单位时,会导出成 1 单位模型——Unity 与 Unreal 都用米,所以先用 set_units 设好单位比例再导出。 [English] The workhorse: FBX, with optional Unity/Unreal/Maya preset, selection-only, animation baking, animation toggle, up-axis and units. WARNING: with units=automatic and a 1-unit scene you export a 1-unit model - both Unity and Unreal expect metres, so set the unit scale first with set_units before exporting.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .fbx 文件路径(缺扩展名自动补)。 | Output .fbx path (extension added if missing). | |
| units | No | 单位 automatic/meters/centimeters;建议先 set_units。 | Units automatic/meters/centimeters; prefer set_units first. | |
| preset | No | 目标预设。 | Target preset. | unreal |
| upAxis | No | 上轴 y/z,默认 z(Unreal 用 z,Unity 用 y)。 | Up axis y/z, default z (Unreal z, Unity y). | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. | |
| animation | No | 是否包含动画,默认否。 | Include animation, default false. | |
| bakeAnimation | No | 是否烘焙动画,默认否。 | Bake animation, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior, so the description's job is to add context. It adds a valuable warning about units=automatic producing a 1-unit model in Unity/Unreal and instructs the caller to set units first. It does not mention file overwrite behavior, but the destructiveHint annotation partially covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is compact and front-loaded with the essential purpose, followed by a focused warning. The bilingual duplication roughly doubles the length, but it is consistent and not padded with filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter file-export tool with no output schema, the description covers the core purpose, main options, and the critical unit-scale pitfall. It does not explain return/result behavior or overwrite semantics, and it leaves alternative exporters unnamed, so the guidance is useful but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description only needs to add value beyond the schema. It names the main options and clarifies the unit-scale pitfall, but it does not deepen meaning around relationships like animation vs. bakeAnimation or defaults beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: FBX export, with an explicit list of configurable options (preset, selection-only, animation, up-axis, units). It distinguishes itself from sibling exporters by identifying itself as the FBX workhorse and by naming the Unity/Unreal/Maya presets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly marks itself as the main FBX export path and gives a concrete prerequisite: use set_units first to avoid unit-scale mistakes. However, it does not explicitly tell an agent when to choose this tool over sibling exporters like export_obj, export_gltf, export_engine_preset, or export_selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_get_last_reportARead-only
返回上一次导出调用的结果摘要(路径、预设等)。便于排查导出失败。 [English] Return the result summary of the last export call (path, preset, ...). Useful for troubleshooting a failed export.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already state readOnlyHint=true and destructiveHint=false, and the description adds that this tool recalls a stored summary (path, preset) rather than performing an export. It does not detail what happens when no previous export exists, but for a simple zero-parameter read-only query this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences per language, with the action stated first and the purpose second. There is no filler, and the bilingual duplication is a deliberate localization choice rather than verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, simple read-only annotations, and no output schema, the definition covers what the tool returns, which export it refers to, and why an agent would call it. The only minor omission is behavior when no prior export call exists, which is unlikely to prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema description coverage, the schema itself carries all parameter information. The description correctly adds no parameter details, and the 0-parameter baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: '返回上一次导出调用的结果摘要' / 'Return the result summary of the last export call', with concrete examples such as path and preset. This clearly distinguishes it from the many export_* sibling tools, which perform exports rather than report on the last one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '便于排查导出失败' / 'Useful for troubleshooting a failed export' gives a clear context for when to call it: after an export fails or needs verification. It does not explicitly name alternatives or say when not to use it, but the diagnostic intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_gltfADestructive
导出 glTF / GLB。glTF 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export glTF / GLB. glTF is a plugin - if this Max lacks it the call fails with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .gltf 或 .glb 文件路径。 | Output .gltf or .glb path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the operation as non-read-only and destructive, lowering the bar for behavioral disclosure. The description adds a useful concrete failure mode for the missing plugin, but it does not clarify whether an existing file at the output path would be overwritten.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action in the first sentence and the plugin prerequisite in the second. The bilingual repetition is not wasteful given the tool's multilingual context, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter export tool, the description plus schema covers the required path, the selected-scope option, and the main environment dependency. The lack of an output schema is not a major gap because the primary result is a file, and the key failure mode is disclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented with meaningful descriptions, including the default behavior of `selected`. The tool description adds no parameter-level detail beyond the target formats, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Export glTF / GLB', a specific verb and resource that clearly identifies the tool's function. It does not explicitly contrast this with sibling exporters like export_fbx or export_obj, but the format name makes the scope understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides one valuable usage condition: glTF is a plugin, and if it is missing the call fails with err.class_missing. However, it does not say when to prefer this tool over alternative exporters, so selection guidance is mostly implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_objADestructive
导出 Wavefront OBJ(可选只导出选择)。无动画/无材质实例,适合静态网格。 [English] Export a Wavefront OBJ (optionally selection only). No animation or material instances - fine for static meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .obj 文件路径。 | Output .obj path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description adds useful limitations: no animation, no material instances, and optional selection-only export. This goes beyond structured annotations and helps the agent predict what the output will and will not contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and scope. The bilingual duplication adds some length, but it is still short and each version carries the same useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter export tool, the description covers purpose, scope, and format limitations. It does not mention overwrite behavior or file-extension handling, but the destructiveHint annotation partially covers the mutation risk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both path and selected. The description mentions selection-only behavior but adds no parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Export a Wavefront OBJ (optionally selection only).' It clearly identifies the target format and scope, distinguishing it from sibling export tools like export_fbx or export_gltf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for static meshes ('No animation or material instances - fine for static meshes') but does not explicitly state when to choose OBJ over alternatives or name sibling formats. It gives context but leaves the when-not-to-use case to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_selectionADestructive
把当前选择按文件扩展名对应的格式导出(引擎未知时很有用)。导出器不存在会报错。 [English] Export the current selection using the format implied by the file extension (handy when the engine is unknown). Fails if the exporter for that extension is missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出文件路径,扩展名决定格式。 | Output path; the extension decides the format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly discloses that the operation fails when no exporter exists for the extension, which is behavior beyond the annotations. readOnlyHint=false and destructiveHint=true already flag the write/destructive nature, so the description does not need to restate it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose, fallback use case, and error condition in two sentences. The bilingual duplication is compact and does not insert filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool without an output schema, the description sufficiently explains behavior and failure mode. It could be more complete by mentioning whether an existing file would be overwritten, but the core invocation knowledge is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the path parameter is already documented as 'output path; extension decides format.' The description restates that semantic without adding new parameter-level detail such as supported extensions or path encoding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action: export the current selection into a format determined by the file extension. This clearly distinguishes it from format-specific exporters like export_fbx/export_gltf in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'handy when the engine is unknown' supplies context for choosing this generic exporter over format-specific tools. It does not explicitly list when not to use it or name alternatives, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_stlADestructive
导出 STL(3D 打印/逆向常用)。若本机没有对应导出器会报错。 [English] Export STL (common for 3D printing / reverse engineering). Fails if this Max has no matching exporter.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .stl 文件路径。 | Output .stl path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-read-only and destructive behavior. The description adds a specific failure mode: it errors if the host Max has no matching exporter. This is useful operational context beyond the schema and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action and intended use, with no filler. The bilingual duplication is slightly redundant but acceptable for an international tool and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter export command with no output schema, the description plus schema covers the action, file path, selection scope, and the main failure condition. It does not describe return values or overwrite behavior, but those are partially covered by annotations and the tool's nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents path as a required output file path and selected as defaulting to true. The description itself adds no parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Export') and resource (STL), and adds the intended use cases of 3D printing / reverse engineering. This clearly distinguishes it from sibling exporters like export_obj, export_fbx, and export_gltf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context by identifying STL as common for 3D printing / reverse engineering, so an agent can infer when this tool is appropriate. It does not explicitly name alternative exporters for other formats or state when not to use it, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_usdBDestructive
导出 USD。USD 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export USD. USD is a plugin - if this Max lacks it the call fails with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出 .usd/.usda/.usdc 文件路径。 | Output .usd/.usda/.usdc path. | |
| selected | No | 是否只导出当前选择,默认是。 | Export only the current selection, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description adds the plugin dependency and the exact error code (err.class_missing) if the plugin is absent. This is useful, though it does not mention overwrite behavior or output reporting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and includes an explicit English section, but it repeats the same information in Chinese and English, which adds token overhead without new content. The placement of Chinese before English also slightly reduces front-loading for English-based agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover parameters and destructive intent, and the description adds the critical plugin prerequisite. However, it omits any statement about file overwriting, return behavior, or when to prefer this export format over the many sibling export tools, leaving meaningful context gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters completely, including the allowed file extensions and the default value of 'selected'. The description adds no extra parameter meaning, so the baseline 3 for 100% schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Export USD', naming the exact operation and file format. It does not explicitly differentiate from sibling export tools like export_fbx or export_gltf, but the tool name and format-specific wording make the intent obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose export_usd over its sibling export tools, nor any mention of alternatives. The only extra context is the plugin prerequisite and failure mode, which is not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_sceneARead-only
把场景还原到最近一次 hold_scene 的状态。会丢弃此后的全部改动。 [English] Restore the scene to the last hold_scene. Everything done since is discarded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that 'Everything done since is discarded,' which is a destructive behavior. This directly contradicts the annotations readOnlyHint=true and destructiveHint=false, which imply the tool is a safe, non-modifying operation. The contradiction is flagrant and could mislead an agent into believing the tool has no side effects when it actually discards user work.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences in each language, with the key warning bolded and front-loaded. No extraneous information is present, and the structure makes the critical destructive consequence immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers the core behavior and main warning. However, it omits important context such as what happens if hold_scene has never been called, whether the undo stack is affected, and how this relates to release_scene. The contradictory annotations also reduce trust and completeness, as an agent cannot confidently determine the tool's true safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is an empty object with 100% coverage. Per the baseline for 0-parameter tools, a score of 4 is appropriate. The description does not need to explain parameters since there are none, and it correctly focuses on the behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool restores the scene to the last hold_scene state, using a specific verb ('restore') and resource ('scene'). It distinguishes itself from siblings by directly naming hold_scene as its counterpart and explicitly warning that all changes since are discarded, leaving no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context: call this after a hold_scene to revert to that state. It clearly communicates the effect of discarding subsequent changes. However, it does not explicitly mention alternatives like undo_last or release_scene, nor does it state when not to use it, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_existsBRead-only
判断文件是否存在。 [English] Check whether a file exists.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文件绝对路径。 | Absolute file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds no behavioral detail beyond that. It does not disclose return value semantics, error behavior for missing paths, or how unreadable files are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, putting the key verb and resource first. The bilingual repetition is slightly redundant but does not meaningfully harm clarity or add bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only predicate, the schema and annotations cover the essential input and safety constraints. The description sufficiently conveys the tool's behavior, and although it does not explicitly state the boolean return, the predicate semantics make it clear enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single 'path' parameter as an absolute file path, so the description does not need to repeat it. The description adds no additional parameter context, which matches the baseline for 100% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Check whether a file exists.' It is easy to distinguish from sibling file tools like read_text_file or get_file_info by its predicate nature, though it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The sibling list contains many file-related tools, but the description does not say, for example, to use this as a precondition before reading or copying a file, nor does it mention any alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_missing_assetsARead-only
只列出丢失(无法解析路径)的资源,并给出每个文件的引用次数。 [English] List only the assets whose paths cannot be resolved, with a reference count per file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=true and destructiveHint=false, so no safety contradiction exists. The description adds behavioral detail beyond the annotations by specifying that it filters to missing assets only and emits a per-file reference count, which meaningfully informs the agent about the tool's output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, providing the essential behavior in two short sentences. The core filtering condition ('only missing') appears first, and the bilingual repetition does not add harmful length, keeping the definition front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, no parameters, and existing annotations, the description adequately covers what the tool does and what it returns. It does not detail output formatting or edge cases, but for a read-only listing operation this is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 and the description does not need to explain parameter meanings. The input schema is fully documented by being empty, and no additional parameter semantics are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and a clearly defined resource ('assets whose paths cannot be resolved'), which distinguishes it from the broader sibling get_scene_assets and from relink_assets. It also states the output feature (reference count per file), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when the agent needs to identify unresolved/missing assets rather than all assets. It does not explicitly name an alternative or state when not to use it, but the phrase 'list only' provides clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_objectsARead-only
按名称精确或模糊查找对象,返回命中列表与 count。只读。exact=true 时只匹配完全相同名称。 [English] Find objects by exact or fuzzy name; returns hits and a count. Read-only. exact=true matches only identical names.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 要查找的名称或关键字。 | Name or keyword to find. | |
| exact | No | 是否精确匹配,默认否(模糊包含)。 | Exact match, default false (fuzzy contains). | |
| pattern | No | 通配符形式,例如 *prop*(与 name 二选一)。 | Wildcard form, e.g. *prop* (alternative to name). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only claim adds no new information. The description does add the return shape (hits + count) and the exact-match semantics, but it does not disclose finer behaviors like case sensitivity, result ordering, or how pattern interacts with name. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core information is front-loaded in the first sentence: operation, matching mode, return value, and read-only status. The bilingual duplication is somewhat redundant but still compact and well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with three documented parameters, the description is largely sufficient: it explains purpose, return count, and exact/fuzzy behavior. Minor gaps are the absence of the pattern parameter in the description and the unspecified structure of a 'hit', but the schema covers the former and the return shape is stated at a useful level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with 100% description coverage, so the schema carries the parameter documentation burden. The description reinforces exact=true behavior but does not add meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: finding objects by exact or fuzzy name, and the return payload (hits list plus count). This clearly differentiates it from sibling tools like list_objects, count_objects, and get_object_info, which do not offer name-based substring search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context: use this when you need name-based lookup, with exact=true for identical matches and default false for fuzzy contains. However, it does not explicitly name alternatives or state when not to use it, such as enumerating all objects with list_objects or counting with count_objects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freeze_objectsADestructive
冻结指定对象(不可选中、不可变换,但仍可见/可渲染)。适合锁定背景参考物。 [English] Freeze the given objects (unselectable/untransformable but still visible/renderable). Lock reference props.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=true; the description goes further by disclosing the exact state change (unselectable/untransformable) and explicitly noting visibility/rendering is preserved. It does not mention reversibility (e.g. unfreeze_all), but the core behavioral traits are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The copy is compact and front-loads the behavior before the use case. The Chinese/English duplication is reasonable for a bilingual tool but means the two sentences carry the same information, so it is not maximally economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers what happens to the objects and why to use it. It could mention that the operation can be undone via unfreeze_all, but that is not required to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the objects parameter is documented as a name list that falls back to the current selection when omitted. The tool description only refers to 'given objects' and adds no semantic value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('freeze given objects') and precisely characterizes the result as unselectable/untransformable but still visible/renderable, which clearly separates it from hide_objects/delete_objects. It also adds a concrete use case (locking background reference props), so an agent knows what the tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends the tool for locking background reference objects, giving clear context. It does not name alternatives or explicitly state when not to use it, but the visible/renderable qualifier effectively rules out using it when hiding is intended.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_class_methodsARead-only
列出某个类可用的方法/函数及其参数签名。 [English] List the methods/functions available on a class with their signatures.
| Name | Required | Description | Default |
|---|---|---|---|
| className | Yes | 类名。 | Class name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds that it returns signatures, a useful behavioral detail, but does not go beyond that. Since annotations carry the main load, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, stating the action and result in one sentence. The bilingual repetition (Chinese and English) is redundant but not harmful; it adds no new information for an agent but is a common localization pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description conveys the core behavior (listing methods with signatures) adequately. It does not mention prerequisites like class existence, but that is likely implied and not critical for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for className, fully describing it as the class name. The description does not add extra semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the methods/functions available on a class with their signatures, using a specific verb and resource. It distinguishes from sibling tools like get_class_properties (properties) and list_max_classes (class listing) without confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—when you need to know what methods a class provides—but does not explicitly contrast with alternatives or provide exclusions. The purpose is clear enough for an agent to infer, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_class_propertiesARead-only
列出某个类的所有可读写属性及其当前值。在设置不熟悉的参数前先用它确认属性名,可避免大量试错。 [English] List every readable/writable property of a class with its current value. Check this before setting unfamiliar parameters - it removes most trial and error.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum results, default 200. | |
| className | Yes | 类名,例如 Spherical_Light 或 VRayMtl。 | Class name, e.g. Spherical_Light or VRayMtl. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral value by stating that the tool returns current values, not just property names, and that it filters to readable/writable properties. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences, with the core action stated first and the high-value usage tip immediately after. No filler or irrelevant detail is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only listing tool, the description covers what it does, what it returns (property names plus current values), and when to use it. Since there is no output schema, a slightly more explicit return-shape statement would make it fully complete, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented in the schema with examples ('Spherical_Light or VRayMtl') and defaults. The description adds no parameter-specific meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'list every readable/writable property of a class with its current value.' It clearly separates this from related tools like get_property_value (single property), get_class_methods (methods), and list_scene_classes (scene instances) by specifying class-level property enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, actionable guidance: 'Check this before setting unfamiliar parameters - it removes most trial and error.' This clearly tells agents when to call it. It does not explicitly mention alternatives or when not to use it, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoARead-only
返回文件大小与修改时间。 [English] Return file size and modification time.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文件绝对路径。 | Absolute file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral context such as error handling on missing files or the format of the returned values, which keeps this at a baseline score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, front-loaded with the core function, and contains no filler. The bilingual repetition is compact and does not obstruct understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool, the description states the two return values and the schema covers the path requirement. It is complete enough for correct invocation, though the exact units and timestamp format are not specified since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single path parameter already documented as an absolute file path. The description does not add any additional parameter semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns file size and modification time for a given path. This clearly distinguishes it from sibling file tools such as file_exists, read_text_file, and list_directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit 'use this instead of X' guidance, but the stated return values make the intended context obvious: call this when you need file metadata like size and modification time. The sibling set makes alternatives apparent, though exclusions are not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hierarchyARead-only
返回场景层级树(递归子级)。root 省略或为 scene 时从根节点开始。只读。 [English] Return the scene hierarchy tree (children recursed). Omit root or pass scene to start at the root. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | 根对象名;scene 或省略表示整个场景。 | Root object name; scene or omitted = whole scene. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it returns children recursively (not just immediate children) and specifies the root starting semantics. This goes beyond the annotations and explains the tool's traversal behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded. It states the core purpose first, then the root behavior, then the read-only note. The bilingual format is not wasteful; both language versions convey the same essential info. Every sentence earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain the return value. It does state it returns a 'scene hierarchy tree' with recursion, which gives an agent a good high-level understanding. The main gap is the lack of detail about the tree node structure (e.g., what fields each node has). However, given the tool's simplicity (1 optional parameter, no destructive effects), this is a minor omission and the description is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a full description of the 'root' parameter ('Root object name; scene or omitted = whole scene') with 100% coverage. The tool description repeats this information ('Omit root or pass scene to start at the root') without adding new detail. Per the calibration rule, baseline 3 is appropriate when the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Return the scene hierarchy tree (children recursed).' The verb is specific ('return'), the resource is precise ('scene hierarchy tree'), and the recursion detail distinguishes it from flat-list tools like list_objects. Even without naming siblings, the purpose is unambiguous and unique among the provided tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives. It explains root parameter behavior ('Omit root or pass scene to start at the root') but does not mention when to use list_objects, get_object_info, or find_objects instead. The usage context is purely implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_languageARead-only
查询桥接当前使用的语言,以及它是被固定还是跟随 3ds Max 的界面语言。 [English] Return the language currently used by the bridge, and whether it is pinned or following the 3ds Max UI language.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value by specifying exactly what information is returned (language and pinning state), which goes beyond the annotations. There is no contradiction, and the description is consistent with the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a single sentence in Chinese and its English translation. It front-loads the action and the returned data, with no unnecessary words or repetition. It is appropriately sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with no output schema, the description fully covers what an agent needs: what it does and what it returns. There is no missing information that would impede correct invocation or interpretation of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so according to the rubric the baseline is 4. The description correctly does not add parameter information since there are none. No further explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's function: returning the bridge's current language and whether it is pinned or follows the 3ds Max UI language. It names the specific resource (bridge) and the two pieces of information, making the purpose unambiguous and clearly distinct from the sibling set_language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. The existence of the sibling set_language and the verb 'return' imply this is for reading, but no explicit guidance or exclusions are provided. The usage is implied rather than clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_max_versionARead-only
返回 3ds Max 年份、内部主版本号、版本字符串、构建号、界面语言、系统语言和单位制。在调用跨版本差异较大的功能(Substance、UV 展开、导出格式)前先确认版本。 [English] Return the 3ds Max year, internal major version, version string, build number, UI language, system language and unit setup. Check this before using features that differ between releases (UV unwrap, import/export formats, render engines).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing a safe read-only operation. The description adds the preflight-check context but does not disclose any additional behavioral details such as response format, performance characteristics, or failure modes. The annotations carry the safety burden, so this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, listing the return fields first and then the usage guidance. The bilingual repetition adds length but is likely intentional for the target audience; it does not include fluff or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only retrieval tool, the description is complete: it lists all returned information and explains when to invoke it. No output schema exists, but the enumerated fields sufficiently inform an agent about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema coverage, so the description has no parameter semantics to add. Per the baseline for zero-parameter tools, this is fully adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('return') and a specific resource (3ds Max version information), enumerating the fields returned: year, internal major version, version string, build number, UI language, system language, and unit setup. This makes the tool's purpose unmistakable and distinguishes it from nearby language/system-info tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: check version before using features that differ between releases, such as UV unwrap, import/export formats, and render engines. It does not mention exclusions or alternative tools, but no obvious alternative exists for version retrieval, so the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_object_infoARead-only
返回单个对象的完整信息:类、层级、变换、隐藏/冻结、材质、顶点/面数等。只读。 [English] Return full info for one object: class, hierarchy, transform, hidden/frozen, material, vertex/face counts. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 对象名。 | Object name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only'. Beyond the annotation, the description adds valuable behavioral context by listing the specific categories of information returned (class, hierarchy, transform, material, etc.), which helps the agent anticipate the tool's output without needing to guess. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently written in two short sentences (bilingual) that front-load the purpose and immediately list the scope of returned data. No filler or redundant wording; every sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with a single parameter and no output schema, the description provides enough detail about what the tool does and what information it returns. It lacks explicit mentions of edge cases (e.g., undefined object names, error behavior) but these are minor for a read-only introspection tool. Overall, it adequately covers the agent's needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – the only parameter 'name' is fully described as '对象名。 | Object name.' The description adds no additional meaning about the parameter (e.g., whether it must be unique, case sensitivity, or format). With full schema coverage, the baseline is 3, and there is no extra information to raise it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('get') and resource ('full info for one object') and enumerates specific aspects (class, hierarchy, transform, hidden/frozen, material, vertex/face counts). This distinguishes it from sibling tools like get_property_value (single property), get_hierarchy (only hierarchy), or poly_info (polygon-specific info), so an agent can select it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies general use for obtaining comprehensive object details, but it does not explicitly state when to prefer this over alternatives or when not to use it. For instance, it doesn't mention that for a single property one should use get_property_value or that for hierarchy alone get_hierarchy is sufficient. No exclusions are provided, only a broad statement of capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pathsARead-only
返回 3ds Max 的各类默认目录:安装目录、脚本目录、导出/导入目录、渲染输出、临时目录、自动备份、材质库。用于拼出正确的默认输出路径。 [English] Return the 3ds Max default folders: install, scripts, export/import, render output, temp, autoback and material library. Use it to build sensible default output paths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description only needs to add non-obvious behavior; it does so by listing exactly which folders are returned and framing them as defaults. There are no side effects, mutation, or external dependencies disclosed, and nothing in the description contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a front-loaded listing of the eight directory categories followed by a one-line usage note. It is repeated in Chinese and English, which serves localization but adds some redundancy; still, no filler or irrelevant detail is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only utility, the description is complete: it states what the tool returns, names every folder category, and gives a concrete use case. The absence of an output schema is mitigated because the enumerated categories tell an agent what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, so there is no parameter detail for the description to add. Per the zero-parameter baseline, the description is as complete as needed; naming the returned folder categories is enough to indicate what the tool will use internally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses an explicit verb ('返回'/'Return') with a specific resource ('3ds Max 的各类默认目录'/'3ds Max default folders') and enumerates all directory categories (install, scripts, export/import, render output, temp, autoback, material library). This makes it unambiguous and distinguishes it from siblings like get_system_info or get_max_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the intended use: '用于拼出正确的默认输出路径' / 'Use it to build sensible default output paths.' This provides clear context for when to call the tool, though it does not name alternative tools or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_property_valueARead-only
读取任意对象的任意属性值,支持点号路径(例如 material.diffuse)。配合 get_class_properties 使用可完成绝大多数参数读取。 [English] Read any property of any object, supporting dotted paths such as material.diffuse. Together with get_class_properties this covers almost every parameter read.
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | 对象名称。 | Object name. | |
| property | Yes | 属性名或点号路径。 | Property name or dotted path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds dotted-path behavior and broad 'any object' scope, but it does not disclose behavior on invalid paths, errors, or return formatting. This is acceptable for a simple read tool but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core action. The bilingual repetition is somewhat redundant but serves a multilingual audience without bloating the text. Every substantive piece of information appears once per language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool with full schema coverage and no output schema, the description is largely sufficient. It explains the dotted-path mechanism and positions the tool alongside get_class_properties. It stops short of describing return values or edge cases, but the tool is simple enough that the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters clearly. The description adds the dotted-path example 'material.diffuse', which is helpful, but it does not significantly extend the semantics beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: read any property value of any object, with dotted path support. It mentions get_class_properties as a companion, which hints at a distinct role, but it does not explicitly contrast this tool with that sibling or other getters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it is for arbitrary property reads and is intended to be used together with get_class_properties for parameter reads. It does not explicitly state when not to use it or name alternatives, but the usage context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_assetsARead-only
列出场景引用的所有外部资源(贴图、代理、点缓存、XRef)及其解析状态。在打包、迁移或渲染前检查,可避免丢贴图。 [English] List every external asset the scene references (bitmaps, proxies, point caches, XRefs) with its resolved status. Check this before packaging, moving or rendering a project to avoid missing textures.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond that: it enumerates external asset types and emphasizes that resolved status is included, making it clear this is a diagnostic/preflight inspection rather than a modification operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core message is concise and front-loaded, with the key usage warning immediately after the description. The bilingual duplication adds some redundancy, but the text is still short and each language version is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only inspection tool, the description provides enough context to know what it does, why to run it, and roughly what it returns ('resolved status'). It does not define the exact status values or return shape, but that is a minor gap given the tool's simplicity and the read-only annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, so the baseline is 4. The description does not need to explain parameters, and it does not introduce any ambiguity about what inputs are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('list') and a specific resource ('all external assets the scene references') while enumerating the asset categories (bitmaps, proxies, point caches, XRefs). It also adds the distinguishing output trait, 'resolved status', which separates it from related tools like find_missing_assets or list_objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: check before packaging, moving, or rendering to avoid missing textures. It does not explicitly compare with sibling alternatives like find_missing_assets or relink_assets, so it lacks the when-not-to-use guidance that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_selectionARead-only
返回当前选择的对象列表及概要。只读。 [English] Return the current selection with summaries. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds '只读/Read-only' but this mostly repeats the annotation rather than revealing new behavior. It does clarify that the tool returns a list plus summaries, which is useful but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two short parallel sentences in Chinese and English conveying the same essential information. There is no fluff, redundant examples, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter, read-only getter, the description adequately explains what the tool returns and that it is safe. It could specify the exact shape of the summary or how to distinguish this from get_object_info, but the core information an agent needs to invoke it is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are trivially complete; the empty schema and 100% coverage mean there is nothing undocumented. The description correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '返回当前选择的对象列表及概要' / 'Return the current selection with summaries.' This clearly distinguishes it from broader listing tools like list_objects and from get_object_info by anchoring on the current selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this when you need the current selection's objects and summaries. It does not explicitly name alternatives or exclusions, but the zero-parameter signature and read-only nature make the intended usage obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_infoARead-only
返回当前会话的完整环境快照:渲染器、单位、帧率、动画范围、场景路径、对象统计。 [English] Return a full snapshot of the session: renderer, units, frame rate, animation range, scene path and object statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about what data is included, but discloses no additional behavioral traits such as cost, output size, or distinctions between session and scene state. This is adequate but not enriched beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and uses a clear list of data categories. However, the Chinese and English sentences duplicate the exact same content, which is somewhat redundant even if intentional for a bilingual tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description gives enough detail about the returned snapshot to let an agent decide when to call it. Since there is no output schema, the enumerated fields partially compensate, but the exact response structure is not described. This is slightly incomplete but not materially misleading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty with 100% schema coverage, so there is no parameter documentation burden for the description. The baseline of 4 applies because nothing is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') with a clear resource ('full snapshot of the session') and enumerates the included fields: renderer, units, frame rate, animation range, scene path, and object statistics. This clearly distinguishes it from sibling getters like get_units, get_time_config, render_get_engine, and scene_statistics, which each return only one slice of session state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'full snapshot' implies this tool is for retrieving combined environment information rather than individual values, but it never explicitly says when to choose this over the many granular sibling getters. There are no when-not-to-use instructions or named alternatives, so the guidance is present only by implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_configARead-only
读取帧率、时间范围与当前帧。 [English] Read frame rate, time range and current frame.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the specific data returned (frame rate, time range, current frame), which is useful. It doesn't mention return format, units, or whether the time range is in frames or seconds, but for a simple getter with no parameters, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, one in Chinese and one in English, with zero wasted words. The key information (what is read) is front-loaded. It is appropriately sized for a zero-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only getter, the description is nearly complete. It names the three pieces of data returned. The only minor gap is not describing the return format or units, but with no output schema and no parameters, an agent can still invoke it correctly and interpret the result at a basic level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden on the description. The schema is trivially complete (100% coverage with no properties). The description correctly implies no input is needed, which is the only relevant semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads frame rate, time range, and current frame, which is a specific verb+resource combination. It distinguishes itself from set_time_config (the sibling that writes these values) and from anim_get_frame (which only gets the current frame). However, it doesn't explicitly name those siblings, so it doesn't fully earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only query use case, and the readOnlyHint annotation reinforces that. It doesn't explicitly state when to use this over alternatives like anim_get_frame or set_time_config, but the read-only framing and the sibling list make the intended usage reasonably clear. No explicit exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unitsARead-only
读取当前单位设置。 [English] Read the current unit setup.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'read' wording is consistent with that. It adds no substantial behavioral context beyond the annotation, but for a zero-parameter getter there are no additional side effects to disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single bilingual sentence pair, front-loaded and free of filler. Both the Chinese and English sentences are needed for the intended audiences and add no redundant content beyond translation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, annotation-covered getter, this is functionally complete: an agent can call it without deciding inputs or worrying about side effects. The only minor gap is that the description does not specify the return format, but no output schema exists and no input decisions hinge on it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because no parameters exist and the description correctly identifies the operation's target.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('read') and a concrete resource ('current unit setup'), and contrasts with the sibling set_units by describing only retrieval, not modification. This leaves no doubt what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The read-only purpose makes it clear that this tool should be used when current unit settings are needed, with set_units as the counterpart for changing them. However, the description gives no explicit when/when-not guidance or named alternative, so usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
group_objectsADestructive
把多个对象编组为一个组(Group),便于整体移动/隐藏。返回组头名称。 [English] Group several objects into one Group for moving/hiding together. Returns the group head name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 组名。 | Group name. | |
| objects | No | 要编组的对象列表;省略则用当前选择。 | Objects to group; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description doesn't need to restate that. It adds the return value (group head name) and the purpose (moving/hiding together). However, it doesn't disclose potential side effects like overriding existing group memberships or how it interacts with the scene hierarchy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences covering purpose and return. It is front-loaded with the action and uses no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential context: it explains the operation, the return value, and the optional use of current selection (via parameter description). It doesn't mention interactions with sibling group tools, but for a simple grouping operation with no output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters adequately described. The tool description adds no additional parameter semantics beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (group), the resource (objects), and the result (group head name). It distinguishes from siblings like open_group and ungroup_objects by focusing on the creation of a group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives like open_group, close_group, or ungroup_objects. It only states what it does without exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hide_objectsADestructive
隐藏指定对象(省略则隐藏当前选择)。隐藏对象仍参与渲染,除非层/对象设为不可渲染。 [English] Hide the given objects (or the current selection). Hidden objects still render unless set non-renderable.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the agent knows it modifies the scene. The description adds a critical behavioral detail: hidden objects still render unless explicitly set non-renderable. This goes beyond the annotation and helps the agent understand the exact effect, which is valuable for decision-making. It does not disclose other side effects like undo behavior, but the essential nuance is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, bilingual, and front-loads the action. It avoids fluff and directly communicates the purpose and the rendering caveat. The structure is efficient, though the bilingual repetition slightly inflates length without adding information, but it is not excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, the description provides the key context: what it does, the selection fallback, and the rendering behavior. It does not specify return values, but since there is no output schema and this is a void-like operation, that is not a significant gap. The presence of destructiveHint covers the mutating nature. Overall, it is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description fully covers the single parameter: '对象名称列表;省略则用当前选择。 | Object names; omit for the selection.' The tool description repeats this ('or the current selection') without adding new details such as format, case sensitivity, or ordering. Since schema coverage is 100%, the baseline is 3, and the description does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Hide the given objects (or the current selection).' It identifies the resource (objects) and the operation (hide). It also clarifies a key nuance—hidden objects still render unless set non-renderable—which distinguishes it from delete_objects and aligns with unhide_objects as the inverse. The sibling set confirms it is unique in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives like unhide_objects or delete_objects. It does imply usage context by mentioning the current selection fallback, but it does not state exclusions or recommend conditions. For an agent, the name is self-explanatory, but explicit routing would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hold_sceneARead-only
保存当前场景状态(相当于 Max 的 Hold)。在危险操作前使用,随时可用 fetch_scene 完整还原。 [English] Save the current scene state (Max's Hold). Use it before risky operations; fetch_scene restores it exactly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds that fetch_scene '完整还原' / 'restores it exactly' and frames the tool as a pre-risk checkpoint. It does not mention that a new Hold may overwrite the previous held state, but the provided behavioral context is solid for an annotated snapshot tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loaded, starting with purpose, then usage, then restore behavior. The English section is a direct duplication of the Chinese content, adding no new information but not making the description unreasonably long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema action, it covers the essential lifecycle: when to call it, what it captures, and which sibling restores it. The main gap is not disclosing single-slot/overwrite semantics of a Hold, but nothing essential for a first call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters, so there are no parameter semantics for the description to clarify. With an empty schema and 100% schema description coverage, the baseline applies and the description correctly stays silent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '保存当前场景状态' ('Save the current scene state') and anchors it to Max's Hold, making the verb and resource explicit. The pairing with fetch_scene clearly distinguishes this restore-point tool from file-save siblings like scene_save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says '在危险操作前使用' / 'Use it before risky operations', giving a clear trigger for when to call the tool. It does not spell out exclusions or compare with alternatives like undo_last, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_fbxADestructive
导入 FBX。file 不存在则报错;merge=true 时合并进当前场景,否则替换。 [English] Import an FBX. Fails if the file is missing; with merge=true it merges into the current scene, otherwise it replaces it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要导入的 .fbx 文件路径。 | FBX file path to import. | |
| merge | No | 是否合并进当前场景,默认否(替换)。 | Merge into the current scene, default false (replace). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag the operation as destructive/not read-only; the description adds the exact destructive consequence (replaces the current scene by default) and the missing-file failure behavior. It also clarifies the non-destructive merge=true path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences cover behavior and error in both languages with no filler. Key information appears before the redundant English repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter import tool with a destructive annotation, the description sufficiently covers what happens with merge on/off and the failure case. It does not need an output schema explanation, though it could mention what result or success signal is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so path and merge are already documented. The description mainly restates the merge behavior; the only additive detail is the missing-file error for path, which is more behavioral than semantic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Import'), resource ('FBX'), the two behaviors (merge or replace), and the failure condition. It is immediately distinguishable from import_obj/import_gltf/import_usd and from import_merge_scene via its FBX-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says to use it for FBX imports and explains the merge/replace modes, so usage context is implied by the format. However, it never names alternatives or states when NOT to use this tool, unlike an explicit routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_get_formatsARead-only
探测本机实际可用的导入/导出插件:用 mcpClassExists 检查 FBX/OBJ/glTF/USD/Alembic/STL/3DS 等类。在依赖特定格式前先调用它,避免盲猜。 [English] Report which importer/exporter plugins this Max can actually use: mcpClassExists is checked against the FBX/OBJ/glTF/USD/Alembic/STL/3DS classes. Call it before depending on a specific format instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable context by revealing the mechanism (mcpClassExists against specific classes) and that results reflect actual local plugin availability. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose and call condition. The bilingual repetition adds some redundancy for an LLM consumer, but it remains compact and every sentence conveys meaningful guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only probe without an output schema, this description is complete: it states what is checked, why, and when to call it. The result concept ('which ... plugins this Max can actually use') is sufficient for an agent to invoke and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is trivially complete, so the baseline is 4. The description nonetheless adds useful context by enumerating which format classes are probed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report' / '探测') and resource ('importer/exporter plugins this Max can actually use'), with a concrete list of checked classes (FBX/OBJ/glTF/USD/Alembic/STL/3DS). This clearly distinguishes it as a preflight availability check rather than an import/export operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to call: 'Call it before depending on a specific format instead of guessing.' This is clear usage context, but it does not name alternatives or exclusions such as does_class_exist, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_gltfADestructive
导入 glTF / GLB。glTF 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Import glTF / GLB. glTF is a plugin - if this Max lacks it the call fails with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要导入的 .gltf/.glb 文件路径。 | glTF/GLB file path to import. | |
| merge | No | 是否合并进当前场景,默认否。 | Merge into the current scene, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint=true) and not read-only (readOnlyHint=false). The description adds value by disclosing the specific error behavior (err.class_missing) when the plugin is absent, which is beyond the annotations. This extra behavioral detail is useful for anticipating failure modes and planning error handling, though it does not describe other side effects (e.g., merging vs. creating a new scene) which are covered by the merge parameter in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences in bilingual format (Chinese and English). It is front-loaded with the action and includes the essential plugin warning. The dual-language repetition is slightly redundant but acceptable for a global tool. Every sentence earns its place; there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple import tool with two parameters and no output schema, the description covers the key operational detail (plugin dependency and failure mode). The merge behavior is available in the schema. However, it does not mention what happens after successful import (e.g., objects added to scene, return status) or any post-import steps, but given the tool's simplicity and annotations covering destructiveness, the description is reasonably complete. Not perfect, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters (path and merge), so the schema already fully documents their meaning. The tool description does not add any additional semantic detail beyond what the schema provides. Thus, the baseline of 3 is appropriate; the description contributes no extra param information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '导入 glTF / GLB' (Import glTF/GLB), specifying both verb and resource. The additional note that glTF is a plugin and may fail provides context that distinguishes this import from standard file import tools. The name itself differentiates from siblings like import_fbx, import_obj, and import_usd, and the plugin mention adds an extra distinguishing factor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives (e.g., import_obj, import_fbx) or any prerequisites beyond the plugin. It only warns that if the plugin is missing the call fails, which is a failure condition, not usage guidance. No alternatives, exclusions, or contextual selection criteria are provided, leaving the agent to infer the appropriate use case from the resource type alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_merge_sceneADestructive
把一个文件合并进当前场景(不会清空现有对象)。按扩展名探测对应导入器,缺失则报错。 [English] Merge a file into the current scene without clearing existing objects. The importer is probed from the extension; missing importers fail with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要合并的文件路径。 | File path to merge. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate a non-read-only, potentially destructive operation. The description adds valuable behavioral detail beyond that: it explicitly assures the merge does not clear existing objects, explains that the importer is determined by extension, and documents the failure mode (err.class_missing) for missing importers. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the most important fact (no scene clearing). The bilingual repetition is somewhat redundant but remains compact and readable, so it does not significantly hurt usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, low-complexity tool, the description covers the operation, the non-clearing safety guarantee, importer selection behavior, and error condition. With no output schema, it could mention the success return value, but this is a minor gap and not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single 'path' parameter with 100% coverage. The description adds a small amount of extra meaning by implying the path should be a file whose extension determines the importer, but it does not substantially expand on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation (merge a file into the current scene), explicitly notes that existing objects are not cleared, and explains that the importer is selected by file extension. This distinguishes it from related siblings like scene_merge, import_fbx, and import_obj without needing to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'without clearing existing objects' phrasing implies when this tool is appropriate versus scene-opening/reset tools, and 'probed from extension' implies generic multi-format use. However, it does not explicitly name alternatives such as import_fbx/import_obj or scene_merge, nor state when to prefer those over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_objBDestructive
导入 Wavefront OBJ。file 不存在则报错;支持 merge。 [English] Import a Wavefront OBJ. Fails if the file is missing; merge is supported.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要导入的 .obj 文件路径。 | OBJ file path to import. | |
| merge | No | 是否合并进当前场景,默认否。 | Merge into the current scene, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this is a scene-modifying operation. The description adds the error condition ('fails if file missing') and mentions merge support, which adds some value. However, it does not disclose what happens when merge=false (e.g., whether the current scene is replaced), a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences that front-load the core purpose and add the key error behavior. Bilingual formatting is acceptable and does not add bloat. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive import tool with two parameters and no output schema, the description should clarify the effect of merge=false (e.g., does it replace the current scene or create a new one?) and any other side effects. It only states failure on missing file and merge support, leaving critical behavior ambiguous, which could lead to incorrect tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (path and merge) already have clear descriptions. The tool description adds no additional parameter detail beyond what's in the schema; its mention of merge is redundant. This matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it imports a Wavefront OBJ, a specific format distinct from the FBX/GLTF/USD imports. It also notes the failure behavior when the file is missing, which adds precision. However, it does not explicitly contrast with import_merge_scene, leaving a slight ambiguity for a sibling that also deals with merging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like import_fbx or import_merge_scene. The statement 'merge is supported' hints at a capability but does not explain when to choose this over import_merge_scene, nor any prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_usdADestructive
导入 USD。USD 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Import USD. USD is a plugin - if this Max lacks it the call fails with err.class_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要导入的 USD 文件路径。 | USD file path to import. | |
| merge | No | 是否合并进当前场景,默认否。 | Merge into the current scene, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is destructive, so the description doesn't need to restate that. It adds valuable behavioral context by disclosing that the call fails with err.class_missing when the USD plugin is absent. It does not describe merge side effects, but the schema already documents the merge parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is just two short sentences, front-loaded with the action and immediately followed by the key plugin caveat. No filler or redundant expansion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the essential plugin prerequisite and the resulting error, and the schema handles parameters. It does not state what happens on success or whether merge=false replaces the scene, so it isn't a 5, but it is adequate for a simple import call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the description adds no extra meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Import USD' / '导入 USD'), which clearly distinguishes it from sibling importers such as import_fbx, import_obj, and import_gltf by file format. The plugin caveat does not obscure the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call it when importing a USD file. It provides a precondition (USD plugin must be installed) and a failure code, but it does not explicitly tell when to choose this tool over import_merge_scene or other format-specific importers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_align_to_objectADestructive
把一个灯光对准某个对象:灯光移到对象上方,目标型灯光的目标点对准对象位置。 [English] Aim a light at an object: the light moves above the target and a target-type light's target snaps to the object's position.
| Name | Required | Description | Default |
|---|---|---|---|
| light | Yes | 灯光名称。 | Light name. | |
| objects | Yes | 目标对象名(取第一个)。 | Target object name (first used). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses concrete behavioral effects beyond the annotations: the light is moved above the target and the target point is snapped. This aligns with the destructiveHint=true annotation and clearly indicates that the operation mutates transforms. It does not address behavior for non-target lights beyond the movement, but that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the operation and result. The bilingual duplication adds some length, but the content is focused and contains no filler. The one-sentence format works well for this simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutating tool, the description plus schema is largely sufficient: it names the light, the target object, and the resulting behavior. Annotations cover the read-only and destructive nature. The only minor omission is explicit behavior for non-target lights, but this does not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'light' and 'objects' already have meaningful descriptions, including the note that the first object in the array is used. The description adds alignment context but does not add new parameter-level details beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Aim a light at an object') and specifies the mechanical result: the light moves above the target and a target-type light's target snaps to the object's position. This makes it clearly distinct from generic alignment tools like align_objects and camera tools like cam_align_to_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the verb and effect: use this when you want to aim a light at an object. However, there is no explicit discussion of when not to use it or which alternative tools might be more appropriate, such as align_objects or constraint_look_at.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_createADestructive
通用灯光创建:支持 omni / free_spot / spot(目标聚光) / directional(目标平行) / mr_area_omni / mr_area_spot,以及 FStorm/VRay/Corona 面积光(需对应渲染器安装)。目标型灯光会在给定位置创建并自动偏移目标点。共享参数:名称、位置、颜色、强度/倍增、投影、衰减、聚光锥角与半影。 [English] Generic light creation: omni / free_spot / spot (target) / directional (target) / mr_area_omni / mr_area_spot, plus FStorm/VRay/Corona area lights (require the renderer installed). Target-type lights are created at the given position with an offset target. Shared params: name, position, colour, intensity/multiplier, shadows, decay, cone angle and penumbra.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 灯光名称。 | Light name. | |
| type | Yes | 灯光类型。 | Light type. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| decay | No | 衰减类型。 | Decay type. | |
| azimuth | No | 仅 sun 类型:方位角(度)。 | Sun only: azimuth (degrees). | |
| altitude | No | 仅 sun 类型:高度角(度)。 | Sun only: altitude (degrees). | |
| penumbra | No | 聚光半影(度)。 | Spot penumbra (degrees). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| coneAngle | No | 聚光锥角(度)。 | Spot cone angle (degrees). | |
| intensity | No | 强度(等价于 multiplier,二选一)。 | Intensity (alias of multiplier). | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. | |
| castShadows | No | 是否投影,默认否。 | Cast shadows, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description adds important behavior: target-type lights are created with an offset target, and renderer-specific lights require the renderer installed. This explains observable side effects and constraints that annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact, with the main action stated first and supported types listed concisely. The bilingual text lengthens it but does not add unnecessary complexity; every sentence contributes either type coverage or parameter context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not state what the tool returns or what constitutes success. More importantly, it omits several enum values (e.g., 'sun', 'free_directional', 'area') and does not explain behavior when a renderer is missing. For a 12-parameter tool without output schema, these gaps make the description incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already described in the schema. The description merely restates 'shared params' and adds no syntax, defaults, or relationships beyond what the schema provides; hence the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Generic light creation' and lists the supported light types (omni, spot, directional, area, etc.), making it clear that this tool creates lights. It also contrasts with specialized sibling tools like light_create_omni by being generic, so an agent can distinguish it from the exact type-specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the word 'generic' and by covering multiple light types, but it never explicitly contrasts with sibling tools such as light_create_omni or light_create_spot. It only notes renderer requirements, not when to prefer specific tools over this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_create_areaADestructive
创建一个面积光(默认用 mental ray 面积光 mr_Area_Omni;若装了 VRay/Corona 也可)。面积光能产生柔和的阴影,适合室内布光。 [English] Create an area light (defaults to the mental ray mr_Area_Omni; VRay/Corona area lights also work if installed). Area lights produce soft shadows, good for interior lighting.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 灯光名称。 | Light name. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true; the description adds behavior beyond that by specifying the default mental ray mr_Area_Omni implementation and noting VRay/Corona compatibility if installed. It does not detail creation side effects, but the destructive annotation already covers that dimension.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences with the creation verb and object front-loaded. The compatibility note and use-case explanation are both useful and do not repeat schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with 4 optional parameters and no output schema, the description supplies the key missing context: default renderer-specific type and suitability for interior lighting. It does not mention default values for omitted parameters, but the schema and required=0 signal make this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; parameter meanings (name, color, position, multiplier) are fully documented in the input schema. The description adds no parameter-level semantics beyond restating that this is an area light.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('create') and object type ('area light'), plus names the concrete default implementation (mr_Area_Omni). This clearly distinguishes it from sibling light creation tools like light_create_omni, light_create_spot, and light_create_directional via the soft-shadow/interior-lighting context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear selection context: area lights produce soft shadows and are well suited to interior lighting. It does not explicitly name alternatives or state when not to use it, but the implied use case is strong enough for an agent to choose this over omni/spot/directional lights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_create_directionalADestructive
创建一个目标平行光(Target Directional),类似太阳的平行光线。 [English] Create a target Directional light - parallel rays like the sun.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 灯光名称。 | Light name. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. | |
| castShadows | No | 是否投影,默认否。 | Cast shadows, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating operation. The description adds the 'target' and 'parallel rays' context, but does not explain any side effects, whether it creates an additional target object, or what the destructiveHint implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single bilingual sentence with no filler. The key purpose is front-loaded, and the sunlight analogy is brief and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with five optional parameters and no output schema, the description is mostly sufficient. It explains what is created but could be more complete by noting how it differs from light_create_sun and what the destructive annotation implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to explain parameters. It adds no special meaning beyond the schema, but the baseline of 3 applies because the schema already carries the full semantic burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names a specific verb and resource: 'Create a target Directional light - parallel rays like the sun.' This distinguishes it from sibling light creators such as light_create_omni, light_create_spot, light_create_sun, and light_create_area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to choose this tool over related sibling tools. In particular, saying 'like the sun' creates potential confusion with light_create_sun, and no alternative or exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_create_omniADestructive
创建一个泛光点光源(Omni)。灯光在给定位置创建,可选颜色、倍增、投影、衰减。 [English] Create an Omni light at the given position, with optional colour, multiplier, shadows and decay.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 灯光名称。 | Light name. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| decay | No | 衰减类型。 | Decay type. | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. | |
| castShadows | No | 是否投影,默认否。 | Cast shadows, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations mark the operation as non-read-only and destructive, and the description's 'Create' action aligns with that. It does not add details about side effects, such as whether an existing light is overwritten or how missing optional parameters behave, but there is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and lists the key options efficiently. The bilingual duplication is redundant but acceptable and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple creation tool, especially with full schema coverage. It lacks explicit information about what happens when optional parameters like position or name are omitted, and it provides no return-value details, though no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already well documented. The description adds only that color, multiplier, shadows, and decay are optional, which is minimal extra meaning beyond the schema and does not clarify default behavior for omitted parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('Omni light') and clearly describes the operation: creating a point light at a given position with optional color, multiplier, shadows, and decay. This distinguishes it from sibling tools like light_create_spot, light_create_directional, and light_create_area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this tool when an Omni/point light is needed. However, it does not explicitly mention alternatives or conditions under which another light-creation tool should be chosen instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_create_spotADestructive
创建一个目标聚光灯(Target Spot)。灯光在给定位置创建,目标点自动偏移;可设锥角与半影。 [English] Create a target Spot light at the given position with an auto-offset target. Set cone angle and penumbra.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 灯光名称。 | Light name. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| decay | No | 衰减类型。 | Decay type. | |
| penumbra | No | 聚光半影(度)。 | Spot penumbra (degrees). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| coneAngle | No | 聚光锥角(度)。 | Spot cone angle (degrees). | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. | |
| castShadows | No | 是否投影,默认否。 | Cast shadows, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond the annotations, specifically that the light is placed at a given position while the target is auto-offset, and that cone angle and penumbra are adjustable. The destructiveHint annotation already flags that this is a mutating operation, so the description does not need to restate that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, bilingual, and front-loaded with the key purpose and behavior. It avoids redundant parameter enumeration while still giving the essential distinguishing details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter creation tool with no required parameters and full schema coverage, the description covers the essential behavior and the distinctive auto-offset target trait. It does not mention return values or defaults, but the schema handles parameter documentation and no output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description mentions cone angle and penumbra, which maps to coneAngle and penumbra, but does not add significant meaning beyond the schema's own parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Create a Target Spot light at the given position with an auto-offset target.' This distinguishes it from sibling light-creation tools like light_create_omni, light_create_directional, and light_create_area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear this tool is for creating a target spotlight, with an auto-offset target and configurable cone angle/penumbra. It provides useful context for when to use it, though it does not explicitly name alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_create_sunADestructive
创建一个日光系统(Daylight,含太阳+天空+罗盘),可用方位角/高度角定位太阳。Daylight 类需本机支持;方位/高度会尽力设置,不同版本属性名可能不同。 [English] Create a Daylight system (sun + sky + compass) positioned by azimuth/altitude. The Daylight class must be available; azimuth/altitude are set best-effort since the property names vary across releases.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 日光系统名称。 | Daylight system name. | |
| azimuth | No | 方位角(度)。 | Azimuth (degrees). | |
| altitude | No | 高度角(度)。 | Altitude (degrees). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful non-obvious behavior beyond the annotations: Daylight class availability is a prerequisite, and azimuth/altitude are set best-effort because property names vary across releases. Annotations already flag this as non-read-only and potentially destructive, and the description does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with purpose, with caveats placed in bold after the main statement. The bilingual duplication is somewhat redundant but acceptable for the intended audience, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with fully documented parameters and annotations covering safety, the description covers the essential call context: what is created, the positioning inputs, the availability constraint, and the version-dependent behavior. It does not describe return values or default behavior when no parameters are supplied, but those gaps are minor given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter clearly. The description reinforces azimuth/altitude but adds no semantic detail beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Create a Daylight system (sun + sky + compass)' and adds the positioning method via azimuth/altitude. This clearly distinguishes it from sibling light creation tools like light_create_omni or light_create_directional.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating a full daylight rig rather than a single light, and it warns that the Daylight class must be available. However, it does not explicitly name alternatives or state when to prefer another tool such as light_create_directional or light_set_sun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_deleteADestructive
删除一个灯光。不可恢复,请谨慎调用。 [English] Delete a light. Not recoverable, use with care.
| Name | Required | Description | Default |
|---|---|---|---|
| light | Yes | 灯光名称。 | Light name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false; the description adds the important fact that deletion is not recoverable and should be used with care. This is genuinely useful beyond structured metadata. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact bilingual sentences state the purpose and warning with no extraneous detail. The irreversibility warning is front-loaded before the English translation, and the whole description is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with annotations and no output schema, the description plus schema cover everything needed to call it correctly: what it deletes, the input name, and the irreversibility warning. There is no missing return-value explanation because no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'light' is fully documented in the schema with '灯光名称。 | Light name.' and the description adds no additional syntax, format, or example. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation ('Delete') and resource ('a light'), making the tool's purpose unmistakable. It does not explicitly differentiate from sibling deletion tools like delete_objects or other light_* operations, though the verb and resource are sufficient for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool instead of alternatives such as delete_objects, light_set, or undo_last. The cautionary note advises care but does not describe prerequisites, side effects, or routing conditions. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_getARead-only
读取一个灯光的详情:位置、倍增/强度(跨版本兼容读取)、颜色、是否投影、是否启用。 [English] Read a light's details: position, multiplier/intensity (read defensively across releases), colour, shadow state and enabled flag.
| Name | Required | Description | Default |
|---|---|---|---|
| light | Yes | 灯光名称。 | Light name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description agrees with these. It adds useful context beyond annotations by noting that multiplier/intensity is read defensively across releases, signaling version-compatibility handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the resource and returned fields. The bilingual repetition is slightly redundant, but both parts are short, clear, and information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one well-documented parameter and readOnly/destructive annotations already covering the safety profile, the description is effectively complete. It names the resource and all returned aspects; only detailed return formatting is not specified, but no output schema exists to require it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single required 'light' parameter is already documented in the schema as 'Light name.' The description does not add new parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('read') with a clear resource (a light) and enumerates exactly which details are returned: position, multiplier/intensity, color, shadow state, and enabled flag. This cleanly distinguishes it from sibling tools like light_set (write) and light_list (list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly frames this as a read-only detail-inspection tool, which implies when to use it versus mutating tools like light_set. However, it does not explicitly name alternatives or state when not to use it, so some inference is left to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_listARead-only
列出场景所有灯光:名称、类名、位置。结果分页。 [English] List every light in the scene: name, class and position. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 200。 | Maximum entries, default 200. | |
| offset | No | 起始偏移,默认 0。 | Starting offset, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and non-destructive, so the description adds value by disclosing pagination behavior and the specific fields returned (name, class, position). It does not contradict annotations and provides useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short sentences (bilingual) to convey the purpose, returned fields, and pagination. It is front-loaded with the main action and resource, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with optional pagination params and no output schema, the description adequately covers what the tool does and what it returns. It does not specify ordering, filtering, or whether hidden lights are included, but these are minor gaps given the tool's simplicity and the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with clear descriptions for 'limit' and 'offset' (maximum entries and starting offset). The description mentions pagination, which aligns with these parameters, but adds no new semantic detail beyond what the schema already provides. Thus the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists every light in the scene with name, class, and position, and is paginated. This distinguishes it from sibling tools like light_get (single light properties), light_set (modify lights), and list_objects (all objects). The verb 'list' and resource 'lights' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case (enumerating lights) but does not explicitly contrast it with alternatives such as light_get for individual lights or list_objects for all objects. There is no 'when to use' or 'when not to use' guidance, so the agent must infer the selection from the name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_setADestructive
修改一个灯光的属性:名称、颜色、倍增/强度、投影、启用、聚光锥角与半影、衰减、位置。强度在不同版本字段不同(multiplier 或 intensity),两个都接受,按目标灯光的字段写入。 [English] Modify a light: name, colour, multiplier/intensity, shadows, enabled, cone angle, penumbra, decay and position. Intensity differs across releases (multiplier vs intensity); both are accepted and written to whichever field the light has.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 新名称。 | New name. | |
| color | No | 颜色 [0-255],也可传 "#RRGGBB"。 | Colour [0-255], or a "#RRGGBB" string. | |
| decay | No | 衰减类型。 | Decay type. | |
| light | Yes | 灯光名称。 | Light name. | |
| enabled | No | 是否启用。 | Enabled. | |
| penumbra | No | 聚光半影(度)。 | Spot penumbra (degrees). | |
| position | No | 位置 [x,y,z]。 | Position [x,y,z]. | |
| coneAngle | No | 聚光锥角(度)。 | Spot cone angle (degrees). | |
| intensity | No | 强度(等价于 multiplier)。 | Intensity (alias of multiplier). | |
| multiplier | No | 倍增/强度。 | Multiplier/intensity. | |
| castShadows | No | 是否投影。 | Cast shadows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is non-read-only and destructive, so the mutation aspect is covered. The description adds useful cross-version behavior: both multiplier and intensity are accepted and written to whichever field the target light actually has. Minor omissions, such as whether unspecified properties are left unchanged, exist, but core behavioral disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a single verb and resource, followed by a compact property list and a short version caveat. The bilingual duplication is conventional and does not feel bloated. Every sentence contributes either scope, property coverage, or the cross-version clarification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter setter with one required parameter and no output schema, the description is largely sufficient: it identifies the target, lists the mutable properties, and flags the version-sensitive parameter. It could add explicit partial-update semantics and behavior for nonexistent lights, but the schema plus annotations cover the main call constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the load for formats and enums. The description adds meaningful value with the version-specific intensity/multiplier nuance: both aliases are accepted and written to the field the light actually uses. It also maps the listed attributes directly to parameters, although the schema already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation, 'Modify a light', and enumerates the affected properties: name, color, multiplier/intensity, shadows, enabled, cone angle, penumbra, decay, and position. This clearly separates it from create/delete/get operations and from generic set_property_value. It does not explicitly name sibling tools, so it stops just short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but never says when to choose it over alternatives such as light_set_sun, light_get, or light_create. An agent must infer from the name and property list that this is the general per-property light setter. No exclusions, prerequisites, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
light_set_sunADestructive
当场景存在日光/太阳系统(Daylight/Sunlight/IES_Sun)时,用方位角/高度角重新定位太阳。若不存在此类系统则返回 class_missing。 [English] Reposition the sun via azimuth/altitude when a Daylight/Sunlight/IES_Sun system exists in the scene. Returns class_missing if no such system is present.
| Name | Required | Description | Default |
|---|---|---|---|
| azimuth | No | 方位角(度)。 | Azimuth (degrees). | |
| altitude | No | 高度角(度)。 | Altitude (degrees). | |
| timeOfDay | No | 一天中的时间(部分系统支持,尽力设置)。 | Time of day (some systems; best-effort). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds a concrete behavior: it will return class_missing if no supported sun system exists, and it limits the repositioning to daylight/sunlight systems. It does not describe side effects or reversibility, but the annotation already flags mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences with the action and condition front-loaded. Every clause contributes either the operation, the applicable system, or the failure behavior; no filler or schema duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter mutation with a destructiveHint annotation, the description covers the precondition, the operation, and the notable error case. It does not specify the success return value or behavior when no parameters are supplied, but those are minor given the schema and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters at 100%, so the baseline applies. The description reinforces that azimuth and altitude drive the repositioning, but it does not add detail beyond the schema, and the schema already documents the best-effort behavior of timeOfDay.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact action ('Reposition the sun via azimuth/altitude') and the target resource ('Daylight/Sunlight/IES_Sun system'). This separates it from sibling tools like light_create_sun and light_set, so an agent can identify it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition: use only when a Daylight/Sunlight/IES_Sun system exists, and it discloses the class_missing result when that precondition is absent. It does not name alternative tools for creating a sun or repositioning other light types, so it falls just short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryARead-only
列出目录内容,可按扩展名过滤,支持递归。用于批量处理贴图或代理文件。 [English] List a directory, optionally filtered by extension and recursive. Use it to batch process textures or proxy files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 目录绝对路径。 | Absolute directory path. | |
| limit | No | 最多返回条数,默认 500。 | Maximum entries to return, default 500. | |
| pattern | No | 通配符,例如 *.jpg 或 *.max。 | Wildcard such as *.jpg or *.max. | |
| recursive | No | 是否递归子目录,默认否。 | Recurse into subfolders, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds functional detail about filtering and recursion, but does not disclose additional behavioral traits such as sorting, whether only files or also directories are returned, or how paths are formatted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and then gives a concrete use case. The bilingual repetition is justified by the target audience and does not add unnecessary bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, low-complexity tool, the description plus complete parameter schema and annotations are nearly sufficient. It lacks an explicit statement of the return format/output shape, and there is no output schema, but 'list a directory' strongly implies an array of entries and the use case clarifies intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the input schema. The description repeats the extension filter and recursion concepts briefly, but adds no meaning beyond what the schema provides, matching the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List a directory', with optional filtering by extension and recursion. It is clear and unambiguous, though it does not explicitly differentiate itself from sibling file/knowledge tools such as get_file_info or file_exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear intended use case: 'Use it to batch process textures or proxy files.' This provides context for when to invoke the tool, but it does not mention exclusions or direct the agent to alternative tools for single-file checks or scene-asset queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layersARead-only
列出场景所有层及其子对象数量、隐藏/冻结状态。用层来组织大型场景是最可靠的做法。 [English] List every scene layer with its child count and hidden/frozen state. Layers are the most reliable way to organise a large scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the specific output fields (child count, hidden/frozen state) but doesn't disclose any behavioral nuances like sort order, whether empty layers are included, or whether nested layers are recursive. For a simple read tool this is acceptable but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core information is contained in one concise sentence, front-loaded with the actual purpose. The description is duplicated in Chinese and English, and the bolded tagline about layers being reliable is not necessary for invoking the tool, adding minor redundancy. Overall it's still compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only tool, the description provides enough detail: the operation (list), the target (scene layers), and the returned information (child count, hidden/frozen state). Annotations cover safety. No output schema exists, but the description adequately conveys the return contents. There is no missing information an agent would need to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is an empty object, so there is nothing for the description to explain. Baseline for 0-parameter tools is 4, and the description doesn't need to compensate for any missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "List every scene layer with its child count and hidden/frozen state." This clearly identifies what the tool does and what data it returns. It distinguishes itself from sibling tools like create_layer or set_layer_properties, which are mutation operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its usage — when you need an overview of layers, call this tool. However, it never explicitly states when to use it versus alternatives, such as get_hierarchy or list_objects, nor does it mention exclusions. The motivational note about layers being reliable is not actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_max_classesARead-only
按关键字搜索 3ds Max 的类注册表,返回匹配的类名。这是发现「本机到底装了什么插件」的核心手段:例如搜索 Vray、FStorm、Corona、Substance、RailClone 就能得知可用材质与插件。 [English] Search the 3ds Max class registry by keyword and return matching class names. This is the primary way to discover what plugins a machine actually has: search for Vray, FStorm, Corona, Substance or RailClone to find available materials and tools.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 100。 | Maximum results, default 100. | |
| keyword | Yes | 关键字,不区分大小写,例如 Vray。 | Keyword, case-insensitive, e.g. Vray. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is covered. The description adds useful registry-scope context and confirms it returns class names, but it does not disclose output format, pagination edge cases, or behavior on no matches. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and includes concrete search examples that make the tool's value immediately understandable. The bilingual structure is useful for the audience and does not bloat the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only search tool, the description gives enough context: what it searches, what it returns, and why it matters. There is no output schema, but the description clearly states the return is matching class names. Minor missing details like error or empty-result behavior are not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both keyword and limit are already documented, including case-insensitivity and the default limit. The description repeats the keyword concept and offers examples, but it does not add meaningful semantics beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: search the 3ds Max class registry by keyword and return matching class names. It also adds a concrete use case—discovering installed plugins—which helps distinguish it from scene-level tools, though it does not explicitly name or contrast sibling tools like list_scene_classes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it: to discover what plugins/materials are actually installed on a machine, with examples like Vray, FStorm, and Corona. It does not, however, state when not to use it or mention alternatives, so it stops short of explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_objectsARead-only
列出场景对象,可按 superclass/class/layer/名称通配符过滤,支持 limit/offset 分页并返回 count。只读,适合先摸清场景再决定操作。namePattern 用 * 作通配,例如 Box。* [English] List scene objects, filterable by superclass/class/layer/name wildcard, paginated with limit/offset and a count field. Read-only, use it to survey the scene first. namePattern uses * as wildcard, e.g. Box.*
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | superClass 的别名。 | Alias of superClass. | |
| class | No | 按确切类名过滤,例如 Box、Editable_Poly。 | Filter by exact class, e.g. Box, Editable_Poly. | |
| layer | No | 按层名过滤。 | Filter by layer name. | |
| limit | No | 每页最多条数,默认 200。 | Max per page, default 200. | |
| offset | No | 分页偏移,默认 0。 | Pagination offset, default 0. | |
| superClass | No | 按 superclass 过滤,例如 GeometryClass、Shape、Light、Camera、Helper。 | Filter by superclass, e.g. GeometryClass, Shape, Light, Camera, Helper. | |
| namePattern | No | 名称通配符,例如 Box*、*prop*。 | Name wildcard, e.g. Box*, *prop*. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only statement alone adds little. However, the description goes beyond annotations by disclosing that the response includes a count field and by documenting the wildcard behavior for namePattern (* as wildcard, e.g. Box*). These are useful behavioral details not present in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the core purpose and filters, then adds the read-only usage context, and ends with the practical wildcard example. The bilingual structure is slightly redundant but serves a clear audience need without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no output schema, the description covers the key operational aspects: purpose, filters, pagination, wildcard syntax, and intended usage. The main gap is that it does not spell out the full return format beyond the count field, but the name and context make the list-of-objects result reasonably inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful value by explicitly specifying the wildcard syntax for namePattern ('* as wildcard, e.g. Box*'), which is not described in the schema. The other parameters are already well-covered by their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List scene objects', and clearly enumerates the filtering dimensions (superclass/class/layer/name wildcard) and pagination features. It also frames the tool as a read-only survey operation, which distinguishes it from the many mutation-oriented sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the intended use: 'Read-only, use it to survey the scene first' (先摸清场景再决定操作). This gives clear contextual guidance, though it does not name specific alternative tools or state exclusions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_render_enginesARead-only
列出本机已安装并被检测到的渲染引擎(扫描线、Arnold、V-Ray、Corona、FStorm、Redshift、ART、Quicksilver)以及当前使用的渲染器。 [English] List the render engines detected on this machine (Scanline, Arnold, V-Ray, Corona, FStorm, Redshift, ART, Quicksilver) and the one currently assigned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful context that the operation is a local detection of installed engines and includes the current assignment, but it does not disclose output ordering, detection limitations, or whether the list is dynamically refreshed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The English sentence is compact and front-loaded with the verb 'List'. The Chinese mirror adds bilingual accessibility, though it duplicates the same list of engine names, adding minor redundancy but no real bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only inventory tool, the description tells the agent what to expect: detected engine names and the currently assigned engine. It does not specify the exact return format, but with no output schema and minimal complexity, the description is adequate for correct invocation and basic result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly contains no parameter-related information because there are no parameters to document. The empty schema and additionalProperties=false are sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and names a precise resource: render engines detected on this machine, plus the currently assigned one. The enumerated engine names make the scope clear. It does not explicitly differentiate from sibling render_get_engine, but the plural 'engine list' plus current assignment disambiguates the tool's intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose itself implies when to use this tool: when an agent needs the set of detected render engines or the current renderer. However, the description does not explicitly mention alternatives or exclusions, such as pointing to render_get_engine for only the current engine or render_set_engine for changing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scene_classesARead-only
统计当前场景中实际出现的所有类及其数量。 [English] Count every class actually present in the current scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the behavioral detail that it counts classes 'actually present' in the current scene, implying it filters to used classes rather than listing all known classes. However, it does not disclose the return format (e.g., a map of class names to counts) or whether the count includes hidden/frozen objects. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences (Chinese and English) with zero waste. The core action and scope are front-loaded in both languages. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with annotations covering safety, the description is mostly complete. The main gap is the return format: an agent might not know whether the result is a list, a dictionary, or a formatted string. However, given the tool's simplicity and the absence of an output schema, the description provides enough to invoke it correctly, though not enough to parse the result confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter semantics to rely on. The description compensates by clarifying the scope ('current scene') and the operation ('count every class actually present'). Since there are no parameters to document, the description is sufficient for an agent to understand what inputs (none) are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Count') and resource ('every class actually present in the current scene'), which clearly distinguishes it from the sibling list_max_classes (which lists all available classes in the system, not scene instances). It is slightly less explicit about whether 'class' refers to object classes or material classes, but the context of 'current scene' and the sibling list_max_classes makes the intent reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call it when you need to know which classes are actually used in the current scene. It does not explicitly state when not to use it or mention alternatives like list_max_classes or get_class_properties. The sibling list_max_classes is a clear alternative, but the description does not name it or provide a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_directoryADestructive
创建目录(含所有上级目录)。 [English] Create a directory including all parents.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 目录绝对路径。 | Absolute directory path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true. The description adds the useful recursive behavior ('including all parents'), but it does not mention edge cases such as what happens if the directory already exists or whether any content is risked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short bilingual sentences with no wasted words. The core behavior and the recursive-all-parents behavior are both stated concisely and are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with full schema coverage and annotations, the description is essentially sufficient. Missing details like existing-directory handling and return behavior are minor for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single 'path' parameter as an absolute directory path, so the description does not need to repeat it. The recursive note helps clarify that the path may be nested, but it adds no further parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create a directory including all parents' (创建目录含所有上级目录). It distinguishes this as a filesystem/directory-operation tool rather than a file-content or scene-operation tool like write_text_file or create_box.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is obvious from the description: create a directory while also creating any missing parent directories. There is no sibling dedicated to directory creation, so no exclusion is required, though the description could be more explicit about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_bitmapADestructive
创建一个位图贴图(Bitmaptexture),可指定文件路径、是否真实世界缩放、U/V 平铺。这是最常用的贴图,挂在材质的命名槽位(如 diffuseMap)上。 [English] Create a bitmap texture (Bitmaptexture) with an optional file path, real-world scale and U/V tiling. The most common map, attached to a material's named slot (e.g. diffuseMap).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 位图文件路径。 | Bitmap file path. | |
| uTiling | No | U 方向平铺数,默认 1。 | U tiling, default 1. | |
| vTiling | No | V 方向平铺数,默认 1。 | V tiling, default 1. | |
| realWorldScale | No | 是否使用真实世界缩放,默认否。 | Use real-world scale, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's job is to add context. It adds that it attaches to a material's named slot, which is useful, but does not mention potential side effects like overwriting an existing map in the slot, nor whether it requires a selected material. Given the annotation coverage, this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs (Chinese and English) with no fluff. The key action and parameters are front-loaded, and the attachment context is given in one short phrase. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with no output schema, the description is mostly complete. It explains what the tool does, its parameters, and its typical usage (attaching to a material slot). It does not mention the return value, but for a create operation that's often void, so this is minor. Overall, an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter (path, uTiling, vTiling, realWorldScale) is described in the schema. The description only restates these options without adding extra meaning (e.g., path format, interaction between realWorldScale and tiling). Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: creating a bitmap texture with optional file path, real-world scale, and UV tiling. It also distinguishes itself from sibling map creation tools (e.g., checker, gradient) by specifying it's for bitmap files and mentions attaching to a material's named slot, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context: 'the most common map, attached to a material's named slot (e.g. diffuseMap).' This implies when to use it (for image-based textures) but does not explicitly contrast with procedural maps or state when not to use it. The sibling list includes many map_create_* tools, so a clearer exclusions note would elevate this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_checkerADestructive
创建一个棋盘格贴图(Checker),可选两个颜色。常用于测试 UV。 [English] Create a Checker map with two optional colours. Useful for testing UVs.
| Name | Required | Description | Default |
|---|---|---|---|
| color1 | No | 颜色 1 [0-255],也可传 "#RRGGBB"。 | Colour 1 [0-255], or a "#RRGGBB" string. | |
| color2 | No | 颜色 2 [0-255],也可传 "#RRGGBB"。 | Colour 2 [0-255], or a "#RRGGBB" string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating and potentially destructive operation. The description adds optional-color behavior and the UV-testing purpose, but does not clarify what is created or modified, such as material assignment or scene side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and front-loaded with the core action. Both sentences earn their place by covering the operation and its primary use, with no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional, fully documented parameters and annotations covering safety, the description adequately states what the tool creates and why. However, there is no output schema and no mention of what the tool returns or what it affects, leaving a moderate gap for an agent that needs to use the created map afterward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with color1 and color2 already described as integer arrays or hex strings. The description only repeats that colors are optional and adds no additional format, defaults, or interaction details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a Checker map' with 'two optional colours'. It also gives the intended use case, 'testing UVs', which distinguishes it from sibling map-creation tools like map_create_bitmap or map_create_gradient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says '常用于测试 UV / Useful for testing UVs', giving the agent a clear scenario for choosing this tool. It does not name sibling alternatives or state when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_color_correctADestructive
创建一个色彩校正贴图(Color Correction),可调节亮度等,用于后期调色。 [English] Create a Color Correction map (e.g. brightness) for look-dev colour grading.
| Name | Required | Description | Default |
|---|---|---|---|
| brightness | No | 亮度偏移。 | Brightness offset. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/side-effect profile is covered. The description adds the intended use context but discloses no additional behavioral details such as what scene state changes or whether the map is assigned to a material slot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and front-loads the essential purpose. Every sentence contributes: what is created, what it does, and what it is used for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter creation tool with annotations and no output schema, the description is nearly sufficient. It could be more complete by explaining what happens to the created map or how it integrates with the current material, but that is not strictly necessary for a basic call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the brightness parameter already has a clear description in the schema. The description's mention of brightness adds no extra semantic value beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a Color Correction map') and states its purpose ('for look-dev colour grading'). This clearly distinguishes it from sibling map-creation tools like map_create_normal, map_create_bitmap, or map_create_checker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: this tool is for look-dev colour grading and brightness adjustment. It does not explicitly mention when not to use it or name an alternative, so it falls short of the 'explicit exclusions' bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_falloffADestructive
创建一个衰减贴图(Falloff),常用于 Fresnel 边缘效果,可选两个颜色。 [English] Create a Falloff map, commonly used for Fresnel edge effects, with two optional colours.
| Name | Required | Description | Default |
|---|---|---|---|
| color1 | No | 颜色 1 [0-255],也可传 "#RRGGBB"。 | Colour 1 [0-255], or a "#RRGGBB" string. | |
| color2 | No | 颜色 2 [0-255],也可传 "#RRGGBB"。 | Colour 2 [0-255], or a "#RRGGBB" string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Create a Falloff map' and mentions two optional colours. It does not disclose what is affected, whether an existing material slot is overwritten, or what other side effects occur, despite annotations indicating destructiveHint=true. No behavioral context is added beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action and resource. The bilingual duplication is unnecessary for meaning but not excessive, and the full text remains compact and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter creation tool, the description gives the essential purpose and parameters. However, there is no output schema and no mention of what the call returns, where the map is assigned, or what destructive side effects might occur, leaving meaningful gaps for an agent invoking a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both color1 and color2 already documented in detail, including [0-255] ranges and '#RRGGBB' string alternatives. The description adds only the summary phrase 'two optional colours,' which does not materially improve on the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a Falloff map' (创建一个衰减贴图). It also adds the distinctive use case 'commonly used for Fresnel edge effects', which clearly separates it from sibling map creation tools like map_create_bitmap or map_create_checker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'commonly used for Fresnel edge effects' gives a clear contextual cue for when to call this tool. It does not explicitly exclude alternatives or name sibling tools, but the use-case context is sufficient for an agent to route to it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_gradientADestructive
创建一个渐变贴图(Gradient),可选三个颜色。 [English] Create a Gradient map with three optional colours.
| Name | Required | Description | Default |
|---|---|---|---|
| color1 | No | 颜色 1 [0-255],也可传 "#RRGGBB"。 | Colour 1 [0-255], or a "#RRGGBB" string. | |
| color2 | No | 颜色 2 [0-255],也可传 "#RRGGBB"。 | Colour 2 [0-255], or a "#RRGGBB" string. | |
| color3 | No | 颜色 3 [0-255],也可传 "#RRGGBB"。 | Colour 3 [0-255], or a "#RRGGBB" string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=true, and the description's 'Create' aligns with a write operation. The description adds no extra behavioral detail (e.g., what the gradient is applied to, whether it overwrites existing maps) but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action and resource. It has zero filler and is appropriately sized for a simple creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with complete parameter documentation and annotations covering side effects, the description is minimally adequate. However, it omits any mention of what happens after creation (e.g., where the gradient map is placed) or any prerequisites, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is fully described with format and constraints. The tool description only repeats 'three optional colours', adding no meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a resource ('Gradient map'), and the optional colours. It clearly distinguishes from sibling map creators like map_create_checker or map_create_gradient_ramp by naming the specific gradient type. No ambiguity or tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like map_create_gradient_ramp, map_create_noise, or other map creators. An agent cannot determine the appropriate context from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_gradient_rampADestructive
创建一个渐变坡度贴图(Gradient Ramp),比普通渐变更灵活(多色标、多种类型)。 [English] Create a Gradient Ramp map, more flexible than a plain gradient (multiple flags, types).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core effect (creates a Gradient Ramp map), which is the primary behavior an agent needs to know. Annotations already indicate non-readOnly and destructive, so the description does not need to restate that, but it also does not explain why the tool is flagged destructive or what side effects may occur (e.g., replacing an existing map). This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a two-line bilingual statement that is direct and front-loaded with the action and resource. It provides the key comparative advantage without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter creation tool with no output schema, the description covers the essential context: what is created, what type of map it is, and why it may be preferred over a plain gradient. The only missing context is clarification of the destructive hint, but this does not prevent an agent from invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema shows an empty properties object, so there are no parameter semantics to explain. The description does not need to compensate for any schema coverage gap; the baseline for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Create') and resource ('Gradient Ramp map'), and explicitly distinguishes it from a 'plain gradient' with concrete differentiators (multiple flags, types). This makes it easy for an agent to tell it apart from sibling map_create_gradient.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the Gradient Ramp is 'more flexible than a plain gradient' and gives the differentiators (multiple flags, types), which implies when to choose this tool over map_create_gradient. It does not explicitly name the sibling or state when not to use it, but the comparative context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_noiseBDestructive
创建一个噪波贴图(Noise),可选噪波类型(1=常规,2=分形,3=湍流)、尺寸、随机种子与两个颜色。 [English] Create a Noise map with optional noise type (1=regular, 2=fractal, 3=turbulence), size, seed and two colours.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | 随机种子。 | Random seed. | |
| size | No | 噪波尺寸。 | Noise size. | |
| color1 | No | 颜色 1 [0-255],也可传 "#RRGGBB"。 | Colour 1 [0-255], or a "#RRGGBB" string. | |
| color2 | No | 颜色 2 [0-255],也可传 "#RRGGBB"。 | Colour 2 [0-255], or a "#RRGGBB" string. | |
| noiseType | No | 噪波类型:1 常规 / 2 分形 / 3 湍流。 | Noise type: 1 regular / 2 fractal / 3 turbulent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, implying creation might overwrite or affect existing data, but the description doesn't clarify what gets destroyed or whether it's reversible. It also doesn't mention any side effects or prerequisites. The description adds little beyond the annotations, but it doesn't contradict them. With annotations covering the destructive nature, the description is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, about two lines, and front-loads the purpose. It uses bilingual text (Chinese/English), which is efficient for multilingual agents. Every sentence adds value—the first defines action, the second lists parameters. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 required parameters, the schema provides full parameter details, and annotations cover safety, the description is mostly complete for calling the tool. However, it doesn't mention what the function returns (no output schema) or any side effects like material assignment. This is a minor gap for a simple creation tool, so a 3 is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description mentions the same parameters (type, size, seed, colors) but adds no extra meaning beyond the schema. It restates the noise type options (1,2,3) which are already in the schema. Baseline 3 is appropriate since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a Noise map and lists the configurable parameters (type, size, seed, colors). It is distinct from sibling tools like map_create_checker or map_create_bitmap, though it doesn't explicitly differentiate itself. The verb 'create' and resource 'Noise map' are specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating noise maps but does not specify when to use this over other map types or when not to use it. There is no mention of alternative map creation tools or context. Guidance is minimal, so agents must infer based on the name, which is acceptable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_create_normalBDestructive
创建一个法线贴图(Normal Bump),用于把高模细节烘焙的法线应用到低模。 [English] Create a Normal Bump map to apply baked high-poly normals onto a low-poly mesh.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description does not explain what side effects occur, such as overwriting an existing map, modifying the current material, or requiring a selection. The description only restates the creation action and purpose without disclosing the destructive behavior beyond the annotation flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. The Chinese and English text are direct and free of filler, though the English portion largely duplicates the Chinese portion, so it is slightly redundant but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the operational details are entirely in the description, but it omits important context: where the map is created, what material or object it applies to, and what destructive consequences the annotation hints at. An agent would not know whether calling this tool requires a selected material, object, or existing map.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is nothing for the description to clarify. Per the rubric, this is a healthy baseline: the description does not need to compensate for schema gaps because there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as creating a Normal Bump map and states its intended use: applying baked high-poly normals to a low-poly mesh. The verb and resource are specific, but it does not explicitly differentiate from sibling tools like bake_normals or other map_create_* tools, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when you need a Normal Bump map to apply baked normals onto a low-poly mesh. It does not mention alternatives or exclusions, but the use case is explicit enough for an agent to understand the intended scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_set_bitmap_pathADestructive
设置材质某个槽位上位图贴图的文件路径。若槽位上还没有贴图,会自动新建一个 Bitmaptexture。 [English] Set the file path of the bitmap map on a material's slot. If there is no map yet, a Bitmaptexture is created automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 位图文件路径。 | Bitmap file path. | |
| slot | Yes | 槽位名。 | Slot name. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag write/destructive behavior (readOnlyHint=false, destructiveHint=true), so the bar is lower. The description adds useful behavioral context by disclosing automatic Bitmaptexture creation when no map is present, but it does not explain what happens to an existing map or how destructive the path replacement is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the main action, and then states the important auto-creation exception. The bilingual duplication is purposeful and does not add bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter mutation with full schema coverage and annotations already flagging destructiveness, the description covers the core operation and the auto-creation side effect. It is missing only explicit alternative tool routing and details about path validation/replacement behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the three parameters are simple strings with clear names/descriptions. The description adds no significant parameter semantics beyond restating the material/slot/path relationship, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pair ('Set the file path of the bitmap map on a material's slot') and adds the auto-creation behavior ('If there is no map yet, a Bitmaptexture is created automatically'). This clearly distinguishes it from related siblings like map_create_bitmap and mat_set_map_slot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the context of setting a bitmap path on a material slot, and the auto-creation note implies it can be used on empty slots. However, it gives no explicit guidance on when to prefer this over siblings such as map_create_bitmap or mat_set_map_slot, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_assignADestructive
把材质赋给对象。可传对象列表,省略则赋给当前选择(assign-to-selection)。Multi/Sub-Object 的逐面分配需要给对象设置面材质 ID,这里只做整体赋值,逐面请配合 poly 工具设置面 ID。 [English] Assign a material to objects; pass a list or omit to assign to the current selection (assign-to-selection). Per-face assignment of a Multi/Sub-Object material requires face material IDs on the object - this tool does whole-object assignment only.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive/read-write behavior; the description adds meaningful behavioral context: assignment is whole-object only, per-face assignment is not handled, and selection is used when no objects are passed. It does not discuss overwriting existing materials, but the destructive hint covers that implication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bilingual, which lengthens it, but the core action and selection behavior are front-loaded and the per-face limitation is relevant and non-redundant. It could be slightly tighter but is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity mutation tool with full schema coverage and annotations already conveying destructive/read-write characteristics, the description provides all necessary operational context: target selection, scope limitation, and routing to the correct alternative tool. No return value is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters fully (object names with selection fallback, and material name). The description repeats this information without adding new syntax, constraints, or parameter-specific details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action—assign a material to objects—and the optional target behavior (explicit list or current selection). It also explicitly scopes the operation to whole-object assignment, distinguishing it from per-face assignment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage instructions: pass an object list or omit for the current selection. It also states what the tool does not do (per-face Multi/Sub-Object assignment) and directs users to poly tools for that case, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_arnoldADestructive
创建一个 Arnold 材质(aiStandardSurface)。只有当本机安装了 Arnold 时才可用;否则返回 class_missing 错误。用 list_render_engines / does_class_exist 先探测。 [English] Create an Arnold material (aiStandardSurface). Only available when Arnold is installed on this machine - otherwise it returns a class_missing error. Probe first with list_render_engines / does_class_exist.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a mutating tool (readOnlyHint=false, destructiveHint=true), so mutation is known. The description adds genuinely useful behavioral context beyond the annotations: Arnold must be installed, otherwise the tool returns a class_missing error, and the agent should probe availability first. It does not detail every side effect, but it covers the critical non-obvious behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core action first, then the critical Arnold dependency, then the recommended probe step. The bilingual duplication is acceptable for the target audience and does not add unnecessary length. Every sentence carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with full schema coverage, the description covers the main non-obvious context: availability, error behavior, and how to probe. The main remaining gap is that the tool has zero required parameters, so it is unclear what happens if name is omitted, and no return value is described. These are minor relative to the critical dependency warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains 'name' and 'objects'. The description's mention of assigning objects after creation repeats the schema's own explanation rather than adding new meaning. There is no additional detail about optionality or default behavior when name is omitted, so the description does not elevate above the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create an Arnold material (aiStandardSurface)'. It also distinguishes itself from sibling material creators like mat_create_standard, mat_create_vray, and mat_create_physical by naming the exact shader type. The distinctive Arnold availability caveat further removes ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when the tool can be used: only when Arnold is installed. It also names the failure mode (class_missing error) and recommends probing first with list_render_engines / does_class_exist, which are actual sibling tools. This gives an agent clear actionable guidance for selecting this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_blendCDestructive
创建一个 Blend(混合)材质,用于把两种材质按遮罩混合。 [English] Create a Blend material that mixes two materials by a mask.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, but the description adds no side-effect context: it does not explain whether existing material assignments are overwritten, whether source materials must already exist, or what assigning to objects will do. It mostly restates the creation behavior rather than disclosing additional traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and free of filler. The Chinese and English versions duplicate the same content, but this is acceptable for a bilingual definition and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool, the description omits the conceptual model: an agent has no idea that the two materials and mask must be configured separately afterward, and no output or failure behavior is described. Since there is no output schema, the description should carry more of this burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema for the two parameters. A notable omission is that it never explains how the two materials and mask are specified, since the tool only exposes name and objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a Blend material' and explains the defining behavior: 'mixes two materials by a mask.' This is enough to distinguish it from other material creation siblings like mat_create_standard or mat_create_multi_sub, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '用于把两种材质按遮罩混合' gives an implied use case, but there is no guidance on when to choose this over alternatives such as mat_create_multi_sub or mat_create_shellac, nor any exclusions or preconditions. An agent must infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_coronaADestructive
创建一个 Corona 材质(CoronaMtl)。只有当本机安装了 Corona 时才可用;否则返回 class_missing。先探测再调用。 [English] Create a Corona material (CoronaMtl). Only available when Corona is installed - otherwise it returns class_missing. Probe before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag mutation/destructive behavior (readOnlyHint=false, destructiveHint=true), and the description adds non-obvious behavior: the tool is conditionally available and returns class_missing when Corona is missing. It also notes optional post-creation object assignment via the objects parameter, giving an agent a fuller picture of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the critical dependency warning in bold before the positive statement. The bilingual duplication is warranted for this audience and every sentence contributes usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter create tool with full schema coverage and mutation annotations, the description covers the main call condition, failure behavior, and assignment side effect. It does not describe the success return value, but this is a minor gap given no output schema and the simplicity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no new semantic detail beyond what the input schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a Corona material (CoronaMtl)', which clearly differentiates it from sibling material creators (mat_create_standard, mat_create_physical, mat_create_vray, etc.). It also scopes when the operation is applicable by noting the local Corona installation requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit prerequisite guidance: only call when Corona is installed, 'probe before calling', and the failure mode ('returns class_missing') if the dependency is absent. It does not name alternative mat_create_* tools, but the installed-renderer condition makes the main selection rule clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_fstormADestructive
创建一个 FStorm 材质(FStormMtl)。只有当本机安装了 FStorm 时才可用;否则返回 class_missing。先探测再调用。 [English] Create an FStorm material (FStormMtl). Only available when FStorm is installed - otherwise it returns class_missing. Probe before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate mutation. It adds valuable context: the tool depends on FStorm installation and returns class_missing otherwise. This is beyond what annotations provide. However, it doesn't detail what 'destructive' means in this context (e.g., whether it overwrites existing materials), but the probe-first warning is useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences in both Chinese and English, with the critical usage condition front-loaded. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter creation tool with no output schema, the description covers the essential context: what it creates, the prerequisite, and the failure mode. It doesn't describe the return value, but the absence of an output schema makes that less critical. The probe-first instruction is a strong addition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds the behavior of the 'objects' parameter (assign after creation; omit to skip), which is helpful but not extensive. Baseline 3 is appropriate since the schema carries the parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an FStorm material (FStormMtl), with a specific verb and resource. It also distinguishes itself from sibling material creation tools by naming the specific renderer plugin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: only when FStorm is installed, and instructs to probe first. It also mentions the failure mode (class_missing) and the alternative behavior of returning an error, which helps the agent decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_genericADestructive
用任意材质类名创建材质(用 mcpEnsureClass 校验类存在)。适合创建没有专用工具的冷门材质;类名可通过 get_class_properties 探索。 [English] Create a material from any class name (validated with mcpEnsureClass). Use it for obscure materials that lack a dedicated tool; discover class names via get_class_properties.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. | |
| className | Yes | 材质类名,例如 Shellac、DoubleSided、Top_Bottom。 | Material class name, e.g. Shellac, DoubleSided, Top_Bottom. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the mutating nature. The description adds the validation step with mcpEnsureClass, which is useful but does not disclose return values or error behaviors. Given the annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences in English (plus Chinese) that front-load the purpose and include a usage hint. Every sentence earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool in a domain with many dedicated alternatives, the description provides the critical routing information (use for obscure materials) and a discovery path (get_class_properties). It does not explain error handling or return format, but the validation mention and schema coverage make it sufficiently complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions and examples, achieving 100% coverage. The description adds no extra parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: creating a material from any class name, explicitly validated with mcpEnsureClass. It differentiates from dedicated material creation tools by specifying it is for obscure materials lacking a dedicated tool, which distinguishes it from mat_create_standard and similar siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use this tool (obscure materials without a dedicated tool) and how to discover class names via get_class_properties. It implies that if a dedicated tool exists, it should be used instead, though it does not explicitly name alternatives. This is clear context but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_multi_subADestructive
创建一个 Multi/Sub-Object(多维/子对象)材质,指定子槽数量 count。子槽先用默认占位,再用 mat_set_sub_material 逐个填入。配合对象的面材质 ID 使用。 [English] Create a Multi/Sub-Object material with a given number of sub-slots (count). The slots start empty; fill them with mat_set_sub_material. Use with face material IDs on objects.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| count | Yes | 子材质数量。 | Number of sub-materials. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=false and destructiveHint=true, indicating a write operation with potential destructive effects. The description adds the behavioral detail that slots start empty and need to be filled later, but does not disclose any side effects like overwriting existing materials or behavior when assigning to objects. Since annotations carry the safety profile, the description provides modest additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the main purpose stated first and the workflow in a second sentence. Providing bilingual text doubles the length, but each section is compact and to the point. No unnecessary filler; it gets the job done efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with no output schema, the description covers the essential purpose, the count parameter, the subsequent filling workflow, and the intended use with face material IDs. The optional 'objects' parameter is mentioned in the schema but not elaborated, yet that's covered by the parameter description. Overall, an agent can use this tool correctly with the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all three parameters, achieving 100% coverage. The tool description reinforces the meaning of count (number of sub-slots) and mentions the workflow of filling slots, but doesn't add substantial new semantic information beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Create a Multi/Sub-Object material') with a specific resource type and the key parameter (count). It distinguishes from sibling material creation tools by specifying the multi/sub-object nature and the workflow for filling sub-slots. The mention of face material IDs further clarifies its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the intended use: create material with count, then fill slots with mat_set_sub_material, and use in combination with face material IDs. This gives clear context for when the tool is appropriate. It doesn't explicitly rule out alternatives, but the workflow guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_physicalADestructive
创建一个 PhysicalMaterial(PBR 金属/粗糙度工作流)。可设基础色、金属度、粗糙度,并可顺手赋给对象。这是现代 3ds Max 的默认材质。 [English] Create a PhysicalMaterial (PBR metal/roughness workflow) with optional base colour, metallic and roughness, optionally assigning it to objects. This is modern 3ds Max's default material.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. | |
| metallic | No | 金属度 0..1。 | Metallic 0..1. | |
| baseColor | No | 基础色 [0-255],也可传 "#RRGGBB"。 | Base colour [0-255], or a "#RRGGBB" string. | |
| roughness | No | 粗糙度 0..1。 | Roughness 0..1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions optional assignment to objects, which is a behavioral side effect, and the annotations already indicate destructiveHint=true. However, it does not elaborate on what the assignment overwrites or whether creation has other scene-wide effects. It adds limited behavioral detail beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action in the first sentence. It is slightly longer due to bilingual repetition, but each language version is concise and the extra context about being the default material is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with all-optional parameters and a complete schema, the description is adequate but not exhaustive. It does not explain what the tool returns, what happens to existing material assignments when objects are specified, or explicitly compare with sibling material creators. These gaps are not critical but would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented. The description names base color, metallic, roughness, and optional object assignment, but adds no additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: create a PhysicalMaterial, and specifies the PBR metal/roughness workflow. It also distinguishes itself from sibling material-creation tools by noting it is 'modern 3ds Max's default material', which helps an agent choose it over mat_create_standard, mat_create_arnold, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context by calling PhysicalMaterial the modern 3ds Max default, which implies when it should be used. However, it does not explicitly state when to prefer it over alternatives such as mat_create_standard or mat_create_vray, nor does it mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_shellacADestructive
创建一个 Shellac(虫漆)材质,用于叠加涂层效果。 [English] Create a Shellac material for layered coat effects.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds no extra behavioral detail such as whether an existing material is overwritten or what happens when assigning to objects, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the action and purpose in two short sentences across both languages. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with two optional, fully documented parameters, the definition is mostly sufficient. However, it does not clarify what happens when 'name' is omitted, whether the tool returns a handle to the created material, or what specifically makes the operation destructive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'name' and 'objects' already described. The description adds no additional parameter semantics beyond what the input schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and the specific resource ('Shellac material'), and adds the purpose 'layered coat effects'. It does not explicitly compare against sibling material-creation tools, but the material type is distinct enough to identify the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for layered coat effects' implies when this tool is appropriate, giving some usage context. However, it does not state when to choose Shellac over alternatives like Blend, nor does it provide any exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_standardADestructive
创建一个 StandardMaterial(经典标准材质),可选漫反射颜色,并可顺手赋给对象。在 PBR/物理灯光下它表现偏旧;新项目优先用 mat_create_physical。 [English] Create a StandardMaterial (classic standard) with an optional diffuse colour, optionally assigning it to objects. Looks dated under PBR/physical lighting; prefer mat_create_physical for new work.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| diffuse | No | 漫反射颜色 [0-255],也可传 "#RRGGBB"。 | Diffuse colour [0-255], or a "#RRGGBB" string. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds the 'looks dated under PBR' caveat and mentions optional assignment, but it does not disclose the concrete destructive effect, such as whether assigning replaces existing materials on target objects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and includes a clearly marked usage caveat with the preferred alternative. The bilingual repetition is purposeful for the audience, and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with no required parameters and no output schema, the description covers creation, optional diffuse colour, optional assignment, and the sibling preference. The main gap is the absence of explicit side-effect details around assignment, but the destructiveHint annotation partially mitigates that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters. The description mostly repeats that diffuse is optional and that objects may be assigned, without adding new detail about formats, defaults, or edge cases beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create'), the exact resource ('StandardMaterial'), and the optional behaviors (diffuse colour, assignment). It also names the preferred alternative, mat_create_physical, allowing an agent to distinguish this from the family of mat_create_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says this material looks dated under PBR/physical lighting and directs new work to mat_create_physical. This is a clear when-to-use vs when-not-to-use instruction, naming the alternative and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_create_vrayADestructive
创建一个 V-Ray 材质(VRayMtl)。只有当本机安装了 V-Ray 时才可用;否则返回 class_missing。先探测再调用。 [English] Create a V-Ray material (VRayMtl). Only available when V-Ray is installed - otherwise it returns class_missing. Probe before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 材质名称。 | Material name. | |
| objects | No | 创建后赋给这些对象;省略则不赋值。 | Assign to these objects after creation; omit to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the description is not burdened with stating mutation. It adds meaningful behavioral context beyond annotations: the tool depends on V-Ray being installed and returns class_missing otherwise. This is exactly the kind of runtime precondition an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, followed immediately by the critical installation prerequisite and error behavior. The bilingual duplication is compact and each sentence contributes essential information. No filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with no output schema and fully documented parameters, the description covers the essential context: what it creates, when it is available, what happens when it is not, and a recommended probing step. It does not describe overwrite behavior or return values, but these are less critical given the annotations and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the input schema: name is the material name and objects are the objects to assign after creation. The description adds no additional parameter-level meaning, so it relies on the schema. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: '创建一个 V-Ray 材质(VRayMtl)' / 'Create a V-Ray material (VRayMtl).' This clearly distinguishes it from the many sibling material creators such as mat_create_standard, mat_create_physical, and mat_create_arnold. The tool's scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: only when V-Ray is installed, and it warns that calling it otherwise returns class_missing. It also instructs the agent to 'probe before calling.' It does not explicitly name a fallback alternative tool, but the availability condition is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_deleteADestructive
从场景中删除一个材质:把所有引用它的对象材质设为空,并清空编辑器里对应的槽位。这会断开对象与材质的关联,但对象本身不会被删除。 [English] Delete a material from the scene: unassign it from every object that uses it and clear the matching editor slots. This detaches the material but does not delete the objects.
| Name | Required | Description | Default |
|---|---|---|---|
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as destructive and non-read-only, but the description adds important behavioral details: every object using the material gets its material slot emptied, editor slots are cleared, and the objects themselves are not deleted. This goes beyond the structured metadata and warns the agent about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and every sentence adds information. The bilingual content is justified and does not read as padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with no output schema, the description is complete. It explains the action, the side effects on objects and editor slots, and explicitly states what will not happen, which is exactly the information an agent needs before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter, 'material', as a material name with 100% coverage. The description repeats this concept but adds no additional detail about name formatting, uniqueness, or how to specify the material. Baseline of 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: '从场景中删除一个材质' / 'Delete a material from the scene', and clarifies the exact behavior of unassigning it from objects and clearing editor slots. It also distinguishes itself from material manipulation tools like mat_rename and mat_assign by stating deletion semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when a material should be removed from the scene and detached from objects. However, it does not explicitly mention alternatives such as mat_duplicate or mat_assign, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_duplicateADestructive
克隆一个材质(深拷贝),可选新名称,返回新材质名。用于在不破坏原材质的前提下改一套变体。 [English] Clone a material (deep copy) with an optional new name; returns the new material name. Use it to derive variants without touching the original.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 新材质名称;省略则原名为加 _copy。 | New name; defaults to original + _copy. | |
| material | Yes | 要克隆的材质名称。 | Material to clone. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the bar is lower. The description explicitly says 'deep copy' and 'without touching the original', clarifying that it does not mutate the source material. For a 'duplicate' tool the destructive hint is a bit odd; the description clarifies the operation is non-destructive to the source. Return value (new name) is stated. Minor gap: no mention of name collision behavior. Not a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short lines in both languages; front-loaded with the key purpose and safety guarantee (deep copy, original untouched). Every sentence earns its place. The bilingual duplication is justified for the target audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus 100% schema coverage covers the essential: what to pass in, what is returned, and the use case. The main missing piece is what happens on name collision (auto-renamed? overwrite? error), which would be useful for a material duplicate in a Max scene. No output schema, so stating the return value is good.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description restates that 'name' is optional and defaults to original + _copy, which the schema already says. It adds slight value by rephrasing the naming convention clearly in both languages. No extra parameter semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (clone a material as a deep copy) and distinguishes itself from mat_rename in the sibling list without naming it directly. It doesn't explicitly name the sibling to differentiate from, but the intent ('derive variants without touching original') is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells when to use it: to create a variant without modifying the original. It doesn't name exclusions or explicitly compare against mat_rename or mat_delete, but the phrase 'without touching the original' implies the alternative is in-place modification (mat_set_*), which gives a clear use context. No explicit 'when not to use', so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_getARead-only
读取一个材质的完整信息:类名、漫反射/高光/粗糙度/金属度/IOR/不透明度/自发光,以及所有贴图槽(按名字列出槽名、贴图类、位图路径)。名称可用 mat_list 查到。StandardMaterial 的 diffuse 在 PBR 灯光下会偏暗;PhysicalMaterial 用 Base Color + Metallic + Roughness。 [English] Read full details of a material: class, diffuse/specular/roughness/metallic/IOR/opacity/emission, plus every map slot (slot name, map class, bitmap path). Names come from mat_list. A StandardMaterial's diffuse looks wrong under PBR lighting; PhysicalMaterial uses Base Color + Metallic + Roughness.
| Name | Required | Description | Default |
|---|---|---|---|
| material | Yes | 材质名称(字符串)。 | Material name (string). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful context beyond that by specifying the exact set of data returned and warning about the StandardMaterial diffuse behavior under PBR lighting, which helps the agent interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the tool's core behavior, then lists returned fields, then gives the material-type caveat. The bilingual duplication is justified by the audience, and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description bears the burden of explaining the return values. It does this thoroughly by enumerating all material properties and map slot details, and it also explains the material-type caveat. The description is complete for a read-only tool with one input parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully describes the material parameter as a string name, so the baseline is 3. The description adds extra value by pointing to mat_list as the source of valid material names, which helps the agent supply a correct parameter value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (read) and resource (a material), then enumerates exactly what will be returned: class, diffuse/specular/roughness/metallic/IOR/opacity/emission, and every map slot. It also ties the material name to mat_list, which helps distinguish it from object-based material tools like mat_get_for_object.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call it with a material name, and names can be discovered via mat_list. It does not explicitly contrast this with mat_get_for_object or other material tools, but the 'names come from mat_list' instruction is a practical and clear prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_get_for_objectARead-only
读取一个或多个对象当前使用的材质详情。省略对象则使用当前选择。 [English] Read the material currently assigned to one or more objects. Omit objects to use the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the selection fallback behavior, but it does not disclose what 'material details' will be returned or how multiple objects sharing materials are handled. This is useful but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core operation, and includes a single important usage rule. The bilingual duplication is justified and adds no unnecessary complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only operation with one optional parameter, the description provides enough information to invoke the tool correctly. However, there is no output schema and the phrase 'material details' is somewhat vague about the exact return shape, so a small completeness gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description largely repeats the parameter information already present: object names, optional, defaults to current selection. The description adds no meaningful semantic detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: read the material currently assigned to one or more objects. It also specifies the selection fallback. However, it does not explicitly distinguish itself from the sibling mat_get, leaving some potential ambiguity for an agent choosing between similar material-reading tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage pattern: provide objects when targeting specific ones, or omit them to use the current selection. It does not mention when to prefer this tool over alternatives, but the selection fallback rule is useful and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_get_map_slotBRead-only
读取材质某个命名槽位上的贴图:贴图类名与位图路径。 [English] Read the map on a named slot of a material: its class and bitmap path.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | 槽位名。 | Slot name. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description matches that read-only behavior. It adds the useful detail that the result is the map class and bitmap path, but does not address edge cases like empty slots or invalid material names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the action in the first clause and output details immediately after. The bilingual repetition is acceptable but slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with two fully described parameters, the description is adequate: it names the inputs and the expected output. It doesn't specify exact return formatting or failure behavior, but that is a minor gap given the low complexity and readOnlyHint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both slot and material already explained in Chinese/English. The description adds no further parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('read the map on a named slot') and the returned data (class and bitmap path), so an agent understands what the tool does. It does not explicitly distinguish this from sibling getters like mat_get or mat_set_map_slot, so it loses the top point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement about when to prefer this tool over related material/map tools; no mention of alternatives or exclusions. The read-vs-write contrast with mat_set_map_slot is left entirely to the name and action verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_library_loadADestructive
加载一个 .mat 材质库到当前场景:把其中的材质放进材质编辑器空槽,并返回材质名列表。这是复用工作室已有 look-dev 的标准方式。 [English] Load a .mat material library into the current scene: its materials are placed into empty Material Editor slots and their names returned. The standard way to reuse a studio's existing look-dev.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | .mat 材质库文件路径。 | .mat material library file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only signal readOnlyHint=false and destructiveHint=true. The description adds valuable behavior beyond that: it fills empty Material Editor slots and returns material names, clarifying the mutation scope. It does not cover failure behavior when no empty slots are available, but the disclosed side effects are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and side effect. The bilingual repetition adds length but is not excessive and preserves the key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, no output schema, and a destructiveHint=true annotation, the description adequately covers the main side effect, return value, and intended use case. It omits edge cases like missing files or what happens when no empty slots exist, but is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'path', is already fully described in the schema as '.mat material library file path'. The description adds no format, resolution, or validation details beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Load'), identifies the resource (.mat material library), and explains the exact effect: materials are placed into empty Material Editor slots and a name list is returned. This clearly distinguishes it from mat_library_save and related material creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames the tool as 'the standard way to reuse a studio's existing look-dev,' giving a clear when-to-use context. It does not mention alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_library_saveADestructive
把一组材质保存为 .mat 材质库文件。省略 materials 时保存材质编辑器所有槽位上的材质。 [English] Save a set of materials to a .mat library file. Omit materials to save everything in the Material Editor slots.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | .mat 文件保存路径。 | .mat save path. | |
| materials | No | 要保存的材质名称列表;省略则保存编辑器全部槽位。 | Material names to save; omit to save all editor slots. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the operation as destructive, so the description does not need to restate that. It adds behavioral context beyond the schema by explaining the omit-materials default behavior and the file-write target. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and compact, with purpose stated first and the optional behavior second. The bilingual repetition is somewhat redundant, but it is structurally clear and not padded with unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter save operation with a destructiveHint annotation, the description covers the required path, the optional materials list, and the default behavior when omitted. It is complete enough for an agent to invoke the tool correctly, even though no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description's omission guidance essentially mirrors the schema's materials description, adding no new semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (save) and a specific resource (.mat material library file), and clarifies the optional-materials behavior. This clearly distinguishes it from the complementary sibling mat_library_load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage condition: omit materials to save all Material Editor slots. It does not explicitly name alternatives or exclusions, but the default behavior is well-communicated and the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_listARead-only
列出场景中所有材质:类名、名称、被多少对象引用(usedBy)。结果分页。改材质前先用它确认材质名,再传给 mat_get / mat_assign。 [English] List every material in the scene with its class, name and how many objects use it (usedBy). Paginated. Confirm the material name here before passing it to mat_get or mat_assign.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 100。 | Maximum entries to return, default 100. | |
| offset | No | 起始偏移,默认 0。 | Starting offset, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the paginated behavior and the output contents (class, name, usedBy), which are genuinely useful beyond the annotations. It doesn't mention ordering or edge cases, but for a safe read-only listing tool the added context is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action and outputs, and the workflow hint is bolded for visibility. The bilingual repetition is intentional and not wasteful, though it does double the length compared to a single-language description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly mentions the returned fields (class, name, usedBy) and pagination. The two simple parameters are fully covered by the schema, and the workflow guidance ties this tool into the broader material editing process. Minor missing details like sorting order are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without additional parameter information. The description's mention of pagination provides some context for limit/offset but doesn't add meaningful semantics beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List every material in the scene' with class, name, and usedBy count. It also explicitly frames this as the tool to confirm material names before using mat_get or mat_assign, which distinguishes it from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bold instruction 'Confirm the material name here before passing it to mat_get or mat_assign' gives clear context and names the follow-up tools. It lacks explicit when-not-to-use guidance, but the stated workflow is actionable and specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_renameBDestructive
重命名一个材质。 [English] Rename a material.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 新名称。 | New name. | |
| material | Yes | 原材质名称。 | Original material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false and destructiveHint=true, but the description adds no behavioral context beyond the bare operation. It does not mention side effects such as reference updates, undo behavior, or error conditions, so it provides no value beyond the structured annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with exactly one meaningful sentence repeated in both Chinese and English. There is no wasted text, and the operation is front-loaded clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, fully documented parameters, and annotations covering the safety profile, the description is mostly adequate. However, with no output schema, it does not state what the tool returns, and it omits any mention of side effects or prerequisites, leaving minor gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents the 'material' and 'name' parameters. The description adds no additional semantic detail about parameter formats, uniqueness constraints, or naming rules; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Rename' and the resource 'a material', which distinguishes it from object-rename tools in the sibling list. However, it does not explicitly contrast with similar material operations like mat_set_property, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as mat_set_property or rename_object. The description only says what it does, not when to choose it, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_diffuseADestructive
设置材质的漫反射/基础色。对 StandardMaterial 写入 diffuse,对 PhysicalMaterial 写入 base_color,自动适配。颜色接受 [r,g,b](0-255)或 "#RRGGBB"。 [English] Set the diffuse/base colour. Writes diffuse for a StandardMaterial and base_color for a PhysicalMaterial, auto-adapting. Accepts [r,g,b] (0-255) or a "#RRGGBB" string.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | 漫反射颜色 [0-255],也可传 "#RRGGBB"。 | Diffuse colour [0-255], or a "#RRGGBB" string. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as destructive and not read-only, so the description doesn't need to restate that. It adds useful context by disclosing which internal property is written for each material type and the accepted color formats, but it does not address error behavior, unsupported material types, or whether the material must already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the primary action, followed by the adaptive behavior and color format. The bilingual repetition doubles content but is acceptable for localization; overall it is compact and well-structured with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with full schema coverage and annotations, the description covers the core behavior well. It is slightly incomplete in not explicitly limiting support to Standard/Physical materials or describing error handling, but these are minor omissions for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the color format information already present in the schema ('[r,g,b] (0-255) or #RRGGBB') and adds nothing additional about the material parameter, providing no extra semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Set the diffuse/base colour'), identifies the resource (material), and explains the adaptive behavior for StandardMaterial vs PhysicalMaterial. This clearly distinguishes it from sibling tools like mat_set_specular or mat_set_property by pinpointing the exact property being set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the clear purpose and the note about auto-adapting to Standard/Physical materials, but the description does not explicitly name alternatives or state when not to use this tool. It leaves the agent to infer that other mat_* tools are for different properties, offering no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_emissionADestructive
设置材质自发光:颜色(PhysicalMaterial 的 emission_color 或 StandardMaterial 的 selfIllumColor)以及自发光强度 amount。 [English] Set material emission: a colour (PhysicalMaterial's emission_color or StandardMaterial's selfIllumColor) and an emission amount.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | 自发光颜色 [0-255],也可传 "#RRGGBB"。 | Emission colour [0-255], or a "#RRGGBB" string. | |
| amount | No | 自发光强度;StandardMaterial 为 selfIllumAmount。 | Emission amount; selfIllumAmount for StandardMaterial. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations signal mutation (readOnlyHint=false) and destructive potential (destructiveHint=true), so the description is not required to repeat that. It adds useful context by disclosing exactly which material fields are modified for each material class and that the amount is also set. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is compact, front-loads the core action, and provides bilingual coverage without redundant prose. Every sentence conveys either the operation, the affected properties, or the material-type mapping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with destructive annotations and fully covered schema, this description is nearly complete: it explains material-type-specific property names and maps inputs to real material classes. It stops short of describing behavior on unsupported material types or naming alternatives, but that gap is minor given the schema and annotation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters already document color format, amount semantics, and material name. The description does not add significant parameter meaning beyond the schema; the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action on a specific resource: set material emission, with the exact affected properties depending on material type (PhysicalMaterial emission_color vs StandardMaterial selfIllumColor) and emission amount. This clearly differentiates it from sibling material setters like mat_set_diffuse, mat_set_specular, and mat_set_opacity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives. It does not mention mat_set_property or other material-setting siblings, and gives no exclusions or conditional recommendations. The only implied usage comes from the tool name, which is insufficient for the large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_map_slotADestructive
把一个贴图挂到材质的命名槽位(例如 "diffuseMap" / "base_color_map" / "bumpMap")。可指定 mapClass(默认 Bitmaptexture)新建贴图,并用 path 指向位图文件。 [English] Attach a map to a named slot of a material (e.g. "diffuseMap", "base_color_map", "bumpMap"). Creates a map of mapClass (default Bitmaptexture) and points it at path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 位图文件路径(仅 Bitmaptexture 生效)。 | Bitmap file path (for Bitmaptexture). | |
| slot | Yes | 槽位名(材质属性名)。 | Slot name (material property name). | |
| mapClass | No | 贴图类名,默认 Bitmaptexture。 | Map class, default Bitmaptexture. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the tool as non-read-only and destructive. The description adds that it creates a new map and points it at a path, which clarifies the mechanism, but it does not disclose whether an existing map on the slot is overwritten or what happens if the bitmap path is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the primary action with concrete examples. The bilingual Chinese/English duplication is mildly redundant but intentional and does not add significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema covers purpose, examples, and parameter meanings, which is sufficient for typical calls. However, as a destructive mutation with no output schema, it misses important context such as replacement of an existing slot map and whether path is mandatory for Bitmaptexture. This leaves minor but real gaps for an agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all four parameters with descriptions, so the baseline is 3. The description adds concrete slot-name examples (diffuseMap, base_color_map, bumpMap) that go beyond the schema's generic 'slot name' definition, helping an agent choose valid values. Other parameter details, such as mapClass default and path applicability, are mostly restated from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action: attach a map to a named slot of a material, with concrete examples like "diffuseMap" and "bumpMap". It also explains that it creates a map of the specified mapClass and points it at a path, making the tool's function unambiguous and distinguishable from generic property setters like mat_set_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by defining its purpose and slot examples, but it does not explicitly contrast it with sibling tools such as mat_set_slot, mat_set_property, or map_create_bitmap. It also omits prerequisites like the material needing to exist or whether path is required for Bitmaptexture.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_opacityADestructive
设置材质不透明度。注意 StandardMaterial 的 opacity 范围是 0..100,PhysicalMaterial 多为 0..1,传值时按目标材质约定给。 [English] Set material opacity. Note StandardMaterial's opacity is 0..100 while PhysicalMaterial is usually 0..1 - pass the value in the target material's range.
| Name | Required | Description | Default |
|---|---|---|---|
| opacity | Yes | 不透明度:StandardMaterial 用 0..100,PhysicalMaterial 用 0..1。 | Opacity: 0..100 for StandardMaterial, 0..1 for PhysicalMaterial. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the operation as mutating (readOnlyHint=false, destructiveHint=true). The description adds useful non-obvious behavioral context: opacity is interpreted on different scales depending on the material type, and callers must follow the target material's convention. This is exactly the kind of caveat an agent needs before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, front-loads the purpose, and then gives the critical range caveat. The bilingual duplication slightly increases length but is reasonable for this audience; no extraneous detail is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter setter with full schema documentation and no output schema, the description covers the essential caveat (material-dependent opacity scale) and all required inputs. Missing details such as error behavior when the material does not exist are minor and not critical for a straightforward setter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters are documented in the schema. The description repeats the same range information rather than adding new parameter semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific operation and resource: 'Set material opacity' / '设置材质不透明度'. The purpose is unambiguous among the material sibling tools, though it does not explicitly differentiate itself from generic alternatives like mat_set_property or set_property_value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this tool over the generic material setters present in the sibling list (e.g., mat_set_property, set_property_value). The only condition mentioned is about the value scale (0..100 vs 0..1) for different material types, which is parameter handling rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_pbrADestructive
一次性设置 PBR 参数:基础色 + 金属度 + 粗糙度 + IOR(反射折射率)。只对 PhysicalMaterial 等 PBR 材质有效;StandardMaterial 没有这些属性会被忽略。 [English] Set PBR parameters in one call: base colour + metallic + roughness + IOR. Only meaningful on PhysicalMaterial and similar PBR materials; StandardMaterial lacks these and is skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| ior | No | 反射折射率,通常 1.0..2.5。 | Reflection/refraction IOR, usually 1.0..2.5. | |
| material | Yes | 材质名称。 | Material name. | |
| metallic | No | 金属度 0..1。 | Metallic 0..1. | |
| baseColor | No | 基础色 [0-255],也可传 "#RRGGBB"。 | Base colour [0-255], or a "#RRGGBB" string. | |
| roughness | No | 粗糙度 0..1。 | Roughness 0..1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the mutation behavior ('set') and the important non-PBR skip behavior, which aligns with annotations readOnlyHint=false and destructiveHint=true. However, it does not state whether omitted parameters are left unchanged or reset, nor what happens if the named material does not exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and free of filler. The bilingual repetition is reasonable and each sentence contributes either purpose or applicability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive setter with no output schema, the description provides the key compatibility caveat but omits operational details such as how omitted parameters are handled and what happens for a missing material. The schema and annotations cover many basics, but these behavioral gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters with types and ranges. The tool description merely repeats the parameter list in prose and adds little semantic value beyond the schema. It also does not resolve the baseColor ambiguity between the array type and the '#RRGGBB' string mentioned in the schema property description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation ('一次性设置 PBR 参数') and enumerates the four fields it modifies: base colour, metallic, roughness, and IOR. It also scopes the tool to PhysicalMaterial/PBR materials, which distinguishes it from the many single-property material setters in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says the tool is only meaningful on PhysicalMaterial and similar PBR materials, and that StandardMaterial will be skipped because it lacks these properties. This gives a clear condition for when to use it, though it does not name an alternative tool for non-PBR materials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_propertyADestructive
设置材质的任意命名属性,值会按目标属性的类型自动转换(颜色/数字/布尔/字符串)。当你要改的属性没有专用工具时用它。先用 get_class_properties 查准属性名。 [English] Set any named property of a material; the value is coerced to the target property's type (color/number/boolean/string). Use it for parameters without a dedicated tool. Check the exact property name with get_class_properties first.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | 新值:颜色用 [r,g,b],数字直接给,布尔给 true/false。 | New value: colour as [r,g,b], numbers directly, booleans true/false. | |
| material | Yes | 材质名称。 | Material name. | |
| property | Yes | 属性名,例如 metallic、roughness、opacity。 | Property name, e.g. metallic, roughness, opacity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds useful behavioral context: values are coerced to the target property's type, and the tool sets arbitrary named properties. It does not expand on side effects, but the annotations cover the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The main cost is exact bilingual repetition, which doubles length without adding new information for an agent, but it remains appropriately sized overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic setter with 3 parameters and no output schema, the description is complete: it explains what it does, when to use it, that values are converted, and how to avoid invalid property names. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents material, property, and value formats. The description adds meaning beyond the schema by explaining automatic type coercion and emphasizing the need for exact property names, which is important for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('set any named property of a material'), the resource (material), and the type-coercion behavior. It also explicitly frames itself as the fallback for properties without a dedicated tool, distinguishing it from sibling mat_set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says to use this tool when the property has no dedicated tool, and instructs the agent to check the exact property name with get_class_properties first. This gives direct decision-making guidance relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_slotADestructive
把一个材质放进材质编辑器的指定槽位(1..24)。常用于把新建材质显示到编辑器里。 [English] Put a material into a Material Editor slot (1..24). Handy to surface a freshly created material in the editor.
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | 槽位编号 1..24。 | Slot index 1..24. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating/destructive operation. The description adds the editor-slot context but does not explicitly warn that an existing material in the slot will be overwritten. This is acceptable but does not go beyond what the destructive annotation already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and provides a concrete motivation in two short sentences. The bilingual duplication is purposeful and does not add clutter. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with clear annotations, the description is complete enough: it names the action, the slot range, and the typical scenario. No output schema is needed for such a straightforward mutation, and the destructive nature is already covered by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both slot and material parameters already documented. The description adds no parameter-specific detail beyond the schema, so it receives the baseline score appropriate when structured definitions carry the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Put a material into a Material Editor slot (1..24)'. It also clarifies the unique purpose among many material tools by mentioning it is handy for surfacing a freshly created material in the editor, clearly distinguishing it from tools like mat_assign or mat_set_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to place a material into a specific editor slot, especially after creating a new material. It does not explicitly name alternatives such as mat_assign for object-level assignment, so it lacks explicit exclusion guidance, but the intended use case is stated directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_specularBDestructive
设置材质的高光颜色(StandardMaterial 的 specular,或无此属性时 reflection_color)。 [English] Set the specular colour (StandardMaterial's specular, or reflection_color when it has no specular).
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | 高光颜色 [0-255],也可传 "#RRGGBB"。 | Specular colour [0-255], or a "#RRGGBB" string. | |
| material | Yes | 材质名称。 | Material name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive (write operation). The description adds the fallback from specular to reflection_color for materials without specular, which is useful and non-obvious. However, it does not disclose any other side effects, such as overwriting existing values or material-type limitations beyond the fallback.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core behavior. The bilingual repetition (Chinese + English) is slightly redundant but the essential information is present in two sentences. No unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter with no output schema, the description covers the key behavior and the fallback. It does not mention error handling or what happens if the material does not exist, but those are likely implied. Slightly more context about expected side effects would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already offers 100% coverage: color is documented as [0-255] array or '#RRGGBB' string, material as name. The description adds no additional parameter-level meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set the specular colour' of a material, and distinguishes this from other material setters by naming the exact property and the fallback for materials without specular. The bilingual text reinforces the same meaning without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like mat_set_property or mat_set_diffuse. The description only states the behavior, not the conditions or exclusions. A generic setter could also be used for specular, but no comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_set_sub_materialADestructive
给 Multi/Sub-Object 材质的某个子槽(index,从 1 开始)设置子材质。可新建一个 subClass 材质,或复用已存在的 sourceMaterial。 [English] Set a sub-material (index, 1-based) of a Multi/Sub-Object material. Creates a new subClass material or reuses an existing sourceMaterial.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 子槽编号,从 1 开始。 | Sub-slot index, 1-based. | |
| material | Yes | Multi/Sub-Object 材质名称。 | Multi/Sub-Object material name. | |
| subClass | No | 要新建的子材质类名,例如 Standardmaterial。 | Class name of a new sub-material, e.g. Standardmaterial. | |
| sourceMaterial | No | 改为复用已存在的材质名称。 | Reuse an existing material by name instead. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutating/destructive behavior, and the description adds that the tool either creates a new material class or reuses an existing material by name. However, it does not disclose whether an existing sub-material is overwritten, whether reuse is by reference or copy, or what happens if both subClass and sourceMaterial are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core operation and index meaning stated first. The bilingual repetition is justified for accessibility and adds no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutating tool with no output schema, the description covers the essential invocation details: target material, slot index, and both allowed creation/reuse modes. The main gap is the ambiguous relationship between subClass and sourceMaterial when both are supplied, but this does not prevent a capable agent from making a correct first call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all four parameters, so the baseline is 3. The description adds meaningful relationship semantics: subClass and sourceMaterial are presented as alternative actions, and the index is explicitly stated as 1-based. It stops short of specifying which parameter takes precedence or that exactly one mode should be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: setting a sub-material into a numbered slot of a Multi/Sub-Object material. It also names the two supported modes (create new subClass or reuse sourceMaterial), which clearly differentiates it from sibling tools like mat_set_slot or mat_set_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies this is for modifying Multi/Sub-Object materials by sub-slot index, but it does not explicitly say when not to use it or name alternatives. It also leaves the choice between subClass and sourceMaterial as an unqualified 'or' without guidance on which to pick in which scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mat_slotsARead-only
读取材质编辑器(Material Editor)的 24 个槽位,返回每个已占用槽的类名与名称。这是把材质放进编辑器、或在 mat_set_slot 之前查看空槽的入口。 [English] Read the 24 Material Editor slots, returning the class and name of each occupied slot. Use it to place a material into the editor or to find an empty slot before mat_set_slot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that only occupied slots are returned and the data type (class and name), but does not disclose edge cases like empty slot behavior or return structure. This modest addition fits a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key action and output. The bilingual Chinese/English repetition is slightly redundant, but each version serves a different audience, so it remains compact and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with zero parameters and no output schema, the description explains what it returns (class and name of occupied slots) and why to call it. It could be more explicit about the exact return format (e.g., array of objects), but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so parameter semantics are trivially satisfied. The baseline of 4 applies because there are no parameters to document and no risk of ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('Read'), the resource ('the 24 Material Editor slots'), and the exact output ('the class and name of each occupied slot'). It also differentiates itself from sibling mat_set_slot by explicitly stating it is the entry point before setting a slot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context: use it to place a material into the editor or to find an empty slot before mat_set_slot. However, it does not mention when not to use it or compare with alternative listing tools like mat_list, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirror_objectADestructive
沿 X/Y/Z 平面镜像对象(翻转对应轴缩放并重新定位)。cloneType 可同时生成副本(copy/instance)。镜像会翻转法线,导出前考虑翻转或加壳。 [English] Mirror objects across the X/Y/Z plane (flips that axis scale and repositions). cloneType can also spawn copies. Mirroring flips normals; consider flipping or adding a shell before export.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 镜像轴。 | Mirror axis. | x |
| offset | No | 镜像平面所在坐标(该轴方向)。 | Coordinate of the mirror plane (along that axis). | |
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| cloneType | No | none=原地镜像,copy/instance=同时生成副本。 | none=in place, copy/instance=also spawn a copy. | none |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description adds important behavioral context beyond that: mirroring flips normals, with an export-time caution. It also clarifies that cloneType can spawn copies, which is useful for predicting side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core action, followed by cloneType and the normals warning. The bilingual duplication doubles length, but both versions are compact and structurally clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents all parameters, annotations cover the destructive nature, and the description adds the critical normals side effect. Without an output schema, a brief return-value note would be ideal, but the definition is still sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description mostly restates cloneType and axis behavior without adding meaning materially beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: mirror objects across the X/Y/Z plane, with an explicit effect (flips that axis scale and repositions). It clearly separates this from sibling tools like transform_object or mod_symmetry by describing the plane-mirror mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: use this when you need to mirror objects across a plane. However, the description does not explicitly contrast this with alternatives such as mod_symmetry or transform_object, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_addADestructive
给对象添加一个修改器。修改器名用 3ds Max 类名,例如 Bend、TurboSmooth、Shell。新增的顶层参数(非 objects/name/params)会作为该修改器的属性被设置。mod_add 追加到堆栈顶部;要用 mod_reorder 把它移到已有修改器下方。 [English] Add a modifier to an object. Use the 3ds Max class name, e.g. Bend, TurboSmooth, Shell. Any extra top-level parameter (other than objects/name/params) is applied to the new modifier as a property. mod_add appends to the top of the stack; use mod_reorder to move it below existing modifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 给修改器起的名字。 | Name to give the modifier. | |
| params | No | 可选的属性名->值对象,批量设置修改器参数。 | Optional name->value object to set modifier parameters in bulk. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器类名。 | Modifier class name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is mutating and destructive, so the description only needs to add context beyond that. It does so by disclosing stack-append behavior and the extra-top-level-parameter property mechanism. This is useful behavioral detail that the annotations cannot express, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with three sentences per language covering the core action, naming convention, dynamic properties, and stack position. Every sentence carries information, and the bilingual duplication is purposeful for the target audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For the basic case the description plus schema are sufficient to know what object, modifier name, and optional parameters to provide. However, the contradiction between the described extra-parameter mechanism and the schema's `additionalProperties: false` leaves an agent unsure whether property-setting calls are valid, so the definition is not fully reliable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all four parameters, so the baseline is 3, but the description creates a serious conflict by telling callers to pass extra top-level parameters as modifier properties while the schema declares `additionalProperties: false`. Additionally, the schema's `params` field is typed as an array of strings but described as a 'name->value object', and the description does not resolve that inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action and target: 'Add a modifier to an object' and immediately specifies the naming convention with examples (Bend, TurboSmooth, Shell). It also distinguishes the tool from sibling modifier-management tools by stating that mod_add appends to the top of the stack and pointing to mod_reorder for repositioning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational guidance: use the 3ds Max class name, pass extra top-level parameters as modifier properties, and use mod_reorder when the modifier must go below existing ones. It does not explicitly contrast mod_add with dedicated shortcuts like mod_bend or mod_shell, so it misses some when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_bendADestructive
弯曲修改器:沿 axis 轴把物体弯 angle 度,direction 控制弯曲平面方向。 [English] Bend modifier: bend the object by angle degrees around axis; direction sets the bend plane.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 弯曲轴 0=X/1=Y/2=Z,默认 0。 | Bend axis 0=X/1=Y/2=Z, default 0. | |
| name | No | 修改器名。 | Modifier name. | |
| angle | No | 弯曲角度(度)。 | Bend angle in degrees. | |
| limit | No | 启用上下限,默认否。 | Enable upper/lower limits, default false. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| direction | No | 弯曲方向(度)。 | Bend direction in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds the core geometric behavior but does not disclose what exactly becomes destructive, whether the modifier can be removed later, or side effects on the object stack. It aligns with annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded with the core operation, with every sentence carrying useful information. The bilingual formatting is compact and does not introduce redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter destructive modifier tool, the description covers the primary geometric behavior but omits guidance on when to use it, how it interacts with object selection, and what the modifier application implies. The schema compensates for parameter details, but usage context remains thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by clarifying the relationship between parameters: bending happens along the axis by angle, and direction specifically sets the bend plane. This is not fully captured by the individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: a bend modifier that bends an object by a given angle around an axis, with direction controlling the bend plane. This distinguishes it from sibling modifier tools like mod_twist or mod_taper by naming the specific geometric behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not say when to use this tool instead of other modifier tools, nor does it mention any alternatives or excluded cases. The intended use is only implied by the function name and basic description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_disableADestructive
禁用(保留但不生效)指定修改器。 [English] Disable (keep but make ineffective) the named modifier.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: destructiveHint is true, but the description explicitly says 'keep but make ineffective', which implies a reversible, non-destructive operation. This is a serious inconsistency that could mislead an agent about whether the modifier is destroyed or merely toggled off.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short parallel sentences in Chinese and English, with the action front-loaded and no filler. The parenthetical 'keep but make ineffective' adds essential semantic nuance without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema and no output schema, the description is mostly sufficient in scope. However, the contradiction with destructiveHint leaves the operation's real-world effect ambiguous, which prevents a higher score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both modifier and objects parameters. The description adds only the word 'named' to qualify the modifier, which does not meaningfully improve on the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Disable'), a specific resource ('modifier'), and a clarifying qualifier ('keep but make ineffective') that distinguishes it from mod_remove and mod_enable. An agent can infer exactly what the tool does without inspecting sibling definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'keep but make ineffective' gives clear context that this tool is for temporary deactivation rather than removal. It does not explicitly name mod_remove or mod_enable as alternatives or state when not to use them, but the semantic contrast is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_displaceADestructive
置换修改器:按强度 strength 沿法线推开顶点(需配合贴图/灰度图才有丰富形状;纯强度为均匀外扩)。 [English] Displace modifier: push vertices along normals by strength (needs a map/grayscale to get rich shapes; pure strength just inflates uniformly).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| decay | No | 衰减(距离内强度衰减)。 | Decay (strength falls off with distance). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| strength | No | 置换强度。 | Displace strength. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as non-read-only and destructive. The description adds useful context: vertices are displaced along normals, and pure strength causes uniform inflation without a map. This goes beyond the annotations, though it does not explain modifier stack behavior or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact and front-loaded with the core action, followed by a practical caveat. The bilingual duplication is not excessive and the text contains no filler or repeated schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover object targeting and destructiveness, and the description explains the geometric effect. However, the description's mention of needing a map/grayscale is problematic because no map parameter exists in the schema, leaving an agent uncertain how to achieve the described rich shapes. The definition is adequate but has a clear practical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters, so the baseline is 3. The description adds some meaning for 'strength' by linking it to displacement amount and uniform inflation, but it does not clarify how the referenced map/grayscale is supplied given the schema has no map parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a Displace modifier that pushes vertices along normals by strength. It is specific enough to identify the resource and behavior, but it does not explicitly differentiate itself from sibling modifier tools such as mod_bend or mod_noise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. The note about needing a map/grayscale for rich shapes is a capability limitation, not a selection criterion, and no sibling tools are mentioned as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_editnormalsBDestructive
编辑法线修改器:显式控制每个顶点的法线(可拆开/指定),常用于法线修复与硬边定制。 [English] Edit Normals modifier: explicit per-vertex normal control (break/assign), used for normal fixing and custom hard edges.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, and the description does not contradict them. It adds some context with 'break/assign' and 'explicit per-vertex normal control,' but it does not explain object-level effects, reversibility, or what exactly gets changed beyond the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the purpose stated in the first clause and no filler. The English translation repeats the Chinese content rather than adding new information, but the overall length is still appropriate and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two optional parameters and no output schema, the description is serviceable: it names the modifier and its intended use. However, it does not clearly state whether the tool adds/applies the modifier to objects, how it interacts with selection when objects are omitted, or how it differs from other normal-related tools, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes both parameters (name and objects) in bilingual text, so schema coverage is 100%. The description adds no parameter-level detail or usage nuance beyond what the schema provides, keeping this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool controls per-vertex normals via an Edit Normals modifier, with specific actions (break/assign) and use cases (normal fixing, custom hard edges). It distinguishes itself semantically from related modifiers like mod_weightednormals, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context by saying it is used for normal fixing and custom hard edges, but it does not name alternatives or state when not to use this tool. Usage guidance is implied rather than explicit, leaving the agent to infer the choice among normal-related modifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_editpolyADestructive
编辑多边形修改器:把多边形编辑能力作为非破坏性修改器加入堆栈(之后可用 poly_* 思路配合子对象选择操作)。 [English] Edit Poly modifier: add non-destructive polygon editing to the stack (afterwards drive it with sub-object selections like the poly_* tools).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly calls the worklow 'non-destructive,' while the annotations declare destructiveHint=true, which is a direct contradiction. It also does not clarify that adding the modifier mutates the stack or what side effects occur, so an agent cannot rely on the description for safe behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, bilingual, and contains no filler. The core action appears first and the parenthetical workflow hint earns its place by connecting the tool to the poly_* tool family.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool, the main workflow is covered and the schema fills in parameter details. However, the destructiveHint/non-destructive contradiction leaves a material ambiguity, and there is no explicit statement about stack placement or default modifier naming behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both name and objects already have clear parameter descriptions. The description adds workflow context but no parameter-specific semantics, so it hits the baseline without going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action—adding an Edit Poly modifier to the modifier stack—and characterizes it as non-destructive polygon editing. It also distinguishes the tool from the poly_* direct-editing tools and from a destructive editable-poly conversion, so an agent can tell what resource it acts on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the intended use: add a non-destructive Edit Poly modifier to the stack, then drive it later with sub-object selections via poly_* tools. It gives clear usage context but does not explicitly state when not to use it or name an alternative like convert_to_editable_poly, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_extrude_splineADestructive
把样条线(图形)沿轴挤出成三维实体(添加 Extrude 修改器)。amount 为高度。 [English] Extrude a spline (shape) into a 3D solid along an axis by adding an Extrude modifier. amount is the height.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | 挤出高度。 | Extrusion height. | |
| capEnd | No | 封口结束端,默认是。 | Cap the end, default true. | |
| objects | No | 样条线对象名列表;省略则使用当前选择。 | Spline (shape) names; omit for selection. | |
| capStart | No | 封口起始端,默认是。 | Cap the start, default true. | |
| segments | No | 分段数,默认 1。 | Segment count, default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only and destructive, so the mutation behavior is known. The description adds useful context that it adds an Extrude modifier and extrudes along an axis, but it does not disclose whether the original spline is preserved or destroyed, or what happens when objects is omitted versus explicitly provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and uses a bilingual format consistent with the schema. The redundant restatement that 'amount is the height' is minor and does not significantly bloat the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter modeling tool, the description plus fully annotated schema covers the essential behavior: extruding a spline into a solid via an Extrude modifier. It lacks a note about the objects parameter being optional for selection, but the schema already documents that, and annotations convey the destructive nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with bilingual descriptions for all five parameters, so the description need not repeat them. The only parameter-related addition is 'amount 为高度', which merely duplicates the schema's own 'Extrusion height' description, adding no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'extrude' and the resource 'spline (shape)' with the outcome 'into a 3D solid', and specifies the mechanism 'adding an Extrude modifier'. This distinguishes it from similar sibling tools like model_lathe_spline, model_loft, and model_sweep through a different verb and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the phrase 'Extrude a spline (shape)', which indicates this tool is intended for spline objects rather than mesh or general objects. However, there is no explicit guidance on when to choose this over the similar mod_extrude tool, no exclusions, and no mention of prerequisites like an active selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_lathe_splineCDestructive
把样条线绕轴旋转成回转体(添加 Lathe 修改器)。截面应是 2D 轮廓线。 [English] Revolve a spline around an axis into a solid of revolution by adding a Lathe modifier. The profile should be a 2D outline.
| Name | Required | Description | Default |
|---|---|---|---|
| smooth | No | 平滑着色,默认是。 | Smooth shading, default true. | |
| degrees | No | 旋转角度(度),默认 360。 | Revolve angle in degrees, default 360. | |
| objects | No | 样条线对象名列表;省略则使用当前选择。 | Spline (shape) names; omit for selection. | |
| segments | No | 旋转分段,默认 16。 | Revolve segments, default 16. | |
| weldCore | No | 焊接轴心,默认是。 | Weld the core, default true. | |
| flipNormals | No | 翻转法线,默认否。 | Flip normals, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description doesn't need to repeat that. But it adds little behavioral context: it mentions 'adding a Lathe modifier' but doesn't explain that the original spline is modified, whether the operation is reversible, or what happens to the source. Since the annotation covers destructiveness, a score of 2 reflects the lack of added behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, with the core action front-loaded. It is written in both Chinese and English, which is useful for international users, but not overly verbose. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that creates a solid of revolution from a spline, the description lacks essential context such as how the axis is determined, whether the original spline is kept or replaced, and what the resulting object looks like. There is no output schema, so the description should explain return values or side effects, but it doesn't. The tool has 6 parameters and no output schema, so this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (smooth, degrees, objects, segments, weldCore, flipNormals) already have descriptive text. The description adds no extra parameter semantics beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('revolve a spline around an axis into a solid of revolution') and the resource (spline) with a specific result. It also notes the profile should be a 2D outline. However, it does not explicitly differentiate from sibling tools like mod_lathe, which also adds a Lathe modifier, so it's not fully distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as mod_lathe or model_extrude_spline. The only hint is that the profile should be 2D, which is a prerequisite rather than usage context. No when-to-use or when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_loftBDestructive
放样(Loft 复合对象):用一条 path 样条作路径,一个或多个 shapes 作截面,扫出复杂曲面。path 与 shapes 都必须是已存在的图形对象名。
[English]
Loft compound object: use a path spline as the path and one or more shapes as cross-sections to sweep a complex surface. Both path and shapes must be existing shape names.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 新建放样对象名。 | Name of the new loft object. | |
| path | Yes | 路径样条线对象名。 | Path spline object name. | |
| shapes | Yes | 截面样条线对象名列表(至少一个)。 | Cross-section shape names (at least one). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark destructiveHint=true, so the description should disclose what is created, modified, or destroyed. It only says shapes are swept into a complex surface; it does not explain whether source shapes are altered, whether a new object is created, or what side effects occur. No contradiction with annotations, but behavioral disclosure is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core mechanism and the existing-object prerequisite are stated immediately. The bilingual duplication is justified by the target audience and adds no real clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It explains the core operation and prerequisite, but for a complex modeling tool with no output schema and a destructiveHint=true flag, it omits important context such as how shapes are ordered along the path and what the resulting object state is. This is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description adds the conceptual roles of path and shapes, but does not clarify shape ordering along the path or add meaning to the optional name parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: create a Loft compound object by sweeping one or more shapes along a path spline. It distinguishes loft conceptually from other modeling operations, though it does not explicitly call out similar siblings like model_sweep or model_extrude_spline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a meaningful prerequisite: path and shapes must already exist as shape objects. However, it gives no guidance on when to choose loft over similar modeling tools, nor any exclusions or conditions that would make loft inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_sweepADestructive
扫掠:沿路径样条扫一个截面(section)成形,添加 Sweep 修改器。省略 section 时使用默认矩形截面。section 必须是已存在的图形对象名。
[English]
Sweep: sweep a section profile along a path spline by adding a Sweep modifier. With no section a default rectangular profile is used. section must be an existing shape name.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 路径样条线对象名列表;省略则使用当前选择。 | Path spline names; omit for selection. | |
| section | No | 截面样条线对象名(可选)。 | Section shape name (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutating nature is known. The description adds the default rectangular profile behavior and the requirement that section must be an existing shape name, but does not explain side effects like modifications to the original spline or failure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the action, and covers key points in two sentences. The bilingual format adds some redundancy but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutating operation with no output schema, the description covers the essential behavior: the action, default behavior, and a critical constraint. It does not detail error handling or prerequisites beyond the spline path implication, but these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by specifying the default profile when section is omitted and emphasizing that section must be an existing shape name, which is useful for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: sweeping a section profile along a path spline by adding a Sweep modifier. It uses a specific verb and resource, and implicitly differentiates from sibling modeling tools like extrude, lathe, and loft by describing a unique mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (when a sweep along a path is needed) but does not explicitly name alternatives or exclusions. It implies usage rather than giving direct when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_enableBDestructive
启用(显示效果)指定修改器。 [English] Enable (make effective) the named modifier.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, but the description adds no behavioral context about consequences, reversibility, or how enabling affects the modifier stack. It essentially restates the operation without illuminating its side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and front-loaded: it states the action and target in one short sentence. The bilingual repetition is minor and does not hurt usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and annotations, the description is minimally sufficient. However, it lacks any mention of how this relates to modifier enablement lifecycle or sibling tools, and it does not explain expected state changes beyond 'make effective'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description does not add extra meaning about modifier resolution or object selection behavior, which is acceptable since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (Enable) and the resource (the named modifier), and adds the clarifying gloss 'make effective'. It does not explicitly differentiate from mod_disable or mod_remove, but the verb and resource are specific enough for basic identification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus mod_disable, mod_remove, or mod_add. It also does not mention prerequisites such as the object having a modifier stack or the effect of omitting 'objects' beyond what the schema already states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_extrudeBDestructive
挤出修改器:把剖面/面沿轴挤出成实体。amount 为高度,segments 为分段,capStart/capEnd 控制两端封口。 [English] Extrude modifier: push a profile/face into a solid along an axis. amount is the height, segments the divisions, capStart/capEnd toggle end caps.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| amount | No | 挤出高度。 | Extrusion height. | |
| capEnd | No | 封口结束端,默认是。 | Cap the end, default true. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| outline | No | 轮廓外扩/内收。 | Outline expand/inset. | |
| capStart | No | 封口起始端,默认是。 | Cap the start, default true. | |
| segments | No | 分段数,默认 1。 | Segment count, default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is covered. The description adds that this is a modifier-based operation on a profile/face, but does not disclose side effects such as modifying the modifier stack or how existing geometry is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and contains no filler. The bilingual structure is somewhat redundant but still compact and appropriate for the tool's audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents parameters and annotations cover the destructive nature, so the main gaps are usage guidance and behavioral side effects. The description is adequate for a basic call, but it does not explain the difference from similar extrude tools or the full modifier-stack impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well documented there. The description repeats amount, segments, capStart, and capEnd but adds no new semantic meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific operation: 'Extrude modifier: push a profile/face into a solid along an axis'. The word 'modifier' distinguishes it from sibling tools like poly_extrude_faces and model_extrude_spline, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus similar siblings such as poly_extrude_faces or model_extrude_spline. There is no mention of prerequisites, selection behavior, or when not to use the modifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_ffd_2x2x2BDestructive
自由变形修改器 2x2x2:用 8 个控制点变形对象。移动控制点(mod_set_sub_object_selection)即可塑形。 [English] Free-form deform 2x2x2: deform the object with 8 control points. Move them via mod_set_sub_object_selection to sculpt.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| autoExtent | No | 自动适配对象范围,默认是。 | Auto-fit to object extent, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=true, and the description's 'deform the object' is consistent with that. It adds useful context about the 8 control points and the companion tool for moving them, but it does not disclose exactly how the modifier stack is affected or whether the change is reversible beyond what the annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core purpose stated first and the manipulation workflow second. The bilingual duplication is justified, but it prevents a top score since part of the content is repeated in two languages.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple modifier tool, the description combined with a fully documented schema and safety annotations provides enough information for an agent to invoke it correctly. It does not cover variant-selection guidance, but that is already captured under usage guidelines, and no output schema is needed here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% bilingual coverage for all three parameters, including defaults and object-selection behavior, so the description does not need to add much. The description's mention of control points is about the modifier itself, not about parameter semantics, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'deform the object with 8 control points' and identifies the tool as a free-form deformation 2x2x2 modifier, so the core operation is clear. It distinguishes from sibling FFD variants through the lattice density, but it does not explicitly contrast itself with mod_ffd_3x3x3 or mod_ffd_4x4x4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description points to a companion workflow ('Move them via mod_set_sub_object_selection to sculpt') but gives no real guidance on when to use this modifier versus alternatives. There are no conditions, prerequisites, or explicit exclusions that would help an agent choose between 2x2x2, 3x3x3, and 4x4x4 FFD modifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_ffd_3x3x3ADestructive
自由变形修改器 3x3x3:27 个控制点,比 2x2x2 更细腻。 [English] Free-form deform 3x3x3: 27 control points, finer than 2x2x2.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| autoExtent | No | 自动适配对象范围,默认是。 | Auto-fit to object extent, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds the 27-control-point detail but does not explain side effects such as stack changes, object requirements, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and front-loads the essential 3x3x3/27-point information. Every clause contributes detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with fully described optional parameters and a known destructive annotation, the description is mostly sufficient. A short mention that this applies the modifier to the given/selected objects would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for name, objects, and autoExtent, so the schema carries the parameter-documentation burden. The description adds no parameter-level meaning beyond the modifier's resolution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 3x3x3 free-form deformation modifier with 27 control points and explicitly differentiates it from the coarser 2x2x2 variant. It lacks an explicit action verb such as 'adds/applies', but the modifier nature and resolution are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'finer than 2x2x2' gives an implied recommendation for finer deformation, but there is no explicit statement of when to choose this tool over mod_ffd_4x4x4 or other modifiers. Neither conditions nor exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_ffd_4x4x4BDestructive
自由变形修改器 4x4x4:64 个控制点,最细腻的 FFD。 [English] Free-form deform 4x4x4: 64 control points, the finest FFD.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| autoExtent | No | 自动适配对象范围,默认是。 | Auto-fit to object extent, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=true, and the description does not contradict them. However, the description adds no behavioral context whatsoever: it does not say that the modifier is added to objects, that the object stack is modified, or how selection is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short: two sentences in Chinese and English conveying the same information. It is front-loaded and contains no filler; the bilingual repetition is intentional for localization and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple modifier tool with fully documented parameters and no output schema, the description is minimally sufficient. Still, it omits usage guidance and explicit behavioral outcomes, and an agent would need to infer the actual effect from the tool name and modifier context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (name, objects, autoExtent) documented in the schema. The tool description adds no parameter-specific meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies an FFD 4x4x4 deformation modifier with 64 control points and marks it as the finest FFD, distinguishing it from the 2x2x2/3x3x3 sibling tools. However, it lacks an explicit action verb such as 'add' or 'apply', so the agent must infer the operation from the 'mod_' prefix and the noun phrase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement about when to use this tool versus alternatives. 'The finest FFD' implies a high-detail use case, but no direct comparison or selection criteria are given for mod_ffd_2x2x2 or mod_ffd_3x3x3, and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_get_gizmo_infoARead-only
返回修改器的 Gizmo(变换控制器)位置/旋转/缩放;没有 Gizmo 的修改器返回 hasGizmo=false。 [English] Return a modifier's Gizmo (transform gizmo) position/rotation/scale; modifiers without a gizmo return hasGizmo=false.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with them. It adds value by disclosing a specific behavioral edge case — modifiers without a Gizmo return hasGizmo=false — which prevents the agent from assuming every modifier exposes a Gizmo.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the core operation and adding the edge case second. The only minor inefficiency is bilingual duplication of the same content in Chinese and English, which still keeps the overall length very short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with annotations covering safety and a 100%-covered schema, the description is largely complete: it states the returned data (position/rotation/scale) and the no-gizmo case. It does not specify the transform's coordinate space (world vs local) or behavior when the modifier is missing, but these are minor gaps at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already defines both parameters (objects = optional selection override; modifier = name/class/index). The description adds no parameter-level semantics beyond the schema, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a modifier's Gizmo position/rotation/scale, and clarifies the domain term ('transform gizmo'). It also discloses the hasGizmo=false edge case. Among the large mod_* sibling family, no other tool covers Gizmo transforms, so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The return-value statement implies when to call it (whenever Gizmo transform data is needed), but the description gives no explicit when-to-use guidance, exclusions, or pointers to alternatives such as mod_get_params for modifier parameters. An agent must infer usage from purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_get_paramsARead-only
列出某个修改器的全部可读写属性及当前值(按实例读取)。分页返回。 [English] List every readable/writable property of a modifier with its current value (read from the instance). Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,0 表示全部。 | Maximum entries, 0 for all. | |
| offset | No | 跳过的条数(分页)。 | Entries to skip (pagination). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive. The description adds that the read is per-instance ('按实例读取') and that results are paginated, which are useful behavioral details beyond the annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bilingual description is compact: two clauses state the purpose, instance scope, and pagination. No filler or repetition beyond the intentional English mirror.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with fully documented parameters and annotations, the description covers what is returned (all properties with current values), how it is scoped (instance), and pagination behavior. No output schema exists, but the return content is sufficiently described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains modifier, limit, offset, and objects. The description's only added parameter-related signal is pagination, which maps to limit/offset but adds no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and resource ('every readable/writable property of a modifier') and clarifies it reads current values from the instance. This distinguishes it from sibling tools like mod_set_params (write) and mod_list (list modifiers).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames when to use the tool: when you need all readable/writable properties and their current values for a specific modifier instance, with pagination. It does not explicitly name alternative tools or state when not to use it, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_latheADestructive
车削修改器:把剖面绕轴旋转成回转体(瓶、柱、碗)。degrees 默认 360 成闭环。 [English] Lathe modifier: revolve a profile around an axis into a solid of revolution (bottles, columns, bowls). degrees defaults to 360 for a closed object.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| smooth | No | 平滑着色,默认是。 | Smooth shading, default true. | |
| degrees | No | 旋转角度(度),默认 360。 | Revolve angle in degrees, default 360. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| segments | No | 旋转分段,默认 16。 | Revolve segments, default 16. | |
| weldCore | No | 焊接轴心,默认是。 | Weld the core, default true. | |
| flipNormals | No | 翻转法线,默认否。 | Flip normals, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the destructive nature is covered. The description adds the geometric outcome and the degrees default, but it does not explicitly state that the modifier is applied to named objects or the selection, or how it affects the object stack. 'Lathe modifier' is only implicit behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the core purpose, and uses concrete examples efficiently. The bilingual duplication is justified given the audience and does not add real bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the fully documented schema and annotations, the description provides enough to understand purpose, defaults, object targeting, and modifier nature. A small ambiguity remains because it does not clarify how mod_lathe differs from the similar model_lathe_spline sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema documents all 7 parameters with bilingual descriptions and defaults, giving 100% coverage. The description only repeats the degrees=360 default, adding no meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: a lathe modifier that revolves a profile around an axis into a solid of revolution, with concrete examples (bottles, columns, bowls). It does not explicitly distinguish this from the similar sibling model_lathe_spline, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The examples imply when to use it (revolved shapes like bottles and bowls), but the description gives no explicit guidance on when to choose this over alternatives such as model_lathe_spline, mod_sweep, or mod_extrude. Usage context is implied, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_listARead-only
列出对象修改器堆栈:索引、名称、类名、是否启用。分页返回。 [English] List an object's modifier stack: index, name, class and whether it is enabled. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,0 表示全部。 | Maximum entries, 0 for all. | |
| offset | No | 跳过的条数(分页)。 | Entries to skip (pagination). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral details—pagination and the exact fields returned—but does not disclose error behavior, ordering, or what happens when no object is selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The bilingual duplication is slightly redundant but not harmful; every substantive fact—scope, output fields, pagination—is present without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, this is adequately complete: it names the output fields and pagination, the schema covers all optional parameters, and annotations cover safety. A more detailed response structure or explicit note about the selection fallback would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, and objects are already fully documented in the input schema. The description adds no additional parameter-level meaning, which is acceptable given the high coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a clear resource ('an object's modifier stack') and enumerates the exact returned fields: index, name, class, and enabled state. This clearly distinguishes it from sibling tools that modify or remove modifiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is strongly implied: call this when you need to inspect the modifier stack. However, it does not explicitly state when not to use it or name alternatives such as mod_remove/mod_enable for mutations, and the fallback to current selection is only documented in the parameter schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_noiseBDestructive
噪声修改器:用分形噪声沿 x/y/z 扰动顶点。fractal 开启更有细节,roughness 控制分形粗糙度。 [English] Noise modifier: displace vertices along x/y/z with fractal noise. fractal adds detail; roughness controls fractal roughness.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| scale | No | 噪声频率(越小越细碎),默认 100。 | Noise frequency (smaller = finer), default 100. | |
| fractal | No | 使用分形噪声,默认否。 | Use fractal noise, default false. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| roughness | No | 分形粗糙度 0-1。 | Fractal roughness 0-1. | |
| xStrength | No | X 方向强度。 | X strength. | |
| yStrength | No | Y 方向强度。 | Y strength. | |
| zStrength | No | Z 方向强度。 | Z strength. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=false and destructiveHint=true, covering the mutation/destructive profile. The description adds useful detail about displacement behavior but does not explicitly disclose that this appears to add a noise modifier to the object's modifier stack, nor how it interacts with existing modifiers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, starting with the core action and then giving brief parameter hints. The bilingual duplication is understandable for i18n, and the Noise modifier phrase mildly restates the tool name but does not create significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all eight parameters, including the objects selection fallback, and annotations cover the destructive profile. However, the description misses the key side effect that a noise modifier is being added to objects, which is important for later management via sibling tools like mod_remove or mod_list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only light extra semantics such as fractal adds detail, while not explaining strength defaults, units, or the meaning of the name parameter beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the core action: displace vertices along x/y/z with fractal noise via a noise modifier. This gives a specific verb, resource, and mechanism. It does not explicitly contrast with sibling tools like mod_displace or mod_add, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for noise-based vertex displacement and explains that fractal adds detail and roughness controls fractal roughness. However, it gives no explicit guidance about when to choose this tool over alternative modifier or displacement tools, and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_pathdeformADestructive
路径变形修改器:让对象沿一条路径(path)变形。percent 为路径位置百分比,twist/rotation 控制扭转与旋转。 [English] PathDeform modifier: deform an object along a path. percent is the position along the path (0-100), twist/rotation add twist and rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 变形轴 0=X/1=Y/2=Z,默认 2。 | Deform axis 0=X/1=Y/2=Z, default 2. | |
| name | No | 修改器名。 | Modifier name. | |
| twist | No | 扭转(度)。 | Twist in degrees. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| percent | No | 路径位置百分比 0-100。 | Position along path, percent 0-100. | |
| rotation | No | 旋转(度)。 | Rotation in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a mutating/destructive operation, so the description only needs to add context beyond that. It does explain that a PathDeform modifier is applied and that percent/twist/rotation affect the deformation, but it does not describe side effects on the modifier stack or failure behavior when no path is available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose before detailing parameters. The bilingual duplication is mild redundancy, but the overall length is compact and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits where the 'path' comes from—there is no path parameter in the input schema, so an agent cannot tell whether to select a path object, rely on current selection, or use some other mechanism. Since there is no output schema, the description also does not clarify what result or confirmation an agent should expect, leaving a central gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters. The description adds only a rephrasing of percent and twist/rotation; it does not provide additional meaning for axis, name, or objects beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('deform'), a specific resource ('an object'), and the mechanism ('along a path'), and it names the exact modifier ('PathDeform modifier'). This makes it clearly distinguishable from sibling modifier tools like mod_bend, mod_twist, and mod_sweep.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—deforming an object along a path—but it does not explicitly state when to choose this tool over alternatives or mention prerequisites/exclusions. There is no guidance about whether a path object must be selected or how it is supplied, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_relaxBDestructive
松弛修改器:迭代地把顶点拉向邻居平均位置,平滑网格、消除褶皱。 [English] Relax modifier: iteratively pull vertices toward their neighbours' average, smoothing the mesh and removing wrinkles.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| iterations | No | 迭代次数,默认 1。 | Iterations, default 1. | |
| relaxValue | No | 松弛强度 0-1,默认 0.5。 | Relax strength 0-1, default 0.5. | |
| keepBoundary | No | 保持边界点不动,默认是。 | Keep boundary points fixed, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds useful algorithmic detail (iterative neighbor averaging, smoothing, wrinkle removal). However, it does not disclose what is affected, whether the operation is reversible, or how it interacts with the modifier stack. The description does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, with the Chinese and English versions mirroring each other cleanly. The bilingual duplication adds some length but is appropriate for the tool's audience and does not introduce irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not explicitly state that the tool adds a Relax modifier to objects, nor does it explain how this differs from poly_relax or related modifier tools. With no output schema and only annotations providing a destructive hint, an agent lacks key operational context needed to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all five parameters. The description adds no parameter-specific meaning beyond what is already in the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Relax modifier) and its effect: it iteratively pulls vertices toward their neighbors' average, smoothing the mesh and removing wrinkles. However, it does not explicitly say it adds/applies the modifier to an object, and it does not distinguish itself from the sibling tool poly_relax, which performs a similar vertex-relaxation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like poly_relax, mod_smooth, or other smoothing modifiers. The smoothing/wrinkle-removal purpose is implied, but no conditions, exclusions, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_removeADestructive
从对象上删除一个修改器。modifier 可用修改器名、类名或堆栈索引(从 1 开始)。 [English] Remove a modifier from an object. modifier may be the modifier name, class name or stack index (1-based).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation destructiveHint=true already warns that this operation is destructive, and the description's action 'remove' aligns with that. The description adds value by specifying the accepted identifier types (name, class, stack index), which is crucial for correct invocation. However, it doesn't disclose additional behavioral aspects like whether the removal is permanent or if any confirmation is required, but given the annotation, the agent knows it's destructive. The description is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence in both Chinese and English. It front-loads the essential information (removal action, modifier identification) and includes no filler. Every word serves a purpose, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with a destructive annotation and full schema coverage, the description provides all necessary information: the action, the target, and the identifier formats. It also mentions the optional 'objects' parameter indirectly via the schema. There's no output schema, so no return value explanation is needed. The only minor gap is not explicitly stating the permanence of the removal, but the destructive hint covers that. Overall, it's complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, explaining both parameters: 'modifier' (name/class/index) and 'objects' (list or current selection). The description reiterates the modifier parameter's semantics, which is redundant but not harmful. Since the schema already documents the parameters thoroughly, the description adds minimal extra meaning, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: removing a modifier from an object. It explicitly identifies the resource (modifier) and the action (remove), and it lists the acceptable identifier forms (name, class, or index), which is essential for correct usage. It distinguishes itself from sibling tools like mod_disable (which disables rather than removes) and mod_add (which adds), so an agent can easily differentiate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool: when the goal is to permanently delete a modifier, as opposed to temporarily disabling it (sibling mod_disable). It doesn't explicitly state 'use mod_disable to temporarily disable' but the contrast is clear given the sibling context. There is no explicit statement of when NOT to use it, but the description's clarity about removal versus disabling is a strong implicit guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_renameADestructive
重命名对象上的一个修改器(便于在 mod_get_params 等命令里按名字引用)。 [English] Rename a modifier on an object so it can later be referenced by name in mod_get_params etc.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 新名字。 | New name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 要重命名的修改器名/类名/索引。 | Modifier to rename (name / class / index). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=false and destructiveHint=true, so the safety profile is covered structurally. The description adds the behavioral consequence that the new name becomes the handle for later mod_get_params references, but it does not disclose side effects such as breaking existing references to the old name. This is modest added value, consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence per language (Chinese and English), stating the action and purpose with zero fluff. The bilingual duplication is mildly redundant but each version earns its place for audience coverage, and the key action verb appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool, the description plus 100% schema coverage and annotations cover the call correctly. The main gap is the undisclosed impact on existing references to the old modifier name, which is relevant for a destructiveHint=true operation. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter documented bilingually: modifier accepts name/class/index, name is the new name, and objects can be omitted to use the current selection. The description contributes no parameter detail beyond this, so the baseline 3 for full schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Rename'), a specific resource ('a modifier on an object'), and the motivating purpose ('so it can later be referenced by name in mod_get_params'). It is easily distinguished from siblings rename_object and mat_rename because it names the modifier as the target rather than an object or material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool via its stated purpose (when you need to reference a modifier by name in commands like mod_get_params), which gives useful context. However, it provides no explicit when-not guidance, prerequisites, or named alternatives, leaving sibling differentiation to the naming convention alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_reorderADestructive
把修改器移动到堆栈的指定位置(index 从 1 开始,1 为最底部/离基础最近)。修改器顺序会显著改变最终效果。 [English] Move a modifier to a stack position (index 1-based, 1 is the bottom / closest to the base). Order strongly affects the final result.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 目标位置(从 1 开始)。 | Target position (1-based). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and not read-only. The description adds useful context that reordering changes the final result, which aligns with the destructive hint. It does not disclose additional side effects, undo behavior, or failure modes, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the operation and critical index convention. The bilingual format is efficient, and every sentence adds relevant information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only three parameters, full schema coverage, and no output schema, the description provides enough context to call the tool correctly. It explains the position convention and outcome significance, though it does not cover potential errors or confirm the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions, so the baseline is met. The description adds extra meaning by clarifying that index 1 is the bottom of the stack and closest to the base, which is not fully stated in the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'move' with the resource 'modifier' and the target 'stack position', making the operation unambiguous. It also explains the index convention. It does not explicitly name sibling tools, but the action is distinct from mod_add, mod_remove, and mod_disable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when modifier order matters by noting that 'order strongly affects the final result.' However, it does not explicitly state when to use this tool over alternatives such as mod_add or mod_remove, leaving the selection strategy mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_set_paramBDestructive
设置某个修改器的单个参数(param=value)。值按目标属性类型自动转换。 [English] Set a single parameter of a modifier (param=value). The value is coerced to the target property type.
| Name | Required | Description | Default |
|---|---|---|---|
| param | Yes | 要设置的属性名。 | Property name to set. | |
| value | Yes | 新值(字符串形式,类型自动转换)。 | New value as a string; type is coerced automatically. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, so the description's 'Set' is consistent but adds no additional behavioral context. It does not disclose side effects, reversibility, what happens on invalid modifier or parameter names, or return behavior. With annotations covering the destructive nature, the description adds minimal value beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. It is bilingual but concise, with no filler. The structure is clear and easy to parse, though it could be slightly more organized, but it earns high marks for brevity and clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool, the description covers the essential operation and object selection. However, there is no output schema, and the description does not mention return values, error behavior, or what happens if the modifier or parameter does not exist. Given the tool's simplicity, it is minimally adequate but lacks completeness for edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description repeats the type coercion note already present in the schema and adds no extra meaning about parameter formats, allowed values, or relationships between parameters. Baseline 3 is appropriate when schema handles the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a single parameter (param=value) of a modifier, with a specific verb ('Set') and resource ('single parameter of a modifier'). It distinguishes from siblings like mod_set_params (plural) and mod_get_params by explicitly saying 'single parameter', making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as mod_set_params for multiple parameters. The description only mentions that the object list can be omitted to use current selection, which is a usage detail but not about selection between tools. No exclusions or 'when not to use' are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_set_paramsBDestructive
批量设置某个修改器的多个参数,params 为属性名->值对象。 [English] Set several parameters of a modifier at once; params is a name->value object.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | 属性名->值对象。 | Name->value object. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the write/destructive nature is covered. The description adds the batch aspect but does not explain overwrite behavior, whether object lists are affected, or what happens on failure. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences, action-first and free of filler. Every clause contributes meaning, and the description remains compact despite bilingual duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and annotations cover its destructive nature, but the description leaves out how params should actually be encoded and does not mention the optional objects/current-selection behavior except via schema. It is adequate for an agent that reads the schema carefully, but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description's statement that 'params is a name->value object' conflicts with the schema's array-of-strings type and provides no formatting details. This ambiguity could lead an agent to call the tool incorrectly, and the description adds no useful parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('modifier'), and calls out that multiple parameters are handled at once. This distinguishes it from mod_set_param in scope, though it does not explicitly name or contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'several parameters of a modifier at once' implies batch usage, but the description gives no explicit when-to-use guidance or alternatives. With mod_set_param and mod_get_params as siblings, an agent would need additional inference to know when this tool is preferred over mod_set_param.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_set_sub_object_selectionADestructive
设置某个修改器的子对象层级(level)与选择(selection,顶点/边/面/控制点的索引)。常用于 FFD 控制点、Edit Poly 子对象等需要选中子元素的修改器。 [English] Set a modifier's sub-object level and selection (indices of verts/edges/faces/control points). Used for modifiers that need a sub-element selection, e.g. FFD control points or Edit Poly sub-objects.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | 子对象层级(0=关,1=顶点,2=边,3=边界,4=面,5=元素,FFD 用 1=控制点)。 | Sub-object level (0 off, 1 vert, 2 edge, 3 border, 4 face, 5 elem; FFD uses 1=CP). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| modifier | Yes | 修改器名/类名/索引。 | Modifier name / class name / index. | |
| selection | No | 要选中的子对象索引。 | Sub-object indices to select. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'set' action is consistent with that. The description adds context about what is being set (level and selection) but does not disclose additional behavioral traits such as whether existing selections are replaced, what happens if the modifier doesn't support sub-object selection, or any return value. Given annotation coverage, the description provides modest extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is not overly long, but it contains near-duplicate content in Chinese and English, which adds redundancy. The key information (subject, action, examples) is front-loaded, but the bilingual duplication means not every sentence earns its place in terms of unique information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core purpose and gives typical usage examples, but it does not mention return values, error conditions, or behavior when parameters are omitted. Since there is no output schema, the description could have compensated by stating what the tool returns or what side effects occur, but it remains silent on those aspects. Overall it is adequate for a simple mutation tool but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a bilingual description. The tool description does not add significant meaning beyond the schema; it merely repeats the concept of level and selection. Since the schema carries the full parameter documentation, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('set') and resource (a modifier's sub-object level and selection), and gives concrete use cases (FFD control points, Edit Poly sub-objects). It does not explicitly differentiate from sibling tools like mod_set_param or poly_select_faces, but the focus on 'modifier' makes the scope evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: whenever a modifier requires sub-element selection, with specific examples (FFD, Edit Poly). It does not state exclusions or name alternative tools, but the typical use case is communicated well enough for an agent to make a reasonable choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_shellADestructive
壳修改器:给表面加厚度,生成内壁(outerAmount)与外壁(innerAmount)。常用于做实体、管壁。 [English] Shell modifier: give a surface thickness with an outer wall (outerAmount) and inner wall (innerAmount). Use it to make solids or tube walls.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| innerAmount | No | 内壁厚度(向内)。 | Inner wall thickness (inward). | |
| outerAmount | No | 外壁厚度(向外)。 | Outer wall thickness (outward). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the mutation risk is known. The description adds the geometric effect and common usage, but does not disclose side effects such as stack/modifier behavior or prerequisites. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences per language, front-loaded with the core behavior and use cases. No filler or redundant explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a modifier with 4 optional parameters, full schema coverage, and destructiveHint annotation, the description is sufficient to understand what it does and when to use it. It lacks return-value detail, but no output schema is present and the tool is a scene-mutating modifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so innerAmount and outerAmount are already fully documented in the schema. The description merely repeats their purpose without adding units, defaults, or additional constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states a specific verb+resource: give a surface thickness by generating inner and outer walls. It is distinct enough from other mod_* siblings, though it does not explicitly name an alternative or draw a contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear use cases: '常用于做实体、管壁' / 'Use it to make solids or tube walls.' It does not mention when not to use it or compare with alternative modifiers like extrude or lathe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_smoothBDestructive
平滑修改器:按阈值自动平滑(autoSmooth)或按角度平滑组平滑,柔化表面。 [English] Smooth modifier: auto-smooth by a threshold (autoSmooth) or smooth by angle, softening the surface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| threshold | No | 平滑阈值(角度)。 | Smooth threshold (angle). | |
| autoSmooth | No | 按阈值自动平滑,默认否。 | Auto-smooth by threshold, default false. | |
| smoothness | No | 平滑度 0-1。 | Smoothness 0-1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate readOnlyHint=false and destructiveHint=true, so the agent knows the operation mutates. The description adds some behavioral context by tying autoSmooth to threshold-based smoothing and the other mode to angle-based smoothing groups, but it does not disclose consequences such as stack changes, reversibility, or what happens to existing smoothing groups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and contains no filler. The bilingual repetition is slightly redundant but still compact and appropriate for a multilingual tool surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, schema, and annotations together provide a basic understanding of the tool's purpose and mutating nature. However, with no output schema, the description does not mention return behavior, and it also omits how the modifier is applied to the named/selected objects or what exactly becomes destructive. It is adequate but not fully complete for a 5-parameter mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description adds only modest semantic value by connecting autoSmooth to threshold-based behavior versus angular smoothing groups, but it does not elaborate on smoothness, defaults, or object selection behavior beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a Smooth modifier and describes its two operating modes: auto-smooth by threshold and smooth by angle/smoothing groups. It is not a pure tautology because it explains the behavior, but it lacks an explicit operation verb such as 'adds' or 'applies', and it does not differentiate itself from sibling tools like mod_turbosmooth or poly_auto_smooth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The description explains what smoothing does but provides no exclusions, prerequisites, or pointers to related tools such as mod_turbosmooth, poly_auto_smooth, or poly_set_smoothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_subdivideBDestructive
细分修改器:按 size 把每个面细分为更小的面(经典细分,不改平滑度)。 [English] Subdivide modifier: split each face into smaller faces by size (classic subdivision, no smoothing change).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| size | No | 细分尺寸(场景单位)。 | Subdivision size (scene units). | |
| method | No | 方法 0=经典/1=四边形,默认 0。 | Method 0=classic/1=quad, default 0. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the agent knows this operation is destructive. The description adds that it is 'classic subdivision, no smoothing change', which clarifies the behavioral effect. However, it does not disclose whether the modifier is added to the stack or applied destructively, how the size parameter maps to subdivision levels, or what happens to existing modifiers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core behavior. The bilingual format adds some redundancy but is acceptable for a multilingual tool. Every sentence earns its place, though the English repetition of the Chinese text is not strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive modifier tool with no output schema, the description covers the core behavior and the key parameter semantics. However, it lacks guidance on how the modifier is applied (stack vs. collapse), how 'size' interacts with existing geometry, and what the expected result is. The annotations cover the destructive hint, but the description could be more complete for an agent deciding whether to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds the key semantic that 'size' is the subdivision size in scene units, which is already in the schema. It does not add meaningful detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('split each face into smaller faces by size') and resource ('subdivide modifier'), and clarifies it is classic subdivision without smoothing change. It is clear enough to distinguish from poly_subdivide and mod_turbosmooth, though it doesn't explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is a modifier-based subdivision controlled by size, and the 'no smoothing change' note helps differentiate it from smoothing modifiers. However, it does not explicitly state when to use this tool versus alternatives like poly_subdivide or mod_turbosmooth, nor does it mention prerequisites such as object selection or modifier stack requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_sweepADestructive
扫掠修改器:沿路径扫一个截面成形。本工具仅添加修改器;如需自定义截面,用 model_sweep 并指定 section。
[English]
Sweep modifier: sweep a section along a path. This tool only adds the modifier; for a custom section use model_sweep with a section name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds useful scoping context: it only adds the modifier and does not handle custom sections. It does not contradict the destructive hint, and the 'only adds' phrasing gives agents a precise boundary of behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and each sentence carries meaning: what the modifier does, what the tool does not do, and which sibling to use for custom sections. The bilingual duplication is efficient for the intended audience and not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter tool with no output schema, the description is nearly complete: it states the operation, the limitation, and the alternative. Minor omissions such as default modifier naming behavior are left to the schema, but the essential calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `name` and `objects` documented in the schema. The description adds no parameter-specific guidance, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('sweep') and resource ('sweep modifier'), and clarifies that this tool only adds the modifier. It explicitly distinguishes itself from model_sweep, so an agent can tell them apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit routing rule: use this tool for the standard sweep modifier, and use model_sweep with a `section` name for custom sections. This is clear when-to-use and when-not-to-use guidance relative to the most relevant sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_symmetryADestructive
对称修改器:沿 axis 轴镜像对象并焊接接缝(weldSeam)。做角色左右对称时很方便。 [English] Symmetry modifier: mirror the object across axis and weld the seam (weldSeam). Handy for left/right symmetric characters.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 对称轴 0=X/1=Y/2=Z,默认 0。 | Mirror axis 0=X/1=Y/2=Z, default 0. | |
| flip | No | 翻转镜像方向,默认否。 | Flip mirror direction, default false. | |
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| weldSeam | No | 焊接接缝,默认是。 | Weld seam, default true. | |
| threshold | No | 焊接阈值(场景单位)。 | Weld threshold (scene units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint=true and readOnlyHint=false. The description adds concrete behavior beyond that: mirroring across an axis and welding the seam, which explains why the tool is destructive. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise bilingual clauses with no filler. It front-loads the core action and follows with a practical use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a fully documented schema and destructive annotations, the description supplies the necessary intent and the context where it is useful. It could have added one sentence about objects being modified or the modifier-stack behavior, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each of the 6 parameters already has a meaningful description. The tool description only reinforces axis and weldSeam without adding new details such as threshold units or object-selection behavior, which is acceptable at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific operation: 'mirror the object across axis and weld the seam (weldSeam)', and labels it a Symmetry modifier. This is distinct from sibling modifiers and from mirror_object, which only mirrors without the modifier/weld semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: 'Handy for left/right symmetric characters.' It does not explicitly name alternatives or when-not-to-use cases, so it stops short of full routing guidance, but the context is directly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_taperBDestructive
锥化修改器:沿 axis 轴按 amount 缩放截面(一端粗一端细)。 [English] Taper modifier: scale the cross-section along axis by amount (thick at one end, thin at the other).
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 轴 0=X/1=Y/2=Z,默认 2。 | Axis 0=X/1=Y/2=Z, default 2. | |
| name | No | 修改器名。 | Modifier name. | |
| limit | No | 启用上下限,默认否。 | Enable limits, default false. | |
| amount | No | 锥化量。 | Taper amount. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| direction | No | 方向(度)。 | Direction in degrees. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-read-only and destructive, so the description does not need to restate that. It adds qualitative context by explaining the taper effect, but it does not disclose lifecycle behavior such as whether a modifier is added, replaced, or applied destructively to geometry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and avoids filler. The bilingual Chinese/English repetition is mildly redundant but justifiable for a multilingual tool, and no unnecessary details are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus fully documented schema is enough for a basic call, but it leaves gaps: no usage guidance, no behavior around object selection fallback beyond the schema, and no statement about return values or side effects. It is adequate but not complete for a mutating tool with six parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented. The description's mention of axis and amount adds a little conceptual clarity, but it does not meaningfully deepen the meaning of parameters like direction, limit, name, or objects beyond what the schema supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: applying a taper modifier that scales a cross-section along an axis by an amount, producing a thick-to-thin result. This clearly distinguishes it from sibling modifiers like mod_bend, mod_twist, or mod_noise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the taper modifier does but provides no guidance on when to choose this tool over alternatives, no exclusions, and no prerequisites. Given many sibling modifier tools, an agent would have to infer usage solely from the tool name and effect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_turbosmoothBDestructive
涡轮平滑(非破坏性细分)。iterations 为视口细分次数,renderIterations 为渲染细分次数。游戏资产建议视口 1 / 渲染 2,iterations 过高面数爆炸。 [English] TurboSmooth (non-destructive subdivision). iterations is the viewport subdivision count, renderIterations the render count. For game assets keep viewport 1 / render 2; high iterations explode the polygon count.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| isNURMS | No | 使用 NURMS 细分,默认是。 | Use NURMS subdivision, default true. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| iterations | No | 视口迭代次数,默认 1。 | Viewport iterations, default 1. | |
| smoothness | No | 平滑度 0-1,默认 1.0。 | Smoothness 0-1, default 1.0. | |
| renderIterations | No | 渲染迭代次数,默认 2。 | Render iterations, default 2. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description calls the operation 'non-destructive' while the annotations declare destructiveHint=true, which is a direct contradiction in the safety profile. Although the warning about high iterations is useful, the contradictory destructiveness signal undermines an agent's risk assessment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core definition, and keeps the bilingual versions parallel. Some wording repeats schema parameter descriptions, but the additional performance warning is worthwhile and the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents parameters and the description adds non-destructive context plus a practical risk note, which covers most of what an agent needs to invoke the tool. It is not fully complete because it does not explain modifier-stack interaction, return/confirmation behavior, or when to choose this over similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all six parameters with bilingual descriptions, so the baseline is 3. The description adds only the practical guidance about viewport/render iteration settings and the risk of excessive iterations, which is useful but does not materially extend schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as TurboSmooth, a non-destructive subdivision modifier, and immediately explains the two iteration parameters. It lacks an explicit verb like 'add' or 'apply', and it does not explicitly distinguish itself from sibling modifiers such as mod_smooth or mod_subdivide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete operational guidance for game assets and warns that high iteration counts can explode polygon counts. However, it never states when to use TurboSmooth versus alternative subdivision/smoothing modifiers, so the selection context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_twistBDestructive
扭转修改器:沿 axis 轴把物体扭转 angle 度,bias 控制扭转在长度上的分布。 [English] Twist modifier: rotate the object along axis by angle degrees; bias controls how the twist is distributed along the length.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 轴 0=X/1=Y/2=Z,默认 2。 | Axis 0=X/1=Y/2=Z, default 2. | |
| bias | No | 扭转偏置 -1..1。 | Twist bias -1..1. | |
| name | No | 修改器名。 | Modifier name. | |
| angle | No | 扭转角度(度)。 | Twist angle in degrees. | |
| limit | No | 启用上下限,默认否。 | Enable limits, default false. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and destructive, so the description does not need to restate that. It adds some behavioral nuance by explaining that bias controls distribution along the length, but it does not clarify whether this adds a new modifier, modifies an existing one, or what side effects occur beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and avoids filler. The bilingual repetition is slightly redundant but acceptable and does not detract significantly from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core behavior, key parameters, and object targeting are reasonably covered, and the schema supplies parameter details. However, it omits whether this tool adds a twist modifier to the stack or modifies existing geometry, and there is no mention of return behavior or the effect of the 'limit' parameter beyond its schema description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all six parameters thoroughly, so the description does not need to compensate. It adds a small amount of meaning by elaborating on bias distribution, but otherwise repeats what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: a twist modifier that rotates an object along an axis by a given angle, with bias controlling distribution. It is specific and unambiguous, but does not explicitly differentiate this tool from sibling modifiers like mod_bend or mod_taper.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as mod_bend, mod_taper, or mod_add. The description only states what a twist modifier does, leaving the selection decision entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mod_weightednormalsADestructive
加权法线修改器:按面面积加权计算顶点法线,硬表面/低模烘焙法线时常用,比平滑更硬朗。 [English] Weighted Normals modifier: compute vertex normals weighted by face area. Common for hard-surface / low-poly normal bakes; gives a crisper look than smoothing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 修改器名。 | Modifier name. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit for selection. | |
| threshold | No | 权重阈值(度)。 | Weight threshold in degrees. | |
| keepAffine | No | 保持仿射,默认否。 | Keep affine, default false. | |
| weightByArea | No | 按面积加权,默认是。 | Weight by area, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this modifies state destructively. The description adds use-case context but no additional behavioral details beyond saying it computes normals and gives a crisper look, which is consistent. No contradiction, but also no extra transparency about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary purpose and use case. The bilingual duplication (Chinese and English) repeats the same content, which adds length but serves different audiences; overall it is efficient without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a modifier tool with fully documented parameters and no output schema, the description covers the key information an agent needs: what it does, typical use cases, and how it compares to smoothing. It could explicitly mention that it adds a modifier to the object's stack, but the name and context make this implicit, so it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters are already described with names and defaults. The description mentions weight-by-area concept and threshold implicitly, but adds no syntax or format details beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes vertex normals weighted by face area, which is a specific verb+resource. It also distinguishes itself from smoothing modifiers by noting it gives a crisper look, making it clear how it differs from sibling tools like mod_smooth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage context: common for hard-surface and low-poly normal bakes, and contrasts with smoothing. However, it does not explicitly say when NOT to use this tool or name a specific alternative tool, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_objects_to_new_layerADestructive
一步完成:新建层并把指定对象放进去。 [English] One step: create a layer and move the given objects into it.
| Name | Required | Description | Default |
|---|---|---|---|
| layer | Yes | 新层名称。 | New layer name. | |
| objects | No | 对象名称列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the mutating and destructive nature (readOnlyHint=false, destructiveHint=true). The description adds the 'one step' combined-action context, but it does not disclose edge behaviors such as what happens if the layer already exists or whether objects are removed from their old layer beyond the obvious meaning of 'move'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences with the key 'one step' value proposition front-loaded. There is no filler, and every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple action tool, the description is adequate: it names the operation, the schema fully documents both parameters, and annotations cover the destructive profile. It does not mention return values or duplicate-layer behavior, but these are minor and do not prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already well documented. The description only echoes 'given objects' and adds no extra semantics like name constraints, duplicate handling, or interaction between the layer and objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific combined action: create a new layer and move specified objects into it. This is unambiguous and distinguishes it from sibling tools like create_layer or assign_to_layer, since it performs both operations in one step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one step' conveys the intended efficiency of combining layer creation with object reassignment, so the usage context is implied. However, it never explicitly says when to prefer this over create_layer followed by assign_to_layer, and it offers no exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_groupADestructive
打开组(临时解组以便编辑成员,关闭后恢复)。 [English] Open a group (temporarily ungroup for editing; close to restore).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 要打开的组列表;省略则用当前选择。 | Groups to open; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=false and destructiveHint=true; the description adds that the operation is temporary and reversible by closing, which is meaningful context beyond the annotation flags. It does not disclose other side effects, but the core state change and restoration path are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Both language versions state the behavior in a single compact sentence, front-loading the operation and giving the restore mechanism with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool, the description plus annotations cover what the operation does, why it is used, and how the group is restored. No additional context is required for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the objects parameter is already fully documented as 'groups to open; omit for selection.' The description adds no parameter-level detail, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing, 'open a group,' and clarifies it means temporarily ungrouping members so they can be edited. The 'close to restore' clause distinguishes it from permanent ungrouping and from the sibling close_group/ungroup_objects tools without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives the use case: temporarily ungroup for editing members, with 'close to restore' as the follow-up action. It does not explicitly name alternatives such as ungroup_objects or state when not to use it, though the 'temporary' wording implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parent_objectsADestructive
把对象链接到父对象下(建立层级)。keepTransform 保持世界变换不变。父子层级下,缩放父级会连带扭曲子级,必要时先 reset_transform。 [English] Link objects under a parent (build a hierarchy). keepTransform preserves world transform. Under parenting, scaling the parent skews children; reset_transform if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| parent | Yes | 父对象名。 | Parent object name. | |
| objects | No | 子对象列表;省略则用当前选择。 | Child objects; omit for the selection. | |
| keepTransform | No | 保持世界变换,默认是。 | Keep world transform, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-readonly and destructive, and the description adds meaningful behavioral detail beyond that: keepTransform preserves world transform, and parenting under a scaled parent will skew children. This warns about a real side effect and suggests a mitigation, which is exactly the kind of extra context the dimension rewards.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then behavior, then the caveat. The bilingual structure duplicates content, but both languages are intentional for usability, and there is no filler or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no output schema, the description covers the core behavior, the key transform semantics, and the main pitfall. Edge details like object selection fallback are already in the schema, so nothing critical appears missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parent, objects, and keepTransform thoroughly. The description mostly restates keepTransform's meaning without adding new parameter-level detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact operation: 'Link objects under a parent (build a hierarchy).' This is a specific verb and resource that clearly conveys the tool's function. It does not explicitly contrast with siblings like group_objects or constraint_link, but the parent/child wording makes the core purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it builds hierarchies and explains the keepTransform behavior. It also adds a practical warning about scaling the parent skewing children and suggests reset_transform when needed. It does not explicitly discuss alternatives or when not to use this tool, so it stops short of a top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_assign_material_idADestructive
给所选面设置材质 ID(多材质的前缀)。同一 ID 的面共享子材质槽。 [English] Assign a material ID to the selected faces (for multi/sub-object materials). Faces with the same ID share a sub-material slot.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要设置的面索引;省略则全部面。 | Face indices to set; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| materialId | Yes | 材质 ID(从 1 开始)。 | Material ID (1-based). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, alerting the agent to the tool's mutating and potentially destructive nature. The description adds the behavioral clarification that faces sharing an ID also share a sub-material slot, but it does not go further into consequences like overwriting existing IDs. This is sufficient given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and bilingual, front-loading the action and purpose. Every sentence carries relevant semantic information without filler, and the key sharing behavior is stated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description covers the purpose and the key behavioral nuance (shared sub-material slot). It does not mention prerequisites like the object needing to be an editable poly, but the schema already conveys the optional nature of faces and objects, and this is adequate for straightforward use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, documenting all three parameters (faces, objects, materialId) with clear descriptions including 'omit for all' and '1-based'. The tool description adds no extra parameter details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'assign' and the resource 'material ID to selected faces', and explains the specific meaning in the context of multi/sub-object materials (faces with the same ID share a sub-material slot). This distinguishes it from sibling tools like mat_set_sub_material, which assign materials directly, and poly_set_smoothing, which affects smoothing groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for multi/sub-object materials' provides clear context for when this tool is appropriate. It does not explicitly name alternatives or exclusions, but the use case is evident and no misleading guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_auto_smoothADestructive
按夹角自动计算平滑组:面法线夹角小于 angle 的相邻面平滑过渡。等效于 3ds Max 的 Auto Smooth。 [English] Auto-compute smoothing groups by angle: adjacent faces whose normals differ by less than angle are shaded smoothly. Equivalent to 3ds Max Auto Smooth.
| Name | Required | Description | Default |
|---|---|---|---|
| angle | Yes | 平滑阈值角度(度),默认 45。 | Smoothing threshold angle in degrees, default 45. | |
| faces | No | 作用的面索引;省略则全部面。 | Face indices to affect; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-read-only. The description adds the algorithmic behavior (angle threshold) and the shading effect on adjacent faces. It doesn't disclose whether existing smoothing groups are overwritten or any other side effects, but with annotations covering mutability, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences (one Chinese, one English) state the behavior and the 3ds Max equivalent. There is no fluff, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, together with the fully documented schema and annotations, covers the essential information needed to invoke the tool. It states the operation, the angle parameter, and references the known 'Auto Smooth' concept. It could mention the effect on existing smoothing groups, but for a destructive mutation tool with explicit annotations, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all three parameters with 100% coverage, so the baseline is 3. The description adds the semantic of the angle as the threshold between normal directions, which reinforces the schema's 'threshold angle' but adds little beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: auto-compute smoothing groups by angle threshold. It references 3ds Max Auto Smooth as a well-known equivalent, making the purpose unmistakable. The verb is specific, and the resource (smoothing groups) is explicit, distinguishing it from manual smoothing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as poly_set_smoothing. It only describes what it does; there is no mention of prerequisites, selection behavior, or cases where another tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_bevel_facesADestructive
对面做斜角:先沿法线挤出 height,再向内收 outline,常用于制作凹槽与边框。 [English] Bevel faces: first extrude along the normal by height, then inset by outline. Useful for grooves and borders.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要斜角的面索引;省略则全部面。 | Face indices to bevel; omit for all. | |
| height | Yes | 挤出高度。 | Extrusion height. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| outline | Yes | 内收/外扩量(正为内收)。 | Inset amount (positive insets). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-read-only. The description adds behavioral context beyond that by describing the two-step algorithm (extrude then inset), which tells the agent what will happen to the geometry. It does not mention prerequisites like needing an Editable Poly object, but the core mutation behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the operation stated before the use case. The bilingual duplication is acceptable but slightly redundant, preventing a perfect score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple polygon editing tool with a fully documented schema and destructive annotations, the description covers the operation, the purpose, and the parameter behavior. It is missing only explicit prerequisites or selection requirements, which are common to the poly_* tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents height as extrusion height and outline as inset amount. The description reinforces the role of each parameter within the operation order but adds little new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Bevel faces') and details the exact operation: first extrude along the normal by height, then inset by outline. This clearly distinguishes it from sibling tools like poly_extrude_faces and poly_inset_faces, which perform only one of these steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use case ('useful for grooves and borders'), which implies when to use it, but it does not explicitly contrast it with alternatives such as poly_extrude_faces or poly_inset_faces. No exclusion or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_bridge_facesADestructive
在两组面之间桥接(bridge),生成连接它们的几何。常用于挖洞后连接两侧、做管道。 [English] Bridge two sets of faces, generating geometry that connects them. Useful after holes or to build tubes.
| Name | Required | Description | Default |
|---|---|---|---|
| faces1 | Yes | 第一组面索引。 | First face index set. | |
| faces2 | Yes | 第二组面索引。 | Second face index set. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, so the mutation risk is covered. The description adds that the tool generates connecting geometry, but it does not disclose further side effects, prerequisites, or what may be irreversibly changed. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and quick to read. The bilingual text duplicates meaning slightly, but it remains efficient and does not add unnecessary noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough to understand the tool's core function and typical use cases, and the schema covers all parameters. However, it does not mention important operational context such as mesh requirements, constraints on face sets, or expected failure modes, which would help an agent invoke it more safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents faces1, faces2, and objects. The description does not add extra parameter-level meaning, but with full schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (bridge), the resource (two sets of faces), and the result (geometry connecting them). It is specific enough to distinguish from generic poly operations, though it does not explicitly name a sibling alternative such as poly_cap_holes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage context: useful after holes or to build tubes. This gives the agent a clear sense of when to reach for this tool, even though it does not state explicit exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_cap_holesADestructive
用面填补孔洞(cap)。选择要封口的面(或省略表示尝试全部边界)即可补洞。 [English] Cap holes by filling them with faces. Select the faces to cap (or omit to try all boundary loops).
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要封口的面索引;省略则全部边界。 | Face indices to cap; omit for all boundaries. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only, so the description does not need to restate that. It adds useful behavior beyond the annotations: omitting faces makes it attempt all boundary loops, and the operation fills holes with faces. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bilingual description is compact, front-loaded with the operation, and every sentence carries useful information. The optional-input behavior is stated in one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter polygon operation, the description plus schema fully specify how to invoke it: choose faces (or omit), choose objects (or use current selection). No return value is promised, and the destructive hint is already supplied by annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both faces and objects. The tool description's mention of selecting faces or omitting for all boundaries duplicates schema content rather than adding new semantic detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Cap holes by filling them with faces' / '用面填补孔洞'. This is distinct from sibling poly operations like poly_bridge_faces or poly_extrude_faces, so an agent can tell what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: use this operation to cap holes, and tells the caller to select faces or omit the parameter to target all boundary loops. It stops short of explicitly naming alternative tools or stating when not to use them, but the operation's scope is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_chamfer_edgesADestructive
对边做倒角,切出一条宽度可控的边带。常用于硬边圆角。 [English] Chamfer edges, cutting a controllable-width edge strip. Good for rounded hard edges.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | 要倒角的边索引列表。 | Edge indices to chamfer. | |
| amount | No | 倒角宽度。 | Chamfer amount. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive (destructiveHint=true), and the description aligns by saying it 'cuts' an edge strip. It adds the controllable-width aspect, but does not disclose operational details like requiring an editable-poly object, irreversible topology changes, or effects on selection/UVs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bilingual description is two short sentences, front-loading the core action and purpose with no filler. The English and Chinese duplication is a localization cost rather than redundancy, and every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 3-parameter modeling tool with no output schema, the description covers the core purpose and a common use case, while the schema covers parameters. However, it omits the editable-poly prerequisite and what the tool returns or does if no objects are selected, which are relevant for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented ('Edge indices to chamfer', 'Chamfer amount', object names with selection fallback). The description's phrase 'controllable-width edge strip' lightly reinforces the amount parameter but adds no new syntax or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Chamfer edges, cutting a controllable-width edge strip,' and adds the use case 'Good for rounded hard edges.' It clearly identifies edges as the target, which distinguishes it from vertex or face tools, though it does not explicitly name sibling alternatives like poly_chamfer_vertices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a relevant use case ('Good for rounded hard edges'), so the intended context is implied. However, it does not state when not to use this tool or mention alternatives such as poly_bevel_faces or poly_chamfer_vertices, leaving the choice of tool to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_chamfer_verticesADestructive
对顶点做倒角,沿相邻边方向切出小面,amount 控制切出宽度。 [English] Chamfer the given vertices, cutting small faces along adjacent edges. Amount controls how far the cut extends.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | 倒角宽度。 | Chamfer amount. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| vertices | Yes | 要倒角的顶点索引列表。 | Vertex indices to chamfer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and not read-only; the description adds useful geometric behavior beyond that: it cuts small faces along adjacent edges and ties the extent to 'amount'. This gives an agent a concrete model of the mesh modification without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, parallel sentences in Chinese and English capture the operation and the amount semantics with no filler. The key behavior is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, annotations, and 100% schema coverage together convey the operation, destructive nature, amount effect, and the current-selection fallback for objects. The main minor omission is return-value or error-state behavior, which is not critical for a simple mesh-mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description mostly restates the amount's effect and the vertex scope, adding only a modest conceptual clarification rather than significant new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation ('Chamfer the given vertices') and the concrete effect ('cutting small faces along adjacent edges'), with amount controlling the cut width. The vertex-based resource clearly differentiates it from sibling tools such as poly_chamfer_edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the verb and the required 'vertices' parameter, but there is no explicit when-to-use or when-not-to-use guidance. It does not mention the nearby alternative poly_chamfer_edges or any prerequisites like requiring an editable poly object.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_connect_edgesADestructive
在所选边之间连接(插入)新边/边环,segments 控制插入条数。用于加密网格、加支撑边。 [English] Connect (insert) new edges between the selected edges; segments sets how many. Use it to densify the mesh or add support loops.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | 参与连接的边索引列表。 | Edge indices to connect. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| segments | No | 插入的边数,默认 1。 | Number of inserted edges, default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true. The description adds that new edges are inserted, but does not disclose additional behavioral constraints such as edge adjacency requirements, permanence, or effects on surrounding topology. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight and front-loaded, with the operation described first and use cases second. The bilingual duplication is the only minor redundancy, but each language block is compact and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All parameters are documented, the operation is clear, and the destructive annotation covers the risk profile. It leaves out edge-selection constraints and return behavior, but these are not essential for invoking this straightforward poly-editing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are already documented structurally. The description restates that segments controls the number of inserted edges and that edges are the connect target, but does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (connect/insert), the resource (edges), and the controlling parameter (segments). It also clarifies the operation happens between selected edges, which distinguishes it from edge siblings like extrude or chamfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives intended use cases: densify the mesh or add support loops. It does not name alternatives or exclusion cases, but the context is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_delete_facesADestructive
删除所选面。删除后面上的顶点若孤立会被一并清除。会破坏拓扑。 [English] Delete the selected faces. Isolated vertices left behind are removed too. This destroys topology.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | Yes | 要删除的面索引。 | Face indices to delete. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true)Skip, and the description adds useful specifics: isolated vertices are removed and topology is destroyed. This goes beyond the binary annotation and informs the agent of side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loads the core action. It repeats in two languages, which is acceptable for the target audience. The bolded topology warning earns its place. Nothing extraneous, though the bilingual duplication could be seen as slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexitydean, annotations, and complete schema, the description covers the essential behavior and warns about destructive consequences. It does not mention undo or return format, but no output schema exists and annotations already carry the destructive flag. For a deletion operation, this is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters ('faces', 'objects'), so the schema already explains them. The description repeats 'faces' but does not add extra detail about index format or object selection semantics. Baseline 3 is appropriate when the schema carries the parameter load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Delete the selected faces' and adds the specific behavior that isolated vertices are removed. It is distinct from sibling tools like poly_detach_faces (which detaches rather than deletes) and poly_remove_vertices (which targets vertices). The warning about topology destruction further clarifies the outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. It does not mention when deletion is appropriate, prerequisites (e.g., editable poly state), or any context where this should be avoided. Sibling tools exist such as poly_detach_faces or poly_remove_vertices, but no comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_detach_facesADestructive
把所选面从原对象分离成一个(或克隆出)新对象。name 为新建对象名。 [English] Detach the selected faces into a new object (or clone them into one). name is the new object's name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 新建对象名。 | Name of the new object. | |
| clone | No | 是否克隆(保留原面),默认否。 | Clone instead of moving (keep originals), default false. | |
| faces | Yes | 要分离的面索引。 | Face indices to detach. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description adds useful behavioral context by explaining that faces are detached from the original object into a new one, with cloning as an alternative. This is consistent with the annotations and clarifies the destructive/default behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first clause states the core operation, with the clone variant and name note after it. The small redundancy with the schema's 'name' parameter description is minor and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers all parameters, annotations provide the destructive hint, and the description conveys the tool's core behavior and clone option. Although there is no output schema or explicit return-value information, the combination of description, schema, and annotations gives sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are fully described in the input schema, meeting the high-coverage baseline. The description only restates that 'name' is the new object's name, which adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('detach') and resource ('selected faces') and clearly describes the result: a new object, with the option to clone. It is unambiguous and easy to understand, though it does not explicitly differentiate itself from related siblings like detach_elements or poly_delete_faces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not say when to prefer this tool over alternatives or when not to use it. There is no mention of related tools such as detach_elements or clone_objects, so an agent must infer usage solely from the operation's name and general purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_extrude_edgesADestructive
沿边法线挤出边,生成带状几何(如做墙裙、边框)。amount 控制挤出高度。 [English] Extrude edges along their normals, producing strip geometry (e.g. skirting, borders). Amount controls the height.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | 要挤出的边索引列表。 | Edge indices to extrude. | |
| amount | Yes | 挤出高度。 | Extrusion height. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| direction | No | 自定义挤出方向 [x,y,z],省略则用边法线。 | Custom extrude direction [x,y,z]; omit for edge normal. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is covered. The description adds that extrusion happens along edge normals and creates strip geometry, but it does not disclose effects on topology, reversibility, or prerequisites. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact bilingual sentences deliver the core behavior and examples without filler. The action and result are front-loaded, and the bilingual format is justified by the multilingual audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the fully described input schema and destructive annotation, the description is sufficient for an agent to call the tool correctly. It does not mention required object state (e.g., Editable Poly) or return values, but those gaps are moderate given the tool's narrow scope and no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents edges, amount, objects, and direction. The description only restates that amount controls height, adding no meaningful semantic value beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Extrude edges along their normals, producing strip geometry (e.g. skirting, borders)'. This clearly distinguishes the tool from siblings like poly_extrude_faces and poly_bevel_edges by naming the geometry type and result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear use cases ('skirting, borders') and explains that the result is strip geometry, which implies when this tool is appropriate. It does not explicitly name alternatives or state when not to use it, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_extrude_facesADestructive
沿面法线挤出所选面。amount 为正向外挤、为负向内挤(挖洞)。可省略 faces 表示挤出所有面;direction 可覆盖默认的法线方向。 [English] Extrude the selected faces along their normals. A positive amount extrudes outward, a negative amount pushes inward (to dig a hole). Omit faces to extrude all faces; direction overrides the default normal.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要挤出的面索引;省略则全部面。 | Face indices to extrude; omit for all. | |
| amount | Yes | 挤出高度(负值为向内)。 | Extrusion height (negative goes inward). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| direction | No | 自定义挤出方向 [x,y,z],省略则用面法线。 | Custom extrude direction [x,y,z]; omit for face normal. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, and the description adds useful behavioral context: positive amounts extrude outward, negative amounts dig inward, and direction can override the default normal. This goes beyond the annotations by explaining how the destructive behavior manifests.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action. The bilingual duplication is somewhat redundant but likely intentional for accessibility, and no unnecessary filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive poly-modeling operation, the description covers the key behaviors and parameter options well. It does not mention prerequisites like needing an Editable Poly object, but the tool name and schema largely compensate, and annotations cover the destructive nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds some idiomatic meaning, such as '挖洞' for inward extrusion, but mostly restates what the schema already says about amount, faces, and direction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: extruding selected faces along their normals. It also distinguishes this from sibling tools like poly_extrude_edges by specifying 'faces' as the resource, and the sign/direction semantics make the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to prefer this tool over alternatives such as poly_bevel_faces or poly_inset_faces. The only contextual advice is about omitting the faces parameter, which is parameter behavior rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_flip_facesADestructive
翻转所选面的法线方向,用于修正反面(黑面/光照错误)。 [English] Flip the normals of the selected faces, fixing back-facing (dark / wrongly lit) surfaces.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要翻转的面索引;省略则全部面。 | Face indices to flip; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is conveyed. The description adds that the operation flips normal orientation on selected faces and is meant to fix rendering issues, but it does not discuss reversibility or behavior on invalid face indices; with annotation coverage, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and includes a bilingual English section without redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, both parameters are optional and fully documented in the schema, and the description states the purpose and target. It could add behavior for the no-selection/no-objects case or contrast with poly_unify_normals, but nothing essential for a basic invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already carry meaningful descriptions: faces may be omitted for all, objects may be omitted for current selection. The tool description only restates 'selected faces' and adds no parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Flip') and resource ('normals of the selected faces') and gives an explicit purpose: fixing back-facing/dark/wrongly lit surfaces. This clearly distinguishes it from related normals tools like poly_unify_normals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear trigger: use this when selected faces are dark or incorrectly lit due to reversed normals. It does not explicitly contrast it with alternatives such as poly_unify_normals or state when not to use it, so it falls just short of the top bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_get_edgesARead-only
分页返回每条边的索引及其连接的两个顶点。 [English] Return each edge's index and the two vertices it connects, paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,0 表示全部。 | Maximum entries to return, 0 for all. | |
| offset | No | 跳过的条数(分页)。 | Entries to skip (pagination). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds only pagination and the returned edge/vertex data; it doesn't disclose ordering, default object scope behavior, or edge representation beyond what schema fields already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact bilingual clauses with no filler and the core result is front-loaded. Every clause adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query with full schema coverage, the description conveys the essential result shape and pagination. However, with no output schema, it leaves the exact encoding of the returned vertices (indices vs coordinates) implicit rather than explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, and objects are already documented. The description adds no new parameter-level detail beyond restating pagination, so it stays at the baseline rather than improving on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action (return), a concrete resource (each edge), and the exact payload (edge index plus the two connected vertices), with pagination explicitly mentioned. This distinguishes it from siblings like poly_get_verts and poly_get_faces even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case—when edge connectivity or index data is needed—but does not explicitly say when to choose this tool over related polygon queries such as poly_get_verts or poly_get_faces. No exclusions, prerequisites, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_get_facesARead-only
分页返回每个面的索引、组成顶点、法线方向与材质 ID。非常适合读取几何拓扑。 [English] Return, per face, its index, the vertices it uses, its normal direction and its material ID, paginated. Great for reading geometry topology.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,0 表示全部。 | Maximum entries to return, 0 for all. | |
| offset | No | 跳过的条数(分页)。 | Entries to skip (pagination). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the read-safe nature is covered. The description adds useful behavioral context beyond that: it is paginated and returns face-level data, which helps the agent understand what a call will do without guessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the operation and payload, and contains no filler. The bilingual repetition is justified and does not dilute the message; every sentence carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description compensates by listing exactly what is returned per face: index, vertices, normal, and material ID. It is sufficient for a read-only topology query, though it does not detail the exact output formatting of vertices/normals, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, offset, and objects are already well documented. The description reinforces the 'paginated' nature but does not add new parameter-level details beyond what the schema provides, which aligns with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('return') and resource ('per face') with concrete fields: index, constituent vertices, normal direction, and material ID. This clearly distinguishes it from sibling tools like poly_get_verts and poly_get_edges by the face-level granularity and the listed data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the tool as 'great for reading geometry topology,' which gives clear context for when to use it. It does not explicitly name alternatives or state exclusions, but the use case is concrete enough for an agent to route a topology-read request here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_get_statsARead-only
返回多边形统计:顶点/边/面数量、材质 ID 区间、多边形总数。 [English] Return polygon statistics: vertex/edge/face counts, the material ID range and the total polygon count.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds which statistics are computed, which is mildly informative, but it does not reveal additional behavioral traits such as error conditions, performance expectations, or what happens with non-polygon objects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the key output values, and uses a bilingual format without excess elaboration. Each sentence communicates the same essential information in its target language, and there is no filler or repetition beyond the intentional localization.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, the optional parameter, and read-only annotations, the description is complete: it states what is returned, the parameter behavior, and the default selection fallback. No output schema exists, but the listed return values are specific enough for an agent to understand the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the sole optional 'objects' parameter, including the note about falling back to the current selection. The tool description does not add meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('return') and resource ('polygon statistics') and enumerates exactly which statistics are included: vertex/edge/face counts, material ID range, and total polygon count. This clearly distinguishes it from sibling tools that operate on individual vertices, faces, or edges rather than aggregate stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear invocation context: pass a list of object names, or omit the parameter to use the current selection. It does not explicitly name alternative tools for related polygon operations, so it stops short of full exclusionary guidance, but the usage scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_get_vertsARead-only
分页返回顶点索引与坐标。可用 faces 过滤只取某些面用到的顶点。 [English] Return vertex indices and positions, paginated. Pass faces to limit the result to the vertices used by those faces.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 只返回这些面涉及的顶点;省略则返回全部。 | Only return vertices used by these faces; omit for all. | |
| limit | No | 最多返回条数,0 表示全部。 | Maximum entries to return, 0 for all. | |
| offset | No | 跳过的条数(分页)。 | Entries to skip (pagination). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive, so the description does not need to cover side effects. It adds useful behavior about pagination and faces filtering, but it does not describe the result shape, coordinate space, or what happens when objects is omitted, which would be more helpful for a tool without an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences per language with the core action front-loaded and the optional filter after it. There is no boilerplate, repetition of annotations, or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented optional parameters, the description covers the essential behavior: what is returned and how to filter. It lacks details like result ordering or return envelope, but those are not critical for selecting or invoking the tool, especially since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the structured field descriptions already document all four parameters (faces, limit, offset, objects). The description's 'pass faces to limit...' restates the faces schema rather than adding new meaning, giving only marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('return'), a specific resource ('vertex indices and positions'), and a pagination modality, clearly separating it from siblings like poly_get_faces, poly_get_edges, and poly_get_stats. The bilingual phrasing leaves no ambiguity about what data is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this tool to retrieve vertex data, and optionally pass faces to narrow the result. It does not explicitly name alternatives or exclusion conditions, but the intended usage is evident from the description and the surrounding poly_get_* family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_infoARead-only
返回多边形对象的顶点/边/面数量、当前子对象选择层级(subobjectLevel)、材质 ID 的取值范围。用于建模前确认对象状态。 [English] Return a polygon object's vertex/edge/face counts, the current sub-object level (subobjectLevel) and the range of material IDs present. Use it to confirm the state of an object before editing.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds value by specifying exactly which data is returned (counts, subobjectLevel, material ID range), consistent with the read-only nature. No contradiction, but no additional behavioral depth beyond the returned fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact bilingual description with no wasted words. The core data-returned information is front-loaded ahead of the usage note. Could arguably merge the usage note more tightly, but it's efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only info tool with a single optional parameter and full schema coverage, this is reasonably complete. It tells the agent what data comes back and when to call it. No output schema exists, but the returned fields are enumerated in the description, mitigating that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — the single 'objects' parameter is fully documented with its default behavior ('omit to use the current selection') in the schema itself. The description does not add parameter detail, so the baseline of 3 applies since the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: returns vertex/edge/face counts, subobjectLevel, and material ID range for a polygon object. This clearly distinguishes it from sibling tools like poly_get_stats, poly_get_verts, and poly_get_faces, which are lower-level data fetchers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use it to confirm the state of an object before editing' (用于建模前确认对象状态), giving a clear when-to-use context. However, it doesn't name specific alternatives or when-not-to-use conditions, though the info-gathering purpose is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_inset_facesBDestructive
向内收面(inset),在面内部生成一圈更小的面,常用于做凹陷或分段。 [English] Inset faces, generating a smaller face inside each one. Good for depressions or panels.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要 inset 的面索引;省略则全部面。 | Face indices to inset; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| outline | Yes | 内收量。 | Inset amount. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutating and destructive behavior (readOnlyHint=false, destructiveHint=true). The description adds little behavioral context beyond the core geometry effect and does not mention topology changes, selection requirements, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the operation and result, and includes a useful application hint. There is no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with a fully described schema, the description is sufficient for basic understanding and invocation. It lacks some deeper context around destructive side effects and prerequisites, but the destructiveHint partially covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The description does not add meaning beyond what the schema already provides for faces, objects, and outline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as insetting faces and explains the result: generating a smaller face inside each one. This is specific and understandable, though it does not explicitly contrast with related siblings such as poly_bevel_faces or poly_extrude_faces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Good for depressions or panels' gives an implied use case, but there is no explicit guidance about when to choose this tool over alternatives or when not to use it. No sibling alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_loop_selectCDestructive
选择给定边所在的循环(loop),并保留边子对象选择。常用于快速选一圈环形边。 [English] Select the edge loop containing the given edges and keep the edge sub-object selection. Quick way to grab a ring of edges around a model.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | No | 作为种子的边索引;省略则尝试全部边。 | Seed edge indices; omit to try all edges. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes only a selection operation, yet the annotations declare destructiveHint=true, which is a direct contradiction. No explanation is provided for when or why this tool could be destructive, leaving the agent with conflicting signals about the tool's side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and the core action is front-loaded. The bilingual duplication is somewhat redundant for an AI agent, but it is compact and contains no significant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description does not mention return values, failure modes, preconditions, or what happens to an existing selection. The destructive annotation contradiction also makes the behavioral context incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters at 100% coverage, so the description adds little beyond what is structured. It does not provide extra detail about edge-index format, object-name resolution, or selection behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: select an edge loop containing the given edges while preserving the edge sub-object selection. This is enough to distinguish from most sibling tools, though the English phrase 'ring of edges' blurs the loop/ring distinction and does not explicitly contrast with poly_ring_select.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a practical context ('quick way to grab a ring of edges around a model') and mentions seed edges, but it does not state when to prefer this tool over alternatives or when not to use it. With poly_ring_select as a sibling, explicit differentiation would be valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_make_planarADestructive
把所选面投影到同一平面(make planar),常用于修正歪斜的平面、对齐切割口。 [English] Project the selected faces onto a single plane (make planar). Handy for fixing skewed surfaces or aligning cut openings.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要拍平的面索引;省略则全部面。 | Face indices to flatten; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, so the mutation risk is covered. The description adds the core projection behavior and intended use, but does not disclose how the target plane is determined or whether only the listed faces are permanently altered; that extra transparency would be needed for a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: operation first, use cases second. The bilingual repetition is appropriate for the localized tool and adds no filler or boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter tool with 100% schema coverage and a destructive annotation, this is largely sufficient: an agent knows what it does, when to use it, what defaults exist, and that it mutates. It does not explicitly say that the target objects must be editable-poly, but the poly_ naming and sibling convert_to_editable_poly make that requirement discoverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters fully (face indices with omit-for-all, object names with omit-for-selection), so the baseline is 3. The description adds no further parameter meaning, such as index base or object-type requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete operation: project selected faces onto a single plane, and motivates it with two use cases ('fixing skewed surfaces or aligning cut openings'). This is specific enough to distinguish the tool from other poly_* face operations such as poly_flip_faces or poly_relax, even though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context ('handy for fixing skewed surfaces or aligning cut openings'), which tells an agent when the tool is appropriate. It stops short of naming alternatives or stating when not to use it, so it doesn't earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_move_verticesADestructive
把一批顶点整体按同一偏移量移动。比逐个 poly_set_vertex 高效。 [English] Move a batch of vertices by the same offset. More efficient than calling poly_set_vertex per vertex.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | Yes | 偏移量 [x,y,z]。 | Offset [x,y,z]. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| vertices | Yes | 要移动的顶点索引列表。 | Vertex indices to move. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation behavior is covered. The description adds a useful performance characteristic ('more efficient than per-vertex calls') but does not add further context about undo, coordinate space, or side effects, which is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loaded with the core operation, and the efficiency comparison earns its place. The bilingual repetition is compact and does not introduce unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple batch-mutation tool, the description plus the fully documented schema and destructive annotation are sufficient to invoke it correctly. It does not describe return values, but the absence of an output schema and the mutation-focused nature make that gap less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (offset, objects, vertices) are already documented. The description reinforces that the offset is applied uniformly to the batch, which matches the schema, but it does not add substantial new parameter-level meaning beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: move a batch of vertices by the same offset. It also explicitly contrasts itself with poly_set_vertex, making differentiation from the most relevant sibling tool unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly names poly_set_vertex as the less efficient alternative, which signals when to prefer this batch tool. It does not spell out exclusions like 'use poly_set_vertex for a single vertex,' but the efficiency comparison is a clear and useful routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_optimizeADestructive
用 ProOptimizer 按百分比简化模型,percent 为保留的顶点百分比(0-100)。会明显改变形状,雕刻/高精度模型慎用。 [English] Simplify the model with ProOptimizer by a percentage; percent is the kept vertex percentage (0-100). This visibly changes the shape - use care on sculpted/high-detail meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| percent | No | 保留顶点百分比 0-100,默认 50。 | Kept vertex percentage 0-100, default 50. | |
| keepNormals | No | 保留法线,默认是。 | Keep normals, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds the visible shape change warning, which is valuable context. It explains that the operation alters geometry significantly, which is not fully captured by the annotation alone. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences in each language. It front-loads the purpose, includes the key parameter, and adds a warning. No wasted words; well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple modifier tool with all optional parameters and no output schema, the description covers the main effect and warning. It doesn't mention the effect on object modifiers or revertibility, but those are likely covered by the destructive annotation. Overall, it provides enough context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are documented. The description reiterates the percent parameter meaning (kept vertex percentage 0-100), which is already in the schema, but does not add extra detail about objects or keepNormals. It adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simplifies models using ProOptimizer by a percentage, with percent as the kept vertex percentage. This is a specific verb and resource, and it stands out among the many poly-related siblings as the only optimization/simplification tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (for simplification) and provides a caution for sculpted/high-detail meshes, but it does not explicitly name alternatives or state when not to use it. The warning about shape change is useful but does not compare to other poly tools like poly_relax or poly_subdivide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_quadifyADestructive
把三角形合并为四边形(尽可能),得到更规整的拓扑。不是所有三角网都能四边化。 [English] Merge triangles into quads where possible, yielding cleaner topology. Not every triangle mesh can be quadified.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要四边化的面索引;省略则全部面。 | Face indices to quadify; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already flag this as destructive (destructiveHint=true, readOnlyHint=false), so the description's mutation implication adds little. It does add one useful behavioral caveat—quads are produced only where possible—but does not explain what happens to faces that cannot be converted or whether the result is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The explanation is two short bilingual sentences that front-load the action and outcome, followed by a relevant caveat. There is no filler or repetition beyond the deliberate Chinese/English duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover parameters and destructiveness, and the tool is fairly simple. However, it does not state prerequisites such as requiring an Editable Poly object or how it behaves when quadification is only partially successful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both faces and objects are described with clear omission behavior. The description itself adds no parameter-level information, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Merge triangles into quads') and states the intended outcome (cleaner topology), making the tool's function unmistakable. It is semantically distinct from nearby poly_* operations such as poly_triangulate, even though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool instead of an alternative like poly_triangulate or poly_optimize. 'Not every triangle mesh can be quadified' is a caution about failure, not a usage rule or exclusion condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_relaxBDestructive
用 Relax 修改器松弛顶点,减少褶皱、均匀网格。iterations 为迭代次数。 [English] Relax vertices via the Relax modifier to reduce wrinkles and even out the mesh. iterations is the pass count.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| iterations | No | 迭代次数,默认 1。 | Iterations, default 1. | |
| relaxValue | No | 松弛强度 0-1,默认 0.5。 | Relax strength 0-1, default 0.5. | |
| keepBoundary | No | 保持边界点不动,默认是。 | Keep boundary points fixed, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the mutation and destructive nature of the tool. The description adds no further behavioral context—it does not mention irreversibility, object selection behavior, or whether it creates vs. modifies a modifier. There is no contradiction with the annotations, but the description does not go beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the verb and resource stated immediately. The bilingual repetition (Chinese and English) doubles the length for the same content, but this is a common pattern and not overly verbose. It earns its place by being compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive polygon operation with no output schema, the description is too thin. It does not clarify whether this applies a Relax modifier to objects or relaxes vertices directly on an editable poly—a key ambiguity given the sibling mod_relax. It also omits any note about selection behavior or side effects beyond the annotations. An agent cannot confidently decide between poly_relax and mod_relax from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters, including defaults and ranges. The description only repeats the meaning of iterations ('pass count'), which adds no new information beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the operation ('Relax vertices via the Relax modifier') and the intended outcome ('reduce wrinkles and even out the mesh'), so an agent can grasp the core function. However, it does not explicitly distinguish itself from the sibling tool mod_relax, which also appears to involve the Relax modifier. The purpose is clear but sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided about when to use this tool versus alternatives such as mod_relax or other polygon smoothing tools. The description only states what the tool does, not under what conditions it should be chosen or what prerequisites exist. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_remove_verticesADestructive
删除顶点。被删顶点会连同其所属的面一起消失,会破坏拓扑,请先确认后果。 [English] Delete vertices. Removing a vertex also removes the faces that use it, destroying topology - confirm the consequences first.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| vertices | Yes | 要删除的顶点索引列表。 | Vertex indices to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds crucial specifics: deleting a vertex also deletes its adjacent faces and destroys topology. This goes beyond the generic annotation and warns the agent about irreversible side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and uses bold to highlight the destructive consequence. The bilingual duplication is slightly redundant but acceptable and still economical. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no output schema, the description provides the essential risk information and covers the face-deletion behavior. Combined with the complete parameter schema, an agent has enough to invoke it correctly, though no explicit mention of alternatives or undo behavior is made.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add new parameter-level detail beyond what the schema already states for 'vertices' and 'objects', but it does clarify the behavioral meaning of removing vertices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'Delete' and resource 'vertices', and immediately clarifies the cascading effect on faces. This distinguishes it from sibling tools like poly_delete_faces and poly_weld_vertices, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: use this when you intend to remove vertices. The warning 'confirm the consequences first' provides context, but the description does not mention when not to use it or point to alternatives such as poly_weld_vertices for non-destructive vertex operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_ring_selectADestructive
选择给定边所在的环(ring),并保留边子对象选择。与 poly_loop_select 垂直互补。 [English] Select the edge ring containing the given edges and keep the edge sub-object selection. Complementary and perpendicular to poly_loop_select.
| Name | Required | Description | Default |
|---|---|---|---|
| edges | No | 作为种子的边索引;省略则尝试全部边。 | Seed edge indices; omit to try all edges. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds minimal behavioral detail beyond 'keep the edge sub-object selection,' which is ambiguous (does it preserve current selection or just the sub-object mode?). It does not contradict annotations, but it does not substantially enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences (bilingual) that front-load the primary action and immediately name the sibling tool for contrast. No fluff, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple selection tool, the description covers the core functionality. It omits details like error handling or prerequisites (e.g., object must be editable poly), but these are implied by the poly_* family and the schema covers the parameter behavior. With annotations and schema, the description is sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (edges and objects) are already documented. The description adds no additional parameter details or usage nuances beyond what the schema states, so it does not go beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool selects an edge ring containing the given edges and preserves the edge sub-object selection. It explicitly distinguishes itself from poly_loop_select by noting it is complementary and perpendicular, which helps an agent pick the right tool without examining schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names poly_loop_select as the sibling for loop selection and implies this tool is for ring selection. It does not state explicit when-not-to-use conditions or prerequisites (e.g., editable poly requirement), but the complementary/perpendicular note provides clear routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_select_facesADestructive
按索引、材质 ID、法线方向或高度范围选择面,并保留该选择(进入面子对象模式)。返回被选中面的索引,方便后续用 poly_extrude_faces 等继续操作。 [English] Select faces by index, material ID, normal direction or height range, and leave the selection active (enters face sub-object mode). Returns the selected face indices so you can follow up with poly_extrude_faces etc.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 按索引选择这些面;与下面条件互斥时优先。 | Select these faces by index; takes priority over the filters below. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| heightMax | No | 高度范围上限(场景单位)。 | Height range upper bound (scene units). | |
| heightMin | No | 高度范围下限(场景单位)。 | Height range lower bound (scene units). | |
| heightAxis | No | 按高度范围选:x / y / z。 | Select by height on axis: x / y / z. | |
| materialId | No | 选择材质 ID 等于该值的面。 | Select faces whose material ID equals this. | |
| normalAxis | No | 按法线方向选:x / y / z。 | Select by normal axis: x / y / z. | |
| normalSign | No | 法线方向正负:+ 取同向,- 取反向,默认 +。 | Normal sign: + same direction, - opposite, default +. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint=false and destructiveHint=true, and the description adds meaningful behavioral context beyond those: it leaves the selection active, enters face sub-object mode, and returns the selected face indices. This is important side-effect information for an agent deciding whether to chain it with other poly tools. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action first, then the side effect, then the return value. The bilingual structure is not wasteful because it serves both language audiences, and every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description covers the core contract well but leaves important invocation details implicit. Missing rules about filter combination, the effect of providing no selection criteria, and whether height bounds require heightAxis are gaps an agent would need to resolve before calling the tool correctly in complex cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; each parameter already has a bilingual description. The main description restates the selection modes but does not add cross-parameter semantics, such as whether multiple non-index filters combine with AND or OR, whether heightMin/heightMax can be used independently, or what happens when no criteria are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Select faces by index, material ID, normal direction or height range.' It also distinguishes itself from read-only tools like poly_get_faces and more specialized selectors like poly_loop_select or poly_ring_select by describing its multi-criteria face selection behavior and the active sub-object selection side effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the tool as a prerequisite for follow-up operations: 'Returns the selected face indices so you can follow up with poly_extrude_faces etc.' This gives clear context for when to use it. However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_set_smoothingBDestructive
把所选面归入某个平滑组(1-32)。平滑组决定面与面之间是否平滑过渡(硬边/软边)。 [English] Put the selected faces into a smoothing group (1-32). Smoothing groups decide whether faces shade smoothly into each other (hard vs soft edges).
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要设置的面索引;省略则全部面。 | Face indices to set; omit for all. | |
| group | Yes | 平滑组编号 1-32。 | Smoothing group number 1-32. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description's main contribution is explaining the hard/soft edge effect. It does not disclose that assigning a group overwrites any previous smoothing assignment or that the object may need to be an Editable Poly, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core operation, followed by a useful explanatory sentence. The English text duplicates the Chinese text, but bilingual duplication is acceptable and does not make the entry unnecessarily long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with complete parameter documentation and annotations declaring destructiveness, the description is largely sufficient: it states the scope, the group range, and the visual effect. A note about overwriting existing smoothing groups would improve it slightly, but nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds little beyond reinforcing the concept of smoothing groups and does not clarify edges cases such as what happens when faces is omitted, though the schema already covers that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Put the selected faces into a smoothing group (1-32)', and explains the outcome in terms of hard vs soft edges. However, it does not differentiate from sibling tools like poly_auto_smooth, so it does not fully earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as poly_auto_smooth for automatic smoothing. There are no exclusions, prerequisites, or context cues beyond the basic operation itself, and the visual-effect note is more conceptual than actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_set_vertexADestructive
把单个顶点移动到绝对坐标(position)或相对偏移(offset)。不能同时省略两者。坐标使用当前场景单位。 [English] Move a single vertex to an absolute position or by a relative offset. Exactly one of position/offset is required. Coordinates use the current scene unit.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | 顶点索引(从 1 开始)。 | Vertex index (1-based). | |
| offset | No | 相对偏移 [x,y,z]。 | Relative offset [x,y,z]. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| position | No | 绝对坐标 [x,y,z]。 | Absolute position [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, so the destructive nature is known. The description adds the constraint about exactly one of position/offset and the unit context, but does not elaborate on side effects or permanence. It does not contradict annotations, but adds only limited behavioral detail beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences in bilingual form, front-loading the action and constraint. There is no fluff or redundancy, and every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description covers the core behavior, the parameter constraint, and unit semantics. It does not describe the return value, but no output schema exists, and it is likely a void operation. The object parameter is documented in the schema. Overall, an agent has enough information to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a description. The tool description adds the cross-parameter constraint that exactly one of position/offset is required, and clarifies that coordinates use the current scene unit. This is valuable semantic information not present in the schema, elevating it above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (move a single vertex) and the two modes (absolute position or relative offset). It distinguishes from sibling tools like poly_move_vertices by explicitly noting 'single vertex', implying poly_move_vertices handles multiple vertices. The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use this tool (for moving a single vertex) and the requirement that exactly one of position/offset must be provided. It does not explicitly name alternatives like poly_move_vertices, but the single-vertex scope implies the distinction. No exclusions are mentioned, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_sliceBDestructive
用一个平面切割多边形对象(沿 x/y/z 轴、可平移 offset)。split 为真时把切出的面分成两组。 [English] Slice a polygon object with a plane aligned to the x/y/z axis, shifted by offset. With split true the cut faces are split into two groups.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 切割平面法线轴:x / y / z,默认 z。 | Plane normal axis: x / y / z, default z. | |
| split | No | 是否把切面分成两组,默认否。 | Split the cut faces into two groups, default false. | |
| offset | No | 平面沿轴的偏移(场景单位)。 | Plane offset along the axis (scene units). | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The destructiveHint annotation already flags the mutating nature, and the description adds the split behavior and axis/offset semantics. What is missing is the effect on the original object and whether the operation requires an Editable Poly or returns a result; these are not disclosed beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core operation in both English and Chinese. The bilingual duplication is slightly redundant for an AI agent but does not hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the 100%-covered schema and destructiveHint annotation, the description covers the main behavior and all parameters. It is still incomplete about operational outcomes (e.g., whether the original object is replaced, whether any result/status is returned), so it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented. The description mainly restates axis, offset, and split, and does not add meaning for the 'objects' parameter, so it contributes little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: slicing a polygon object with an axis-aligned plane at an offset, and explains the split behavior. It is specific enough to be distinguished from most poly_* siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the description: use it when an axis-aligned plane cut is needed on a polygon object. It does not provide when-not-to-use guidance or compare against alternatives like boolean_operation or proboolean.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_subdivideADestructive
通过细分修改器(MeshSmooth)加密网格,iterations 为细分次数。iterations 超过 3 会让面数爆炸式增长,游戏资产建议 1-2。 [English] Subdivide the mesh via the MeshSmooth modifier; iterations is the subdivision count. Iterations above 3 explode the polygon count - keep it 1-2 for game assets.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| iterations | No | 细分次数,默认 1。 | Subdivision iterations, default 1. | |
| smoothness | No | 平滑度 0-1,默认 0.5。 | Smoothness 0-1, default 0.5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a mutating/destructive operation. The description adds useful behavioral context beyond that: it identifies the mechanism as the MeshSmooth modifier and warns that iterations above 3 cause polygon counts to explode. It does not detail undo or modifier-stack behavior, but the annotations lower the burden and the warning is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action and mechanism appear first, followed by the key warning. The bilingual repetition adds clarity rather than bloat, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no output schema, the description covers the core operation, the mechanism, and the critical parameter risk. The main missing element is explicit routing to sibling subdivision tools, but that is more a usage-guidance gap than a completeness gap for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further for the iterations parameter by explaining the practical consequence of high values and recommending 1-2 for game assets. Objects and smoothness remain adequately documented by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb-resource pair: subdividing the mesh via the MeshSmooth modifier, and it ties the iterations parameter to the subdivision count. It does not explicitly contrast with sibling tools like mod_turbosmooth or mod_subdivide, so it stops just short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing the operation and gives practical guidance for game assets ('keep it 1-2'). However, it does not state when to prefer this tool over the sibling mod_turbosmooth, mod_subdivide, or mod_smooth, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_target_weldADestructive
把 vertex 焊接到 target 顶点上(目标焊接),结果与 target 重合。与 poly_weld_vertices(取平均点)不同,这里明确指定落点。
[English]
Target-weld vertex onto target so the result lands exactly on the target. Unlike poly_weld_vertices (which averages), here the landing point is explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 目标顶点索引。 | Target vertex index. | |
| vertex | Yes | 要移动的顶点索引。 | Vertex index to move. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| threshold | No | 容差,默认 0.1。 | Tolerance, default 0.1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds the behavioral nuance that the vertex moves onto the target (rather than averaging), which is useful. However, it does not disclose the role of the threshold parameter, whether the vertex is merged/deleted, or any side effects on the object's vertex count, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences (one per language) with no fluff. It front-loads the core behavior and the distinguishing contrast with the sibling. Every word serves a purpose, and the bilingual format is appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a destructive operation with 4 parameters, but the description does not explain the threshold parameter's function or any prerequisites (e.g., editable poly objects, vertex indices validity). The contrast with the sibling is helpful, but critical details like what the threshold controls and whether the vertex is merged or just moved are missing. Given the annotations cover the destructive nature, the description is incomplete for an agent to fully understand the operation's semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described in both languages. The description reiterates the roles of 'vertex' and 'target' but does not add meaning beyond what the schema already provides. It does not explain the threshold parameter's effect or the objects parameter's default behavior beyond the schema. Thus, it meets the baseline for a fully documented schema without adding extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: target-weld a vertex onto a specific target vertex so the result lands exactly on the target. It explicitly contrasts with poly_weld_vertices (which averages), making its purpose distinct and unambiguous. The bilingual text reinforces the intent without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description directly names the alternative poly_weld_vertices and clarifies when to use this tool (when a specific landing point is required) versus the averaging behavior of the sibling. It does not provide broader guidance like prerequisites or when not to use it, but the explicit contrast gives sufficient context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_triangulateADestructive
把所选面三角化(每个多边形切成三角形)。游戏/实时引擎通常要求三角面。 [English] Triangulate the selected faces (split each polygon into triangles). Real-time/game engines generally require triangles.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要三角化的面索引;省略则全部面。 | Face indices to triangulate; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the mutating nature is covered. The description adds the topological outcome and rationale, but it does not disclose prerequisites (e.g., editable poly requirement) or side effects beyond the destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and contains no filler. The bilingual repetition is acceptable and each sentence contributes either the operation or the usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutating topology tool, the description, schema, and annotations cover the essential invocation details. A note about prerequisites such as editable-poly state could make it more complete, but this is a minor gap given the poly_* tool family context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description mostly restates the target as 'selected faces' and does not add meaningful parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Triangulate'), a specific resource ('selected faces'), and the exact outcome ('split each polygon into triangles'). This clearly differentiates it from other poly_* topology tools like poly_quadify, even though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit use context: real-time/game engines generally require triangles. It does not list exclusions or alternatives, but the stated use case is enough for an agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_unify_normalsADestructive
统一所选面的法线方向(全部翻成一致朝向),修正法线紊乱导致的花面。 [English] Unify the normals of the selected faces (flip them to a consistent direction), fixing broken shading from inconsistent normals.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | 要统一的面索引;省略则全部面。 | Face indices to unify; omit for all. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, signaling a mutating operation. The description adds the behavioral detail that it flips normals to a consistent direction, which is useful but not extensive. It does not mention reversibility, whether it affects all faces when omitted, or any side effects. Given the annotation coverage, the description provides moderate added value but lacks deeper behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two short sentences (one in Chinese, one in English) that front-load the core action and purpose. There is no fluff or redundant content. Every clause contributes meaning, and the structure is efficient for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description is largely complete. It explains what the tool does, the problem it solves, and the effect on normals. The schema covers parameter defaults, and annotations cover the destructive nature. The only minor gap is the lack of explicit note about operating on editable poly objects, but given the sibling context and simplicity, this is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'faces' and 'objects' parameters have detailed descriptions in both Chinese and English. The tool description does not elaborate on parameters beyond the schema, which already explains that omitting faces applies to all and omitting objects uses the current selection. Thus the description adds no extra meaning, and the baseline of 3 is appropriate since the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('unify the normals of the selected faces') and its intended effect ('fixing broken shading from inconsistent normals'). It distinguishes itself from sibling tools like poly_flip_faces (which flips individual normals) and poly_set_smoothing (smoothing groups) by emphasizing a unified direction across selected faces. The verb 'unify' and the resource 'normals' are explicit, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case (fixing broken shading from inconsistent normals) but does not explicitly state when to use this tool versus alternatives such as poly_flip_faces or mod_weightednormals. The context implies it is for unifying direction on a set of faces, but no exclusions or comparisons are given. This leaves some ambiguity for an agent deciding between similar poly-editing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poly_weld_verticesADestructive
在给定阈值内焊接(合并)一批顶点。阈值过小可能焊不上,过大可能误并无关顶点。单位与场景一致,常用 0.010.1。
[English]
Weld (merge) a batch of vertices within a threshold. Too small a threshold may weld nothing; too large may merge unrelated vertices. In scene units, usually 0.010.1.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| vertices | Yes | 要焊接的顶点索引列表。 | Vertex indices to weld. | |
| threshold | No | 焊接阈值(场景单位)。 | Weld threshold (scene units). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds behavioral context beyond that: threshold sensitivity, risk of over-welding, and scene-unit guidance, which help the agent predict operation outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bilingual but compact: the first sentence states the operation, and the second adds only useful threshold behavior. No wasted words and the core semantics are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering destructiveness and the schema documenting vertices/objects, the description is sufficient to invoke the tool. Minor gaps are the lack of a stated default threshold when omitted and no explanation of return/result behavior, but these are not critical for this imperative operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters (100%), so baseline is 3. The description adds genuinely useful threshold semantics by explaining units (scene units), safe ranges (0.01~0.1), and failure modes for too-small/too-large values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource: 'Weld (merge) a batch of vertices within a threshold.' The 'batch' and 'within a threshold' qualifiers distinguish it from the sibling poly_target_weld, which is a single-target weld.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear contextual guidance on threshold choice ('too small may weld nothing; too large may merge unrelated vertices') but does not explicitly state when to prefer this tool over alternatives such as poly_target_weld or poly_remove_vertices. Usage is implied by the 'batch' wording rather than explicitly contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
probooleanADestructive
使用 3ds Max 的 ProBoolean 做更鲁棒的布尔(支持多 operands、交集/减集/合并)。第 1 个对象为基,其余并入。若当前 Max 未启用 ProBoolean 会报错提示。 [English] Use 3ds Max ProBoolean for a more robust boolean (multi-operand, union/subtract/intersect/merge). First object is the base; the rest are added. Errors gracefully if ProBoolean is unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 操作对象列表(第 1 个为基);省略则用当前选择。 | Operands (first is base); omit for the selection. | |
| operation | No | union/subtract/intersect/merge。 | union/subtract/intersect/merge. | union |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the destructive nature (destructiveHint=true). The description adds context that ProBoolean may be unavailable and handles errors gracefully, and clarifies that the first object is the base with the rest merged into it. This goes beyond annotations by detailing the base-object behavior and the error condition, adding useful operational context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with each sentence earning its place. The purpose and key rules are front-loaded, and the bilingual format (while duplicative) is still compact. No fluff or redundancy beyond necessary clarification, making it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool's core behavior and parameters are adequately described, and the schema covers parameter details. The description adds the error condition and base-object rule, which are important for correct invocation. However, it does not explicitly address the relationship with the generic `boolean_operation` sibling or explain what the output/return value is (though no output schema exists). This is a minor gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are well-described in the schema (objects as operand list with first base, operation enum with default union). The description largely repeats this information ('multi-operand', 'first object is base', 'union/subtract/intersect/merge') without adding new semantic nuance. Baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: using 3ds Max's ProBoolean for a more robust boolean operation, listing supported operations (multi-operand, union/subtract/intersect/merge). It differentiates from the sibling `boolean_operation` by the 'more robust' qualifier and explicit support for multi-operand scenarios. The verb+resource+scope is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a more robust boolean is needed and mentions the first-object-as-base rule, but it does not explicitly state when to prefer this tool over the generic `boolean_operation` sibling, nor does it provide exclusions or fallback guidance. The mention of graceful error if ProBoolean is unavailable is useful, but the when-to-use vs alternatives is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_text_fileARead-only
读取一个文本文件(脚本、配置、日志)。用于检查导出的 .ini 或 MAXScript 片段。 [English] Read a text file (script, config, log). Handy for inspecting exported .ini files or MAXScript snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文件绝对路径。 | Absolute file path. | |
| maxChars | No | 最多读取的字符数,默认 200000。 | Maximum characters to read, default 200000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds file category context but does not disclose return format, encoding, or error behavior; with the read-only annotation carrying the safety burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the core action front-loaded and useful examples included. The bilingual repetition is slightly redundant, but each segment earns its place by serving different-language agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the combination of schema (path and maxChars), annotations (readOnly/destructive), and description (file types and scenarios) is nearly complete. No output schema exists, but 'read a text file' implies content return, and missing encoding/error details are minor for this use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with path and maxChars both described in the schema including the default value. The tool description adds no parameter-level meaning beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read a text file (script, config, log).' It further narrows scope with concrete use cases ('exported .ini files or MAXScript snippets') and is naturally distinguished from the sibling write_text_file by the explicit 'read' action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'Handy for inspecting exported .ini files or MAXScript snippets.' It does not explicitly name alternatives or say when not to use it, but the intended scenarios are concrete enough for an agent to route appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redo_lastCRead-only
重做最近一次(或最近 N 次)被撤销的操作。 [English] Redo the last undone operation (or the last N).
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | 重做步数,默认 1。 | Number of steps, default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: annotations declare readOnlyHint=true, but redo_last is a mutation that re-applies an undone operation and changes scene state. The description provides no additional behavioral context and is contradicted by the structured safety hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded: one Chinese sentence and its English equivalent, with no filler or repetition beyond the bilingual translation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter command, the core operation is stated, but the incorrect readOnlyHint leaves the safety profile misleading. It also doesn't clarify what happens when there is no undone operation to redo or whether the tool returns anything.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the steps parameter already documents its type, range (1–50), and default. The description's 'or the last N' echoes the parameter but adds no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Redo') and resource ('the last undone operation (or the last N)'), which distinguishes it from undo_last and most other sibling tools. It does not explicitly name the sibling alternative, but the 'undone operation' wording makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use redo_last versus undo_last or other history tools, nor are prerequisites mentioned (e.g., an undo must have just occurred). The existence of undo_last in the sibling list makes this omission noticeable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_sceneARead-only
释放 Hold 缓冲区,接受当前场景状态,使其不再能被 fetch 还原。 [English] Release the hold buffer and accept the current scene, so it can no longer be fetched back.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description directly contradicts the readOnlyHint=true annotation: releasing and discarding the hold buffer is a state-changing action, not a read-only one. Although the description usefully discloses irreversibility, the conflict with the annotation is a serious defect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, direct, and contains no extra fluff. It loses one point because the same message is duplicated in Chinese and English, which adds length without adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter command, the core behavior and irreversibility are clearly stated. It could be more complete by referencing the hold/fetch workflow and describing return or error behavior when no hold buffer exists, but the low complexity makes the description largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema fully captures that. With no parameters to document, the description has nothing meaningful to add; the baseline of 4 for a zero-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action and resource ('release the hold buffer'), states the resulting state ('accept the current scene'), and gives the irreversible consequence ('can no longer be fetched back'). This clearly distinguishes it from the related hold_scene/fetch_scene siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The consequence 'so it can no longer be fetched back' implies the use case of discarding a held snapshot, but the description never explicitly states when to call it, when not to, or how it fits with hold_scene and fetch_scene. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
relink_assetsADestructive
批量重新链接丢失的贴图/资源:在指定目录(可递归)中按文件名查找并替换路径。等价于 Max 的「资源追踪」批量重链接,是修复丢贴图场景最常用的操作。 [English] Batch relink missing bitmaps/assets: search the given folder (recursively) for files with matching names and repoint the scene. Equivalent to Max's Asset Tracking batch relink, and the standard fix for scenes with missing textures.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | 只报告将要做的替换而不真正执行,默认否。**建议先跑一次 true 确认结果。** | Report the replacements without applying them, default false. **Run once with true first to confirm the mapping.** | |
| onlyMissing | No | 只处理已丢失的资源,默认是。 | Only relink currently missing assets, default true. | |
| searchPaths | Yes | 要搜索的根目录(可多个),会递归查找同名文件。 | Root folders to search (multiple allowed); searched recursively for files with matching names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true and readOnlyHint=false, so the description only needs to add context beyond that. It does state that paths are 'replaced' / 'repointed', which is useful, but it does not add cautions about irreversibility or side effects; the 'run dryRun first' guidance lives in the schema rather than the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact bilingual sentences convey purpose, mechanism, and positioning without filler. Every clause earns its place, and the 'equivalent to Max Asset Tracking' analogy is genuinely informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with destructive annotations, the description explains purpose, mechanism, recursion, and typical use case, and the schema fills in all parameter details. It could additionally state what the call returns, but the absence of an output schema and the simple operation make this a minor gap rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already carries rich bilingual semantics: types, defaults, recursive search, and a suggested dry-run first. The description's 'search by filename recursively' matches what the schema already says, so it adds no additional parameter meaning beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '重新链接丢失的贴图/资源' / 'batch relink missing bitmaps/assets', with the exact mechanism (search folders recursively by filename and replace paths). It also ties it to '修复丢贴图场景' and Max Asset Tracking, which clearly separates it from siblings like find_missing_assets or get_scene_assets that only detect/list assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames this as the standard fix for scenes with missing textures, giving an agent a clear when-to-use context. It does not name alternatives or state when not to use it, so it falls short of the explicit routing that would merit a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_objectBDestructive
重命名一个对象。返回旧名与新名。 [English] Rename one object. Returns old and new name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 原对象名。 | Original object name. | |
| newName | Yes | 新名称。 | New name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds a useful return-value note ('Returns old and new name') that matters because there is no output schema, but it does not disclose side effects such as reference updates or irreversibility. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences with no filler. The operation and return values are front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required parameters, annotations, and no output schema, the description is nearly complete: it explains the action, the inputs are documented in the schema, and the return values are stated. Minor gaps remain around uniqueness or validation of the new name, and the fact that it targets scene objects is only implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions for name and newName. The description adds no additional parameter semantics beyond the concept of old and new names, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Rename one object') and specifies that it returns old and new names. It does not explicitly contrast itself with sibling rename tools like mod_rename or mat_rename, but the tool name and 'object' wording make the primary target clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. Sibling tools such as mod_rename and mat_rename exist, but the description does not state that rename_object is for scene objects only, nor does it mention exclusions or preconditions like whether the object must exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_animationBDestructive
渲染整个动画范围或其中的一个子区间,每帧一个文件。渲染整段会非常慢,调用阻塞直到完成。 [English] Render the whole animation range or a sub-range, one file per frame. Rendering a full sequence can take minutes; the call blocks until it finishes.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | 结束帧;省略用场景动画范围终点。 | Last frame; omit to use the scene animation range end. | |
| path | No | 输出基准路径;省略则写入渲染输出目录。 | Base output path; omit to use the render output folder. | |
| start | No | 起始帧;省略用场景动画范围起点。 | First frame; omit to use the scene animation range start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive, and the description adds meaningful behavioral context beyond that: the call blocks until completion and full sequences can take minutes. This is useful operational information and does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The English portion is tight and front-loaded: action, output format, then performance warning. The bilingual duplication adds length but appears intentional; no filler or irrelevant detail is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core behavior, output granularity, and blocking duration, which is adequate for basic invocation. However, it does not mention overwrite behavior despite the destructive hint, nor does it clarify when to use render_animation versus render_still/render_frames/render_batch. With no output schema, a bit more guidance would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all three parameters at 100% coverage, so the baseline is 3. The description reinforces the notion of a sub-range and per-frame output but does not add new parameter-specific semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Render the whole animation range or a sub-range, one file per frame." It clearly names the operation and output granularity, though it does not explicitly distinguish itself from siblings like render_frames or render_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use versus alternatives such as render_still, render_frames, or render_batch is provided. The warning that full-sequence rendering is slow and blocks gives implicit context for choosing sub-ranges, but it never states when this tool should be preferred over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_batchBDestructive
一次调用里排队渲染多个「相机 + 路径 + 帧」组合。jobs 是对象数组,每项含 camera、path、frame。返回每项的写入结果。整批会较慢,调用阻塞直到完成。 [English] Queue several camera/path/frame combinations in one call. jobs is an array of objects, each with camera, path and frame. Returns the write result per job. The whole batch is slow and the call blocks until done.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | 渲染任务数组,每项 {camera, path, frame}。 | Array of render jobs, each {camera, path, frame}. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: it states that the call blocks until done and is slow, and that it returns the write result per job. This goes beyond the destructiveHint=true annotation by explaining the blocking and per-job result nature. However, it doesn't elaborate on what destructive means (e.g., file overwriting) or behavior on partial failure, so it adds some but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bilingual, providing the same information in Chinese and English. It front-loads the core purpose and then explains the jobs parameter and blocking behavior. While the duplication could be redundant for a single-language audience, it serves international users. The text is concise and well-structured, earning a solid score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch tool with a nested object parameter and no output schema, the description covers the basic structure, return type, and blocking behavior. However, it omits important details such as error handling (what happens if one job fails), prerequisites (e.g., cameras and paths must exist), and whether the operation is atomic. These gaps are significant for a batch operation, so the description is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents that jobs is an array of objects with camera, path, and frame, and the description repeats this information without adding further detail such as data types or required fields per item. With schema description coverage at 100%, the baseline is 3, and the description provides no additional semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queues multiple camera/path/frame combinations in one call, which is specific and distinct from single-render tools. It uses the verb 'queue' and specifies the resource types, making the purpose unambiguous. However, it doesn't explicitly name sibling tools like render_still or render_frames to differentiate, so it loses a point for lack of explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as render_still, render_frames, or render_animation. The description only explains what it does, not the conditions that would make batching preferable. An agent would have to infer that this is for multiple independent renders; no explicit 'use this when' or 'instead of' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_camera_viewADestructive
通过指定相机渲染一帧。相机名解析不到时报错。 [English] Render a single frame through a named camera. Fails if the camera name does not resolve to a node.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出文件绝对路径;省略则写入渲染输出目录。 | Absolute output path; omit to use the render output folder. | |
| frame | No | 要渲染的帧号;省略为当前帧。 | Frame to render; omit for the current frame. | |
| camera | Yes | 相机对象名。 | Camera object name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a useful behavioral detail beyond the annotations: rendering fails if the camera name does not resolve. The annotations already signal readOnlyHint=false and destructiveHint=true, so the safety profile is present. It does not discuss file overwriting or other side effects, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and includes an important error condition in just two sentences. The bilingual formatting is purposeful and does not add unnecessary bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with full schema coverage and annotations, the description captures the core invocation details: named-camera single-frame rendering, optional output path/frame, and failure mode. The main gap is the lack of a direct pointer to render_still or render_frames for alternative rendering use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains path, frame, and camera. The description reinforces that camera must be a node name and that invalid names cause an error, but it does not add significant semantic depth beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action ('Render a single frame') and a specific resource ('through a named camera'), and it adds an explicit failure mode. It is clear, but it does not explicitly distinguish this from sibling tools such as render_still or render_frames.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you want to render one frame via a named camera. It also clarifies that the camera name must resolve to a node. However, it gives no explicit guidance about alternatives or cases where render_still or render_frames would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_element_addADestructive
添加一个渲染元素:zdepth / normal / objectid / materialid / alpha / reflection / refraction / specular / diffuse / lighting / shadows / ao / sss / uv / velocity 等。ZDepth、Normal 等需要显式输出路径,否则渲染会静默跳过——可在此用 output 指定。 [English] Add a render element: zdepth / normal / objectid / materialid / alpha / reflection / refraction / specular / diffuse / lighting / shadows / ao / sss / uv / velocity. ZDepth, Normal and friends need an explicit output path or the render silently skips them - pass output here to set one.
| Name | Required | Description | Default |
|---|---|---|---|
| output | No | 可选的输出文件路径;建议对 ZDepth/Normal 等显式指定。 | Optional output file path; recommended for ZDepth/Normal etc. | |
| element | Yes | 渲染元素友好名。 | Render element friendly name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a mutating/destructive operation (destructiveHint=true, readOnlyHint=false), and the description adds a non-obvious behavioral warning that certain elements are silently skipped without an explicit output path. This is useful, non-obvious behavior that the annotations alone would not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, lists the full range of supported elements, and front-loads the critical silent-skip warning. The bilingual duplication is slightly repetitive but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the core call pattern, the accepted values, and the key pitfall around output paths. It is sufficient for an agent to invoke the tool correctly, though it does not exhaustively document every possible render element value beyond the examples and 'etc.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents element and output. The description adds meaning by enumerating the accepted render-element names and explaining why the optional output parameter matters specifically for ZDepth/Normal, going beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a render element and enumerates the supported element types (zdepth, normal, objectid, etc.), so an agent knows exactly what operation and resource are involved. It does not explicitly contrast itself with sibling tools like render_element_remove or render_element_set_output, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a valuable usage condition: ZDepth, Normal, and similar elements need an explicit output path or the render silently skips them, and the output parameter is the way to set it. However, it does not explicitly say when to prefer this tool over alternatives such as render_element_set_output for adjusting output paths later, leaving part of the decision implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_element_removeADestructive
按索引或友好名移除一个渲染元素。 [English] Remove a render element by index or by friendly name.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 要移除的渲染元素索引(0 起);与 element 二选一。 | 0-based index of the element to remove; alternative to element. | |
| element | No | 要移除的渲染元素友好名;与 index 二选一。 | Friendly name of the element to remove; alternative to index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is covered. The description adds little behavioral context beyond saying it removes an element; it does not mention irreversibility, failure behavior on invalid index/name, or that only render elements are affected. This is acceptable given annotations, but no extra value is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and covers both languages without unnecessary detail. Every sentence contributes the essential operation and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and destructive annotations, the description is sufficient. It conveys the operation and the available identifiers, and the sibling context clarifies the domain. It could mention needing an existing render element or listing first, but this is not a significant gap given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well documented. The description restates that removal can be by index or friendly name, mirroring the schema without adding new semantic detail such as precedence, edge cases, or how to discover valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove'), the resource ('render element'), and the two identifying modes ('by index or by friendly name'). This distinguishes it from related siblings like render_element_add and render_element_set_output, making tool selection straightforward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'remove' and the named parameters, but the description does not explicitly state when to prefer this over alternatives or mention prerequisites such as listing existing render elements first. It is clear enough for a simple removal operation, but lacks explicit exclusion or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_element_set_outputADestructive
给一个渲染元素设置输出文件路径。ZDepth、Normal 等若不设路径,渲染会静默跳过。 [English] Set the output file path for a render element. Without a path, ZDepth, Normal and friends are silently skipped by the render.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 渲染元素索引(0 起);与 element 二选一。 | 0-based index; alternative to element. | |
| output | Yes | 输出文件路径。 | Output file path. | |
| element | No | 渲染元素友好名;与 index 二选一。 | Friendly name; alternative to index. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the description doesn't contradict them. It adds valuable behavioral context: without a path, certain render elements are silently skipped. This goes beyond the annotations and helps the agent understand the side-effect of not setting a path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, bilingual, and front-loaded with the core purpose. It avoids redundancy and states the critical consequence in the second sentence, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with three parameters (one required) and no output schema, the description is adequate. It covers the main purpose and the key behavioral nuance (silent skipping), while the schema handles parameter details. No critical information for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter (index, output, element) including their types and the mutual exclusivity of index/element. The description adds no additional parameter-specific meaning beyond the schema's coverage, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'set' and the resource 'output file path for a render element', and it distinguishes itself from sibling tools like render_element_add/remove by focusing on path assignment. It also explains the consequence of not setting a path (silent skipping of ZDepth/Normal), which clarifies its purpose in the rendering pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this to set output paths for render elements, especially to avoid silent skipping. It doesn't explicitly mention when not to use it or name alternatives, but the consequence statement serves as a strong implicit guideline, making the intended usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_elements_listARead-only
列出当前场景已添加的渲染元素(ZDepth、Normal、ObjectID、Alpha、Reflection 等),支持 limit/offset 分页。 [English] List the render elements currently added to the scene (ZDepth, Normal, ObjectID, Alpha, Reflection, ...) with limit/offset pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 100。 | Maximum entries, default 100. | |
| offset | No | 跳过条数,默认 0。 | Skip count, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context by specifying it operates on 'currently added to the scene' elements and supports pagination, but it does not disclose return format, empty result behavior, or any engine-specific constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bilingual description is compact and front-loaded with the core action and resource. The element examples and pagination note are valuable. The English/Chinese duplication doubles length, but that is purposeful for a bilingual tool, so it remains appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two fully documented parameters and read-only annotations, the description is mostly complete. However, since there is no output schema, a brief note about the expected return structure would improve completeness for an agent deciding how to consume the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both limit and offset already have clear descriptions. The description only repeats the pagination concept without adding new parameter details, so it provides little value beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a specific resource ('render elements currently added to the scene') and provides concrete element examples (ZDepth, Normal, ObjectID, Alpha, Reflection). This makes the tool's purpose immediately clear and distinguishes it from sibling tools like render_element_add, render_element_remove, and render_element_set_output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly defines the scope: it lists only current scene render elements, not engines or global render settings. It also mentions pagination support, which sets expectations for large result sets. However, it does not explicitly name alternatives or state when not to use this tool, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_framesADestructive
渲染一串明确的帧号,每帧一个文件(文件名按帧号编号)。返回每个文件的写入结果。渲染一整批会非常慢,调用会阻塞直到全部完成。 [English] Render an explicit list of frames, one file per frame (numbered by frame index). Returns the write result for each file. A whole batch can take minutes and the call blocks until everything is done.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出基准路径;省略则写入渲染输出目录。 | Base output path; omit to use the render output folder. | |
| frames | Yes | 要渲染的帧号列表。 | List of frame numbers to render. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the mutation/side-effect profile is known. The description adds valuable behavioral detail beyond that: the call blocks until completion, can take minutes, and produces one written file per frame. It stops short of saying whether existing files are overwritten, but the destructive annotation lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short bilingual sentences with no filler: it front-loads the purpose, then states return behavior and the blocking/performance warning. Every sentence adds information, and the warning is placed immediately after the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and a clear purpose, the description is nearly complete: it covers behavior, return value, output naming, and an important performance caveat. It lacks only an explicit pointer to sibling tools for other rendering workflows, and there is no output schema to elaborate the returned write results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'path' and 'frames' are already documented in the input schema. The description adds some helpful context around output numbering and blocking, but it does not meaningfully explain parameter formats or constraints beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Render an explicit list of frames'), the exact resource (frame numbers), and the output behavior (one file per frame, numbered by frame index). It also says it returns the write result for each file, which disambiguates it from nearby render tools like render_animation or render_still.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when the caller has an explicit list of frames rather than a full sequence. It also warns that a whole batch is slow and blocks, which is cautious guidance. However, it never names alternatives or states when not to use this tool, leaving sibling differentiation mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_get_engineARead-only
返回当前生产渲染器的类名。 [English] Return the class name of the current production renderer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read nature is covered. The description adds just the specific 'class name' result but no additional behavioral context such as output format, possible failure modes, or relationship to the active render switch. This meets the lower bar for annotated tools but adds little beyond it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact, bilingual, and front-loaded with the action and target. Every word earns its place, and there is no unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless, read-only getter with annotations already covering safety and no output schema, the description provides all necessary context. Nothing critical is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is effectively complete (100% coverage with no properties). Per the baseline for zero-parameter tools, the description does not need to explain parameters; the query semantics are sufficiently clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('return') and a specific resource ('class name of the current production renderer'). This clearly distinguishes it from the sibling render_set_engine (setter) and list_render_engines (listing available engines), so an agent can select it correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a query use case ('current production renderer'), and the read-only hint reinforces that. However, it does not explicitly mention when to prefer this over list_render_engines or render_set_engine, so usage guidance is only implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_get_settingsARead-only
返回渲染设置的快照:分辨率、像素比、输出路径与格式、时间范围类型、起止帧、选帧字符串、是否保存文件。用于确认导出/渲染前的配置。 [English] Return a snapshot of the render settings: resolution, pixel aspect, output path and format, time-range type, start/end frames, the selected-frames string and whether file saving is enabled. Use it to confirm the configuration before rendering.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
注释已声明 readOnlyHint=true 和 destructiveHint=false,描述在此基础上增加了“快照”这一语义,明确这是一个非破坏性的只读操作。描述还披露了具体返回哪些渲染设置字段,比单纯依赖注释提供了更多行为信息。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
描述结构清晰,先给出中文说明,再提供英文对照,关键信息如“快照”和用途均放在前面。中英文内容基本重复,存在一定冗余,但整体篇幅仍然很短,没有无关信息。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
虽然没有输出模式,但描述已完整列举了该工具返回的主要渲染设置字段,足以让代理了解调用后会得到什么信息。对于零参数、只读快照类工具,这一描述已经覆盖了核心上下文;唯一不足是未说明字段的具体格式或单位,但影响较小。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
该工具没有参数,输入模式为空,因此参数语义不构成负担。描述没有引入与参数相关的歧义,也不需要额外解释参数含义,符合零参数工具的基线评分。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明确了工具行为:返回渲染设置的快照,并具体列举了返回内容(分辨率、像素比、输出路径和格式、时间范围、起止帧、选帧字符串、是否保存文件)。这清楚地将其与兄弟工具如 render_get_engine(仅查询引擎)和 render_set_*(修改设置)区分开来。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述明确说明应在渲染/导出前使用此工具来确认配置,给出了清晰的使用场景。但它没有显式说明何时不应该使用此工具,或是应改用 render_set_* 系列工具来修改设置,因此缺少排除性指引。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_load_presetADestructive
从 .rps 文件载入渲染预设。文件不存在时报错。 [English] Load a render preset from a .rps file. Fails if the file does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | .rps 预设文件路径。 | .rps preset file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful failure behavior 'Fails if the file does not exist,' which is beyond the annotations. However, it does not disclose that loading a preset will overwrite or change current render settings, even though destructiveHint=true already signals mutating behavior. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and front-loaded, stating the core action, the file type, and the key error condition in two short parallel sentences. There is no filler or unnecessary explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter operation augmented by destructiveHint=true and a complete schema, the description covers the essential purpose and a key failure mode. It does not mention return values or side effects in detail, but the tool is simple enough that this is a minor gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the single 'path' parameter with a matching description. The tool description adds little beyond the .rps format context, so the baseline score of 3 applies since schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (load), the resource (render preset), and the file format (.rps), and even includes an error condition. However, it does not explicitly contrast with the sibling render_save_preset or other render-related tools, so it stops short of full 5-level differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you want to load a render preset from a .rps file, and the file must exist. But there is no explicit guidance about when not to use it, what rollback options exist, or which alternative should be used for saving or creating presets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_previewADestructive
生成一段预览动画文件(默认 .avi)。用于快速检查运动而不做正式渲染。 [English] Make a preview animation file (default .avi). Use it for a quick motion check without a full render.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 预览文件绝对路径;省略用预览目录。 | Absolute preview path; omit to use the preview folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, so the description doesn't need to restate that. The description adds context that the tool creates a preview file (default .avi) and is for quick motion checks. It doesn't disclose details like whether it overwrites existing files, what happens to the current render settings, or whether it affects the scene. Given the destructive hint, the description could have added more context about what gets overwritten or changed, but it does add some value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences in both Chinese and English. It front-loads the core purpose and default format. The bilingual repetition is somewhat redundant but serves a clear audience purpose. Every sentence earns its place, though the English translation is essentially a duplicate of the Chinese, which is acceptable for a bilingual tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description covers the essential purpose and usage context. However, it doesn't mention what the output file contains, how long the preview is, or any side effects (e.g., overwriting existing preview files). Given the destructiveHint annotation, an agent might need to know if this overwrites an existing file at the path. The description is adequate but not complete for a tool with destructive potential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single 'path' parameter. The description adds that omitting the path uses the preview folder, which is useful context beyond the schema. However, it doesn't add details about file extension handling, directory creation, or naming conventions. Baseline 3 is appropriate since the schema covers the parameter well and the description adds a small but useful clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('generate'/'make') and resource ('preview animation file'), and clarifies the default format (.avi). It distinguishes itself from full rendering by noting it's for a quick motion check without a formal render. However, it doesn't explicitly name a sibling alternative like render_animation or anim_play_preview, so differentiation from siblings is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use it: for a quick motion check without a full render. This implies it should be used instead of full render tools like render_animation or render_frames. However, it doesn't explicitly state when not to use it or name alternative tools, so the guidance is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_regionADestructive
只渲染画面上的一个矩形区域(像素坐标 x,y,width,height)——典型的「先看看这块灯光对不对」工作流。 [English] Render only a rectangular region of the frame in pixel coordinates x,y,width,height - the classic "check the lighting on this one area" workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | 区域左上角 x(像素)。 | Region left x in pixels. | |
| y | No | 区域左上角 y(像素)。 | Region top y in pixels. | |
| path | No | 输出文件绝对路径;省略则写入渲染输出目录。 | Absolute output path; omit to use the render output folder. | |
| frame | No | 要渲染的帧号;省略为当前帧。 | Frame to render; omit for the current frame. | |
| width | No | 区域宽(像素);省略用整宽。 | Region width in pixels; omit for full width. | |
| height | No | 区域高(像素);省略用整高。 | Region height in pixels; omit for full height. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety/mutation profile is carried by structured data. The description adds no further side-effect detail (e.g., file overwrite behavior), but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core operation, followed by a useful workflow phrase. The English/Chinese duplication doubles length slightly, but it is still economical and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no required fields, the schema documents all parameters and the annotations cover side effects. The description supplies the intended workflow and rectangle semantics, making it sufficient; only explicit return/output details are absent, and no output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description only restates the rectangle parameters at a high level. It adds the 'pixel coordinates' framing and the lighting-check use case, but no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Render only a rectangular region of the frame in pixel coordinates x,y,width,height.' The qualifier 'only' and the region focus clearly distinguish it from sibling render tools like render_still or render_frames that target the full frame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case: the 'check the lighting on this one area' workflow. It does not name alternatives or state when not to use it, so it lacks explicit exclusion guidance, but the context is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_save_presetADestructive
把当前渲染预设保存为 .rps 文件。缺扩展名会自动补 .rps。 [English] Save the current render preset to a .rps file. A missing extension is completed to .rps automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 目标 .rps 文件路径。 | Destination .rps file path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint: true and readOnlyHint: false, indicating a write operation. The description adds the useful behavior that a missing extension is automatically completed to .rps, which is beyond the annotations. However, it does not disclose whether existing files are overwritten, or any error conditions, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences (one in Chinese and its English equivalent). The core purpose is front-loaded, and the extension behavior is included without redundancy. There is no wasted wording, and the bilingual format serves clarity without adding bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple imperative tool with one parameter and no output schema, the description covers the essential action and file extension behavior. It does not state whether existing files are overwritten, but given the destructiveHint annotation, the agent can reasonably infer a write operation. The description is sufficiently complete for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the 'path' parameter is 100%, so the baseline is 3. The description adds semantic value by specifying that a missing extension is automatically appended, which is critical for correctly forming the file path. This goes beyond the schema's generic description of the path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'save' and the resource 'current render preset' to a .rps file. It is unambiguous and easily understood. However, it does not explicitly differentiate from the sibling tool 'render_load_preset' by naming it, relying on the inherent contrast between save and load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: to save the current render preset as a .rps file. It provides no explicit guidance on when to use this tool versus alternatives like render_load_preset or export_engine_preset, and no conditions or exclusions are mentioned. The intended use is inferable from the straightforward action, but no alternatives are called out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_engineADestructive
按友好名称切换生产渲染器:scanline / arnold / vray / corona / fstorm / redshift / art / quicksilver。会先逐个探测候选类(用 mcpClassExists),若本机没有则报错并列出实际可用的渲染器。切换渲染器不会改变场景内容,但会重置部分渲染设置。 [English] Switch the production renderer by friendly name: scanline / arnold / vray / corona / fstorm / redshift / art / quicksilver. Each candidate class is probed with mcpClassExists; if the machine lacks it the call fails with a clear message listing the renderers this Max actually has. Switching does not alter the scene but may reset some render settings.
| Name | Required | Description | Default |
|---|---|---|---|
| engine | Yes | 渲染器友好名。 | Friendly renderer name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations: it explains that the tool first probes candidate classes, fails with a useful error listing installed renderers, leaves scene content untouched, and may reset some render settings. This fleshes out the destructiveHint with the exact scope of the mutation and no contradiction with readOnlyHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and every sentence adds information (action, valid values, probing, error behavior, side effects). The bilingual repetition is the only redundancy and is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the param, failure behavior, and side effects, which is sufficient for a one-parameter setter. The only missing piece is an explicit statement of the success return value, but no output schema exists and the behavior is otherwise fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the only parameter with an enum and example, and the description simply restates the same friendly names. It adds no new per-parameter semantics beyond the schema, so it earns the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Switch) with a precise resource (production renderer) and the exact allowed values, including the list of eight friendly names. This separates it from render_get_engine (query) and list_render_engines (list) without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the operation as switching the production renderer by friendly name, giving the agent a direct trigger condition. It does not, however, name the sibling query/list tools or give a when-not-to-use rule, so it stops at clear context rather than explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_frame_rangeADestructive
设置要渲染的帧范围:scene(活动时间段)/ single(单帧)/ range(起止帧)/ frames(选帧字符串)。single 可省略 mode 直接用 frame 指定帧号。 [English] Set which frames to render: scene (active time segment) / single (one frame) / range (start..end) / frames (a selected-frames string). For single you may skip mode and pass frame directly.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | range 模式的结束帧。 | End frame for range mode. | |
| mode | No | 范围模式。 | Range mode. | |
| frame | No | single 模式的帧号。 | Frame number for single mode. | |
| start | No | range 模式的起始帧。 | Start frame for range mode. | |
| frames | No | frames 模式的选帧字符串,例如 "1,3,5-9"。 | Selected-frames string for frames mode, e.g. "1,3,5-9". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation behavior is known. The description adds that this operation sets render frame range but does not disclose side effects such as overwriting previous settings or whether any render setup is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The Chinese and English versions are compact, front-load the core purpose, and each clause conveys a mode or a usage shortcut. There is no filler or repeated schema boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small setter with no output schema and all-optional parameters, the description covers the mode vocabulary and key parameter relationship. It would be more complete if it explicitly listed required arguments per mode or stated the default when no args are provided, but those are inferable from the mode labels.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by mapping each mode to the relevant parameter concept and documenting the non-obvious shorthand that single may omit mode and pass frame directly. Conditional requirements per mode are not explicitly spelled out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('set'), a precise resource ('frame range'), and enumerates the four modes. It clearly differentiates this configuration tool from siblings like render_frames by focusing on selecting frames rather than executing a render.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'set which frames to render' implies it is a configuration step, and the mode list gives selection guidance, but it does not explicitly direct the agent to sibling tools (e.g., render_frames/render_animation) for actually performing the render or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_outputADestructive
设置渲染输出文件路径与格式(png/jpg/tga/tif/exr/hdr)。会自动开启「保存到文件」。路径缺扩展名时会按格式补全。 [English] Set the render output file path and format (png/jpg/tga/tif/exr/hdr). Turns on "save to file" automatically. A missing extension is appended from the format.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 输出文件绝对路径(可带或不带扩展名)。 | Absolute output path (with or without extension). | |
| format | No | 图像格式。 | Image format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses non-obvious behaviors: it automatically enables 'save to file', and appends the missing file extension based on the chosen format. Annotations already flag the tool as destructive, and the description adds useful context without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the purpose first, then the key side effects, with no filler. The bilingual format is appropriate for the context and both versions stay concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage and no output schema, the description covers invocation, supported formats, and important side effects. Minor gaps remain around behavior when format is omitted and whether an existing output file would be overwritten, but these do not prevent correct selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters at 100% coverage, so the baseline is 3. The description adds extra meaning by explaining that a missing extension will be appended from the format and that the output path is absolute, which helps correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Set the render output file path and format', and enumerates the supported formats. This clearly distinguishes it from sibling render_* tools that set resolution, quality, or frame range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is for configuring the render output path/formats before rendering, and it notes the automatic 'save to file' side effect. It does not explicitly name alternatives or when-not conditions, but the purpose is unambiguous among the render-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_qualityADestructive
设置一个通用的质量/采样旋钮,并尽可能写入渲染器特定的采样参数(aaSamples、samples 等)。不同渲染器的属性名差异很大,无法写入的会被忽略;用 render_get_settings 核对是否生效。 [English] Set a generic quality/sampling knob and, where the renderer exposes them, renderer-specific sampling properties (aaSamples, samples, ...). Property names vary greatly between renderers; anything it does not understand is silently ignored. Verify with render_get_settings.
| Name | Required | Description | Default |
|---|---|---|---|
| quality | No | 质量档位(如 low/medium/high/production);渲染器不支持则忽略。 | Quality tier (e.g. low/medium/high/production); ignored if unsupported. | |
| samples | No | 采样数/细分;渲染器不支持则忽略。 | Sample count / subdiv; ignored if unsupported. | |
| antialiasing | No | 是否开启抗锯齿,默认是。 | Enable antialiasing, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses a key behavioral trait: 'anything it does not understand is silently ignored.' It also directs the agent to render_get_settings for verification, which is especially valuable because there is no output schema describing return values. This tells the agent not to assume the operation fully succeeded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is logically ordered: action, caveat, verification. The bilingual duplication makes it longer than strictly necessary, but both language blocks are succinct and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it covers the most important operational facts: what it sets, when settings are ignored, and how to confirm the result. It does not explicitly address calling with no parameters or name the active renderer, but those are minor gaps given the full schema coverage and the explicit verification pointer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has an explanatory description. The tool description adds examples like aaSamples and samples and explains the ignore-if-unsupported behavior, but it does not meaningfully change per-parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Set a generic quality/sampling knob', and clearly specifies it also writes renderer-specific sampling properties like aaSamples and samples. It is easily distinguished from sibling render tools such as render_set_resolution or render_set_engine.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use it: when a generic quality/sampling adjustment is needed. It also warns that unsupported properties are silently ignored and tells the agent to verify the result with render_get_settings. It does not explicitly name alternatives or list when not to use it, but the scope is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_set_resolutionADestructive
设置渲染分辨率(宽、高、像素比)。任一项省略则保持不变。 [English] Set the render resolution (width, height, pixel aspect). Omit any field to leave it unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | 像素宽。 | Pixel width. | |
| height | No | 像素高。 | Pixel height. | |
| pixelAspect | No | 像素宽高比,默认 1.0。 | Pixel aspect ratio, default 1.0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate mutation (readOnlyHint=false, destructiveHint=true), and the description adds meaningful behavioral context by disclosing the partial-update semantics: any omitted field is left unchanged. This is useful beyond the structured annotations, though return behavior and failure modes are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and contains no filler. The primary action and the most important behavioral caveat are front-loaded in two short sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with three optional parameters and full schema coverage, the description covers the purpose, parameter scope, and the key partial-update behavior. It omits only minor details such as positive value constraints or return values, which are unlikely to be critical given the annotations and simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already documented with pixel units and the pixelAspect default. The description adds cross-parameter semantics by stating that omitted parameters retain their current values, which is not encoded in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Set the render resolution' and lists the affected fields (width, height, pixelAspect). It is unambiguous, but it does not explicitly contrast itself with sibling render_* setters such as render_set_output or render_set_quality, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when the render resolution needs to be set. It also provides a key usage rule: omitted fields remain unchanged. It does not name alternatives or exclusions, but no direct sibling duplicates this exact function, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_stillADestructive
渲染当前(或指定)帧到文件,并返回解析后的输出路径与文件是否真的写出来了。渲染会阻塞 3ds Max,调用会一直等到完成。省略 path 时写到渲染输出目录。 [English] Render the current frame (or a named frame) to a file and return the resolved output path plus whether the file was actually written. Rendering blocks 3ds Max, so the call waits until it finishes. Omit path to render into the render output folder.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出文件绝对路径;省略则写入渲染输出目录。 | Absolute output path; omit to use the render output folder. | |
| frame | No | 要渲染的帧号;省略为当前帧。 | Frame to render; omit for the current frame. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=true), it discloses that rendering blocks 3ds Max and waits, and that the call returns whether the file was actually written. It does not mention potential overwriting of an existing file, but destructiveHint already signals that risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, putting the core action first and then the blocking behavior. It is duplicated in Chinese and English, which adds length, but this is reasonable for a bilingual tool and does not obscure the content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two well-documented optional parameters and no output schema, the description covers the essential call contract: what it renders, where output goes, that it blocks, and what it returns. It could add detail about output format or overwrite behavior, but those are governed by render settings and the destructive annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters already have full schema descriptions (100% coverage), including the absolute path and the default-frame behavior. The description restates the omit-path behavior rather than adding new semantic detail, so it earns the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action — "Render ... frame to a file" — and the exact resource, plus the return values (resolved output path and whether the file was written). The singular "current (or a named frame)" distinguishes it from multi-frame siblings like render_frames and render_animation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes the single-frame use case and that the call blocks until completion, giving an agent a concrete invocation context. It does not explicitly name alternatives or say when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_transformADestructive
清零对象的旋转与缩放(或位置),把变换烘焙回对象自身。缩放父级会连带扭曲子级,先调用它再缩放。 [English] Reset an object's rotation and scale (or position), baking the transform into the object. Scaling a parent skews children; call this before scaling.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | 是否清零缩放,默认是。 | Reset scale, default true. | |
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| position | No | 是否清零位置,默认否。 | Reset position, default false. | |
| rotation | No | 是否清零旋转,默认是。 | Reset rotation, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond annotations: it explains that transforms are 'baked into the object' rather than merely adjusted, and it warns about parent-scaling skewing children. Annotations already indicate destructive behavior, and the description aligns with that rather than contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and includes only valuable extra context: the parent-scaling warning. Repeating in Chinese and English is consistent with the bilingual schema and adds no real overhead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four optional parameters, no output schema, and a destructive annotation, the description covers the essential behavior and a critical edge case. It could mention effects on pivot or world/local space, but the current description gives enough context for correct invocation in the main intended workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already described with defaults. The description adds little parameter-level meaning beyond clarifying that position can optionally be reset and that scale reset is especially relevant before scaling a parent. This meets the baseline but does not substantially exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: reset an object's rotation and scale (or position) and bake the transform into the object. It clearly distinguishes this from generic transform operations and identifies what the tool does without relying on the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage scenario: 'Scaling a parent skews children; call this before scaling.' This tells the agent when the tool is important. It does not explicitly name alternatives or say when not to use it, but the provided context is sufficient for a specialized transform-reset tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_create_boneADestructive
从根位置沿 direction 方向创建一根骨骼,长度 length、宽 width、高 height。骨骼是绑定之基,先做这根再 rig_create_bone_chain 串成肢体。 [English] Create one bone from a root position along direction, with length, width and height. Bones are the basis of rigging - make one, then chain them with rig_create_bone_chain into a limb.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 骨骼名。 | Bone name. | |
| width | No | 骨骼宽度。 | Bone width. | |
| height | No | 骨骼高度。 | Bone height. | |
| length | No | 骨骼长度。 | Bone length. | |
| position | No | 根位置 [x,y,z],默认原点。 | Root position [x,y,z], default origin. | |
| direction | No | 生长方向 [x,y,z],默认 X 轴。 | Growth direction [x,y,z], default X axis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only, so the mutating nature is known. The description adds that bones are the foundation of rigging and that a single bone is created, but it does not disclose possible side effects such as name conflicts, overwriting, or what happens if no parameters are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence defines the action and parameters, while the second adds useful workflow context. The bilingual repetition is a minor redundancy but not a significant burden.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool, the description plus schema adequately covers what is created, the key parameters, defaults, and the follow-up tool. No output schema exists, so return-value details are not required; only explicit destructive side-effect details are mildly missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already defines each parameter, including defaults for position and direction. The description largely paraphrases these fields without adding units, coordinate-space details, or axis conventions, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('创建一根骨骼' / 'Create one bone') and clearly names the resource, root position, direction, and dimensions. It also distinguishes this tool from the sibling rig_create_bone_chain by stating that this creates a single bone before chaining them into a limb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear workflow: create one bone first, then use rig_create_bone_chain to form a limb. It names the relevant sibling and the ordering, though it does not discuss exclusions or alternative conditions in more depth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_create_bone_chainADestructive
在 start 与 end 两点之间创建 count 根骨骼串成一条链——几乎所有肢体(手臂、腿、脊柱)都由它构成。每根骨的枢轴落在分段起点,并自动父子链接。 [English] Create a chain of count bones between start and end - nearly every limb (arm, leg, spine) is built from this. Each bone's pivot sits at its segment start and they are auto parented.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | 链终点 [x,y,z]。 | Chain end [x,y,z]. | |
| name | No | 链根名前缀。 | Chain root name prefix. | |
| count | Yes | 骨骼数量(>=2)。 | Number of bones (>=2). | |
| start | Yes | 链起点 [x,y,z]。 | Chain start [x,y,z]. | |
| width | No | 骨骼宽度。 | Bone width. | |
| height | No | 骨骼高度。 | Bone height. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly=false and destructiveHint=true, so the description's additional details about pivot placement and automatic parenting add real behavioral value beyond the structured metadata. It does not describe any overwrite/replacement side effects, but that risk is already covered by the destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core creation behavior, followed by a useful usage note and two key behavioral details. The bilingual repetition doubles the text without adding semantic content, which prevents a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a fully covered schema, annotations marking the mutation, and a straightforward creation task, the description provides enough to call the tool correctly. It could mention naming or orientation defaults, but these are not blocking because the schema documents the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mainly restates the start/end/count relationship already present in the schema and adds no units, coordinate-space conventions, or default behaviors for the optional name/width/height parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Create a chain of count bones between start and end' with concrete geometric inputs. It also clarifies the result ('each bone's pivot sits at its segment start and they are auto parented'), which distinguishes this chain-creation tool from single-bone sibling tools like rig_create_bone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'nearly every limb (arm, leg, spine) is built from this', so an agent knows this is the canonical tool for building bone chains. It does not explicitly name alternatives or state when not to use it, so some selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_create_dummyADestructive
创建一个虚拟体(Dummy),绑定中常作为控制器/枢轴点。 [English] Create a Dummy helper, commonly used as a rig control / pivot point.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 虚拟体名。 | Dummy name. | |
| size | No | 盒体尺寸 [x,y,z],默认 [10,10,10]。 | Box size [x,y,z], default [10,10,10]. | |
| position | No | 位置 [x,y,z],默认原点。 | Position [x,y,z], default origin. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is covered. The description adds conceptual context but no additional behavioral details such as side effects on the scene or selection state; it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences with no filler. The purpose is front-loaded, and the Chinese/English duplication is justified for accessibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with three optional parameters, no output schema, and annotations covering safety, the description is largely sufficient. It explains what the object is and its typical use, though it could mention what is returned or that the object is added to the current scene.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents all three parameters with names, types, and defaults. The description adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create a Dummy helper', and adds its common role as a rig control/pivot point. It is unambiguous, but it does not explicitly differentiate from sibling tools like rig_create_point_helper or rig_create_bone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context by noting the Dummy is commonly used in rigging as a controller or pivot point. It does not explicitly state when to choose this over alternatives or mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_create_point_helperADestructive
创建一个 Point 辅助体,轻量且常作 IK 目标或约束目标。 [English] Create a Point helper, lightweight and often used as an IK or constraint target.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 辅助体名。 | Helper name. | |
| size | No | 显示尺寸。 | Display size. | |
| position | No | 位置 [x,y,z],默认原点。 | Position [x,y,z], default origin. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already state that the operation is not read-only and is destructive, and the description's 'Create' verb agrees with that. The description adds only 'lightweight' and common usage, not deeper behavioral details such as what happens to the scene, selection, or default naming. This is acceptable given the annotation coverage but adds limited new behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded, with the resource and purpose stated in one bilingual pair of sentences. There is no filler, and both language versions earn their place for an international tool surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with three optional, well-described parameters, the description plus schema covers the core call. It does not mention return values or side effects (e.g., whether the new helper is selected or how name conflicts are handled), and it does not say why it should be chosen over rig_create_dummy or rig_create_bone; these gaps keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the name, size, and position parameters are already documented with types and a default for position. The description adds no parameter-specific semantics, but because the schema carries the full burden, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Create') and the resource ('Point helper'), and adds the common purpose as an IK/constraint target. However, it does not explicitly contrast it with sibling helpers like rig_create_dummy or rig_create_bone, so it misses the full 5-level sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'often used as an IK or constraint target' implies a typical usage context, which helps an agent decide when to call it. There is no explicit when-not-to-use guidance or mention of alternatives among the rig_* siblings, so the guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_ik_disableADestructive
禁用骨骼链上各骨骼的 IK(恢复为 FK 手动摆放)。 [English] Disable IK on the bones of a chain (back to manual FK posing).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 骨骼名列表;省略则用当前选择。 | Bone names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and destructive. The description adds behavioral context by clarifying that IK is disabled and the chain returns to FK posing, but it does not state what is destroyed or modified internally, such as IK solvers or animation key impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact and front-loads the action. The bilingual format duplicates meaning but remains short and purposeful, with no filler or irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutator with one optional parameter, destructive annotations, and full schema coverage, the description is nearly complete. The only minor gap is not explicitly routing the agent to rig_ik_enable or other IK-related alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the only parameter 'objects' as an optional bone-name list that defaults to the current selection. The description adds no extra parameter detail, but with 100% schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('Disable') on a specific resource ('IK on the bones of a chain') and names the resulting state ('back to manual FK posing'). This clearly distinguishes it from the sibling rig_ik_enable and other rig tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied: call this when you want to disable IK and return to manual FK posing. However, it does not explicitly state when not to use it, nor does it name alternatives like rig_ik_enable or rig_ik_solver.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_ik_enableBDestructive
启用骨骼链上各骨骼的 IK(使其能被 IK 解算器驱动)。 [English] Enable IK on the bones of a chain (so they can be driven by the IK solver).
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 骨骼名列表;省略则用当前选择。 | Bone names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating operation (readOnlyHint=false, destructiveHint=true), but the description adds no behavioral context beyond the basic action. It does not explain what changes on the bones, whether existing animation or constraints are affected, or any irreversible consequences, despite the destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the core action stated immediately. The bilingual repetition is slightly redundant but acceptable for a localized tool; no filler or irrelevant detail appears.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with strong schema coverage and annotations, the description is adequately usable. However, it lacks information about return values, side effects, or workflow context, and the destructive annotation is not elaborated on, leaving some ambiguity for an agent deciding whether to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter, including the default behavior when omitted ('omit for the current selection'). Since schema description coverage is 100%, the description is not required to repeat parameter details, and it does not need to add more here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Enable IK on the bones of a chain', and explains the purpose ('so they can be driven by the IK solver'). This distinguishes it from sibling tools like rig_ik_disable and rig_ik_solver, even without explicitly naming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus related rigging tools, such as rig_ik_solver, rig_set_ik_chain, or rig_ik_goal. It does not state prerequisites, exclusions, or recommended workflow context beyond the general purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_ik_goalADestructive
移动 IK 目标(goal)到指定位置;可选 frame 在该帧写入关键帧,从而驱动整条链。 [English] Move the IK goal to a position; with frame the move is keyed at that frame, driving the whole chain.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 写入关键帧的帧;省略则不记录。 | Frame to key at; not recorded if omitted. | |
| objects | No | IK 目标对象名列表;省略则用当前选择。 | IK goal object names; omit for the current selection. | |
| position | Yes | 目标位置 [x,y,z]。 | Goal position [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as destructive, and the description goes beyond that by explaining that keying the move drives the whole chain and that omitting frame means no key is recorded. It does not warn about overwriting existing keys, but the destructive hint covers the mutation hazard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact bilingual sentences with the core action front-loaded and no filler. Every sentence carries useful information about what the tool does and the optional keying behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter mutation tool, the description combined with full schema coverage is largely sufficient. It explains the main effect and keying behavior; minor gaps such as coordinate space or overwrite semantics are not critical given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds only a slight restatement of position and frame semantics, without extra information such as coordinate space, units, or interaction between objects and current selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the specific action 'Move the IK goal to a position' and defines the resource, with the optional keyframe behavior clearly noted. This distinguishes it from sibling tools like rig_ik_enable or rig_set_ik_chain, which concern IK setup rather than goal manipulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for repositioning an IK goal and mentions optional keying, but it does not explicitly state when to use this over generic transform tools or when not to use it. No alternatives or prerequisites are given, so usage context is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_ik_solverADestructive
给一根骨骼链加 IK 解算器:HI Solver / HD Solver / Spline IK。会创建并自动绑定 IK 目标(goal)。 [English] Add an IK solver to a bone chain: HI Solver / HD Solver / Spline IK. Creates and auto-binds the IK goal.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | 解算器类型。 | Solver type. | |
| objects | No | 骨骼链(从根到梢)名列表;省略则用当前选择。 | Bone chain (root to tip) names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the operation as destructive, and the description adds the useful side effect that an IK goal is created and auto-bound. However, it does not disclose whether adding the solver overwrites an existing IK setup or what else changes on the bone chain, which would be valuable for a destructive rigging operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core operation, and includes only the essential behavioral note about auto-creating the goal. The bilingual repetition is purposeful localization, not unnecessary bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the 100% schema coverage and the destructive/read-only annotations, the description gives an agent enough to call the tool correctly: what it adds, which solver types are available, and that a goal is auto-created. It could add a warning about replacing existing IK, but the core invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are already well documented: 'type' lists the solver enum values and 'objects' explains bone-chain order and the current-selection fallback. The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('add') and resource ('bone chain'), names the three supported solver types (HI Solver / HD Solver / Spline IK), and notes that it creates and auto-binds the IK goal. This clearly distinguishes it from siblings like rig_ik_enable, rig_ik_disable, and rig_ik_goal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no guidance on when to use it versus alternatives such as rig_set_ik_chain, rig_spline_ik, or rig_ik_enable. There is no explicit 'use this when...' or 'instead of...' routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_link_objectsADestructive
把对象父子链接到 parent,并保持其世界变换不变(即视觉位置/朝向不跳变)。 [English] Parent objects under parent while keeping their world transform unchanged (the visual position / orientation does not jump).
| Name | Required | Description | Default |
|---|---|---|---|
| parent | Yes | 父对象名。 | Parent object name. | |
| objects | No | 要链接的子对象名列表;省略则用当前选择。 | Child object names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations by guaranteeing that world transforms remain unchanged. However, annotations already indicate this is a non-read-only, destructive operation, and the description does not explain what the destructive aspect affects, such as existing parent-child relationships.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the core operation and the key transform-preservation caveat in two short sentences. The bilingual duplication is acceptable in this context and adds no unnecessary noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation tool, the schema and description together provide enough information to invoke it correctly. The main gap is the lack of an explicit differentiation from the very similar parent_objects sibling, but return-value and error details are not critical here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the parameter descriptions in the schema already document the parent name and the optional child list with the current-selection fallback. The main description adds no parameter-level information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear operation: parent objects under a parent while preserving world transforms, and the 'visual position/orientation does not jump' clause adds a meaningful behavioral guarantee. It does not explicitly name or distinguish the sibling parent_objects tool, but the content is sufficiently specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: use this when you need to reparent objects without their world transform changing. However, the description does not explicitly say when to choose this over sibling tools like parent_objects, constraint_link, or group_objects, nor does it give exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_list_bonesARead-only
列出场景中所有骨骼(BoneGeometry)。只读,支持分页。可选 root 只列其子树。 [English] List every bone (BoneGeometry) in the scene. Read-only, paginated. Optional root limits the listing to its subtree.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | 只列该根下的骨骼(可选)。 | Only list bones under this root (optional). | |
| limit | No | 最多返回条数,默认 500。 | Maximum entries, default 500. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'Read-only' claim in the description adds no new information. However, the description adds valuable behavioral context: it states the tool supports pagination (via limit/offset) and that the optional root restricts results to a subtree. These are non-obvious behaviors that an agent needs to know and which are not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the essential purpose, and then provides supplementary details (read-only, pagination, optional root). The bilingual format is efficient and does not waste words. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with no required parameters and no output schema, the description covers the essential intent and key modifiers (pagination, scoping). The absence of output format details (e.g., fields of each bone) is a minor gap given the tool's simplicity and the fact that agents can invoke it and inspect results. The description is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (root, limit, offset) have descriptions in the schema (coverage 100%), and the description itself restates the root behavior but adds no new detail. The meaning of each parameter is fully captured by the schema, so the description adds no extra semantic value. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list), the resource (all bones of type BoneGeometry) and the scope (entire scene, or subtree). It is unambiguous and distinguishes itself from generic object-listing tools like list_objects by specifically targeting bone geometry. The bilingual text reinforces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when to use it: when you need to enumerate bones in the scene. It notes the optional root parameter for subtree scoping. While it doesn't explicitly exclude alternatives (e.g., 'use list_objects for other geometry'), the specificity of 'bone (BoneGeometry)' makes the use case obvious. No misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_mirror_bone_chainADestructive
沿某轴镜像一整条骨骼链,并自动重命名 _L/_R——手臂/腿镜像最常用也最繁琐的手工活。原链保持不动,新建的镜像链带新名。 [English] Mirror a whole bone chain across an axis and auto-rename _L/_R - the most common yet tedious manual job when mirroring arms/legs. The original chain is left untouched; the mirrored chain gets new names.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 镜像轴。 | Mirror axis. | |
| objects | No | 要镜像的骨骼名列表;省略则用当前选择。 | Bones to mirror; omit for the current selection. | |
| suffixL | No | 左侧后缀,默认 _L。 | Left suffix, default _L. | |
| suffixR | No | 右侧后缀,默认 _R。 | Right suffix, default _R. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds the important safety detail that the original chain is left untouched and the mirrored chain receives new names, which goes beyond the readOnly/destructive hints. However, with destructiveHint=true it does not disclose any possible overwrite/collision behavior or what would happen if target names already exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences, with the core operation and the original-chain guarantee front-loaded. The English translation repeats the Chinese content, which is useful for multilingual agents but adds slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description covers purpose, use case, scope, and side-effect guarantee. It does not describe return values or error states, but those are not required given the absent output schema and fairly simple resource.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema already documents all four parameters (100% coverage), so the baseline is 3. The description's 'auto-rename _L/_R' reinforces the suffix params but doesn't add new semantic details such as axis sign conventions or naming behavior beyond defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('mirror'), resource ('a whole bone chain'), and behavior ('auto-rename _L/_R'), and adds the key guarantee that the original chain is untouched. This makes it easy to tell apart from generic mirror_object or rig_create_bone_chain without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the tool as the most common and tedious manual job for mirroring arms/legs, giving clear when-to-use context. It does not name sibling alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_morpher_addADestructive
给对象加 Morpher 修改器,为变形目标(blendshape)动画做准备。 [English] Add a Morpher modifier to an object, preparing it for morph target animation.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds minimal behavioral context by framing the modifier as preparation for morph target animation, but it does not disclose what happens to the existing modifier stack or whether an object must be editable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action and purpose in two short bilingual sentences with no filler or repetition. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter modifier-add tool, the description plus schema is largely sufficient. It could mention applicability to multiple objects or prerequisites, but the core call pattern is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains that the objects parameter is a list of object names and that omitting it uses the current selection. The description adds no additional parameter-level detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a Morpher modifier to an object' and the purpose: preparing for morph target animation. It is specific about the resource and verb, but it does not explicitly distinguish itself from generic mod_add or the related rig_morpher_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the purpose phrase 'preparing it for morph target animation,' but there is no explicit guidance on when to choose this tool over alternatives like mod_add or rig_morpher_add_target. No exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_morpher_add_targetADestructive
向对象的 Morpher 添加一个变形目标网格(blendshape)。目标需与本体拓扑一致。 [English] Add a morph target mesh (blendshape) to the object's Morpher. The target must share the base mesh topology.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | 变形目标网格名。 | Morph target mesh name. | |
| objects | No | 带 Morpher 的对象名列表;省略则用当前选择。 | Morphed objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds one useful behavioral constraint: the target must share the base mesh topology. However, it does not disclose other behavioral details such as whether existing targets are preserved, whether validation occurs, or how errors are reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and contains no filler. The bilingual format repeats the same content, but that is appropriate for the likely audience and does not bloat the description. Every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple call with full schema coverage and annotations, but it omits important workflow context: it does not state that the object must already have a Morpher modifier, or what happens if it doesn't. Given the existence of sibling tools like rig_morpher_add, this prerequisite guidance would materially improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already defines both parameters. The description adds meaningful semantic value by stating the topology requirement for the target, which is not present in the parameter schema. It also reinforces the optional behavior of `objects` by noting selection fallback, though that is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Add a morph target mesh (blendshape) to the object's Morpher'. It clearly distinguishes this from sibling tools like rig_morpher_add by specifying that it adds a target to an existing Morpher, not the Morpher modifier itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus siblings such as rig_morpher_add or rig_morpher_set_value. It does not mention that the object must already have a Morpher modifier, nor does it direct the agent to rig_morpher_add if one is missing. The only usage hint is the topology requirement, which is a constraint, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_morpher_listARead-only
列出对象 Morpher 的所有通道名与当前值。只读,支持分页。 [English] List every morph channel name and its current value on an object. Read-only, paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回条数,默认 100。 | Maximum entries, default 100. | |
| offset | No | 跳过的条数,默认 0。 | Entries to skip, default 0. | |
| objects | No | 带 Morpher 的对象名列表;省略则取选择中的第一个。 | Morphed objects; the first of the selection if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool safe (readOnlyHint=true, destructiveHint=false). The description adds behavioral context beyond that: it returns channel names with current values and supports pagination. It does not go into error conditions or return format, but the annotations lower the burden enough for this simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the action and result in the first clause. The bilingual repetition is economical and adds no fluff; every part contributes to understanding the tool's purpose and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with complete parameter documentation and safety annotations, the description covers the essential behavior: what is listed, that it is read-only, and that pagination is supported. It does not describe return structure or edge cases, but the tool's output is straightforward enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit, offset, and objects already documented including defaults and fallback behavior. The description adds little beyond 'paginated', which is already reflected in the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') with a precise resource ('every morph channel name and its current value on an object'). It clearly distinguishes this read-only inspection tool from sibling mutation tools like rig_morpher_add, rig_morpher_set_value, and rig_morpher_add_target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case by stating it lists all Morpher channels and is read-only and paginated. However, it does not explicitly mention when to prefer this tool over related Morpher tools, nor does it state any exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_morpher_set_valueBDestructive
设置某个 Morph 通道的权重(0-100)以驱动变形;可选 frame 在该帧写入关键帧。 [English] Set a morph channel's weight (0-100) to drive the deformation; with frame the value is keyed at that frame.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | 写入关键帧的帧;省略则用当前帧。 | Frame to key at; current frame if omitted. | |
| value | Yes | 权重(0-100)。 | Weight (0-100). | |
| channel | Yes | 通道序号(从 1 起)。 | Channel index (1-based). | |
| objects | No | 带 Morpher 的对象名列表;省略则用当前选择。 | Morphed objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation safety profile is covered. The description adds behavioral context beyond annotations by stating that passing 'frame' keys the value at that frame and omitting it uses the current frame, which is genuine added value. It does not disclose edge behaviors such as out-of-range channel handling or what happens if no Morpher exists, but the annotation bar lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two short sentences per language, front-loaded with the action and key constraint. The bilingual duplication is somewhat redundant but serves the tool's audience; no filler or irrelevant content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity setter with 100% schema coverage, 4 parameters all documented, and annotations already flagging destructiveness, the description covers the key non-obvious behavior (frame-specific keying). It is reasonably complete; a note about requiring an existing Morpher modifier or selection behavior would improve it, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3: the description restates the frame-keying semantics ('with frame the value is keyed at that frame') but adds no meaning beyond what the schema already documents for each parameter. No extra semantic value is provided for channel indexing, weight bounds, or the objects list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: setting a morph channel's weight (0-100) to drive deformation. It is clear and implicitly distinct from siblings like rig_skin_set_weight or rig_morpher_add_target through the 'morph channel' resource, though it never names or contrasts those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related rig tools such as rig_skin_set_weight, rig_morpher_add_target, or ctrl_set_value. The description implies a purpose ('to drive the deformation') but provides no context for choosing it over alternatives, no prerequisites (e.g., object must already have a Morpher modifier), and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_set_bone_sizeADestructive
批量设置骨骼的宽/高(仅影响显示,不影响绑定)。 [English] Set the width / height of bones in bulk (display only, does not affect skinning).
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | 宽度(>=0 才设置)。 | Width (set only if >=0). | |
| height | No | 高度(>=0 才设置)。 | Height (set only if >=0). | |
| objects | No | 骨骼名列表;省略则用当前选择。 | Bone names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds meaningful behavioral context: the operation only affects display and does not alter skinning/weights. This is especially useful given destructiveHint=true, though it does not detail reversibility or exact overwrite behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact bilingual sentences clearly convey the purpose and the key non-skinning caveat. No filler or redundant content; the most important facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with well-documented parameters and no output schema, the description covers operation scope, bulk mode, and the critical display-only distinction. A minor gap is that omitted width/height behavior could be explicitly clarified, but the schema already implies conditional setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has clear semantics (width/height set only if >=0; objects optional with current selection fallback). The description reinforces bulk behavior but adds no parameter-specific meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (set width/height), the resource (bones), and the bulk mode. It also explicitly notes that it is display-only and does not affect skinning, which differentiates it from rig_skin_* sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the user wants to change bone display size without affecting the rig/skinning. However, it does not name alternatives or provide explicit when-not-to-use guidance, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_set_ik_chainBDestructive
调整骨骼链的 IK 参数:preferredAngle(首选弯折角)与 swivelAngle(极向量/扭曲角),单位是度。 [English] Tune a bone chain's IK parameters: preferredAngle (the favoured bend) and swivelAngle (pole/twist angle), in degrees.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 骨骼链名列表;省略则用当前选择。 | Bone chain names; omit for the current selection. | |
| swivelAngle | No | 极向量/扭曲角(度)。 | Pole/twist angle (degrees). | |
| preferredAngle | No | 首选弯折角(度)。 | Preferred bend angle (degrees). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as a write/destructive operation; the description adds no further behavioral context such as whether changes are immediate, reversible, or require a particular IK setup. It doesn't contradict the annotations, but it also doesn't disclose what side effects tuning these angles may have on the chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and front-loaded: it states the operation and the two parameters in both languages without filler. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with three optional parameters and no output schema, the description is mostly sufficient: it names the parameters, their units, and the selection fallback. However, it omits any relationship to sibling IK tools (e.g., needing an enabled IK solver) and does not explain practical consequences, so an agent has to infer prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, including names and units, so the description adds little beyond restating the same parameter info in natural language. Per baseline, 3 is appropriate; no additional parameter semantics are introduced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action ('Tune'/'调整') with a specific resource ('bone chain's IK parameters') and names the two affected parameters. It doesn't explicitly contrast itself with IK-related siblings like rig_ik_enable or rig_ik_solver, but the resource+parameter specificity is enough to identify what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus related rig IK tools such as rig_ik_enable, rig_ik_solver, or rig_ik_goal, nor any prerequisites like an existing IK solver. The only usage hint is that omitting 'objects' uses the current selection, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_addADestructive
给网格对象添加 Skin 修改器,为蒙皮做准备。 [English] Add a Skin modifier to a mesh object, preparing it for skinning.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则用当前选择。 | Object names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, which suggests the operation may modify the object stack, but the description provides no additional behavioral detail. It does not mention that the modifier is added to the stack, whether it overwrites existing modifiers, or if there are prerequisites. The description adds minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, providing both English and Chinese versions without unnecessary detail. The key purpose is stated upfront, and the bilingual format is efficient for the target audience.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is sufficient for an agent to call it correctly. It clearly indicates the action and target object, and the parameter is optional with clear default behavior. No critical missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter 'objects' is already documented as a list of object names with an optional default to current selection. The description does not add additional semantic information beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a Skin modifier to a mesh object in preparation for skinning, which is a specific verb-resource pair. It also includes bilingual text, but the purpose is unambiguous and distinguishes it from sibling tools like rig_skin_add_bone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for setting up skinning, and among siblings like rig_skin_auto_weight, it is clear this is a preliminary step. However, it does not explicitly exclude cases where the object already has a modifier or when to prefer auto-weight, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_add_boneCDestructive
把一个骨骼加入对象的 Skin 修改器(可指定 rigid/weighted 初始模式)。 [English] Add a bone to the object's Skin modifier (with an optional rigid / weighted mode).
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | 要加入的骨骼名。 | Bone name to add. | |
| rigid | No | true=刚性蒙皮(每顶点单一骨骼)。 | true=rigid skinning (one bone per vertex). | |
| objects | No | 带 Skin 的对象名列表;省略则用当前选择。 | Skinned objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description adds little beyond restating that a bone is added. It does not disclose behavior such as whether the operation replaces existing bones, requires a skin modifier, or has permanent effects beyond the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, with both Chinese and English versions. The core purpose is front-loaded, though the bilingual duplication is redundant for an agent that only needs one clear expression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description and schema cover the basic operation and parameters, but important context is missing: whether the target object must already have a Skin modifier, how multiple objects are handled, and what the weighted mode actually does. For a destructive tool, this is adequate but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema. The description adds minimal additional meaning about the rigid mode, which closely parallels the existing 'rigid' parameter description, so it does not significantly exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a bone to the object's Skin modifier,' with an optional rigid/weighted mode. It is clear and unambiguous, though it does not explicitly distinguish itself from sibling tools like rig_skin_add or rig_skin_remove_bone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as rig_skin_add, rig_skin_auto_weight, or rig_skin_remove_bone. It does not mention prerequisites like requiring an existing Skin modifier, nor does it state what happens if no Skin modifier is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_auto_weightBDestructive
运行骨骼热(bone-heat)自动蒙皮权重——2015+ 可用。复杂网格上可能较慢,用 try/catch 保护。 [English] Run the bone-heat automatic skin weighting - available on 2015+. Can be slow on complex meshes; guarded with try/catch.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 带 Skin 的对象名列表;省略则用当前选择。 | Skinned objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering the mutation risk. The description adds useful behavioral context: availability on 2015+, potential slowness on complex meshes, and a try/catch guard. It does not detail that existing weights may be overwritten, but the destructive annotation covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by brief caveats. The bilingual duplication is slightly redundant but acceptable and does not add significant noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, single-optional-parameter operation, the description plus schema provides enough to call it correctly: the target objects, the operation type, and practical caveats. No output schema exists, but the description not specifying return behavior is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'objects', is fully documented in the schema with a bilingual description and default behavior ('omit for the current selection'). The tool description itself adds no parameter-level meaning, so the baseline of 3 applies given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run the bone-heat automatic skin weighting') and resource, making the tool's purpose immediately understandable. It is not explicitly contrasted with sibling tools like rig_skin_set_weight or rig_skin_set_vertex_weights, but the 'auto' nature distinguishes it from manual weight-editing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use or when-not-to-use guidance. It does not mention alternatives such as manual weight painting or rig_skin_set_weight, nor does it state the condition under which this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_remove_boneADestructive
从对象的 Skin 修改器移除一根骨骼(该骨骼对所有顶点的影响一并消失)。 [English] Remove a bone from the object's Skin modifier (its influence on all vertices is gone too).
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | 要移除的骨骼名。 | Bone name to remove. | |
| objects | No | 带 Skin 的对象名列表;省略则用当前选择。 | Skinned objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint annotation by specifying that the bone's influence is removed from all vertices, which is a concrete behavioral consequence. It could mention undo behavior or error conditions, but the core side effect is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, presenting the core action and consequence in two short bilingual clauses. Every sentence adds useful information without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward two-parameter destructive tool, the description plus schema cover the necessary information: what is removed, from what, and the side effect. It does not specify error behavior or return values, but those are not essential for this tool's core invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented. The description does not add deeper semantic detail about the parameters, but none is strictly needed since the schema fully explains 'bone' and 'objects'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation: removing a single bone from an object's Skin modifier, and explicitly states the consequence that the bone's influence on all vertices disappears. This distinguishes it from sibling operations like rig_skin_add_bone or rig_skin_set_weight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: apply to an object that has a Skin modifier and remove a specified bone. It does not explicitly name alternative tools or provide when-not-to-use guidance, but the purpose is unambiguous and the optional objects parameter is documented in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_set_vertex_weightsADestructive
批量设置单个顶点对多根骨骼的权重(一组 {bone, weight})。配合归一化,可一次配好一个顶点的完整影响。 [English] Set one vertex's weights across many bones in bulk (a list of {bone, weight}). Together with normalisation this configures a vertex's full influence at once.
| Name | Required | Description | Default |
|---|---|---|---|
| vertex | Yes | 顶点索引(从 1 起)。 | Vertex index (1-based). | |
| objects | No | 带 Skin 的对象名列表;省略则用当前选择。 | Skinned objects; omit for the current selection. | |
| weights | Yes | 权重列表,每项 {bone, weight}(weight 0-1)。 | Weight list, each {bone, weight} (weight 0-1). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds that weights are 0-1 and that normalization is involved, but doesn't disclose whether existing weights are replaced or merged, or whether the operation can be undone. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, bilingual, with the core function front-loaded. Every word earns its place, and the English translation mirrors the Chinese without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation and parameter semantics, but for a destructive mutation tool with no output schema, it could disclose more about behavior (e.g., whether weights are replaced or accumulated, whether normalization is automatic). The sibling list shows related rig_skin tools, but the description doesn't explicitly differentiate from rig_skin_set_weight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds the concept of 'full influence' and normalization, but doesn't provide additional detail beyond the schema's {bone, weight} structure. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: setting one vertex's weights across many bones in bulk, with a {bone, weight} list. It distinguishes itself from the sibling rig_skin_set_weight (singular) by emphasizing 'many bones' and 'full influence at once'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the intended use case: configuring a vertex's complete influence at once, especially with normalization. It doesn't explicitly name alternatives or when not to use it, but the context of 'bulk' and 'full influence' implies when it's appropriate versus single-weight tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_set_weightADestructive
设置单个顶点对单个骨骼的权重。注意:顶点权重被归一化到 1.0,把某骨骼设成 1.0 会抹掉其它骨骼影响。 [English] Set one vertex's weight for one bone. Note: vertex weights are normalised to 1.0, so setting one bone to 1.0 removes every other bone's influence on that vertex.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | 骨骼名。 | Bone name. | |
| vertex | Yes | 顶点索引(从 1 起)。 | Vertex index (1-based). | |
| weight | Yes | 权重(0-1)。 | Weight (0-1). | |
| objects | No | 带 Skin 的对象名列表;省略则用当前选择。 | Skinned objects; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description warns about a critical behavioral consequence: vertex weights are normalized to 1.0, so setting one bone to 1.0 wipes out all other bone influences. This is exactly the kind of operationally important context an agent needs before invoking a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action, then immediately presents the critical warning. Both languages earn their place, and there is no filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-assignment mutation tool, the description gives the essential behavior and the most important destructive caveat. The optional objects parameter and value ranges are already fully described in the schema. Minor gaps remain, such as what happens if the target is not skinned, but the overall context is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter's meaning. The description adds the normalization context relevant to the weight parameter but does not otherwise enrich parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb (set), a specific resource (one vertex's weight for one bone), and the exact scope: single vertex, single bone. This clearly differentiates it from sibling tools like rig_skin_set_vertex_weights and rig_skin_auto_weight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single vertex-bone weight assignment, which differentiates it from bulk or automatic weighting siblings, but it never explicitly says when to use this tool versus alternatives. There is no named alternative or exclusion, leaving the routing partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_skin_weight_tableARead-only
读取对象的蒙皮权重表(顶点 x 骨骼)。只读,支持分页。导出前核对权重很有用。 [English] Read the skin weight table (vertices x bones). Read-only, paginated. Handy to verify weights before export.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 最多返回顶点数,默认 200。 | Maximum vertices, default 200. | |
| offset | No | 跳过的顶点数,默认 0。 | Vertices to skip, default 0. | |
| objects | No | 带 Skin 的对象名列表;省略则取选择中的第一个。 | Skinned objects; the first of the selection if omitted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the main safety behavior is covered. The description adds value by stating the output shape (vertices x bones) and pagination behavior, which are not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core information is front-loaded in the first sentence and the description is short. The English and Chinese sections repeat the same content, so it is slightly less concise than a single-language version, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated tool with 100% schema coverage and full annotations, the description covers purpose, use case, and output shape. It does not specify the exact return record structure, but 'vertices x bones' plus the visible tool result is sufficient for an agent to invoke and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have full descriptions in the input schema (limit, offset, objects), so the schema handles parameter semantics. The description does not add parameter-specific detail beyond what the schema already documents, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Read') and resource ('skin weight table (vertices x bones)') and adds that it is read-only and paginated. The sibling list contains write-oriented skin tools like rig_skin_set_weight and rig_skin_auto_weight, so this tool's read role is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says it is handy for verifying weights before export, which gives a concrete use case. It does not explicitly name alternatives or state when not to use it, but the read-only wording and sibling context make the choice clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_spline_ikADestructive
给骨骼链加 Spline IK 解算器并绑定一条样条曲线,链会沿曲线分布(常用于尾巴、触手、绳索)。 [English] Add a Spline IK solver to a bone chain and bind a spline; the chain distributes along the curve (tails, tentacles, ropes).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 样条曲线对象名。 | Spline object name. | |
| objects | No | 骨骼链名列表;省略则用当前选择。 | Bone chain names; omit for the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds that the chain distributes along the curve, but it does not disclose whether existing IK is replaced, how the binding affects the chain, or what side effects occur beyond the generic destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main action and purpose. The bilingual repetition is minor overhead but is justified for accessibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior, common use cases, and the role of the spline and bone chain. Combined with the schema, an agent has enough to call the tool, though return values and detailed workflow prerequisites are not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented. The description adds domain context but no additional parameter-level detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: adding a Spline IK solver to a bone chain and binding a spline. The tail/tentacle/rope examples and the mention of Spline IK differentiate it from sibling rig tools like rig_ik_solver or rig_set_ik_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear typical use cases (tails, tentacles, ropes), which imply when to use it. However, it does not explicitly contrast with the many sibling IK/rig tools or state when a different solver should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scatter_objectsADestructive
在盒状区域内(或某个表面之上)随机散布对象副本,可随机旋转/缩放,并用 seed 保证结果可复现。用于做草地、碎石、观众席等大量重复物。数量很大时会卡,建议分批。 [English] Scatter copies of objects randomly inside a box (or over a surface), with optional random rotation/scale and a seed for reproducibility. Great for grass, rubble, crowds. Huge counts lag; scatter in batches.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | 随机种子,相同种子结果一致。 | Random seed; same seed = same result. | |
| size | No | 盒状区域尺寸 [x,y,z]。 | Box region size [x,y,z]. | |
| count | No | 生成的实例总数,默认等于原型数。 | Total instances, default = prototype count. | |
| center | No | 散布区域中心 [x,y,z]。 | Scatter region center [x,y,z]. | |
| region | No | box=盒内随机,surface=投影到 surface 对象表面。 | box=random in box, surface=project onto the surface object. | box |
| objects | No | 原型对象列表;省略则用当前选择。 | Prototype objects; omit for the selection. | |
| surface | No | surface 模式下的承载对象名(地面/地形)。 | Surface carrier name for surface mode (ground/terrain). | |
| scaleMax | No | 随机缩放上限。 | Random scale upper bound. | |
| scaleMin | No | 随机缩放下限。 | Random scale lower bound. | |
| randomScale | No | 是否随机缩放,默认否。 | Random scale, default false. | |
| randomRotation | No | 是否随机旋转,默认是。 | Random rotation, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=false/destructiveHint=true annotations, it discloses random rotation/scale behavior, seed-based reproducibility, and a performance caveat. It does not explicitly state whether original prototype objects are removed or kept, but 'copies' implies duplication and no annotation contradiction is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core operation and scope, then adds use cases and a performance warning. Both language versions are equally concise and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with a fully documented schema, the description covers the main intent, use cases, and a performance consideration. It lacks an explicit statement of side effects on the source objects, but the schema and the copy wording cover the essential calling conventions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a bilingual description. The prose adds general context (seed reproducibility, random transforms) but does not add meaning beyond the schema for individual parameters, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (scatter copies of objects) and a clear resource/scope (inside a box or over a surface), plus typical use cases (grass, rubble, crowds). It does not explicitly compare itself to sibling duplication tools like clone_objects or array_objects, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear application context ('grass, rubble, crowds' / '大量重复物') and even warns to batch large counts, which helps an agent decide when it is appropriate. It does not state when to use a sibling instead, such as clone_objects or array_objects for regular layouts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_infoARead-only
返回当前场景的名字、路径、是否已修改、对象数量、选择、活动层与渲染器。 [English] Return the current scene name, path, modified flag, object count, selection, active layer and renderer.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context beyond listing return fields; it does not mention potential performance, permissions, or side effects. Since annotations carry the burden, a 3 is appropriate – the description adds some functional detail but no extra behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the list of returned fields, and includes an English translation for clarity. It is two lines with no wasted words, making it easy for an agent to quickly grasp the tool's output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only info tool with no parameters and no output schema, the description is sufficient. It enumerates all the fields the agent can expect, which is enough to understand the return value. However, it does not specify the data structure (e.g., dictionary vs. list), which might be slightly ambiguous, but this is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is trivially complete. Per the rubric, 0 parameters warrants a baseline of 4. The description does not need to explain parameters, and it does not, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns the current scene's name, path, modified flag, object count, selection, active layer, and renderer. This is specific and distinguishes it from sibling tools like scene_statistics, which might return more granular stats. The verb 'return' and the explicit list of fields make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need a summary of the current scene's basic attributes. However, it does not explicitly compare to alternatives such as scene_statistics or get_selection, nor does it state any conditions for preferring this tool. Usage context is implied by the content but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_mergeBDestructive
把另一个 .max 文件里的内容合并进当前场景(不会清空现有对象)。 [English] Merge the contents of another .max file into the current scene without clearing it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 要合并的 .max 文件路径。 | Path of the .max file to merge. | |
| quiet | No | 是否静默合并,默认是。 | Merge quietly, default true. | |
| objects | No | 只合并指定名称的对象;省略则合并全部。 | Merge only these object names; omit to merge everything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful behavior that it does not clear existing objects, which is not directly in the annotations. However, it does not mention potential side effects like overwriting objects with matching names, material handling, or undo behavior. Since annotations already indicate destructiveHint=true, the description adds only marginal value beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single bilingual sentence that front-loads the core purpose. It contains no filler and directly states the primary behavior, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive merge operation, the description is minimal but covers the essential action and the key non-destructive behavior (not clearing). It does not explain return values, conflict resolution, or whether the operation is undoable, but given the annotations and schema, it is adequately complete for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (path, quiet, objects) already has a clear description. The tool description does not add any parameter-specific meaning beyond what the schema provides, so it relies on the schema for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool merges contents of another .max file into the current scene without clearing it, giving a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'import_merge_scene', which likely performs a similar operation, so it stops short of full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'import_merge_scene' or other scene operations. There are no exclusions, prerequisites, or context about the appropriate scenario, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_newADestructive
新建空场景。可选保留当前场景的某些设置。未保存的改动会丢失。 [English] Create a new empty scene. Some session settings can be carried over. Unsaved changes are lost.
| Name | Required | Description | Default |
|---|---|---|---|
| keepScene | No | 是否保留当前场景的设置(单位、渲染参数等),默认否。 | Keep current session settings such as units and render setup, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds concrete behavioral detail beyond the destructiveHint annotation by explicitly warning that unsaved changes are lost. It also explains that some session settings can be carried over, giving the agent useful insight into the tool's actual effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the primary action, and every sentence carries useful information. The bilingual duplication is acceptable and does not introduce noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description covers the essential action, the optional setting, and the main destructive consequence. It is complete enough for an agent to invoke correctly, though it could optionally mention what happens to the current scene beyond the data-loss warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the keepScene parameter is already well documented. The description only broadly mentions carrying over settings and does not add detail beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating a new empty scene. It is clearly distinct from sibling tools like scene_open, scene_merge, and scene_reset because it emphasizes 'new empty' rather than opening, merging, or resetting an existing scene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this when a new empty scene is needed, and optionally carry over session settings. It implicitly communicates that existing work will be replaced via the unsaved-changes warning, though it does not explicitly name alternatives like scene_reset or scene_open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_openBDestructive
打开一个 .max 场景文件(默认不弹出保存提示)。 [English] Open a .max scene file (no save prompt by default).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 场景文件的绝对路径。 | Absolute path of the .max file. | |
| quiet | No | 是否静默打开(不询问是否保存当前场景),默认是。 | Open quietly without asking to save the current scene, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds one useful behavioral trait: no save prompt appears by default, which is consistent with the quiet parameter. It does not, however, explicitly disclose that opening will replace the current scene and unsaved changes may be lost, leaving the destructive consequence mostly to the destructiveHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal, front-loaded with the core action, and immediately states the key default behavior. The bilingual pairing is compact and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter open operation, the description plus schema and annotations are mostly sufficient. The main gap is that it does not explicitly warn that the current scene is replaced, although the destructiveHint annotation and the quiet parameter's schema description strongly imply it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents path and quiet, including quiet's default. The description's 'no save prompt by default' only restates the schema's quiet semantics, so it adds no meaningful parameter information beyond the structured definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific action 'Open' and the exact resource '.max scene file', so the purpose is unambiguous. However, it does not explicitly contrast with nearby siblings such as scene_merge or scene_new, making the differentiation implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool instead of alternatives like scene_merge or scene_new, and no exclusions or prerequisites. It relies entirely on the verb 'Open' to imply usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_resetADestructive
把 Max 重置到出厂状态。会清空一切,包括单位、渲染器、自定义设置。 [English] Reset 3ds Max to factory state. This wipes everything including units, renderer and custom settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already marks the tool as destructive, and the description adds value by specifying what is destroyed: units, renderer, and custom settings. This clearly conveys a full factory reset rather than a partial scene operation. There is no contradiction between the description and the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is brief and front-loaded with the core warning. The Chinese and English versions are exact duplicates, which is acceptable for a bilingual tool but adds minor redundancy for an English-only agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, a destructive annotation, and no output schema, this description still covers everything essential: what operation is performed and what data is lost. It is sufficiently complete for safe selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, so there is no parameter meaning to add beyond the schema. The baseline of 4 fits because the no-parameter contract is simple and the description reinforces that the reset is unconditional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Reset') and the resource ('3ds Max to factory state'), and enumerates the affected scope: units, renderer, and custom settings. This distinguishes it from siblings like scene_new, scene_save, or reset_transform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the operation name and the 'factory state' wording, but no explicit guidance is given about when to prefer this over alternatives such as scene_new, undo_last, or reset_transform. No exclusion or alternative routing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_saveARead-only
保存当前场景。若从未保存过则等同于另存为。 [English] Save the current scene. If it has never been saved this behaves like save-as.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation declares readOnlyHint=true, but the description says the tool 'saves' the current scene, which is a write/persisting operation and contradicts the read-only hint. The description does not clarify this conflict or disclose side effects such as overwriting the existing file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the key verb and resource. However, it repeats the same content in Chinese and English, so the bilingual duplication adds length without adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter save operation, the description covers the essential behavior and the never-saved edge case. It does not specify return values or success/failure behavior, but those are not critical for a save tool; the contradictory readOnlyHint annotation prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is 100%, so there is no parameter meaning for the description to add. The baseline of 4 for zero-parameter tools applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Save the current scene.' It also distinguishes itself from sibling scene_save_as by noting that if the scene has never been saved, it behaves like save-as.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says when to use it: whenever the current scene should be saved. It also covers the edge case where the scene has never been saved, making the behavior predictable, though it does not explicitly name scene_save_as as the alternative for forcing a new save location.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_save_asADestructive
把当前场景另存到指定路径(自动创建缺失的目录)。 [English] Save the current scene to a given path, creating missing folders.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 目标 .max 文件路径。 | Destination .max path. | |
| keepPath | No | 是否把新路径设为当前场景路径,默认是。 | Adopt the new path as the current scene path, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds the non-obvious behavior that missing folders are automatically created. However, it does not mention that saving may overwrite an existing file or that the new path becomes the current scene path by default, though keepPath is documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two short bilingual sentences. The primary action is front-loaded, and the folder-creation behavior is stated as a concise parenthetical and then repeated in English. No filler or irrelevant context is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive file-writing tool, the description covers the core action and folder creation, but it does not explicitly warn about overwriting existing files or contrast with scene_save. The destructiveHint annotation partially compensates, but the manual remains slightly incomplete for safe autonomous use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both path and keepPath already have clear descriptions in the input schema. The tool description does not add additional parameter-level meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: '把当前场景另存到指定路径' / 'Save the current scene to a given path'. It also adds a useful detail about creating missing folders. This distinguishes it from scene_save, which implies saving without a new path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool instead of scene_save, scene_open, or scene_merge. There are no alternatives or exclusions mentioned, so the agent must infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene_statisticsARead-only
统计场景构成:按类型(几何体/图形/灯光/相机/辅助体)分组计数、总顶点数、面数、材质数、贴图数。用于评估导出与渲染的规模。 [English] Summarise the scene composition: counts grouped by type (geometry, shapes, lights, cameras, helpers), total vertices, faces, materials and texture maps. Use it to gauge the scale of a render or export.
| Name | Required | Description | Default |
|---|---|---|---|
| includeHidden | No | 是否把隐藏对象也计入,默认是。 | Include hidden objects in the counts, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about what metrics are returned (counts, totals) and the purpose, but does not disclose potential performance or side effects. For a read-only statistics tool, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and bilingual, with the main function stated first and a clear purpose sentence. It uses no unnecessary words and is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description is adequate. It explains what it does and why, and the annotations cover safety. It does not describe the return format, but the agent can infer the result from the listed metrics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the single parameter 'includeHidden', so the description does not need to add parameter details. It does not, which is acceptable. The description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes scene composition by type (geometry, shapes, lights, cameras, helpers) and totals (vertices, faces, materials, textures), and explicitly states its purpose: gauging the scale of a render or export. It distinguishes from siblings like count_objects by covering multiple metrics and object categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use it to gauge the scale of a render or export.' This gives context for when to call it, but it does not mention alternatives or conditions when it should not be used. The context is clear, but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_allBDestructive
选择场景中所有对象。 [English] Select every object in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=true, but the description adds no behavioral details beyond the action itself. It does not disclose that the current selection is replaced, whether hidden or frozen objects are included, or what side effects accompany the destructiveHint flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but the Chinese and English sentences are exact duplicates. The repeated translation adds no new information for an agent, making it slightly redundant though still compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool this is nearly sufficient, but the description leaves the behavioral scope ambiguous: does it include hidden/frozen objects? It also fails to contextualize the destructiveHint=true annotation, so an agent cannot fully anticipate the tool's side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the input schema is empty, so no parameter explanation is needed. The baseline 4 applies here because there is nothing for the description to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the imperative verb 'Select' with a specific resource, 'every object in the scene,' which clearly communicates what the tool does. This also distinguishes it from sibling selection tools like select_objects or select_by_superclass.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is only a statement of the operation and provides no guidance on when to use it versus alternatives. It does not mention replacing the current selection, or when select_objects or deselect_all would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_by_superclassBDestructive
按 superclass 全选(例如 Shape 选中所有图形、Light 选中所有灯光)。 [English] Select all by superclass (e.g. Shape selects every spline, Light every light).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | superClass 的别名。 | Alias of superClass. | |
| superClass | Yes | 要选中的 superclass,例如 GeometryClass、Shape、Light、Camera、Helper。 | superClass to select, e.g. GeometryClass, Shape, Light, Camera, Helper. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, which is important context. The description itself does not add behavioral details beyond the selection action—it doesn't mention whether the current selection is replaced, whether hidden/frozen objects are affected, or any side effects. The description does not contradict the annotations, but it also doesn't enrich them with additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the key information. The bilingual format (Chinese and English) is slightly redundant but serves a clear purpose for the tool's likely user base. The examples are useful and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a selection tool with two parameters and no output schema, the description is adequate but not complete. It doesn't mention whether the selection replaces or adds to the current selection, how to specify multiple superclasses, or what happens with nested/child objects. The destructiveHint annotation flags risk, but the description doesn't clarify the exact scope of the destructive action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (superClass and its alias type). The description adds examples of valid superclass values (Shape, Light) but doesn't explain the relationship between 'type' and 'superClass' beyond what the schema says. The description adds marginal value but the schema carries the main burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: selecting all objects by superclass, with concrete examples (Shape selects all splines, Light selects all lights). It uses a specific verb ('select') and resource ('superclass'). However, it doesn't explicitly distinguish itself from sibling tools like select_all, select_objects, or find_objects, though the superclass-based selection is implied as the differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you want to select all objects of a given superclass. It provides examples of superclass values (Shape, Light) but does not explicitly state when not to use it or mention alternatives like select_objects or find_objects. The usage context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_objectsADestructive
选择对象。mode=replace 替换、add 追加、subtract 移除、invert 反选。 [English] Select objects. mode=replace/add/subtract/invert.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | replace/add/subtract/invert。 | replace/add/subtract/invert. | replace |
| objects | No | 对象名称列表。 | Object name list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=true, so the destructive nature is flagged. The description adds behavioral detail by defining what each mode does to the current selection, especially that replace swaps the selection and subtract removes objects. This is genuinely useful context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the core behavior and modes. The bilingual repetition is slightly redundant but does not hurt usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers the main operation well. However, it never explains what happens when the optional objects array is omitted, which matters for modes like replace or invert. This ambiguity leaves an agent guessing about valid no-argument invocations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description restates the mode enum but adds little beyond the schema, and the objects parameter is only explained as 'object name list' in the schema without clarifying behavior when omitted. Baseline 3 is appropriate because the schema carries the meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Select objects') and enumerates the four modes (replace/add/subtract/invert), which distinguishes it from simpler selection tools like select_all or select_by_superclass. It does not explicitly name sibling alternatives, but the mode list provides enough specificity to identify what this tool uniquely does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mode definitions imply usage contexts (replace, add, subtract, invert), but the description does not explicitly say when to use this tool instead of get_selection, deselect_all, select_all, or select_by_superclass. An agent could infer that this tool modifies the current selection, but no direct comparison or exclusion is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_languageBRead-only
切换输出语言:zh(简体中文)、en(英文)或 auto(跟随 3ds Max 的界面语言)。本 MCP 服务自身的工具描述会立即切换;桥接端的提示、错误、日志信息也会同步切换。用 auto 可以让中英文用户各自看到自己语言的消息,无需手动设置。 [English] Switch the output language: zh (Simplified Chinese), en (English), or auto (follow the 3ds Max UI language). This server's tool descriptions switch immediately, and the wording of every message, error and log line produced inside 3ds Max follows. Use auto so Chinese and English users each get their own language without configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| language | Yes | zh = 简体中文,en = English,auto = 跟随 3ds Max 界面语言。 | zh = Simplified Chinese, en = English, auto = follow the 3ds Max UI language. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which conventionally means the tool does not modify state, yet the description explicitly says it switches output language and that tool descriptions and bridge messages change immediately. This is a direct contradiction between the annotation and the described behavior. The description itself is transparent about the effect, but the contradictory annotation undermines trust and correct agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, bilingual, and front-loaded with the action and allowed values. The English section duplicates the Chinese content, but this duplication is justified for a multilingual tool. It avoids filler and stays focused on behavior and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description adequately explains what the tool does, what values are allowed, and why auto is useful. It also states the immediate effects on tool descriptions and bridge messages. It does not mention persistence across sessions, but that is not essential given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the input schema already explains zh, en, and auto in both languages, including the 'follow 3ds Max UI language' behavior. The description adds only the extra rationale for auto and repeats the values, so it does not add substantial meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: '切换输出语言' / 'Switch the output language', and it enumerates the three accepted values (zh, en, auto) with their meanings. It is clear that this tool sets the language for the MCP service. It does not explicitly differentiate itself from the sibling get_language, though the set/verb distinction is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to choose auto: '用 auto 可以让中英文用户各自看到自己语言的消息,无需手动设置' / 'Use auto so Chinese and English users each get their own language without configuration.' This gives clear context for parameter choice. It does not mention get_language as the read counterpart, but user guidance for this tool is still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_propertiesADestructive
修改层的属性:隐藏、冻结、线框色、渲染可见性。 [English] Change layer properties: hidden, frozen, wire colour and render visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 层名称。 | Layer name. | |
| color | No | 线框颜色 [0-255]。 | Wire colour [0-255]. | |
| frozen | No | 冻结(不可选中)。 | Frozen (unselectable). | |
| hidden | No | 隐藏。 | Hidden. | |
| renderable | No | 是否参与渲染。 | Participates in rendering. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, and the description does not contradict them. The description adds the list of affected layer properties, but it does not disclose other side effects, reversibility, or prerequisites beyond what the schema and annotations already communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the action and immediately lists the affected properties. The bilingual repetition is minimal and not padded with filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity setter with one required parameter and four optional properties, the description combined with the rich parameter schema and destructiveHint is complete enough for an agent to invoke it correctly. It does not explain return values or failure behavior, but no output schema exists and those details are not essential for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already explained in both Chinese and English. The description's property list mostly restates the schema fields and does not add meaningful new semantics beyond what the input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Change layer properties' and enumerates exactly which properties are affected (hidden, frozen, wire colour, render visibility). It does not explicitly contrast against sibling tools like hide_objects or freeze_objects, so full sibling differentiation is not achieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
When to use this tool is implied by the description: the agent should use it when layer-level properties such as hidden, frozen, color, or renderability must be changed. However, there is no explicit guidance about when not to use it or which sibling tools to choose for object-level hiding/freezing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_pivotADestructive
移动或居中对象的轴点(pivot)。place=放到指定坐标,center=几何中心,origin=世界原点。烘焙动画/父子链接前先定好轴点,否则旋转会绕错位置。 [English] Move or center an object's pivot. place=given coord, center=geometric center, origin=world origin. Set the pivot before baking animation or parenting or rotation spins around the wrong spot.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | place/center/origin。 | place/center/origin. | place |
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| position | No | place 模式下轴点坐标 [x,y,z]。 | Pivot coord for place mode [x,y,z]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, meaning this tool can modify the scene. The description does not add explicit warnings about destructive effects, but it does mention the importance of setting the pivot before baking/parenting. It does not contradict annotations and adds some workflow context, but lacks details on reversible behavior or implications of mode changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear bilingual structure (Chinese and English) and a well-placed key usage tip at the end. Each sentence serves a purpose, and the critical information about modes and when to use is front-loaded. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and that the schema fully describes parameters, the description covers the essential usage context, including modes and workflow timing. It lacks detailed behavioral context (e.g., how the property change affects other object properties), but for a pivot-set tool this is likely sufficient. No output schema exists, but return values are not critical for decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all parameters with 100% coverage. The description summarizes the enum meanings (place/center/origin) but does not add additional syntax or semantics beyond what the schema already provides. For instance, it clarifies that 'position' is only used in 'place' mode, which is implicitly stated in the schema but not explicitly. This aligns with the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'move or center an object's pivot' with specific resources (objects). It distinguishes three modes (place, center, origin) and highlights the purpose in animation/parenting workflows. It effectively differentiates from other object manipulation tools by focusing specifically on pivot point manipulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (before baking animation or parenting) but does not explicitly mention alternatives or when not to use it. However, the context is clear enough for an agent to infer the appropriate use case. It provides a clear functional context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_property_valueADestructive
设置任意对象的任意属性值,支持点号路径。值会按目标属性类型自动转换。这是给未提供专用工具的参数赋值时的通用手段。 [English] Set any property of any object, supporting dotted paths. The value is coerced to the target property's type. This is the generic way to touch parameters that have no dedicated tool.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | 新值(字符串形式,自动转换类型)。 | New value as a string; the type is coerced automatically. | |
| object | Yes | 对象名称。 | Object name. | |
| property | Yes | 属性名或点号路径。 | Property name or dotted path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, so the safety profile is covered by structured data. The description adds useful behavioral detail about automatic type coercion and dotted-path traversal, but it does not disclose potential failure modes, side effects, or what happens if the object or property path is invalid. With annotations carrying the destructive signal, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core action, and uses bold for the most decision-relevant usage cue. The bilingual repetition is minimal and serves the audience. Every sentence contributes either core functionality or usage direction, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic property setter with three fully documented parameters and a destructive annotation, the description covers what an agent needs to select and invoke it. No output schema exists, but return-value detail is not critical for this tool. A small gap is the absence of guidance on how object names are resolved or what happens on invalid property paths, but this does not undermine usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented: object name, property dotted path, and string value with auto-coercion. The description essentially restates these facts rather than adding new semantic depth. Baseline 3 is appropriate because the schema does the heavy lifting and the description adds no significant extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('set'), a broad but clearly defined resource ('any property of any object'), and two key behavioral features: dotted-path support and automatic type coercion. It also explicitly distinguishes itself as the generic fallback for parameters without a dedicated tool, which sets it apart from the many specialized setter tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bold statement 'This is the generic way to touch parameters that have no dedicated tool' provides clear guidance on when to use this tool. It strongly implies that dedicated tools should be preferred when available, though it does not name specific alternatives or explicitly state 'do not use for parameters with dedicated tools.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_time_configADestructive
设置帧率与动画时间范围。做动画前必须先设定,否则关键帧会被重新采样。 [English] Set frame rate and the animation time range. Set this before animating, otherwise keyframes get resampled.
| Name | Required | Description | Default |
|---|---|---|---|
| endFrame | No | 结束帧。 | Last frame. | |
| frameRate | No | 每秒帧数,常用 24 / 25 / 30 / 60。 | Frames per second; 24 / 25 / 30 / 60 are typical. | |
| startFrame | No | 起始帧。 | First frame. | |
| playbackSpeed | No | 回放倍速(可选)。 | Playback speed multiplier (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations indicating destructiveHint=true and readOnlyHint=false, the description adds concrete behavioral context by warning that keyframes get resampled if the tool is not set before animating. This goes beyond the annotation flags and gives the agent a specific side effect, while not contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with the core function in the first sentence and the critical usage warning in the second. The bilingual repetition is acceptable and adds no extra noise. Every essential piece of information is present without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicitycars, the schema fully documents all parameterscars, and annotations indicate the destructive nature, the description provides sufficient context including the keyframe resampling warning. It does not need to describe return values since there is no output schema. The only minor gap is not clarifying the implied interdependence of startFrame and endFrame, but the description covers the core requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have descriptive entries in the schema, so the baseline is met. The description does not add extra parameter semantics beyond mapping the frame rate and time range to the corresponding fields. It does not clarify relationships between parameters or mention playbackSpeed explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: setting frame rate and animation time range. It uses a specific verb and resource, which unambiguously conveys what the tool does. It does not explicitly name the sibling tool get_time_config, but the 'set' versus 'get' contrast is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Set this before animating, otherwise keyframes get resampled.' This clearly states when the tool should be used and warns of the consequence of not using it. It does not discuss alternatives like get_time_config, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_unitsADestructive
设置场景单位制与显示方式。建模前必须与目标引擎/项目约定一致,否则导出的模型尺寸会差 100 倍。 [English] Set the scene unit system and display units. Always align this with the target engine or project convention before modelling, otherwise exported geometry will be off by a factor of 100.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | 系统单位比例,通常 1.0。 | System unit scale, usually 1.0. | |
| systemType | No | 系统单位。 | System unit. | |
| displayType | No | 显示单位制。 | Display unit type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, implying the tool modifies scene state. The description adds the critical warning about export size errors, which is beyond the annotation. It does not detail what exactly gets changed (e.g., existing objects), but the warning covers the main risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the crucial warning front-loaded and a bilingual (Chinese/English) format that is accessible. Both language sections are equally concise and informative, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's purpose, setup importance, and consequence of misalignment. It does not describe the exact parameter effects or return values, but the absence of an output schema and the simplicity of the tool make it sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions and enums. The description adds no additional parameter semantics beyond reiterating the scale factor and the consequences. Since schema coverage is 100%, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the scene unit system and display units, using a specific verb-resource pair. It distinguishes itself from related tools like get_units and set_time_config by focusing on scene units specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to align units with the target engine/project before modelling, warning of severe consequences (100x size error) otherwise. This provides clear when-to-use guidance and preconditions, which is crucial for a setup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snap_objects_to_gridADestructive
把对象位置吸附到指定间距的网格点上。用于规整摆放、对齐棋盘/阵列起点。 [English] Snap object positions to a grid of the given spacing. Tidy placement, align chessboard/array origins.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| spacing | No | 网格间距,默认 10。 | Grid spacing, default 10. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false and destructiveHint=true, and the description's 'snap' implies modifying transforms. It adds no further behavioral caution (e.g., whether it irreversibly overwrites positions or works on selection), but it does not contradict the annotations. Given the annotations carry the safety profile, a neutral 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences: state the action, then the intended use cases. No filler; the duplicated bilingual content is compact and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with fully documented parameters and a mutable/destructive annotation profile, the description is mostly sufficient. It could mention grid origin/anchor behavior or selection default, but the schema already covers the selection default, so only minor gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters and their defaults are already documented. The description only restates 'given spacing' and does not add syntax or selection semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Snap object positions to a grid') and immediately gives concrete use cases (tidy placement, chessboard/array origins), which help distinguish it from generic alignment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use it ('用于规整摆放' / 'align chessboard/array origins') but does not name alternatives or exclusions such as when align_objects would be preferred, so it stops at clear context rather than explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spline_get_pointsARead-only
读取样条线的所有顶点(按样条/节点编号)。用于检查或修改曲线,配合 spline_set_points 使用。 [English] Read all knot points of a spline (by spline/knot index). Inspect or prep a curve; pair with spline_set_points.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 样条名称列表;省略则用当前选择。 | Spline names; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint and non-destructive behavior. The description adds the 'all knot points' scope and the set_points pairing, but it does not disclose the return shape or coordinate-space behavior, and there is no output schema to fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, giving the purpose first and the pairing second. The bilingual repetition is intentional and does not add unnecessary noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and full schema coverage, the description plus annotations are nearly sufficient. The main missing piece is the exact format or coordinate space of the returned points, especially relevant when passing them to spline_set_points.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single optional parameter is already documented in the schema: 'Spline names; omit for the selection.' The description mentions spline/knot indexing but does not add meaningful parameter-level information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Read all knot points of a spline'. It also names the pairing with spline_set_points, which distinguishes this tool from the many poly/object-level read tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear intended context: inspect or prepare a curve, paired with spline_set_points. It does not explicitly list when-not-to-use cases or alternative tools, but the intended workflow is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spline_set_pointsADestructive
替换/追加样条线的顶点。顶点数少于原有则覆盖前 N 个,多于则追加。修改后 Max 会自动更新几何体。 [English] Replace/append a spline's knot points. Fewer points overwrite the first N, more append. Max updates the geometry automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| points | Yes | 新的顶点数组,每项 [x,y,z]。 | New vertices, each [x,y,z]. | |
| objects | No | 样条名称列表;省略则用当前选择。 | Spline names; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description builds on that context by detailing the overwrite/append semantics and the side effect that Max updates the geometry automatically. It does not contradict the annotations and clearly states what is mutated, though it does not mention reversibility or undo behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core behavior before the side effect. The bilingual repetition makes it longer than strictly necessary, but it is not padded and each language block conveys the same essential information clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutating tool with full schema coverage and a destructive annotation, the description covers the key invocation details: target selection via objects, point-count semantics, and the automatic geometry update. It does not describe expected return values or error behavior, but no output schema exists and the core information needed to call the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, which sets a baseline of 3, but the description adds important meaning to the points parameter: fewer values overwrite the first N, more append. It also reinforces the objects parameter behavior with 'omit for the selection', going slightly beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb phrase 'Replace/append' and names the exact resource: 'a spline's knot points'. It also spells out the behavior for fewer versus more points, which separates it from the read-only sibling spline_get_points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: whenever knot points need to be replaced or appended, and it gives selection guidance with 'omit for the selection'. However, it never explicitly names alternatives such as spline_get_points or states when not to use this tool, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transform_objectADestructive
对对象做 移动/旋转/缩放,支持绝对或相对、世界或局部、欧拉角(度)或轴角。objects 省略则作用于当前选择。缩放父级会连带扭曲子级,先 reset_transform 再缩放。 [English] Move/rotate/scale objects, absolute or relative, world or local, euler(degrees) or axis-angle. Omit objects to act on the selection. Scaling a parent skews children; reset_transform first.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | 轴角旋转的旋转轴 [x,y,z]。 | Axis-angle rotation axis [x,y,z]. | |
| mode | No | absolute=直接设值,relative=在现有值上叠加。 | absolute=set value, relative=add to current. | relative |
| angle | No | 轴角旋转的角度(度)。 | Axis-angle rotation amount (degrees). | |
| space | No | world=世界坐标,local=局部坐标。 | world or local space. | world |
| value | No | 移动/缩放量,或旋转欧拉角 [x,y,z](度)。 | Move/scale delta or euler rotation [x,y,z] (degrees). | |
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| operation | No | 操作类型。 | Operation. | move |
| rotationType | No | euler=欧拉角(度),axisangle=绕轴旋转。 | euler angles(deg) or axis-angle. | euler |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as not read-only and destructive. The description adds an important behavioral warning that scaling a parent will skew its children and recommends reset_transform first, which goes beyond the schema. This is valuable but does not detail other side effects like overwriting absolute values or transformation pivot behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and includes the critical warning in bold. The bilingual duplication (Chinese and English) adds length but is likely intentional for the tool's audience; it remains reasonably concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 optional parameters and no output schema, the description covers the main usage scenarios, selection fallback, and the important parent-scaling caveat. It omits potential error handling or return value details, but that is acceptable for a transformation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 8 parameters, including enums and units. The description repeats the mode/space/rotationType choices but does not add new parameter-specific semantics beyond what the schema already provides. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves/rotates/scales objects and enumerates supported modes (absolute/relative, world/local, euler/axis-angle). It specifies the selection fallback when objects is omitted. However, it does not explicitly differentiate from sibling transform-like tools like align_objects or mirror_object, so it stops short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: the tool is the general move/rotate/scale operation, and it notes how to target the current selection by omitting objects. It also includes a conditional prerequisite (reset_transform before scaling a parent). It does not mention alternative tools for alignment/mirroring or state when not to use this tool, so no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_lastBRead-only
撤销最近一次(或最近 N 次)操作,等价于在 Max 中按 Ctrl+Z。 [English] Undo the last operation (or the last N), equivalent to pressing Ctrl+Z in Max.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | 撤销步数,默认 1。 | Number of steps, default 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, but undoing is a state-mutating operation that rewinds the scene and history. The description only mentions undo semantics and does not disclose side effects such as history consumption or failure when there is no operation to undo. This directly contradicts the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating purpose and equivalence in two short sentences. The English sentence repeats the Chinese content exactly, so it is not perfectly information-dense, but it remains concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has one optional parameter, and the schema fully documents 'steps', so the description is enough to select and invoke the tool. However, there is no output/return expectation or failure behavior for an empty undo stack, and the contradictory annotation undermines the completeness of the overall context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter 'steps' already has a description including the default value. The description maps 'last N' to that parameter but adds no syntax or behavioral detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object ('Undo the last operation (or the last N)') and grounds it in a familiar equivalent, Ctrl+Z in Max. It clearly conveys the undo semantics and is distinguishable from the sibling redo_last by naming the reverse action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: use it when a user wants to undo recent scene changes, equivalent to pressing Ctrl+Z. It does not explicitly state when not to use it or point to alternatives like redo_last, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unfreeze_allADestructive
解冻场景中所有被冻结的对象。 [English] Unfreeze every frozen object in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates the operation without adding behavioral context beyond the annotations (readOnlyHint=false, destructiveHint=true). It does not mention side effects, reversibility, or batch-wide impact, though the scene-wide scope is already explicit. With annotations carrying the safety profile, this is acceptable but not additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal, with the action and scope front-loaded in the first words. The Chinese and English versions duplicate the same statement but are each short and serve different language audiences, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter global operation, the description fully explains what the tool does and the scope it affects ('every frozen object in the scene'). No output schema is present, and none is needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool accepts zero parameters and the input schema is empty, so there are no parameter semantics for the description to clarify. This matches the baseline for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Unfreeze') and a clear resource ('every frozen object in the scene'), making the tool's purpose immediately obvious. It also distinguishes this tool from siblings like freeze_objects and unhide_all by specifying the exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when every frozen object in the scene needs to be unfrozen. It does not explicitly name alternatives or exclusion conditions, but the action and scope are unambiguous enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ungroup_objectsADestructive
解散组(保留成员对象)。传组头或组内任意成员均可。 [English] Ungroup (keeps the member objects). Pass the group head or any member.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 要解散的组/对象列表;省略则用当前选择。 | Groups/objects to ungroup; omit for the selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations declare destructiveHint=true, the description adds important context by clarifying that member objects are retained, meaning the destructive aspect is limited to dissolving the group container. It also discloses the flexible input behavior (head or any member), which is not visible in annotations. It does not cover edge cases like non-group objects or nested groups, but the key safety behavior is addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, bilingual but compact, with the action and outcome front-loaded. Every clause contributes meaning: what happens (ungroup), what is preserved (member objects), and how to identify the target (head or any member). No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description, schema, and annotations together sufficiently cover purpose, input semantics, and the key destructive-safety note. Missing details like behavior on invalid objects or return values are minor and not essential for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'objects' parameter with 100% coverage, including optionality and fallback to current selection. The description adds meaningful value beyond the schema by stating that either the group head or any member is acceptable, which is not present in the schema's parameter description. This extra semantic justifies a score above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action 'Ungroup' on objects, with the crucial clarification '(keeps the member objects)' that distinguishes it from object deletion. It also specifies that the group can be identified by its head or any member, reinforcing the tool's scope and differentiating it from sibling group operations like open_group and close_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful input guidance ('Pass the group head or any member') and the schema adds 'omit for the selection.' However, it does not explicitly contrast this tool with alternatives like open_group or close_group, so the agent must infer when permanent ungrouping is the right choice. There is no when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unhide_allADestructive
显示场景中所有被隐藏的对象。 [English] Show every hidden object in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds the global scope of the operation, but says nothing about reversibility, side effects, or why the tool is flagged destructive. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded, with the verb and scope in the first clause. The bilingual repetition is justified and there is no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is sufficient to convey the operation and its global scope. The only gap is that it does not elaborate on why the tool is flagged destructive, but the annotation already signals that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so a baseline of 4 applies; there is no parameter meaning for the description to add. The schema is fully covered trivially, and the description need not document any arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Show') and a precisely scoped resource ('every hidden object in the scene'), which distinguishes it clearly from the sibling unhide_objects that implies selective unhiding. Even though bilingual, both languages convey the same clear global operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The global scope is implied by 'every' and 'scene,' so an agent can infer that this is for unhiding all hidden objects rather than a subset. However, there is no explicit when-to-use or when-not-to-use statement, and no alternative like unhide_objects is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unhide_objectsBDestructive
显示指定对象;若不传 objects 则显示全部。 [English] Show the given objects; show all if none specified.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 要显示的对象列表。 | Objects to show. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true, so the destructive nature is disclosed structurally. The description adds one meaningful behavioral detail: omitting 'objects' unhides everything. However, it does not explain side effects, state changes, or interaction with hide_objects beyond the basic visibility toggle.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key behavior. The bilingual duplication is slightly redundant but understandable given the localization context, and it does not add excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is mostly sufficient and it covers the default behavior. However, it does not mention the relationship with sibling tools like unhide_all, which could lead to ambiguity when an agent decides which tool to invoke. There is also no indication of return values, though the absence of an output schema reduces that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's parameter description only says 'Objects to show.' The tool description adds crucial semantics: if 'objects' is omitted, all hidden objects are shown. This goes beyond the schema and clarifies the parameter's optionality and default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('show') and the resource ('the given objects' or 'all'), with a specific conditional behavior. It is easy to understand what the tool does, but it does not explicitly distinguish itself from the sibling tool unhide_all, which also relates to making objects visible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an implied usage rule ('show all if none specified') but gives no explicit guidance on when to use this tool versus the alternative unhide_all. It does not mention exclusions, requirements, or scenarios where another tool would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unparent_objectsADestructive
把对象从父级解绑(取消层级)。keepTransform 保持世界位置/旋转不变。 [English] Unlink objects from their parent. keepTransform keeps world position/rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名称列表;省略则用当前选择。 | Object names; omit for the selection. | |
| keepTransform | No | 保持世界变换,默认是。 | Keep world transform, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, setting the safety profile. The description adds meaningful behavioral context by explaining that keepTransform preserves world position/rotation, which is beyond the schema. It does not contradict annotations, and the added detail clarifies the side effect of the flag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short bilingual lines. The key action and parameter effect are front-loaded. Every word earns its place, and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, with no output schema and both parameters fully documented. The description covers the core behavior and the keepTransform flag. While it does not mention edge cases like nested children or undo behavior, the provided information is sufficient for an agent to correctly invoke the tool. The low complexity makes this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description reiterates the keepTransform behavior, adding minimal new meaning beyond the schema. It does not introduce any novel parameter information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Unlink objects from their parent' and explicitly mentions the keepTransform behavior. It is specific and distinct from siblings like parent_objects (the inverse) and group/ungroup, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the action but does not provide explicit guidance on when to use this tool versus alternatives like parent_objects or group_objects. It does not mention exclusions or conditions that would route an agent to this tool over others. The usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uvw_get_channelsARead-only
查询对象存在哪些 UV 贴图通道(返回受支持的通道编号列表)。省略对象则作用于当前选择。 [English] Report which UV map channels an object has (returns the supported channel indices). Omit objects to affect the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the specific return semantics (channel indices) but does not mention error handling, edge cases, or performance. With annotations present, this is adequate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences in a bilingual format, with the main action front-loaded and no filler. Every sentence earns its place, and the bilingual presentation is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with one optional parameter and no output schema, the description adequately explains what it returns. It lacks details on error conditions or format of the channel list, but these are minor for such a straightforward operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already explains that objects is a list of names and that omitting it uses the current selection. The tool description repeats this information without adding extra meaning, so it matches the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and resource ('UV map channels'), and explicitly says it returns the supported channel indices. It clearly distinguishes from sibling UV tools like uvw_map, uvw_unwrap, and uvw_quick_peel, which perform modifications rather than queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies that omitting the objects parameter uses the current selection, giving a clear usage condition. It does not explicitly name alternatives or state when not to use it, but the query nature is evident and the selection behavior is useful guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uvw_mapADestructive
给对象添加 UVW 贴图修改器(UVW Map),支持平面/圆柱/球/方形包裹/立方体/按面/XYZ 映射,可设 U/V/W 平铺与尺寸。省略对象则作用于当前选择。 [English] Add a UVW Map modifier with planar/cylindrical/spherical/shrink-wrap/box/face/XYZ mapping and U/V/W tiling and size. Omit objects to affect the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
| sizeX | No | X 尺寸。 | X size. | |
| sizeY | No | Y 尺寸。 | Y size. | |
| sizeZ | No | Z 尺寸。 | Z size. | |
| mapping | Yes | 映射类型。 | Mapping type. | |
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. | |
| uTiling | No | U 平铺。 | U tiling. | |
| vTiling | No | V 平铺。 | V tiling. | |
| wTiling | No | W 平铺。 | W tiling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description need not repeat that adding a modifier modifies the object. The description does add context about mapping types and tiling/size, which is useful beyond the annotation. It does not disclose side effects like stack changes or undo behavior, but that is partially covered by the destructive hint. No contradiction with annotations found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences in English, front-loaded with the action. It lists the key capabilities without fluff. The bilingual repetition is acceptable but adds length; however, it is still compact and well-structured. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a modifier with 8 parameters and no output schema, the description is minimal. It explains the main purpose and the selection fallback, but does not cover parameter interactions (e.g., how size affects different mapping types, or the meaning of tiling values). An agent can invoke it correctly with the required mapping and optional params, but deeper context is missing. The description is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description (though minimal). The description adds a bit of meaning by explaining the mapping type enum and the tiling/size purpose, and clarifies that objects can be omitted to use selection. However, it does not explain relationships (e.g., size only relevant for certain mapping types) or defaults. Baseline of 3 is appropriate because the schema covers the basics and the description adds modest value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a UVW Map modifier and lists the supported mapping types (planar, cylindrical, spherical, shrink-wrap, box, face, XYZ). This distinguishes it from siblings like uvw_unwrap (which handles unwrapping) and mod_add (generic modifier). The specific verb+resource (add UVW Map modifier) leaves no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a useful usage hint: omitting objects uses the current selection. However, it does not explicitly contrast with alternative tools (e.g., when to prefer this over uvw_unwrap or other modifier tools), nor does it state conditions like 'use for applying mapping coordinates to objects.' The hint about selection is helpful but not comprehensive guidance on when to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uvw_quick_peelADestructive
给对象添加 Unwrap UVW 并尝试一键快速剥皮(quick peel)展开。展开需要 UVW 编辑器会话,若不可用会静默跳过,仅添加修改器。省略对象则作用于当前选择。 [English] Add Unwrap UVW and attempt a one-click quick peel. Peeling needs a UVW editor session and is skipped silently if unavailable (the modifier is still added). Omit objects to affect the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states that the tool adds a modifier and attempts an operation that may silently fail if the editor is unavailable. This is critical behavioral transparency that complements the annotations, which only indicate destructiveHint. It does not contradict the annotations; destructiveHint is appropriate as adding a modifier alters the object.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the key action, and provides bilingual clarity. Every sentence adds value, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the action, the conditional failure mode, and the selection fallback. With a simple single optional parameter and no output schema, there is nothing missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is already clear ('Object names; omit to use current selection'). The description repeats this but adds no new semantics. Baseline 3 is appropriate since the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds an Unwrap UVW modifier and attempts quick peel, with the caveat that it may skip the peel if the editor is unavailable. It also names the target (objects or current selection), distinguishing it from related tools like uvw_unwrap and uvw_map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use it (when quick peel is desired) and notes the silent skip behavior. It does not explicitly contrast with sibling tools like uvw_unwrap, but the clear action and scope are sufficient for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uvw_unwrapADestructive
给对象添加 Unwrap UVW(UVW 展开)修改器,进入后可手动编辑 UV。省略对象则作用于当前选择。 [English] Add an Unwrap UVW modifier so UVs can be edited manually. Omit objects to affect the current selection.
| Name | Required | Description | Default |
|---|---|---|---|
| objects | No | 对象名列表;省略则使用当前选择。 | Object names; omit to use the current selection. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating/destructive operation (readOnlyHint: false, destructiveHint: true). The description adds that a modifier is added and that manual UV editing becomes possible, but it does not disclose side effects such as modifier stack changes or whether the tool enters an edit mode. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and includes the essential selection default. The bilingual repetition is slightly redundant but not excessive or confusing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, full schema coverage, and no output schema, the description is sufficient for an agent to invoke it correctly. It could optionally mention entering edit mode or modifier stack implications, but those are not critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the objects parameter completely, including the 'omit to use current selection' behavior. The description repeats the same default-selection information but adds no new meaning beyond the schema, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: add an Unwrap UVW modifier to objects or the current selection. It also clarifies the intended purpose (manual UV editing), which distinguishes it from sibling tools like uvw_map and uvw_quick_peel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly conveys when the tool is useful ('so UVs can be edited manually') and explains the optional objects behavior. However, it does not explicitly compare against UV-related siblings or state when not to use this tool, so usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_captureADestructive
把当前活动视口抓取到一张图片文件并返回路径——这是 AI「看到」自己刚搭建的场景的主要方式。 [English] Grab the active viewport into an image file and return the path - this is how the AI gets to see what it just built.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出图片绝对路径;省略则写入渲染输出目录(.png)。 | Absolute image path; omit to write to the render output folder (.png). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=true; the description adds that the tool writes an image file and returns its path, which is core behavior. It does not explain the destructive implication, such as overwriting an existing file at the target path, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded and clear: 'Grab the active viewport into an image file and return the path.' The purpose clause is helpful context, but the bilingual duplication (Chinese then English) makes the description roughly twice as long without adding unique information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only one optional parameter and no output schema, the description covers the essential contract: what is captured, what is returned, and when it matters. The only notable omission is clarifying the destructiveHint/overwrite behavior, but overall the definition is sufficient for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single optional 'path' parameter at 100% coverage, including the fallback to the render output folder with '.png'. The description only restates that a path is returned and adds no new parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Grab'/'抓取'), a clear resource ('the active viewport'), and an explicit result ('into an image file and return the path'). The 'active viewport' qualifier helps distinguish it from viewport_capture_all and other viewport-management siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case: 'this is how the AI gets to see what it just built,' implying the tool is for post-construction visual verification. However, it does not explicitly say when to use this instead of viewport_capture_all or other viewport tools, nor does it mention any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_capture_allADestructive
把当前所有视口拼到一张网格图里并保存。便于一次看清顶/前/透视图的布局。 [English] Capture every viewport into a single grid image and save it. Handy for seeing the top/front/perspective layout at once.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | 输出图片绝对路径;省略则写入渲染输出目录(.png)。 | Absolute image path; omit to write to the render output folder (.png). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as destructive (destructiveHint=true), but the description adds no detail about what that implies—such as overwriting an existing file or producing side effects beyond the current scene. The only behavioral claim is 'save it', which is essentially part of the tool's purpose and does not go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and contains no filler. The bilingual repetition is justified for audience accessibility, and both sentences earn their place by stating the action and the practical benefit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description plus schema covers the essential behavior, optional path handling, and a representative use case. It does not explicitly explain the destructive/overwrite implications hinted at by the annotation, but the core information needed to invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the path parameter is fully documented in the schema itself. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: capture every viewport, combine them into a single grid image, and save it. The phrase 'every viewport' also clearly distinguishes this from the sibling 'viewport_capture', which suggests capturing only the current viewport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: seeing the top/front/perspective layout at once, which is helpful context for when to use this tool. It does not explicitly name alternatives or state when not to use it, so it falls short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_set_layoutADestructive
切换视口布局:单视图 / 水平双格 / 垂直双格 / 三格 / 四格 / 最大化。 [English] Switch the viewport layout: single / horizontal split / vertical split / three / quad / maximize.
| Name | Required | Description | Default |
|---|---|---|---|
| layout | Yes | 布局名。 | Layout name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, indicating the operation modifies state. The description does not add behavioral details beyond that, such as whether the change is persistent or affects all viewports. Since annotations cover the safety profile, the description adds minimal extra context, justifying a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, presenting the purpose and options in two short lines. The bilingual repetition is slightly redundant but not wasteful. It earns a 4 for efficiency, with a minor deduction for duplicated content across languages.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description is largely complete. It names all possible layout values and the action. It does not mention return values or side effects, but given the simplicity and the annotation flags, this is acceptable. A 4 reflects that the essential calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema covers the parameter with 100% description (just 'Layout name.'), the enum values like '2h' and '2v' are cryptic. The tool description maps them to 'horizontal split' and 'vertical split', adding meaningful semantics beyond the schema. It also lists all valid options in plain language, which helps the agent understand each value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool switches the viewport layout and enumerates the specific layouts (single, horizontal split, vertical split, three, quad, maximize). It is specific about the action and resource, and distinguishes itself from sibling viewport tools like viewport_set_view or viewport_zoom_extents by focusing solely on layout arrangement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the tool's purpose clearly, so an agent can infer when to use it (when a layout change is needed). It does not explicitly exclude alternatives or mention when not to use it, but the context is unambiguous given the tool name and enumeration of options. There is no misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_set_shadingADestructive
设置活动视口的着色方式:wireframe / flat / shaded / realistic / edged(带边面)/ noedges。 [English] Set the active viewport shading mode: wireframe / flat / shaded / realistic / edged (edge faces on) / noedges.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 着色方式。 | Shading mode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations mark this as non-read-only and destructiveHint=true, and the description does not contradict that. The description adds useful scope by specifying 'active viewport' rather than all viewports or scene data, which clarifies that the destructive hint refers to viewport UI state, not geometry or file content. It could still disclose more about persistence or side effects, but given the simple operation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation, the target, and all valid values in two short lines. The bilingual format is organized and adds no unnecessary fluff, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter setter with a fully documented enum and no output schema, the description covers the essential information: what is changed, on what target, and with which options. It could include more usage context, but nothing critical for calling the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single 'mode' parameter with a full enum and a description. The tool description repeats the enum values but adds no new semantic detail beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (set), resource (active viewport), and property (shading mode), and enumerates all valid modes. This clearly distinguishes it from sibling viewport tools like viewport_set_view, viewport_set_layout, or viewport_capture, which concern different aspects of the viewport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is used when the agent needs to change the active viewport's shading mode, and the mode list makes the scope obvious. However, it does not explicitly state when not to use it or mention alternatives among the viewport-related siblings, so the usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_set_viewADestructive
切换活动视口为标准视图:top/bottom/front/back/left/right/orthographic/perspective/user。 [English] Switch the active viewport to a standard view: top/bottom/front/back/left/right/orthographic/perspective/user.
| Name | Required | Description | Default |
|---|---|---|---|
| view | Yes | 目标视图。 | Target view. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=true. The description adds that the operation targets the active viewport, which is useful scope context, but it does not clarify whether the destructive hint refers to view state loss or whether scene geometry is untouched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and lists all allowed values in both Chinese and English with no filler. It is appropriately sized for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple viewport-switching command, the description plus full enum coverage is nearly sufficient. It could be slightly more complete by addressing the destructiveHint annotation, e.g., clarifying that only the viewport view changes and no scene objects are modified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the view parameter has a full enum and a description. The tool description merely repeats the enum values without adding new semantic details about parameter usage or formatting, so the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Switch') and resource ('active viewport'), and enumerates the exact accepted standard views. This clearly distinguishes it from sibling viewport tools like viewport_set_shading, viewport_set_layout, and viewport_zoom_extents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call it when you want the active viewport to display a standard view such as top or perspective. However, it does not explicitly state when to prefer an alternative sibling tool or mention exclusions, leaving the routing logic to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_statsARead-only
返回每个视口的分辨率、当前活动视口编号、当前视图类型与活动相机名。 [English] Return each viewport's resolution, the active viewport index, the current view type and the active camera name.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful detail about what information is surfaced and consistently reads as a pure query. No side effects are claimed or implied, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, listing the exact result fields with no filler. The bilingual duplication is purposeful and does not add meaningful length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only query, the description is essentially complete: it states what is returned and aligns with the safe annotations. It could additionally specify the exact output structure or possible view type values, but that is not necessary for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline of 4 applies. There is no parameter-specific behavior to document, and the schema confirms no inputs are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific read operation and enumerates the exact data returned: each viewport's resolution, active viewport index, view type, and active camera name. This clearly distinguishes it from sibling tools that capture, set, or modify viewports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The return-oriented language makes it clear this is the tool for inspecting viewport state rather than changing or capturing viewports. It lacks explicit 'use this instead of X' exclusions, but the context is strong enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_toggle_gridADestructive
显示或隐藏活动视口的网格。show=true 显示,false 隐藏。 [English] Show or hide the active viewport grid. show=true shows it, false hides it.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | 是否显示网格,默认是。 | Show the grid, default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating tool (readOnlyHint=false, destructiveHint=true). The description adds useful scoping to the active viewport and maps show=true/false to visibility, but it does not clarify what the destructive hint refers to or whether the setting persists. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main verb and resource, and contains no fluff. The Chinese and English halves are redundant with each other, but that is justified for a bilingual tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional boolean parameter and no output schema, the description sufficiently covers the target scope and parameter effect. It omits return values and side-effect details, but those are minor for a grid-visibility toggle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the boolean 'show' parameter is fully documented. The description's show=true/false sentence mostly restates the schema and adds no format, default, or edge-case information, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: show or hide the active viewport grid. This distinguishes it from other viewport tools like viewport_capture, viewport_set_shading, and viewport_set_view, and the parameter mapping is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The active-viewport-grid scope implies the use case, but the description provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. For a simple toggle this is adequate but not instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport_zoom_extentsADestructive
把所有视口缩放到合适大小:selection=true 只框选当前选择,否则框整个场景。 [English] Zoom all viewports to fit: selection=true frames only the current selection, otherwise the whole scene.
| Name | Required | Description | Default |
|---|---|---|---|
| selection | No | 是否只框选当前选择,默认否。 | Frame only the current selection, default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only and destructive, so the description only needs to add context. It does reveal that the operation affects all viewports and that the selection flag changes the framing target. However, it does not warn that current viewport/camera framing will be overridden or explain what happens when selection=true but nothing is selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary action, followed by the parameter behavior. The bilingual duplication is somewhat redundant but serves two language audiences, and every distinct unit of information earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter viewport command with annotations and full schema coverage, the description is largely complete: it states the target (all viewports), the behavior (zoom to fit), and the selection handling. Minor missing edge cases include no active selection behavior and whether the view change is undoable, but these are not critical for a simple zoom command.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the single boolean parameter with full coverage, including its default value. The description repeats the same meaning ('selection=true frames only the current selection, otherwise the whole scene') without adding details beyond the schema, so it meets the baseline but adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: 'Zoom all viewports to fit' in both Chinese and English. It distinguishes itself from sibling viewport tools like viewport_set_view or viewport_capture by identifying the zoom-to-extents behavior and the selection scope toggle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear conditional context: use selection=true to frame the current selection, otherwise frame the whole scene. It does not explicitly name alternative tools or when not to use it, but the behavioral context is clear enough for an agent to decide when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_text_fileADestructive
写入一个文本文件(自动创建父目录,可选 UTF-8 编码)。用于生成批处理脚本、导出清单、自定义配置。 [English] Write a text file, creating parent folders automatically (optional UTF-8). Use it to emit batch scripts, export manifests or custom configs.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | 文件绝对路径。 | Absolute file path. | |
| append | No | 是否追加而非覆盖,默认否。 | Append instead of overwrite, default false. | |
| content | Yes | 要写入的文本内容。 | Text content to write. | |
| encoding | No | 编码,默认 utf-8;可选 ansi(跟随系统代码页)。 | Encoding, default utf-8; use ansi for the system code page. | utf-8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and not read-only. The description adds beyond-annotation behavior: parent folders are auto-created and encoding can be set. It does not explicitly spell out overwrite semantics, but the append parameter and destructive hint cover the key risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short bilingual sentences front-load the main behavior and immediately follow with concrete use cases. Every clause earns its place, with no placeholder or tautological wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple file-writing tool with fully documented parameters, destructive annotations, and no output schema, the description covers purpose, effects, and use cases sufficiently. It could be more explicit about overwrite-by-default behavior, but the append parameter and destructive hint make this recoverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful path semantics by telling the agent that missing parent directories will be created automatically, and it points to the encoding option. The phrase 'optional UTF-8' is slightly imprecise because utf-8 is the default and ansi is the alternative, but the schema resolves this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Write a text file') and adds scope: it automatically creates parent folders and supports encoding. This makes the tool's purpose unambiguous and distinguishes it from siblings like read_text_file or delete_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives use cases ('emit batch scripts, export manifests or custom configs'), which is clear context for when to invoke it. It does not name alternatives or exclusions, so it stops short of full when-to-use versus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
375 tool updates
v1.0.0- First observed
align_objects - First observed
anim_bake - First observed
anim_bake_range - First observed
anim_clear_animation - First observed
anim_delete_keys - First observed
anim_ease - First observed
anim_get_controller - First observed
anim_get_frame - First observed
anim_get_key_stats - First observed
anim_get_keys - First observed
anim_goto_frame - First observed
anim_offset_keys - First observed
anim_play - First observed
anim_play_preview - First observed
anim_scale_keys - First observed
anim_set_controller - First observed
anim_set_interpolation - First observed
anim_set_key - First observed
anim_set_keys - First observed
anim_set_out_of_range - First observed
array_objects - First observed
assign_to_layer - First observed
attach_objects - First observed
bake_ao - First observed
bake_get_settings - First observed
bake_lighting - First observed
bake_normals - First observed
bake_objects - First observed
bake_set_output - First observed
bake_texture - First observed
begin_undo - First observed
boolean_operation - First observed
bridge_capabilities - First observed
bridge_ping - First observed
bridge_restart - First observed
bridge_selftest - First observed
bridge_status - First observed
bridge_stop - First observed
cam_align_to_view - First observed
cam_create - First observed
cam_create_physical - First observed
cam_delete - First observed
cam_get - First observed
cam_list - First observed
cam_look_through - First observed
cam_set - First observed
cam_set_viewport - First observed
cancel_undo - First observed
clone_objects - First observed
close_group - First observed
collapse_stack - First observed
constraint_link - First observed
constraint_list - First observed
constraint_look_at - First observed
constraint_orientation - First observed
constraint_path - First observed
constraint_position - First observed
constraint_remove - First observed
constraint_set_weight - First observed
constraint_surface - First observed
convert_to_editable_mesh - First observed
convert_to_editable_poly - First observed
convert_to_nurbs - First observed
copy_file - First observed
count_objects - First observed
create_arc - First observed
create_box - First observed
create_capsule - First observed
create_chamferbox - First observed
create_circle - First observed
create_cone - First observed
create_cylinder - First observed
create_donut - First observed
create_ellipse - First observed
create_geosphere - First observed
create_hedra - First observed
create_helix - First observed
create_layer - First observed
create_line - First observed
create_ngon - First observed
create_plane - First observed
create_primitive - First observed
create_pyramid - First observed
create_rectangle - First observed
create_sphere - First observed
create_teapot - First observed
create_text - First observed
create_torus - First observed
create_tube - First observed
ctrl_add_list - First observed
ctrl_assign_expression - First observed
ctrl_list - First observed
ctrl_set_property - First observed
ctrl_set_value - First observed
ctrl_wire - First observed
delete_file - First observed
delete_layer - First observed
delete_objects - First observed
deselect_all - First observed
detach_elements - First observed
does_class_exist - First observed
end_undo - First observed
env_get - First observed
env_set_ambient - First observed
env_set_background_color - First observed
env_set_background_map - First observed
env_set_exposure - First observed
execute_maxscript - First observed
execute_python - First observed
export_3ds - First observed
export_abc - First observed
export_engine_preset - First observed
export_fbx - First observed
export_get_last_report - First observed
export_gltf - First observed
export_obj - First observed
export_selection - First observed
export_stl - First observed
export_usd - First observed
fetch_scene - First observed
file_exists - First observed
find_missing_assets - First observed
find_objects - First observed
freeze_objects - First observed
get_class_methods - First observed
get_class_properties - First observed
get_file_info - First observed
get_hierarchy - First observed
get_language - First observed
get_max_version - First observed
get_object_info - First observed
get_paths - First observed
get_property_value - First observed
get_scene_assets - First observed
get_selection - First observed
get_system_info - First observed
get_time_config - First observed
get_units - First observed
group_objects - First observed
hide_objects - First observed
hold_scene - First observed
import_fbx - First observed
import_get_formats - First observed
import_gltf - First observed
import_merge_scene - First observed
import_obj - First observed
import_usd - First observed
light_align_to_object - First observed
light_create - First observed
light_create_area - First observed
light_create_directional - First observed
light_create_omni - First observed
light_create_spot - First observed
light_create_sun - First observed
light_delete - First observed
light_get - First observed
light_list - First observed
light_set - First observed
light_set_sun - First observed
list_directory - First observed
list_layers - First observed
list_max_classes - First observed
list_objects - First observed
list_render_engines - First observed
list_scene_classes - First observed
make_directory - First observed
map_create_bitmap - First observed
map_create_checker - First observed
map_create_color_correct - First observed
map_create_falloff - First observed
map_create_gradient - First observed
map_create_gradient_ramp - First observed
map_create_noise - First observed
map_create_normal - First observed
map_set_bitmap_path - First observed
mat_assign - First observed
mat_create_arnold - First observed
mat_create_blend - First observed
mat_create_corona - First observed
mat_create_fstorm - First observed
mat_create_generic - First observed
mat_create_multi_sub - First observed
mat_create_physical - First observed
mat_create_shellac - First observed
mat_create_standard - First observed
mat_create_vray - First observed
mat_delete - First observed
mat_duplicate - First observed
mat_get - First observed
mat_get_for_object - First observed
mat_get_map_slot - First observed
mat_library_load - First observed
mat_library_save - First observed
mat_list - First observed
mat_rename - First observed
mat_set_diffuse - First observed
mat_set_emission - First observed
mat_set_map_slot - First observed
mat_set_opacity - First observed
mat_set_pbr - First observed
mat_set_property - First observed
mat_set_slot - First observed
mat_set_specular - First observed
mat_set_sub_material - First observed
mat_slots - First observed
mirror_object - First observed
mod_add - First observed
mod_bend - First observed
mod_disable - First observed
mod_displace - First observed
mod_editnormals - First observed
mod_editpoly - First observed
mod_enable - First observed
mod_extrude - First observed
mod_ffd_2x2x2 - First observed
mod_ffd_3x3x3 - First observed
mod_ffd_4x4x4 - First observed
mod_get_gizmo_info - First observed
mod_get_params - First observed
mod_lathe - First observed
mod_list - First observed
mod_noise - First observed
mod_pathdeform - First observed
mod_relax - First observed
mod_remove - First observed
mod_rename - First observed
mod_reorder - First observed
mod_set_param - First observed
mod_set_params - First observed
mod_set_sub_object_selection - First observed
mod_shell - First observed
mod_smooth - First observed
mod_subdivide - First observed
mod_sweep - First observed
mod_symmetry - First observed
mod_taper - First observed
mod_turbosmooth - First observed
mod_twist - First observed
mod_weightednormals - First observed
model_extrude_spline - First observed
model_lathe_spline - First observed
model_loft - First observed
model_sweep - First observed
move_objects_to_new_layer - First observed
open_group - First observed
parent_objects - First observed
poly_assign_material_id - First observed
poly_auto_smooth - First observed
poly_bevel_faces - First observed
poly_bridge_faces - First observed
poly_cap_holes - First observed
poly_chamfer_edges - First observed
poly_chamfer_vertices - First observed
poly_connect_edges - First observed
poly_delete_faces - First observed
poly_detach_faces - First observed
poly_extrude_edges - First observed
poly_extrude_faces - First observed
poly_flip_faces - First observed
poly_get_edges - First observed
poly_get_faces - First observed
poly_get_stats - First observed
poly_get_verts - First observed
poly_info - First observed
poly_inset_faces - First observed
poly_loop_select - First observed
poly_make_planar - First observed
poly_move_vertices - First observed
poly_optimize - First observed
poly_quadify - First observed
poly_relax - First observed
poly_remove_vertices - First observed
poly_ring_select - First observed
poly_select_faces - First observed
poly_set_smoothing - First observed
poly_set_vertex - First observed
poly_slice - First observed
poly_subdivide - First observed
poly_target_weld - First observed
poly_triangulate - First observed
poly_unify_normals - First observed
poly_weld_vertices - First observed
proboolean - First observed
read_text_file - First observed
redo_last - First observed
release_scene - First observed
relink_assets - First observed
rename_object - First observed
render_animation - First observed
render_batch - First observed
render_camera_view - First observed
render_element_add - First observed
render_element_remove - First observed
render_element_set_output - First observed
render_elements_list - First observed
render_frames - First observed
render_get_engine - First observed
render_get_settings - First observed
render_load_preset - First observed
render_preview - First observed
render_region - First observed
render_save_preset - First observed
render_set_engine - First observed
render_set_frame_range - First observed
render_set_output - First observed
render_set_quality - First observed
render_set_resolution - First observed
render_still - First observed
reset_transform - First observed
rig_create_bone - First observed
rig_create_bone_chain - First observed
rig_create_dummy - First observed
rig_create_point_helper - First observed
rig_ik_disable - First observed
rig_ik_enable - First observed
rig_ik_goal - First observed
rig_ik_solver - First observed
rig_link_objects - First observed
rig_list_bones - First observed
rig_mirror_bone_chain - First observed
rig_morpher_add - First observed
rig_morpher_add_target - First observed
rig_morpher_list - First observed
rig_morpher_set_value - First observed
rig_set_bone_size - First observed
rig_set_ik_chain - First observed
rig_skin_add - First observed
rig_skin_add_bone - First observed
rig_skin_auto_weight - First observed
rig_skin_remove_bone - First observed
rig_skin_set_vertex_weights - First observed
rig_skin_set_weight - First observed
rig_skin_weight_table - First observed
rig_spline_ik - First observed
scatter_objects - First observed
scene_info - First observed
scene_merge - First observed
scene_new - First observed
scene_open - First observed
scene_reset - First observed
scene_save - First observed
scene_save_as - First observed
scene_statistics - First observed
select_all - First observed
select_by_superclass - First observed
select_objects - First observed
set_language - First observed
set_layer_properties - First observed
set_pivot - First observed
set_property_value - First observed
set_time_config - First observed
set_units - First observed
snap_objects_to_grid - First observed
spline_get_points - First observed
spline_set_points - First observed
transform_object - First observed
undo_last - First observed
unfreeze_all - First observed
ungroup_objects - First observed
unhide_all - First observed
unhide_objects - First observed
unparent_objects - First observed
uvw_get_channels - First observed
uvw_map - First observed
uvw_quick_peel - First observed
uvw_unwrap - First observed
viewport_capture - First observed
viewport_capture_all - First observed
viewport_set_layout - First observed
viewport_set_shading - First observed
viewport_set_view - First observed
viewport_stats - First observed
viewport_toggle_grid - First observed
viewport_zoom_extents - First observed
write_text_file
TDQS
Scored across 375 tools
With 375 tools there is substantial overlap. Examples: create_primitive vs the many create_box/sphere/cylinder/cone/torus/teapot/plane/tube/pyramid/hedra/geosphere/capsule tools; set_property_value/ctrl_set_property/get_property_value all do arbitrary property access; poly_set_vertex and poly_move_vertices overlap; render_preview and anim_play_preview both generate preview animations; export_engine_preset/export_selection overlap with format-specific exporters. The generic escape hatches (execute_maxscript, execute_python) also blur boundaries with every other tool, making selection harder.
There is a strong prefix-group convention: create_*, poly_*, mod_*, mat_*, map_*, anim_*, rig_*, render_*, viewport_*, export_*, import_*, cam_*, light_*, env_*, bridge_*, scene_*, uvw_*. However, there are notable deviations: generic create_primitive alongside 20 specific create_* tools, model_* vs mod_* subdivisions, convert_to_editable_* using a different verb style than the poly_* tools, and ctrl_*/constraint_* overlapping with anim_*. The pattern is readable but not consistently applied.
375 tools is an extreme count for a single MCP server. While 3ds Max is a large domain, the server exposes nearly every operation plus generic escape hatches, which overwhelms an agent's ability to navigate. Many tools could be consolidated (e.g., a single create_primitive with parameters vs dozens of create_* wrappers, or generic property/modifier tools instead of dozens of specialized variants). This is far beyond a well-scoped tool surface.
The tool surface is exceptionally complete, covering scene management, modeling, polygon editing, modifiers, materials, maps, UVs, lights, cameras, environment, animation, rigging, skinning, rendering, baking, viewports, import/export, and file operations. Generic escape hatches (execute_maxscript, execute_python, create_primitive, mod_add, mat_create_generic, get/set_property_value) fill any remaining gaps. Common workflows from asset creation to engine export are fully supported with no obvious dead ends.
Maintenance
Related MCP Connectors
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Cloud Blender for AI agents: scenes, assets, renders, MP4, STL, GLB — over hosted remote MCP.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically control Autodesk Maya via natural language using over 30 tools for 3D modeling, lighting, and animation. It connects through Maya's command port to facilitate procedural scene generation and complex production-ready workflows.1-
- AlicenseAqualityFmaintenanceEnables AI assistants to directly control Autodesk 3ds Max through natural language to create models, set materials, adjust lighting, and automate animations. It bridges the Model Context Protocol with 3ds Max via a TCP socket to execute Python and MAXScript commands.42417MIT
- AlicenseNot gradedqualityAmaintenanceConnect AI agents to Autodesk 3ds Max through the Model Context Protocol, enabling natural language control of scene creation, materials, modifiers, rendering, and plugin workflows.223 PyPI248MIT
- FlicenseBqualityBmaintenanceEnables AI agents to control a live 3ds Max session directly, including creating and editing objects, materials, animation, and scene inspection, with undo support.17-