opera-houdini-mcp
This server is an MCP bridge that lets an AI agent remotely drive Houdini (via a TCP connection to the Houdini main thread) for scene editing, geometry inspection, rendering, HDA management, VEX/parameter work, documentation lookup, and safe code execution.
Scene management: inspect, save/load/reset scenes, serialize scene trees, and manage connection/cache state.
Node graph editing and discovery: create/find/list/delete/rename/copy/move nodes, connect/disconnect/reorder inputs, set positions/colors, layout children, and create network boxes.
Parameters, expressions, and keyframes: get/set/read/write parameters, parameter schemas, expressions, spare parameters, link/lock/revert parms, and manage keyframes and frame ranges.
VEX workflows: create and edit Attribute Wrangle nodes with validation.
Geometry inspection and export: summaries (counts/bbox/attributes/groups), per-class attribute values, group members, bounding boxes, prim intrinsics, nearest-point queries, and atomic geo export.
Rendering: render single/quad/camera views (with policy redirect and consent tokens), start/monitor ROP renders, list/configure/create render nodes, and monitor husk/mantra processes.
Error/cook diagnostics: find error/warning nodes, force-cook nodes, and fetch detailed node info.
Screenshots and panes: capture pane screenshots (single/multiple/network view), list visible panes, and capture flipbook views.
HDA management: list/get/install/create/uninstall/reload/update HDAs, enumerate sections, and read/write section content (allowlist-restricted).
Help and documentation: query Houdini help (local-first, online fallback), verify hou API calls, BM25 offline doc search, full-text doc retrieval, and offline .hip parsing.
Self-evolving knowledge base: search/save/read lessons, save recipes, get best practices, capture workflow snapshots, and view knowledge statistics.
Safe code execution: run arbitrary Python (
execute_code) under read-only/normal/privileged policies with dangerous/heavy/mutation blacklists, bypass double-switch, audit blocks, and scene diff capture; also execute HScript.Events and batch operations: subscribe to/poll Houdini events and run batches of commands with merged undo segments.
Allows AI agents to interact with SideFX Houdini for 3D scene management, node graph editing, material creation, geometry manipulation, error scanning, and more.
Integrates with RapidAPI to access OPUS procedural furniture and environmental assets, enabling asset retrieval and placement in Houdini scenes.
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., "@opera-houdini-mcplist all nodes in the current scene"
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.
opera-houdini-mcp
opera-houdini-mcp 是 capoomgit/houdini-mcp 的独立增强 fork,定位为可作为 git submodule 嵌入到任意 Houdini 插件库的 MCP server。MIT 协议,与上游完全兼容,额外提供 Tier 1 工具集、execute_code 安全护栏、零新增 pip 依赖。
当前上游基线:
capoomgit/houdini-mcp@de4fd93(2026-07-17 同步) 同步策略:cherry-pick only,禁止 merge 集成方式:作为 git submodule 嵌入到消费方 Houdini 项目(见 §3)
目录
Related MCP server: fxhoudinimcp
Features
174 个已注册 MCP 工具(perf-mcp-round3 §4.4 对账口径:
houdini_mcp_server.py中活动的@mcp.tool装饰器数,即 AI 工具tools/list可见数;另有 9 个工具的装饰器按 slim-mcp-toolset 计划注释停用——6 个 OPUS 资产 + 3 个 base64 渲染——不计入)13 个 Tier 1 工具 — 场景 CRUD / 节点发现 / 图编辑 / 错误扫描(含 warnings)/ 几何摘要 / 材质 / 截图 / 文档查询 / 缓存管理 / 诊断,独立模块化
execute_code三档安全 policy —read-only/normal/privileged× dangerous / heavy / mutation 三类黑名单(正则 + AST 别名双检)双开关 bypass — 任何 dangerous / heavy / privileged 操作都需「请求端参数 + 服务端
HOUDINI_MCP_ALLOW_BYPASS=1」同时开启零新增 pip 依赖 —
get_houdini_help用 stdlibhtml.parser替代beautifulsoup4,维持mcp[cli]==1.12.2 + requests + python-dotenv三件套结构化 audit — 每次
execute_code响应附_audit块(policy / dangerous_hits / heavy_hits / mutation_hits / bypass_used / elapsed_ms / undo_group)local-help-first —
get_houdini_help/verify_hou_api优先打 Houdini 本地 help server(127.0.0.1:48626),失败自动回退在线 SideFX自进化知识库 — 6 个 bridge-local 知识工具(
search_lessons/save_lesson/read_lesson/knowledge_stats/capture_workflow_snapshot/save_recipe)+ 自动错误捕获 hook(零上下文成本);多 root(个人库自动发现 + 团队库注册表声明,默认只读);无嵌入模型(BM25 + 指纹 + 统计,全 stdlib)
Architecture
flowchart LR
A[AI Agent<br/>Claude Desktop / Cursor / ...] -->|stdio / MCP JSON| B[houdini_mcp_server.py<br/>bridge]
B -->|TCP 127.0.0.1:9876| C[server.py<br/>HoudiniMCPServer]
C -->|hou API| D[Houdini main thread<br/>H21+ / Python 3.11+]
D -.->|hou.helpServerUrl| E[Local help server<br/>127.0.0.1:48626]
E -.->|F1 失败 fallback| F[SideFX online docs]
C -->|RAG index build| G[scripts/build_rag_index.py]关键约束:
server.py必须运行在 Houdini 主进程内(hou是 C 扩展,跨进程 import 会 hang)bridge(houdini_mcp_server.py)与server通过 TCP127.0.0.1:9876通信,每次 tool call 短连接AI 工具看到的 MCP tool 列表来自 bridge 端(
mcp[cli]SDK),实际hou调用发生在 Houdini 进程内
Embedding as a git submodule
1. 添加 submodule
# 在你的 Houdini 插件库根目录
git submodule add https://github.com/ChengZiiii/opera-houdini-mcp.git external/houdinimcp
git submodule update --init --recursive2. 隔离 Python 环境
opera-houdini-mcp 与你项目里的其他工具运行环境解耦。建议目录布局:
<your-project>/
├── external/
│ ├── houdinimcp/ # 本仓库(submodule)
│ ├── houdinimcp-env/ # 本仓库专用的 venv(python/ + pylibs/)
│ ├── <other-tool>/ # 你的其他第三方工具
│ └── <other-tool>-env/ # 各工具独立环境,互不冲突<dirname>-env/ 不要提交进 git。env 目录名 = package 目录名 + -env,自动派生,详见 Configuration。如果你把 submodule 改名为 external/opera-houdini-mcp/,env 自动变成 external/opera-houdini-mcp-env/,跟着 rename 一下就行。
环境初始化细节(python/ 解释器 + pylibs/ 依赖)由消费方项目侧决定,可参考 pyproject.toml 的 dependencies 三件套自行装配,或用 uv pip install -p <venv-python> mcp[cli]==1.12.2 requests python-dotenv 一行命令起步。
3. 启动 server
从你的项目代码里直接 import houdinimcp 包:
import sys, os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "external"))
from houdinimcp import start_server, stop_server, is_server_running
# 启动(默认 127.0.0.1:9876)
start_server()
if is_server_running():
print("opera-houdini-mcp is up")houdinimcp 包对外暴露的完整 API:
函数 | 用途 |
| 启动 TCP server(幂等,重复调用早退) |
| 停止 server |
| stop + start |
| 查询状态 |
| 一次性初始化 |
4. 配置 AI 工具
任一兼容 MCP 的客户端(Claude Desktop / Cursor / ZCode / OpenCode / Codex):
{
"mcpServers": {
"houdini": {
"command": "uv",
"args": [
"run",
"python",
"<your-project>/external/houdinimcp/houdini_mcp_server.py"
]
}
}
}MCP JSON key 固定为
houdini(mcpServers.houdini/mcp.houdini/mcp_servers.houdini三种形式都接受),与上游完全兼容,老用户配置零改动。
5. 升级 submodule 消费者
git submodule update --remote external/houdinimcp
git submodule sync无需重装 env —— 运行环境独立放在 external/<工具名>-env/ 下,与源码完全解耦。
Tier 1 工具清单
以独立 PR 形式合入。完整计划与进度见
CHANGELOG.md。
类别 | 工具 | 说明 |
场景 |
| 增强版场景元信息(houdini_version / node_count) |
场景 |
| 场景 CRUD,自动失效缓存 |
节点发现 |
| 按 category 过滤 + name 模糊匹配 + 分页 |
节点发现 |
| 递归子树 + compact 模式 + 分页 |
节点发现 |
| glob + 类型过滤,Houdini 端单次扫描 |
图编辑 |
| 节点位置/颜色/网络盒 |
节点信息 |
| 增强:errors / cook_state / compact / input details |
错误扫描 |
| 默认含 warnings,单次 |
几何 |
| counts / bbox / attributes / groups + 大几何降级 |
材质 |
| 50+ 参数白名单 + texture 引用识别 |
HScript |
| 包装 |
安全代码 |
| 三档 policy + bypass 双开关 + 结构化 audit |
安全代码 |
| 仅 mutation 模式提供前后场景快照 |
截图 |
| pane 截图,响应走 |
渲染 |
| 路径版渲染(落盘 |
渲染 policy |
| ROP 同步渲染(四层防御 + consent token)+ husk/mantra OS 进程 best-effort 监控(bridge-only) |
文档 |
| 本地 help server 优先 + 在线 SideFX 回退(stdlib |
文档 |
| python_hou 默认 + |
诊断 |
| 不持久化连接的 ping |
缓存 |
| stats / invalidate / warmup |
知识库 |
| fork 人工审查 advisory recipes(bridge-local,不建立 Houdini 连接) |
知识库 |
| BM25 离线文档检索 / 全文 / 离线 .hip 解析 |
知识库 |
| 自进化知识沉淀:跨 root BM25 融合检索 / 沉淀 / 全文 / 统计 + 工作流快照 / recipe 写入 |
自进化知识库
agent 操作 Houdini 的试错经验跨 session 持久化为可检索 lesson(模块 _lessons.py +
_lessons_search.py,纯 stdlib、无嵌入模型)。触发时机:遇到报错、重试第 2 次
仍未解决、或遇到不认识的 API/参数时,先 search_lessons 检索既往经验;命中后用
read_lesson 拉全文;解决问题后用 save_lesson 沉淀。lesson 是 advisory,不替代
verify_hou_api / get_houdini_help / get_best_practices。
自动捕获(零上下文成本):bridge 在响应出口检测 status=error 响应,把错误
事件以 append-only 方式写入个人库 inbox/events.jsonl(同指纹去重、≥3 次自动生成
draft 骨架并在检索时提示「已踩 N 次,请补充 fix」)。
存储位置(全部在个人目录 ~/.opera-houdini-mcp/,不入仓库 git):
~/.opera-houdini-mcp/
├── config.json # 注册表(仅声明额外团队 root,个人库自动发现)
├── knowledge/
│ ├── lessons/*.md # draft + published lesson(9 字段 + id/status/strength/root/时间戳)
│ ├── recipes/BEST_PRACTICES.md # 个人人工 recipes(可空)
│ └── inbox/events.jsonl # 自动捕获原始事件
└── cache/index/<root-name>/ # 各 root BM25 索引缓存团队库注册(config.json,可选):path 接受三种形式——${VAR} 环境占位符、
相对路径(相对 ~/.opera-houdini-mcp/)、或绝对路径(Windows 盘符 C:\ / C:/、
POSIX 前导 /、UNC \\server\share、前导 \)。绝对路径支持团队协作中各成员 NAS
映射盘符不同的场景——config.json 是本机配置(位于 ~/.opera-houdini-mcp/,每台
机器各一份),各成员各自写自己盘符的绝对路径即可,无需统一环境变量,无跨机器误导。
writable 默认 false(AI 只读,晋升人工把关);占位符未定义 → unconfigured
静默跳过,路径不可达(绝对/相对路径指向的目录不存在、或占位符已定义但目录不可读)
→ unavailable 跳过并附 _warning,均不影响个人库。含 ${ 但非纯占位符的混合
形式(如 ${VAR}/sub)仍被拒绝。
[
{ "name": "team_knowledge", "path": "${TEAM_SHARE}/houdini/knowledge", "priority": 0.8, "writable": false }
]团队协作 NAS 示例(各成员盘符不同,各自在本机 config.json 写绝对路径;同事若
把同一 NAS 映射到其他盘符,则改成自己的盘符即可):
[
{ "name": "team_knowledge", "path": "Z:\\team\\houdini\\knowledge", "priority": 0.8, "writable": false }
]execute_code 安全模型
Policy | mutation | dangerous | heavy_geometry | import hou | 默认 bypass |
| 拒绝(命中 mutation 正则/AST) | 拒绝 | 拒绝 | 拒绝 | — |
| 允许 | 拒绝(除非 | 拒绝(除非 | 提示 | 仅在客户端显式开启 |
| 允许 | 允许(必须同时开启 | 允许(必须同时开启 | 允许 | 必须服务端环境变量 |
双开关原则:任何 dangerous / heavy / privileged 操作都需要「请求端参数 + 服务端环境变量」同时开启。服务端不开环境变量,再多客户端请求也无效。
Audit:每次 execute_code 调用都会在响应里附 _audit 块(policy / dangerous_hits / heavy_hits / mutation_hits / bypass_used / elapsed_ms / undo_group / exception)。
超时:执行超时不会自动 hou.undos.performUndo(),避免误回滚正常操作。客户端需根据 _audit.elapsed_ms 自行决定。
AI 调用 hou API 的硬约束
任何 AI agent 通过
execute_code调用 hou API 之前 MUST 先 verify。hou是 C 扩展,跨 major version 间会重命名 / 废弃 / 新增方法。假定跨版本 hou API 等价 = bug 风险(hang / type-check 失败 / 行为不一致)。
正确工作流:
调
verify_hou_api('Class.method')先看_ai_hint,绝不直接把假设的 hou API 写进execute_code的code参数若返
status="success", methods=[](API 不存在),改用其他等价 API(例如在 SOP 子节点设 display/render flag,而不在 OBJ 容器调不存在的 setDisplayNode)若返
status="success"且_ai_hint提到 thread 安全 caveat(如ObjNode.setInput需 input_index + item + output_index 三参),谨慎评估是否值得在 worker thread 冒险
三级 fallback(F0 → F1 → F2 → F3)
按优先级从高到低:
F0 — 判断 hou 版本:verification 第一步必须先
hou.version()确认 major version,因为 hou API 在跨 major 时会重命名 / 废弃 / 新增F1 本地 hou help(优先,无网络依赖,最快):调
verify_hou_api(item_name=...);若需进一步信息,hou.node(path).help()(已存在节点)或execute_code跑help(hou.<Class>.<method>)F2 联网 SideFX 文档(F1 拿不到时):
verify_hou_api(item_name="<Class>.<method>", help_type="python_hou")走 stdliburllib.request抓https://www.sidefx.com/docs/houdini/hom/hou/<name>.html;不引入新 pip 依赖local-help-first(自动):
get_houdini_help/verify_hou_api优先打 Houdini 本地 help server(默认http://127.0.0.1:48626/),本地不可达 / 超时 / 白屏(HTTP 200 但内容无效)时自动回退在线。返回_source字段("local"/"online"/"")告知实际命中方,_fallback_reason说明回退原因。健康缓存:本地失败后 60s cooldown 内跳过本地直查在线(fix-mcp-help-cap-protocol:本地 HTTP 404 不进 cooldown——页面不存在是合法答案,直接回退在线;cooldown 仅由 timeout / 5xx / 网络错 / 白屏触发)。Class.method点号名(python_hou)自动拆分为类页面 + 方法精确匹配,不再直接拼 URL 导致双 404
F3 让用户开梯子(F2 返
status="error"且reason含网络关键字时):AI agent 必须在输出里显式写出"⚠ SideFX 文档站不可达,请检查网络/梯子,或在 Houdini 内用hou.helpServerUrl()查本地帮助"
跨工具说明:底层 = get_houdini_help;AI-friendly wrapper = verify_hou_api。建议优先用 verify_hou_api 调 hou API,get_houdini_help 用于 SOP/OBJ 节点本身或 vex_function 查询。
详细复盘 / postmortem(含 2026-07-21
ObjNode.setInputhang 案例)见CHANGELOG.md。
Configuration
环境变量 | 默认 | 作用 | 适用工具 |
| 未设 |
|
|
| 未设 |
|
|
| 见下方约定 | embedded env 目录绝对路径覆盖;未设时从 package 目录名自动派生( |
|
|
| 本地 help server base URL |
|
|
| 本地探测短超时(秒,clamp |
|
|
| 本地失败后 cooldown 窗口(秒,clamp |
|
| 未设 |
|
|
|
| RAG 索引目录覆盖;未设时解析序 home 目录(存在即用)→ 旧 fork 模块目录(兼容)。索引由 |
|
| 未设 | OPUS 资产库 API key |
|
|
| OPUS API host |
|
|
| OPUS API base URL |
|
HOUDINI_MCP_ENV_DIR 派生约定:
package at <parent>/<dirname>/ env 派生为 <parent>/<dirname>-env/
examples:
opera-houdini-mcp/ opera-houdini-mcp-env/
external/houdinimcp/ external/houdinimcp-env/
external/mcp/ external/mcp-env/
D:/我的项目/external/houdinimcp/ D:/我的项目/external/houdinimcp-env/相对路径的 override 会被静默忽略(fallback 到默认派生),因为 bridge 进程的 cwd 取决于 AI 工具怎么 spawn 它(Claude Desktop / Cursor / ZCode 各不相同),相对路径不可靠
99% 的场景不需要设这个变量,保持默认派生即可
OPUS 集成(可选)
OPUS 提供大量家具 / 环境程序化资产。订阅步骤:
cp urls.env.example urls.env # urls.env 已在 .gitignore编辑
urls.env填入 key:
RAPIDAPI_HOST_URL=https://opus5.p.rapidapi.com/
RAPIDAPI_HOST=opus5.p.rapidapi.com
RAPIDAPI_KEY=<your-key>不设 key 时 server 仍可启动,仅 OPUS 工具被禁用。OPUS 集成是可选的。
Upstream Sync Policy
字段 | 值 |
上游仓库 | |
同步基线 |
|
同步方式 | cherry-pick only(禁止 merge) |
提交规范 | 标题前缀 |
同步窗口 | 手动触发,每次有上游合入后 7 天内 |
为什么禁止 merge:保持 opera 自身的提交图干净可审计,区分"上游原样"与"opera 独有"的改动点。
贡献到上游:opera 独有的改进建议优先以 PR 形式回提给 capoomgit/houdini-mcp,合入后再 cherry-pick 回来。这样全社区都能受益。
Testing
# 单元测试(不依赖 Houdini)
cd tests
pytest test_common.py test_execute_code_safety.py test_help.py \
test_three_tier_fallback.py test_verify_hou_api.py
# Live smoke(依赖运行中的 Houdini 21+)
pytest tests/h21_live_*.py
# 完整回归
pytest tests/phase5_full_regression.py测试基线:Houdini 21.0 + Python 3.11。详细 fixture / 共享 helper 见 tests/conftest.py 与 tests/_e2e_helpers.py。
Troubleshooting
现象 | 排查 | 修复 |
AI 连不上 9876 |
| 关防火墙,或在 shelf 重新 Start MCP |
License 相关 | Houdini license server 状态 |
|
升级后工具找不到 | Houdini 还加载着旧 plugin | 在 shelf 点 Stop MCP → 重启 Houdini → 点 Start MCP |
| 本地 help server( | 看 |
| 服务端 | 服务端 |
|
| 按 Embedding §3 把 |
Edge Cases & 集成陷阱
改 package 目录名
env 路径自动从 package 目录名派生(<dirname>-env/)。改了 package 目录名要同步改 env 目录名,或用 HOUDINI_MCP_ENV_DIR 指过去。env 内的 Python + 依赖无需重装,纯文件系统 rename 即可:
mv external/houdinimcp external/opera-houdini-mcp
mv external/houdinimcp-env external/opera-houdini-mcp-env # 跟着改多个项目共享一个 env
每个项目派生的 env 路径按各自 package 目录名走,默认不会共享。多项目共享:
export HOUDINI_MCP_ENV_DIR=/shared/envs/opera-houdini-mcp-env建议绝对路径。相对路径的 override 会被静默忽略(bridge 进程的 cwd 取决于 AI 工具怎么 spawn,跨进程不稳定)。
Windows 目录大小写
Windows 不区分大小写但 git checkout 保留原始大小写。如果你在 Windows 上 clone 后看到 Houdinimcp/ 而代码 baseline 用 houdinimcp/,basename 派生会按实际拼写走,可能导致 env 路径大小写不一致:
# 强制 git 严格大小写敏感
git config core.ignorecase false
# 如已 checkout 成错误大小写,重命名
Rename-Item external/Houdinimcp external/houdinimcpenv 跨 OS 不通用
env 内嵌的 Python 是平台相关 wheel(cp311-cp311-win_amd64 这种)。Windows env 拷到 Linux 跑不了,反之亦然。跨 OS 迁移必须重装。
改 env 路径不需要重装依赖
env 改名、移位置、改 owner,依赖本身可以原地保留:
mv external/houdinimcp-env /new-location/my-env
export HOUDINI_MCP_ENV_DIR=/new-location/my-env无需 pip install,无需重下 Python 包。
git worktree / 多分支并行
每个 worktree 派生独立 env,不会互窜。共享 env 见上方「多个项目共享一个 env」。
权限与只读 env
env 目录存在但不可写(网络盘权限、只读 checkout)时,_consent_dir() 的 os.makedirs 兜底会抛 PermissionError。安装时确保 env 所在目录对运行用户可写。
pip install -e . 会污染全局
不要把 opera-houdini-mcp 装到全局 Python。env 是隔离的,依赖会随 env 走;全局装会污染系统 Python,且后续覆盖会破坏 env 完整性。
Contributing
Fork → 建分支 → commit(标题前缀
[opera],正文引用对应上游 PR 号如有)pytest tests/全绿PR 描述里说明:
改动的 Tier 1 工具编号(如果适用)
是否新增 pip 依赖(不允许,除非有充分理由并单独标注)
是否动到不变量(见下)
等 CI / 维护者 review
不变量清单(动到任一需先在 issue 里讨论)
不变量 | 值 |
监听端口 |
|
pip 依赖基线 |
|
MCP JSON key |
|
公共 API |
|
Security
execute_code是 LLM 驱动 Python 执行入口,三档 policy + 双开关 + 结构化 audit 是当前安全基线漏洞报告:通过 GitHub Issue 的 Private vulnerability reporting 渠道(不要在公开 issue 里贴 PoC),或直接联系维护者
License & Acknowledgement
本仓库全部代码沿用上游 MIT License。opera-houdini-mcp 本身的改动部分同样以 MIT 协议发布。
Houdini-MCP 的最初设计参考了 blender-mcp,感谢他们的贡献。opera-houdini-mcp 是 capoomgit/houdini-mcp 的独立 fork,遵循 MIT 协议,原版权归 Capoom 2025 所有。提交通过 cherry-pick 而非 merge 同步上游。
Available Tools
174 toolsassign_materialA
把 material_path 处的材质绑定到 geometry_path 处的几何节点。
参数说明:
- geometry_path: SOP / OBJ 几何节点路径
- material_path: 材质节点路径
- group: 可选,指定要绑定到的 group 名(如 primitive / point group);
传 None 时整节点绑定,传具体名字时仅绑定到该 group
返回 dict 包含 geometry_path / material_path / group / success;
绑定失败时函数会抛 ValueError,bridge 不会再以 success:True 形式
静默吞错。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| group | No | ||
| geometry_path | Yes | ||
| material_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond what annotations (none provided) would cover: it specifies the return dict contents and explicitly states that binding failures raise ValueError and will not be silently swallowed as success:True. This adds transparency about error handling and return behavior, though it does not mention permissions or side effects on existing assignments.
Agents need to know what a tool does to the world before calling 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: it opens with the main purpose, then lists parameter explanations in a clear, bullet-like format, and finishes with return and error behavior. Every sentence is informative and contributes to understanding the tool, with 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?
The description is comprehensive for a simple assignment tool. It covers the action, all relevant parameters (except ctx), the return dict contents, and error handling semantics. Since there is no output schema, the description provides the necessary return information, making it complete for the agent to invoke and interpret 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?
The schema provides only parameter names with no descriptions (0% coverage), so the description carries the full burden. It explains geometry_path and material_path as node paths, and gives detailed semantics for the 'group' parameter, including the None vs specific group behavior. However, the required 'ctx' parameter is not described at all, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: binding a material at material_path to a geometry node at geometry_path. The verb 'bind' and the specific resource paths make the purpose unambiguous, and it is distinct from sibling tools like list_materials or create_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 provides clear context on how to use the tool, including optional group binding behavior and the distinction between None and a specific group. However, it does not explicitly state when to use this tool over alternatives, such as set_parameters or other material-related tools, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchA
按顺序执行一批既有 Houdini command。
batch 只做一次 TCP relay;bridge 先完整预检 render policy,任何 redirect / interrupt / blocked response 都不会触发连接或前序 mutation。 Houdini 端按 mutating segment 合并 undo;batch 不提供事务回滚,结果逐项 报告。默认最多 50 项,上限可由环境变量调整并 clamp 到 1..200。
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | ||
| continue_on_error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses multiple traits: TCP relay, per-item result reporting, no rollback, undo merging on mutating segments, and a default max of 50 items with environment-variable clamp. This is comprehensive and adds significant 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 a compact, well-structured paragraph where each sentence adds unique value. It avoids redundancy and is 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?
Despite lacking an output schema, the description fully covers execution order, network behavior, undo integration, error reporting, and limits. It is complete enough for an agent to use the tool correctly without needing external documentation.
Complex tools with many parameters or behaviors need more documentation. 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 0% and the description does not explain the operations array structure or the continue_on_error flag. It mentions 'existing Houdini commands' and 'results item by item', which loosely implies error handling, but it does not clarify what each operation object should contain or how continue_on_error affects 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 '按顺序执行一批既有 Houdini command' (execute a batch of existing Houdini commands in order), specifying the verb (execute), resource (Houdini commands), and scope (batch). It distinguishes itself from sibling tools by focusing on batch execution and even contrasts with 'bridge' to clarify its 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?
It explicitly contrasts with 'bridge' by saying batch does simple TCP relay while bridge pre-checks render policy, giving clear when-to-use guidance. It also notes the lack of transaction rollback, implying that batch is for non-atomic operations where per-item reporting is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_multiple_panesA
批量截图多种 pane 到 save_dir(不存在会自动创建)。
pane_types 是 pane 类型名列表;返回与 pane_types 等长的 result 列表,
每条 {pane_type, save_path, success, error} 独立报告。任意一种 pane
抛异常不影响其他 pane。响应过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| save_dir | Yes | ||
| pane_types | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that save_dir is auto-created, each pane's result is independently reported, exceptions in one pane do not affect others, and the response passes through size cap handling. This is useful behavioral context beyond the basic 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 very concise, with three short sentences that front-load the core purpose and then add essential behavioral details. No redundant information or 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?
While the description explains the return structure and failure isolation, it does not clarify what 'ctx' means, and the pane_types type mismatch with the schema is a gap. For a tool with 3 required parameters and no output schema, the description is not fully complete, though it covers key aspects.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, so the description must compensate. It explains that pane_types is a list of pane type names and save_dir is auto-created, but it does not explain the 'ctx' parameter at all. Also, there is a mismatch: schema says pane_types is a string while description says it is a list, which could be confusing. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 (batch capture multiple panes) and the target resource (pane types). It distinguishes itself from sibling tools like capture_pane_screenshot by emphasizing the batch aspect, 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?
The description implies this tool is for capturing multiple pane types at once, but it does not explicitly compare with alternatives such as capture_pane_screenshot or when to prefer one over the other. There is no when/not-to-use guidance, only the implied batch use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_pane_screenshotA
截图指定类型 pane(NetworkEditor / SceneViewer / Compositor / ChannelEditor 等 30 种)。
pane_type_name 必须是 hou.paneTabType 的合法属性名。save_path 为 None
时不落盘,size_bytes 改用 QBuffer 估算。fit_contents=True 时先按
pane 类型调用 homeAll() / curViewport().home() 把可视范围对齐。
响应走 apply_response_cap。无 PySide 环境返回 _warning dict。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| save_path | No | ||
| fit_contents | No | ||
| pane_type_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden of behavioral disclosure. It explains important edge cases: save_path=None avoids disk writes and uses QBuffer for size estimation, fit_contents=True triggers alignment via homeAll()/home(), responses go through apply_response_cap, and environments without PySide return a _warning dict. These details go well beyond a simple statement of 'capture screenshot'.
Agents need to know what a tool does to the world before calling 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 main purpose, and subsequent sentences each add essential behavioral details without redundancy. The line breaks improve readability, 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?
The tool has a moderate complexity with 4 parameters and no output schema, so the description must explain return values. It mentions apply_response_cap and the _warning dict fallback, but does not describe the success response structure (e.g., image data, file path, or size_bytes format). Additionally, the 'ctx' parameter remains unexplained, making the description incomplete for fully 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?
Schema description coverage is 0%, so the description must compensate. It explains three of four parameters: pane_type_name must be a valid hou.paneTabType property, save_path=None indicates no disk persistence, and fit_contents=True controls view alignment. However, it omits any explanation for the 'ctx' parameter, leaving its purpose and format unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 captures a screenshot of a specified pane type, listing examples (NetworkEditor, SceneViewer, etc.) and explicitly mentions 30 types. This distinguishes it from sibling capture tools like capture_multiple_panes, which captures multiple panes. The verb 'capture' and resource 'pane' 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 gives parameter behaviors but does not provide guidance on when to use this tool versus alternatives such as capture_multiple_panes or render_* tools. There is no explicit 'when not to use' or comparison to sibling tools, leaving the selection criteria implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_sceneviewer_flipbook_viewsA
采集 SceneViewer 的 Top / Front / Right flipbook,可显式请求 Perspective。
views=None 时严格按 top、front、right 顺序采集;传入 views 时保留调用方
顺序且不允许重复或未知视图。每张图由 Houdini 内部 flipbook 生成并校验
PNG IHDR,返回结构化的逐视图结果与 state_restored 状态。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| views | No | ||
| save_dir | No | ||
| pane_name | No | ||
| desktop_name | No | ||
| fit_contents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains ordering guarantees (strict top/front/right when views=None; caller's order otherwise), validation (PNG IHDR check), and return structure (per-view results and state_restored). This is solid transparency, though it does not detail potential side effects or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two sentences that front-load the core purpose and then immediately cover behavior and return information. Every word earns its place with no filler 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?
The tool has six parameters, no annotations, and no output schema, so the description must compensate for complexity. It adequately covers the core capture behavior and views constraints but leaves parameter semantics for 5 of 6 parameters unexplained, and the return structure is only vaguely described as 'structured per-view results.' This is a minimum viable description but with 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 description coverage is 0%, so the description must compensate for parameter meaning. It provides detailed semantics for the 'views' parameter (ordering, duplicates, unknown views) and mentions 'Perspective' as an explicit request. However, the other five parameters (ctx, save_dir, pane_name, desktop_name, fit_contents) are completely unaddressed, leaving significant 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's function: capturing Top/Front/Right flipbook views from the SceneViewer, with an option to request Perspective. This specific verb+resource+scope distinguishes it from sibling tools like capture_pane_screenshot or render_quad_views, which target different capture mechanisms or view configurations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 generating standardized flipbook captures from the SceneViewer, but it does not explicitly state when this tool is preferred over alternatives or when it should be avoided. The views parameter behavior is described, but no exclusions or alternatives are mentioned, leaving the 'when to use' guidance merely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_workflow_snapshotA
把用户选中(或 node_path 指定)的节点子网络捕获为结构化工作流快照 (add-workflow-knowledge-capture,readOnly relay,不修改场景)。
触发时机(advisory):用户完成 HDA / 节点流 / VEX 工作流后说"沉淀这些
知识"时,agent 先调用 get_selection 定位,再调本工具取快照,组织为
recipe(用法文档,走 save_recipe)或 lesson(经验,走 save_lesson)。
本工具是 advisory,不替代 verify_hou_api / get_houdini_help /
get_best_practices,也不替代目标 Houdini 版本的 live verification。
参数说明:
- node_path: 可选;省略时取当前节点选择(空选择返回 no_selection
结构化错误,不静默回退);指定时捕获以该节点为根的闭包子网络。
- include_vex: 可选,默认 True;包含 Attribute Wrangle 的 VEX snippet。
- max_nodes: 可选,默认 50;闭包节点硬上限,超限截断并标记 truncated。
- include_hda_internals: 可选,默认 False;True 时满足展开判定的节点
内部子网并入同一 BFS 遍历(受同一 max_nodes 预算与 truncated
语义)。展开判定(H21 实测收敛):children() 非空 且(用户资产
——库文件非 $HFS otls;或官方 HDA 带 Editable Nodes 声明——
definition().hasSection("EditableNodes"),如 rbdbulletsolver1
的 dopnet/forces 子网络;或非 HDA 普通容器 subnet/geo)。
官方无声明的封装 HDA(rbdconstraintproperties / rbdconfigure
等)默认**不拆解**;官方空壳节点(attribwrangle 等 children
恒空)不展开。**不能用 isEditable() 判定**(实例锁定态
isEditable False 但 children 完全可读,且大 HDA 上定义比较可能
极慢)。研究用户自制 HDA 原理(内部 VEX / 约束 / 子网结构)时
启用,并可视需要上调 max_nodes(大资产内部节点多,如 500)。
返回结构:{status:success, root, node_count, truncated, hip_file,
nodes, sticky_notes, connections},超限截断时 truncated=true;API
降级附 _warning。节点表每项含资产级标识 type_full(nameWithCategory,
API 缺失降级 type)与 is_hda(**用户数字资产实例**:definition() 非 None
且库文件非 $HFS/houdini/otls 内建库——H21 上 attribwrangle 等 HDA 化
内建类型也有 definition,纯 definition 判定会误标),hda 字段
为 {type_name, version(可选), definition_source: embedded|external},
**绝不输出 library_path 或任何本机路径**(跨机器复现误导源);顶层
hip_file 只取 basename(隐私安全)。快照只含节点表(path/name/type/
type_full/is_hda/comment/非默认参数/vex/hda/errors/warnings)+
sticky note + 连线,**不含几何数据**,readOnly 不修改场景,纯规则
读取**不调用 LLM / 嵌入模型**。错误为 status=error + error={code,
message,details}(no_selection / invalid_node_path /
selection_read_failed / capture_connection_error)。整体过
apply_response_cap。
方法论沉淀协议(advisory,非强制):沉淀目标是工作流的**原理 / 设计
意图 / 为什么这么搭**,不是节点名与参数的复制粘贴;参数仅在用户要求
或直接影响复现时收录。正文索引用 type_full / hda 资产标识,实例名仅
辅助;**禁止本机路径入正文**(HDA 库路径 / hip 完整路径,团队知识库
跨机器误导源),资产只用全名 + 版本索引。自制 HDA 先
include_hda_internals=True 研究内部原理再组织为 recipe。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_nodes | No | ||
| node_path | No | ||
| include_vex | No | ||
| include_hda_internals | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so extensively. It details readOnly semantics, that it does not include geometry data, avoids LLM/embedding calls, handles truncation via max_nodes, and implements strict privacy measures (no library_path, only basename of hip_file). It even explains HDA expansion rules and error codes, going far beyond basic 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 lengthy but well-organized into sections (purpose, trigger, parameters, return structure, methodology protocol). Every sentence carries relevant information for an agent to use the tool safely and effectively. While not as terse as possible, the density of crucial operational details (privacy, truncation, HDA rules) justifies the length; a slightly more condensed version might earn 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?
Given the tool's complexity (5 parameters, no output schema, no annotations), the description is exceptionally complete. It explains the return structure (status, root, node_count, truncated, hip_file, nodes, sticky_notes, connections), error codes, HDA expansion logic, privacy constraints, and even advisory methodology for downstream recipe/lesson creation. No critical aspect of behavior or usage is left ambiguous.
Complex tools with many parameters or behaviors need more documentation. 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 0% coverage (no property descriptions), but the description's '参数说明' section thoroughly explains each parameter: node_path optional with no_selection error, include_vex default True, max_nodes default 50 with truncation behavior, and include_hda_internals with detailed expansion criteria. This richly compensates for the schema's lack of 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 opens with a clear, specific statement: it captures the user-selected or node_path-specified node subnetwork as a structured workflow snapshot. It explicitly notes that it is a readOnly relay and does not modify the scene, distinguishing it from mutation tools. It also contrasts with sibling tools like get_selection, save_recipe, and verify_hou_api, confirming its unique 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 '触发时机' section provides concrete trigger conditions: after a user completes an HDA/node flow/VEX workflow and says '沉淀这些知识', the agent should first call get_selection, then this tool, then organize results into save_recipe or save_lesson. It explicitly states what the tool does NOT replace (verify_hou_api, get_houdini_help, get_best_practices, live verification), giving 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.
check_connectionA
检查 Houdini 端连接信息(PR 16 连接诊断)。
返回 dict 包含 hou_version / hou_build / hip_file / hip_file_basename /
is_untitled / node_count / desktop_count / _status 八个字段。返回结构
与 server.py 中 HoudiniMCPServer.check_connection 保持一致。仅做只读
查询,不会修改 .hip 文件、节点或网络;适合 AI agent 在长会话开头调用
一次以获取当前 Houdini 版本与场景规模。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states '仅做只读查询,不会修改 .hip 文件、节点或网络' (read-only, no modification to .hip, nodes, or networks), fully disclosing its non-destructive nature. It also details the return structure, which is strong 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 but information-dense: it states the purpose, lists all return fields, notes structural consistency with server.py, declares read-only behavior, and gives usage timing. Every sentence adds value, with no redundancy or 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 return fields and read-only nature are well documented, which covers most of what an agent needs for a diagnostic tool. However, the unexplained 'ctx' parameter is a notable gap, and there is no mention of potential errors or whether an active Houdini session is required. Overall, it is complete for the simple purpose but not perfect.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, and the description does not explain the required 'ctx' parameter at all. This is a single required parameter with no semantic guidance, so the agent cannot know what value to pass. The description fails to compensate for the missing schema 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 checks Houdini connection information and lists the exact fields returned (hou_version, hip_file, etc.), giving a specific verb+resource. It does not explicitly contrast with sibling tools like ping_houdini, but the unique return fields and 'read-only' scoping make its purpose 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 explicitly recommends calling this tool 'once at the beginning of a long session' to get Houdini version and scene scale, providing clear usage context. It does not mention alternatives or when not to use it, but the timing guidance is valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_cacheA
清运行态 cache(remove_disk_file=True 时同步删磁盘文件)。副作用不可 undo。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| remove_disk_file | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly warns that side effects cannot be undone and explains the remove_disk_file parameter's impact on disk files. However, it does not mention other potential side effects or return behavior, so it is not fully 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 a single compact sentence (two clauses) that conveys core purpose, a parameter condition, and an important side effect. Every word earns its place, with no redundant or fluff 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 tool has no output schema and no annotations, yet the description covers the main action and key side effects. However, it omits details about required parameters (ctx, node_path), potential return values, and any preconditions. For a mutation tool of moderate complexity, this leaves 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 0%, so the description must compensate. It explains the remove_disk_file parameter's effect, but the required parameters ctx and node_path are not described at all. This is a significant gap for a tool with no parameter documentation 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 the tool 'clears runtime cache' with a specific verb and resource. It also distinguishes itself from sibling tools like manage_cache and list_caches by noting the optional disk file deletion behavior, making it unmistakable what this 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 implies the tool is for clearing caches, but it does not explicitly state when to use it versus alternatives like manage_cache or list_caches. There are no exclusions or alternative tool references, so 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.
connect_nodesA
Wire one node's output into another node's input. Both nodes must live in
the same network. input_index selects which input of to_path to connect
(0-based); output_index selects which output of from_path to use.
| Name | Required | Description | Default |
|---|---|---|---|
| to_path | Yes | ||
| from_path | Yes | ||
| input_index | No | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides the essential behavior: connecting output to input, with 0-based index handling. However, it does not disclose whether existing connections are overwritten, whether cycles are prevented, or what error conditions apply, leaving some behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler: the core action, a prerequisite, and the index semantics. Every sentence adds necessary information and the structure is front-loaded with the primary 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?
Relative to the tool's simplicity, the description covers the main action, constraints, and index semantics. It lacks detail on return values or edge cases like replacing existing inputs, but the core operation is well-specified for an agent to invoke it correctly in typical 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 coverage is 0%, so the description must clarify parameters. It explains the role and indexing of input_index and output_index, and the from_path/to_path relationship is implicit in the main verb. It does not detail path formats, but that is likely a conventional concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Wire') and clearly identifies the resource being operated on: connecting one node's output to another node's input. It distinguishes this from sibling tools like disconnect_node_input and reorder_inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 prerequisite: both nodes must live in the same network. It does not explicitly name alternatives or when-not-to-use, but the context is clear enough for an agent to understand this is the tool for establishing connections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cook_nodeB
Force-cook a node and report whether it cooked cleanly, with errors, warnings and cook time. The definitive way to verify a node works.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the action 'force-cook' and the outputs, but it does not disclose potential side effects (e.g., scene modification, performance impact), prerequisites, or any restrictions. The behavioral information 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 two concise sentences that front-load the core action and quickly add the verification framing. Every word earns its place, with no filler 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?
The tool is simple, but completeness is weak overall. The description covers the return aspects (cleanliness, errors, warnings, cook time) and notes the primary purpose, but it omits parameter guidance and any behavioral caveats. Given no annotations and no output schema, this 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?
The input schema has a single required 'path' parameter with zero description coverage. The description never mentions the 'path' parameter, nor does it explain what path should refer to, expected format, or any examples. It adds no 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 uses a specific verb 'force-cook' and clearly identifies the resource 'node'. It states exactly what it does: cook a node and report on whether it cooked cleanly, with errors, warnings, and cook time. It also differentiates itself from siblings by claiming to be 'the definitive way to verify a node works.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'The definitive way to verify a node works.' It implies the appropriate scenario but does not explicitly name alternative tools 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.
copy_nodeA
复制节点到 dest_parent 下(add-node-parameter-vex-tools,MUTATING)。
使用 ``hou.copyNodesTo``;预检目标 category 与同名冲突。
``name`` 可选,None 时由 hou 决定。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | No | ||
| src_path | Yes | ||
| dest_parent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and discloses that the operation is MUTATING, uses hou.copyNodesTo, and pre-checks category and name conflicts. However, it does not specify conflict outcomes (error vs rename) or required permissions, leaving some 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 compact, with the core action front-loaded in the first clause and supporting details in short subsequent sentences. It includes extra identifiers like the tool category but remains focused and free of 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?
The tool has 4 parameters and no output schema; the description covers the main action and some behavior (mutating, pre-checks, name handling) but leaves out return format, error handling, and the role of ctx. It is adequate for basic use but not fully complete for 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?
The description adds meaning for the 'name' parameter by noting it is optional and that None defers to hou, and it implies dest_parent is the target parent. It does not explicitly describe src_path or the ctx parameter, leaving them to be inferred from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 primary action: '复制节点到 dest_parent 下' (copy node to under dest_parent), which provides a specific verb, resource, and destination. It distinguishes from sibling move_node by explicitly using 'copy', 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 implies use for copying nodes but does not explicitly contrast with alternatives like move_node or create_node, nor does it state prerequisites or exclusions. It mentions pre-checks for category and name conflicts, which hints at behavior but not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_chop_nodeC
CHOP parent 下创建节点。参数:parent_path/node_type 必填,node_name 可选。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_name | No | ||
| node_type | Yes | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It does not mention side effects, return values, error behavior, or any constraints beyond reiterating required/optional parameters (which are already in the schema). The description adds no behavioral context beyond the basic action of creating a node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: a single sentence plus a parameter list. It front-loads the primary action and contains no redundant wording. However, it is so sparse that it sacrifices clarity for brevity, though the conciseness itself 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 4 parameters, no output schema, and no annotations, the description is incomplete. It does not specify what the tool returns, what constitutes a valid CHOP node_type, or how parent_path should be formatted. An agent would struggle to invoke the tool correctly without external documentation.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate by explaining parameter meanings. It only mentions that parent_path and node_type are required and node_name is optional, which duplicates the schema structure without adding semantic detail. It completely omits any explanation of ctx, valid node_type values, or parent_path format, failing to guide 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 'CHOP parent 下创建节点' (create a node under CHOP parent), which clearly specifies the action (create node) and the resource context (CHOP parent). This distinguishes it from sibling creation tools like create_cop_node and create_lop_node by focusing on the CHOP network.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_node or the type-specific create_cop_node/create_lop_node. The description does not mention exclusion criteria or alternative tools, leaving the agent to infer appropriate 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_cop_nodeA
在 Copernicus parent 下创建节点(add-cops-tools,MUTATING)。
校验 parent 可编辑且 child category 为 "Cop",node_type 必须在 Cop
registry 中存在;单 undo group。``node_name`` 可选。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_name | No | ||
| node_type | Yes | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and successfully discloses that the tool is MUTATING, validates parent editability and child category, requires node_type to exist in the Cop registry, and operates as a single undo group. It does not cover error behavior or return values, which would enhance transparency, but the mutation and validation context is well communicated.
Agents need to know what a tool does to the world before calling 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 sentences) and front-loaded with the core purpose ('create a node under the Copernicus parent'). It packs essential behavioral detail (mutation, validation, undo group, optionality) without redundancy, making every sentence earn 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?
Considering the 4-parameter schema, no output schema, and no annotations, the description covers purpose, mutation, validation, and undo behavior, but it omits return value semantics and failure behavior. Since there is no output schema to clarify what the tool returns, the description should explain what the agent can expect on success (e.g., the created node path), making it incomplete but not severely lacking.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It partially does: node_name is explicitly noted as optional, parent is described as needing to be 'editable', and node_type must exist in the Cop registry. However, the required 'ctx' parameter is completely unexplained, and node_type's actual value range is not given beyond registry existence, leaving a significant semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('a node under the Copernicus parent'), and includes validation rules that clearly distinguish it from generic create_node and other node-type-specific tools like create_lop_node or create_chop_node. The parenthetical labels '(add-cops-tools,MUTATING)' reinforce the specific scope and mutation 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 description implies usage context through the name and 'under Copernicus parent' phrasing, and it mentions validation constraints that guide when it is appropriate. However, it never explicitly names alternatives (e.g., 'use create_node for generic nodes') or states when not to use this tool, so guidance remains implicit 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_lop_nodeA
在可编辑 LOP parent 下创建节点(add-usd-solaris-tools,MUTATING)。
``node_type`` 必须在 ``hou.lopNodeTypeCategory().nodeTypes()`` 探针中
存在;单 undo group;失败 destroy 半成品。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_name | No | ||
| node_type | Yes | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses mutation (MUTATING), the requirement that node_type exist in a probe, single undo group behavior, failure cleanup (destroys half-finished product), and that responses pass through apply_response_cap. This is strong behavioral disclosure for a mutating 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 with the core purpose, then provides essential behavioral details in just a few sentences. Every sentence adds meaningful information without 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 no output schema and no annotations, the description covers the critical behavioral aspects (mutation, undo, failure cleanup, response cap) and the node_type constraint. It does not explain the format or meaning of ctx and parent_path, nor what the successful return value looks like, but for a creation tool with these constraints, 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 description coverage is 0%, so the description must compensate. It adds valuable context for node_type (must exist in the probe), but provides no additional meaning for ctx, parent_path, or node_name. The parameter names are self-descriptive to a degree, but with no schema descriptions, this leaves gaps for required parameters like ctx and parent_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?
Description states a specific verb (create) and resource (LOP node), plus a key constraint: the node must be created under an editable LOP parent. It also references the add-usd-solaris-tools category and explicitly marks the operation as MUTATING, clearly distinguishing it from sibling tools like create_node or create_wrangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 creating a node under an editable LOP parent and when node_type must come from the hou.lopNodeTypeCategory() probe. It does not explicitly name alternatives or exclusion conditions, but the editable-parent restriction and reference to the LOP-specific probe imply 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.
create_materialC
在 Houdini 中创建一个材质节点并返回节点信息。
参数说明:
- material_type: 材质节点类型,如 "principledshader"、"vopsurface"
- name: 可选,节点名;缺省时由 Houdini 自动命名
- parent_path: 可选,父节点路径,默认 "/mat";不存在时回退到 /mat
- parameters: 可选,dict 按 parm 名设置参数值;不存在的 parm 名会
静默跳过(不影响调用)
返回 dict 包含 path / type / name / parameters_set 四项,
parameters_set 列出已尝试设置的 parm 名(含静默跳过的)。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | No | ||
| parameters | No | ||
| parent_path | No | /mat | |
| material_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It usefully discloses that nonexistent parameter names are silently skipped and that parent_path falls back to '/mat' if missing. However, it does not mention potential side effects (e.g., what happens if a node with the same name exists), failure modes, or permission requirements.
Agents need to know what a tool does to the world before calling 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-organized with a clear purpose statement followed by a bulleted parameter list and return information. It is concise and each section serves a purpose, though the parameter block could be slightly more 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 5-parameter tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers most parameters but misses the required ctx, includes a type contradiction for parameters, and lacks usage context relative to 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?
Schema description coverage is 0%, so the description must explain all parameters. It explains material_type, name, parent_path, and parameters, but completely omits the required 'ctx' parameter, leaving the agent unable to determine what it should be. Additionally, it describes 'parameters' as a dict while the schema declares it as a string, creating confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '在 Houdini 中创建一个材质节点并返回节点信息' (create a material node in Houdini and return node information). This is specific about the verb and resource, but it does not explicitly differentiate from sibling tools like create_node or create_material_network, only relying on the term 'material node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 create_node, create_material_network, or assign_material. It includes parameter instructions but no context about the intended scenario or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_material_networkA
在 parent 下创建 matnet(add-scene-context-selection-materials,MUTATING)。
验证 parent 存在、未锁定、childTypeCategory 为 Sop 后调
``createNode("matnet", name)``;错误结构化区分
``parent_not_found / parent_locked / unsupported_parent_
category / node_type_unavailable``。此 tool 归
``MUTATING_COMMANDS``,server handler 通过
``hou.undos.group`` 入 undo group。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | No | mat | |
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does an excellent job: it discloses validation steps, structured error types, undo grouping via hou.undos.group, and the response cap. These are behavioral traits beyond basic 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 concise and well-structured: it leads with the core action, then details validation and error handling in a compact format. No redundant words 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?
The tool is moderately complex with no output schema, yet the description covers creation, validation, errors, undo grouping, and response handling. It lacks an explanation of ctx and the expected return value, but overall it is substantially complete for 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 coverage is 0%, so the description must compensate. It implicitly references parent_path ('under parent') and name ('createNode("matnet", name)'), but completely omits context for the ctx parameter. The description does not explicitly map parameters to their roles, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the tool creates a matnet node under a specified parent, with a specific verb ('create') and resource ('matnet'). It also references the scene context selection materials, which helps distinguish it from general create_node or other material-related 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 provides no explicit guidance on when to use this tool versus alternatives like create_node or create_material. It mentions MUTATING and the scene context but does not state exclusions or preferred usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_network_boxA
在父节点下创建 network box(network editor 中的分组框)。
参数说明:
- parent_path: 父节点路径。
- name: 可选,box 名;缺省时由 Houdini 自动命名。
- node_paths: 可选,要包含到此 box 的节点路径列表;
不存在的节点静默跳过,不抛错。
返回 dict 包含 path / name / nodes_in_box 三项;
父节点不存在时函数会抛 ValueError。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | No | ||
| node_paths | No | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that nonexistent nodes are silently skipped, that a ValueError is raised when the parent is missing, and that the return dict contains path/name/nodes_in_box. It does not mention permissions or reversibility, but the covered behaviors are meaningful for safe invocation.
Agents need to know what a tool does to the world before calling 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 well-structured, with a clear main sentence followed by a parameter list. It avoids redundant text and includes only necessary behavioral and return information. It is 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 description covers return values and error behavior well, but omits the `ctx` parameter entirely, which is required by the schema. Given no output schema or annotations, the missing context for a required parameter leaves a notable gap. Overall, the description is mostly complete but not fully self-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 description adds meaning to parent_path, name, and node_paths, explaining optionality and the silent-skip behavior. However, the required parameter `ctx` is entirely missing from the description, creating a critical gap since the schema provides no description for it either. This partial coverage is not fully sufficient to guide the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it creates a network box under a parent node, with a specific verb and resource. It distinguishes itself from sibling tools like create_node by specifying 'network box' and 'group box in network editor'. The scope is clear 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 the tool is for grouping nodes in the network editor, but provides no explicit guidance on when to use it versus alternatives. It does not mention exclusions or preferred use cases relative to other tools. The usage context is inferable but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_nodeC
Create a new node in Houdini.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| node_type | Yes | ||
| parent_path | No | /obj |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral implications. The single sentence only says 'Create a new node' and gives no information about side effects, required permissions, or how the node is positioned or connected. Only the input schema suggests parent_path, but the description does not elaborate.
Agents need to know what a tool does to the world before calling 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 in the sense of being short, but it is under-specified and omits essential context. It is more of a placeholder than a well-structured description, and the single sentence does not earn its place as a useful guide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 multiple parameters and lack of annotations, the description is highly incomplete. It does not explain the role of parent_path or name, nor how node_type works. An output schema exists, but the description still leaves significant gaps in understanding the tool's 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?
The schema defines name, node_type, and parent_path, but the description does not mention any of them. Since schema description coverage is 0%, the description fails to add semantic meaning beyond the raw field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 node in Houdini. It uses a specific verb and resource. However, it does not distinguish itself from other creation tools such as create_wrangle or create_cop_node, which also create nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance is provided. The description does not explain when to use create_node versus other tools, nor does it mention any prerequisites or alternatives. This leaves the agent without direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_render_nodeA
受限创建可分类 ROP 节点(design.md §"create_render_node")。
仅允许 ``ifd`` / ``opengl`` / ``karmarender``;创建后通过同一
白名单设置参数并校验 renderer 可识别。未知 node type 整体
error。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| node_type | Yes | ||
| parameters | No | ||
| parent_path | No | /out |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does reasonably well: it discloses the whitelist restriction, post-creation parameter validation through the same whitelist, a renderer recognizability check, and a response cap. It does not elaborate on side effects or return format, but key behavioral constraints are 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?
The description is compact and front-loaded with the action and restriction. It could drop the design.md reference and the internal apply_response_cap note, but overall every sentence adds some useful constraint or 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?
Given 4 parameters, no output schema, and no annotations, the description is not sufficient for confident invocation. It lacks parameter semantics, response/return details, and only covers errors for unknown node types—not for invalid parameter values, naming, or parent_path 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 0%, so the description needed to compensate by explaining parameters. It only hints at allowed values for node_type and vaguely mentions 'parameters' without describing the structure of the parameters object or the meaning of name and parent_path. Most parameters remain semantically 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 clearly identifies a specific action—restricted creation of classifiable ROP nodes—and enumerates the allowed node types (ifd/opengl/karmarender). This distinguishes it from generic siblings like create_node and render-related 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 explicit usage boundaries: only whitelisted node types are allowed, and unknown node types cause a complete error. It does not explicitly name an alternative for unrestricted creation, but the restriction clearly implies 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.
create_spare_parameterA
单项 spare 参数创建(add-node-parameter-vex-tools,MUTATING)。
通过 ``parmTemplateGroup()`` 复制 + 一次性
``setParmTemplateGroup()`` 提交。``data_type`` 接受 ``float / int /
string / toggle / menu``。``folder`` 可选。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | Yes | ||
| path | Yes | ||
| label | No | ||
| folder | No | ||
| default | No | ||
| data_type | Yes | ||
| max_value | No | ||
| min_value | No | ||
| menu_items | No | ||
| menu_labels | No | ||
| num_components | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly marks the tool as MUTATING and discloses the implementation mechanism (parmTemplateGroup() copy + setParmTemplateGroup() commit). This gives the agent awareness of the mutation without relying on annotations. It does not detail side effects or reversibility, but the core mutating behavior is clearly 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?
The description is compact, consisting of three short sentences that front-load the purpose. However, it includes low-level implementation details (e.g., 'parmTemplateGroup() copy') that might not be necessary for an agent to invoke it correctly, slightly reducing 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?
Given the tool's complexity (12 parameters, no output schema, no annotations), the description is incomplete. It does not explain most parameters, provide examples, or describe return values/errors. An agent would likely struggle to use it correctly without additional 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 0%, so the description must compensate. It adds meaning for data_type (lists accepted values) and folder (optional), but the other 10 parameters (ctx, path, name, label, default, etc.) remain undocumented. This is insufficient for a 12-parameter 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 clearly states '单项 spare 参数创建' (single spare parameter creation), which identifies the action and resource. It distinguishes itself from sibling tool create_spare_parameters by emphasizing the singular nature ('单项'), providing clear 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 usage for a single parameter via the '单项' qualifier and the singular name, but does not explicitly say when to use this over create_spare_parameters or other parameter tools. No direct alternatives 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.
create_spare_parametersA
批量 spare 参数创建(add-node-parameter-vex-tools,MUTATING)。
``parameters`` 是 list of spec dict;先全量校验、失败零部分提交。
单次 ``setParmTemplateGroup()`` 完成。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| folder | No | ||
| parameters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite lacking annotations, the description proactively discloses critical behavioral traits: full validation before any commit ('先全量校验、失败零部分提交'), execution via a single setParmTemplateGroup() call, and response processing through apply_response_cap. This provides a solid mental model of the operation's safety and mechanics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, using three short sentences to convey purpose and key execution details without redundancy. It front-loads the main action and avoids 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 batch mutation tool with no annotations or output schema, the description provides atomicity and execution details but omits essential parameter format and semantics for all fields. The undefined spec dict format and unstated roles of ctx, path, and folder make the tool under-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 description clarifies that 'parameters' is a list of spec dicts, which helps given the schema only types it as a string. However, it does not explain the structure of the spec dicts or the meaning of ctx, path, and folder. With 0% schema description coverage, this leaves significant 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 tool as a batch spare parameter creator ('批量 spare 参数创建'), which is distinct from the singular sibling create_spare_parameter. It also references the underlying function, 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 word '批量' implies batch usage, but there is no explicit guidance on when to use this tool versus create_spare_parameter or set_parameters. No exclusions or alternatives are mentioned, 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.
create_takeC
创建 child take。参数:name: take 名;include_parms/parent_take 可选。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | Yes | ||
| parent_take | No | ||
| include_parms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does not disclose side effects (e.g., whether it changes the current take), required context (ctx is unexplained), or any failure conditions. The parameter list gives a hint of behavior but no actual behavioral transparency beyond stating the action.
Agents need to know what a tool does to the world before calling 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, using a single sentence plus a compact parameter listing. There is no wasted wording, though it is terse to the point of omitting necessary context. Still, it earns a high mark for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 4 parameters, no annotations, and no output schema, the description is insufficient. It fails to explain what a child take is, what 'ctx' means, whether parameters are inherited, what the tool returns, or any side effects. A complete description would need to address these 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 schema description coverage is 0%, so the description must compensate. It explains that 'name' is the take name and that include_parms/parent_take are optional, but it leaves 'ctx' completely unexplained and does not clarify the meaning or effect of include_parms. This is partial compensation at best.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '创建 child take' (create child take), which specifies a concrete action and resource. Among sibling tools like list_takes, get_current_take, and set_current_take, this is the only create operation, so it is reasonably distinguishable, though it doesn't explicitly differentiate 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 provided on when to use this tool versus alternatives. The description only mentions the creation action and parameters, without any context about prerequisites, situations where a child take is appropriate, or why one might choose this over listing or switching takes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_vex_expressionC
在 SOP parent 下创建 Attribute Wrangle (add-node-parameter-vex-tools,MUTATING)。
设置 ``snippet`` 与 ``runover``(point / primitive / vertex / detail /
number);单 undo group。父节点 category 非 Sop 时返回 error。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| code | Yes | ||
| name | No | ||
| parent_path | Yes | ||
| attrib_class | No | point |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is mutating, groups changes in a single undo step, returns an error if the parent is not Sop, and passes responses through apply_response_cap. However, it references parameter names 'snippet' and 'runover' that do not appear in the input schema (schema uses 'code' and 'attrib_class'), and the phrase 'apply_response_cap' is ambiguous. Since there are no annotations, the description carries full burden but the mismatch undermines 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 relatively short and structured, but includes an unclear tag 'add-node-parameter-vex-tools' and a cryptic statement about apply_response_cap. It could be more focused and front-loaded, but it is not excessively verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 that there is no output schema and no annotations, the description needs to cover parameters, usage, and behavior. It partially covers constraints and mutation but misses parameter explanations, usage vs alternatives, and return value semantics. Thus it's insufficient for confident 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 has 5 parameters with 0% description coverage, and the description only vaguely references 'snippet' and 'runover' without mapping them to 'code' and 'attrib_class'. It does list possible runover values but doesn't explain ctx, parent_path, or name. This is insufficient for an agent to understand how to populate the 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 Attribute Wrangle under a SOP parent, which is a specific action with a resource. However, it does not differentiate from the sibling tool 'create_wrangle' that likely has a similar purpose, so it gets 4 rather than 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 explicit guidance on when to use this tool versus alternatives like create_wrangle or set_wrangle_code. It only mentions a constraint (parent must be Sop), which is not a usage guideline. There are no references to 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_wrangleA
Create an Attribute Wrangle SOP with the given VEX snippet, optionally
wiring input_node into its first input. run_over: points, primitives,
vertices, detail or numbers. The node is cooked immediately and the
result includes a 'validation' report — check it for VEX compile errors
before building on top. On invalid input the node is removed, never left
half-configured.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| run_over | No | points | |
| vex_code | Yes | ||
| input_node | No | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behaviors: immediate cooking, a validation report, and removal of the node on invalid input. These go beyond basic creation semantics, though it doesn't detail permissions or exact return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose; every sentence adds value (create, params, validation/cleanup). 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?
Covers creation, parameter hints, validation reporting, and failure cleanup, which is strong for a tool without annotations or output schema. Could be more explicit about the return value structure, but overall 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 has 0% description coverage, but description explicitly explains run_over allowed values, input_node wiring, and vex_code snippet. parent_path and name remain implicit but are self-evident from names.
Input schemas describe structure but not intent. Descriptions should explain 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 specific verb 'Create' and resource 'Attribute Wrangle SOP', clearly distinguishing from generic create_node and from set_wrangle_code/validate_vex. The scope and optional input wiring are explicitly 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?
Implies use case for creating a new wrangle with VEX and checking validation, but does not explicitly contrast with sibling tools like set_wrangle_code or validate_vex. Still provides clear context for when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_keyframeA
删除指定帧的关键帧(PR 19,场景写,可 undo)。
``frame`` 必须为有限浮点(删除 sub-frame 精确点)。目标帧
不存在返回 status=error("no keyframe found at frame ..."),
不写。实际删除后再次读取 keyframes 列表验证已消失。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| frame | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well. It discloses that the operation is a scene write, is undoable, requires a finite float frame for sub-frame precision, returns an error without writing if the frame is missing, and advises verification by re-reading the keyframes list. This is rich, actionable 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 well-structured, with key details separated into short sentences. It avoids fluff and is front-loaded with the main purpose. The mention of 'PR 19' is cryptic and not explained, but overall it is 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?
The tool has 4 required parameters, no output schema, and no parameter descriptions. While the description covers behavior and the 'frame' constraint, it omits the meaning of ctx, path, and parameter, and does not specify success return values. For a mutation tool with no structured schema support, this is incomplete for confident 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 0%, so the description must compensate. It adds specific meaning only for the 'frame' parameter (finite float, sub-frame exact point). The other three required parameters (ctx, path, parameter) are left entirely unexplained, which is a significant gap for invoking the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'delete' and the resource 'keyframe at specified frame', making it obvious what the tool does. It also distinguishes itself from sibling tools like set_keyframe and get_keyframes by specifying 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 description provides behavioral constraints (e.g., frame must be finite float, missing frame returns error) but gives no guidance on when to use this tool versus alternatives like set_keyframe or set_keyframes. No exclusion criteria or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_nodeB
Delete a node from the scene by path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action 'delete' but does not reveal consequences (e.g., irreversibility, effect on connected nodes, or error conditions). This is insufficient 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 a single, front-loaded sentence with no wasted words. It conveys the core action 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?
Given the simplicity of the tool (one parameter), a short description can be adequate, but this one lacks any behavioral or usage context. No return value is mentioned, and there are no notes about failure modes, making it incomplete for a destructive operation without 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 0%, so the description must compensate. The phrase 'by path' only reiterates the parameter name 'path' without adding detail about format, absolute vs. relative paths, or any constraints. This adds minimal value over 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 ('Delete a node'), the target resource ('a node'), and the method ('by path'). It is concise and distinguishes this tool from siblings like move_node, rename_node, and copy_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, prerequisites, or alternatives. It does not mention potential implications such as node connectivity or whether deletion is allowed on locked nodes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_node_inputA
Disconnect one input of a node (reports what it was connected to).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| input_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the return behavior ('reports what it was connected to'), which is a useful disclosure. However, it does not describe side effects, reversibility, or behavior when the input is already disconnected, leaving gaps in transparency for an agent.
Agents need to know what a tool does to the world before calling 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 that is front-loaded with the action. Every word earns its place, avoiding 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?
The tool is simple, but no output schema exists. The description hints at the return value but does not specify its structure or edge cases. While sufficient for a basic understanding, it lacks details that would fully inform an agent, such as behavior on invalid input or already-disconnected inputs.
Complex tools with many parameters or behaviors need more documentation. 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 0%, and the description provides no explanation of 'path' or 'input_index'. The phrase 'one input' is vague and does not clarify index semantics. This fails to compensate for the lack of schema 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 with a specific verb ('Disconnect') and resource ('one input of a node'). It also adds value by noting the tool reports what it was connected to, which distinguishes it from siblings like connect_nodes and reorder_inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 to remove an input connection. It does not explicitly provide exclusions or name alternatives, but the purpose makes the usage scenario well-understood. A slight deduction for missing explicit '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.
execute_houdini_codeA
Execute arbitrary Python code in Houdini's environment. LAST RESORT:
prefer the dedicated tools (connect_nodes, set_parameters, create_wrangle,
get_geometry_info, ...) — they validate input, report structured errors
and are undoable as a single step. Use this only for operations no
dedicated tool covers.
Args:
code: Python source to exec inside Houdini.
policy: "read-only" / "normal" / "privileged" (PR 4 safety policy).
allow_dangerous: explicit per-call dangerous-code override (privileged only).
allow_heavy_geometry: explicit per-call heavy-geometry override.
capture_diff: when True, server snapshots scene state before & after.
Returns status, any stdout/stderr, and an optional audit block.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| policy | No | normal | |
| capture_diff | No | ||
| allow_dangerous | No | ||
| allow_heavy_geometry | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it discloses the arbitrary-execution nature, safety policy levels, per-call override flags, and scene snapshot behavior via capture_diff, implying risks compared to validated dedicated tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured intro with warning, followed by a concise Args list; every line adds value 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 complex, high-risk tool, the description covers purpose, safety policy, parameter semantics, and return envelope (status/stdout/stderr/audit block) while an output schema handles precise return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description explains every parameter's meaning and constraints (policy values, privileged-only for allow_dangerous, heavy-geometry override, capture_diff usage), greatly exceeding schema-only info.
Input schemas describe structure but not intent. Descriptions should explain 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 action ('Execute arbitrary Python code in Houdini's environment') and explicitly distinguishes itself from dedicated siblings by labeling itself 'LAST RESORT' and naming alternatives (connect_nodes, set_parameters, create_wrangle).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructs when to use ('only for operations no dedicated tool covers') and when not to use ('prefer the dedicated tools'), even naming the specific advantages of alternatives (validation, structured errors, undoability).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_hscriptA
在 Houdini 中执行 HScript 命令字符串。
HScript 是 Houdini 的传统脚本语言(与 Python/HScript 两套接口并存),
适合执行 `ls`、`cd`、`opset` 等内建命令。调用结果以 stdout / stderr
形式返回。
参数说明:
- code: HScript 命令字符串(如 "cd /obj; ls")。空字符串 / 纯空白
会被服务端拒绝并返回错误。
返回字符串包含 stdout / stderr 两段;连接或服务端出错时返回
"Error (...): ..." 形式的提示。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the stdout/stderr return format, rejection of empty/whitespace code, and error message format. However, it does not mention potential side effects of arbitrary command execution, permissions, or execution context beyond 'in Houdini', leaving significant behavioral aspects undisclosed.
Agents need to know what a tool does to the world before calling 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 with separate sections for the command and parameter details, includes a concrete example, and wastes no words. It could be slightly tighter but is effectively 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?
The description covers the core purpose, input, and output format, but lacks details on `ctx`, safety considerations, command execution limits, and error conditions beyond the generic error message. For an arbitrary command execution tool, this is only partially 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 0%, so the description must document all parameters. It thoroughly explains `code` with an example and constraint, but completely omits `ctx`, which is required. Only half the parameters are documented, leaving a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 executes HScript command strings in Houdini, explicitly naming built-in commands like `ls`, `cd`, and `opset` as examples. It also distinguishes HScript from the Python interface, differentiating it from sibling execute_houdini_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 HScript is suitable for executing built-in commands, which gives clear context for when to use this tool. However, it does not explicitly mention alternatives or exclusions (e.g., 'use execute_houdini_code for Python'), so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_nodeB
单节点结构化摘要(add-scene-context-selection-materials,READ_ONLY)。
字段:``path / name / type / category / input_count /
output_count / inputs / outputs``;``include_params=True`` 时
附 ``non_default_parameters``(最多 ``max_params`` 条)。仅读
不修改场景。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| max_params | No | ||
| include_params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose that the tool is read-only and does not modify the scene, and that responses pass through a server-side cap. It also describes conditional field inclusion behavior. However, it omits error handling, permissions, or what happens with invalid paths, so transparency 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 description is compact and uses structured backtick formatting to list fields, making it scannable. The odd 'add-scene-context-selection-materials' phrase is not explained and could distract, but overall the description is efficient and front-loaded with 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?
Even without an output schema, the description enumerates the return fields and conditional additions, which gives a clear picture of the response structure. It also covers the response cap and read-only nature. The missing context is the meaning of the embedded tag and the expected behavior for edge cases, but for a summary tool this is fairly 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 0%, so the description must compensate. It explains include_params and max_params semantics, clarifying their conditional role. However, the two required parameters, ctx and node_path, are not described, relying on their self-explanatory names; this leaves a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 provides a 'single-node structured summary' and lists the exact fields returned, which distinguishes it from scene-level or geometry-specific tools. However, it does not explicitly contrast with sibling tools like get_node_info or get_geo_summary, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description implies it's for explaining a single node, but there are no explicit context signals, prerequisites, or exclusions, leaving usage decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_chop_to_parmD
建立 chop() 通道引用。参数:chop_path/channel/target_path/target_parm。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| channel | Yes | ||
| chop_path | Yes | ||
| target_parm | Yes | ||
| target_path | Yes | ||
| output_index | No | ||
| replace_existing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral details: does it overwrite existing parameter links? Is it reversible? What errors might occur? The phrase 'channel reference' is ambiguous and leaves the agent with no understanding of side effects or requirements.
Agents need to know what a tool does to the world before calling 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, but this is under-specification rather than conciseness. It avoids padding but omits essential information needed for a tool with seven parameters, making it inefficient in practice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (7 parameters, no output schema, no annotations), the description is woefully incomplete. It fails to explain the core functionality, parameter semantics, or expected outcomes, making it nearly impossible for an agent to apply 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 0%, so the description must compensate. It lists only four of seven parameter names (chop_path, channel, target_path, target_parm) without explaining their meaning, types, or relationships. Critical parameters like ctx, output_index, and replace_existing are omitted entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '建立 chop() 通道引用' essentially restates the tool name 'export_chop_to_parm' without clarifying what the export does, whether it creates a link, writes data, or what 'reference' means. It fails to distinguish from sibling tools like get_chop_data or create_chop_node, which also deal with CHOP 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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios, or exclusions. The parameter list 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.
find_error_nodesA
扫描场景中的错误与警告节点。
从 root_path 出发,单次调用 node.allSubChildren() 收集所有后代节点,
返回 errors 与 warnings 双列表。include_warnings 默认 True(PR 11 行为);
max_warnings 限制警告条目数(超过返 _warnings_truncated 标记);
max_errors 限制错误条目数(None 表示不限)。适合场景构建完成后做
一次性体检,比逐节点 cook_node 更快。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| root_path | No | / | |
| max_errors | No | ||
| max_warnings | No | ||
| include_warnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does so well: it explains the single-call allSubChildren() collection, the dual return lists, truncation behavior for max_warnings, and default semantics for include_warnings and max_errors.
Agents need to know what a tool does to the world before calling 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 purpose, followed by implementation details and a use case. The reference to 'PR 11' adds some internal jargon but does not significantly detract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 scanning tool with no output schema, the description covers the return structure and key behaviors. It does not specify the format of individual error/warning entries, but otherwise is fairly 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 description adds meaning to root_path, include_warnings, max_warnings, and max_errors, including defaults and truncation flags, despite zero schema coverage. However, the required ctx parameter is not explained, leaving a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 scans error and warning nodes in the scene, which is a specific verb+resource. It distinguishes itself from siblings like find_nodes and cook_node by focusing on errors/warnings and returning categorized lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'suitable for one-time health check after scene construction' and compares to cook_node as slower. However, it does not explicitly state when not to use it, such as for targeted per-node debugging.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nearest_pointA
最近点查询:Point | None 双路径
(add-geometry-export-and-measure,NO_UNDO)。
- ``position`` 必须是 ``[x, y, z]``。
- ``max_distance`` 默认 1.0,作为 ``geo.nearestPoint`` 的
``max_radius``。
- Point 返回 ``{point_index, point_position, distance}``;None
返回三字段均 null。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| position | Yes | ||
| node_path | Yes | ||
| max_distance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, but the description discloses dual-path behavior (Point or None), the NO_UNDO trait, server-side apply_response_cap, and the exact fields returned for both cases. It lacks error/permission details, but is substantially 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 and well-structured with bullet points. Each line provides distinct, valuable information about parameters, return values, or behavior 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?
Given the absence of an output schema, the description appropriately specifies the exact return contract for both Point and None cases and notes the response cap. Minor omissions around ctx/node_path semantics and error handling prevent 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 description adds critical meaning for position (must be [x, y, z]) and max_distance (default 1.0, used as max_radius), but leaves ctx and node_path unexplained. With schema coverage at 0%, this is a partial compensation that leaves clear 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 opens with a specific operation, '最近点查询' (nearest point query), and specifies the return type 'Point | None'. It clearly distinguishes this from sibling geometry tools by focusing on spatial nearest-point search with distance constraints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 conditions: position must be [x, y, z], max_distance defaults to 1.0 and maps to geo.nearestPoint's max_radius. It does not explicitly discuss alternative tools 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.
find_nodesB
Find nodes under root_path matching a glob / substring pattern or node_type. Default root_path is "/".
PR 6: relays to server-side disc.find_nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| pattern | No | ||
| node_type | No | ||
| root_path | No | / |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it relays to server-side disc.find_nodes, but does not mention return format, pagination behavior, traversal depth, or whether it is read-only. The verb 'Find' implies reading, but no explicit safety or behavioral details 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 first sentence is concise and informative. The second sentence 'PR 6: relays to server-side disc.find_nodes.' is an implementation note that does not help an agent select or invoke the tool and could be omitted. The description is somewhat padded with non-actionable info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, and the description does not state what the tool returns (e.g., node paths, types, counts) or how pagination works via limit/cursor. For a 5-param tool with no output schema, more context is needed to invoke it correctly and interpret 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 0%, but the description explains pattern and node_type matching, and root_path as the search root. However, limit and cursor are not explained, leaving pagination semantics unclear. The description partially compensates for the schema gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Find' and the resource 'nodes under root_path' with specific matching criteria (glob/substring pattern or node_type). It also distinguishes from siblings like list_children by emphasizing recursive search under a path, and the default root_path adds 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?
No guidance is provided on when to use this tool versus alternatives such as list_children or find_error_nodes. The description only mentions the default root_path, which is more parameter information than usage context. No exclusions or alternative scenarios are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_allB
viewport.frameAll()(add-viewport-control-tools,NO_UNDO)。
仅调整视图,**不**截图。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses NO_UNDO (irreversible), that it only adjusts the view (no screenshot side effects), and that responses go through server-side cap. These are useful behavioral traits beyond what the name 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 short sentences with key info front-loaded: the function call, NO_UNDO, view-only scope, and server cap. It's concise, though the technical snippet 'apply_response_cap' could be clearer to a general 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 simple viewport operation, the description covers purpose, undo behavior, and non-screenshot scope. However, it omits any explanation of the ctx parameter and doesn't describe return values or potential side effects beyond NO_UNDO. Given one parameter and no output schema, this is 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 schema has one required parameter 'ctx' with 0% description coverage, and the description doesn't explain ctx at all. Since schema coverage is zero and no parameter info is given, the description fails to compensate, leaving the parameter meaning completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 adjusts the view via viewport.frameAll() and explicitly notes it does **not** take a screenshot, which distinguishes it from capture tools. However, it doesn't explicitly say 'frame all objects' in plain language or contrast with frame_selection, so it's clear but not perfectly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 the context that this tool only adjusts the view and doesn't screenshot, implying when it should be used. But it doesn't mention alternatives like frame_selection for framing specific objects, so guidance on when to use vs alternatives is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
frame_selectionC
viewport.frameSelected()(add-viewport-control-tools,NO_UNDO)。
仅调整视图,**不**截图。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description adds valuable behavioral context: NO_UNDO (irreversible viewport change), only adjusts view (not a capture), and response passes through `apply_response_cap`. These traits go beyond what the schema or annotations would convey, though the exact meaning of `apply_response_cap` remains vague.
Agents need to know what a tool does to the world before calling 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 method name and the key 'only adjusts view' statement. No filler, but the Chinese-English mix and technical jargon may reduce clarity for non-Houdini users.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations, no output schema, and an unexplained parameter, the description is incomplete. It highlights no-undo and non-screenshot behavior but omits the meaning of `ctx` and does not cover expected usage scenarios, which is a significant gap even for a simple 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 only parameter `ctx` has zero schema coverage and the description does not explain what it is or how to construct it. With 0% coverage, the description needed to compensate but fails entirely.
Input schemas describe structure but not intent. Descriptions should explain 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 names the underlying method (`viewport.frameSelected()`) and explicitly states it 'only adjusts the view' and does not screenshot, making the core purpose reasonably clear for users familiar with Houdini. It distinguishes from screenshot tools like `capture_pane_screenshot`, though it could more explicitly say it frames 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?
Provides a negative usage hint ('not screenshot') but no explicit guidance on when to use this tool vs alternatives like `frame_all` or `set_viewport_camera`. No when-to-use/when-not-to-use scenarios are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geo_exportA
translator 驱动的原子几何导出 (add-geometry-export-and-measure,NO_UNDO)。
- ``format`` 接受 ``bgeo / bgeo.gz / bgeo.lzma / bgeo.bz2 / geo``
(H21+ 实机 ``geo.saveToFile`` 验证)。
- ``output_path`` 扩展名必须与 format 匹配;不匹配返回
``extension_mismatch``。
- 临时文件 ``fsync`` + ``os.replace`` 原子覆盖;``overwrite=False``
且目标存在返回 ``target_exists``;失败清理临时文件。
- 落盘副作用不进 Houdini undo group;响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| format | Yes | ||
| node_path | Yes | ||
| overwrite | No | ||
| output_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels. It discloses atomic overwrite via fsync + os.replace, error codes like extension_mismatch and target_exists, failure cleanup, no undo group, and server-side response cap. This is thorough and goes well beyond basic statements.
Agents need to know what a tool does to the world before calling 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 information-dense, using a bulleted list. Every line adds useful information without fluff. The title 'translator 驱动的原子几何导出' is front-loaded, and the rest is precise. 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?
Given the complexity of an export tool with no output schema, the description covers most critical behavioral aspects (formats, overwrite, atomicity, undo, error handling). However, it doesn't describe the return value on success or clarify what 'translator' refers to, and it omits ctx/node_path semantics. Still, it is largely complete for invoking 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 0%, so the description must compensate. It provides detailed semantics for format (accepted values), output_path (extension matching), and overwrite (behavior when target exists). However, it leaves ctx and node_path undocumented, which are required parameters. Still, the meaningful detail for three parameters is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 this is an atomic geometry export tool, with specific verb '导出' (export) and resource 'geometry'. It provides detailed behavior including format specifics and atomic overwrite, distinguishing it from sibling tools like get_geometry_data or get_geo_summary which are read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 this tool (for geometry export) and implies it should be used when file output with atomicity is needed, but it does not explicitly mention alternatives or exclusions. The error conditions are helpful but no direct comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attrib_valuesC
按 owner/storage/tuple-size 分派读取属性,原生分页 (add-geometry-export-and-measure,NO_UNDO)。
- ``attrib_class`` 接受 ``point / prim / vertex / detail``。
- 返回 ``{values, offset, limit, total, next_offset, storage,
tuple_size}``。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| offset | No | ||
| attribute | Yes | ||
| node_path | Yes | ||
| attrib_class | No | point |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the response structure, server-side response cap (apply_response_cap), and NO_UNDO behavior, which are useful. However, it does not explicitly confirm the operation is read-only, nor does it explain potential pitfalls such as scene requirements or behavior on invalid attributes.
Agents need to know what a tool does to the world before calling 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, using bullets for clarity. However, the parenthetical 'add-geometry-export-and-measure' appears to be an internal branch or feature tag that adds noise without value to an AI agent selecting the 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?
Given the 6-parameter schema and no output schema, the description is incomplete. It omits parameter meanings, usage scenarios, and error behavior. The return structure and response cap are disclosed, but an agent cannot confidently invoke this tool for a specific use case without additional 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 0%, so the description must compensate. It clarifies attrib_class accepted values and introduces owner/storage/tuple-size as dispatch concepts, but it does not explain the core parameters (ctx, node_path, attribute) or clarify the relationship between limit/offset and pagination. The return structure is stated, but parameter semantics remain largely underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 tool reads attributes with a specific dispatch mechanism (by owner/storage/tuple-size) and mentions native pagination, which goes beyond merely restating the tool name. However, it lacks a plain-language summary like 'get attribute values from a node' and does not explicitly distinguish itself from closely related siblings such as get_geometry_data or get_geo_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 versus alternatives like get_geometry_data or get_parameter. The mention of native pagination implies use for large datasets, but this is not stated as a condition, and 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.
get_best_practicesA
查询 fork 人工审查的 BEST_PRACTICES advisory recipes(bridge-local)。
本工具 **不建立 Houdini TCP 连接**,直接在 bridge 进程内加载并查询
BEST_PRACTICES.md。recipe 是 advisory,不替代 verify_hou_api /
get_houdini_help,也不替代目标 Houdini 版本的 live verification。
参数说明:
- query: 可选,对 problem/symptom/fix/category/source 做 casefold
子串匹配。
- category: 可选,精确匹配 category 字段。
- id: 可选,精确匹配 recipe id(如 "BP-001")。
多个参数组合为 AND。
返回统一 envelope:status(success/error)、practices(实际返回列表)、
total_indexed(过滤前索引数)、matched_count(过滤命中数)、
returned_count(cap 后实际返回数,恒等于 len(practices))、truncated
(matched > returned 时为 true)。error 时 error={code,message,details},
且 practices 为空、三个 count 为 0。响应整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| ctx | Yes | ||
| query | No | ||
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job. It discloses bridge-local operation, no Houdini TCP connection, loading of BEST_PRACTICES.md, advisory nature, and detailed response envelope including error behavior, counts, and truncation flag. This is far beyond minimal 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 structured with clear sections: purpose, exclusions, parameter details, and return envelope. Every sentence adds meaningful information with no fluff. The use of formatting aids readability without unnecessary 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?
The description comprehensively covers behavior, parameter semantics (except ctx), error responses, and response fields, which is especially important with no output schema. The only gap is the unexplained required ctx parameter, so it falls just short of 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?
Even though schema coverage is 0%, the description adds rich semantics for query (casefold substring match), category (exact match), and id (exact match), and explains AND combination. However, the required ctx parameter is entirely undocumented, which prevents a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 queries fork-reviewed BEST_PRACTICES advisory recipes locally in the bridge. It explicitly says it does not establish a Houdini TCP connection and distinguishes it from verify_hou_api/get_houdini_help, making the purpose 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 provides explicit when-not guidance: recipes are advisory and do not replace verify_hou_api/get_houdini_help or live verification. This names alternatives and clarifies the tool's scope, which is exactly the kind of usage guidance required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bounding_boxB
解包几何 6 元 bounds 为 {min,max,size,center}
(add-geometry-export-and-measure,NO_UNDO)。
使用 ``geo.intrinsicValue("bounds")`` 的
``(xmin, xmax, ymin, ymax, zmin, zmax)`` 标准布局。响应过 server
端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the transparency burden. It discloses that it uses geo.intrinsicValue('bounds'), has NO_UNDO, and that the response passes through apply_response_cap. These are meaningful behavioral traits, though it does not explicitly state read-only safety or error conditions.
Agents need to know what a tool does to the world before calling 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. However, it includes a changelist reference 'add-geometry-export-and-measure' that adds noise and is not useful for tool invocation, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and incomplete parameter documentation. While the description explains the output structure, it omits crucial context about what to pass for ctx and node_path, making it incomplete for standalone 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 coverage is 0%, and the description does not explain the parameters 'ctx' and 'node_path'. The parameter meanings are left entirely ambiguous, so the description fails to compensate for the lack of schema 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 it unpacks a geometry 6-tuple bounds into a structured object {min,max,size,center} and mentions the specific intrinsicValue('bounds') layout. This is a specific verb+resource that distinguishes it from other geometry tools like get_geometry_data or get_geo_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool or mention alternatives. It is only implied from the tool name and description that it is for retrieving bounding boxes, so usage context is inferred but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cache_statusA
读取 cache 节点 status 摘要;未知类型返回 unsupported_cache_type。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the burden of disclosing behavior. It explicitly states '只读' (read-only) and notes that unknown types return 'unsupported_cache_type', providing error-handling context. It does not cover permissions, rate limits, or output format, but the disclosed traits are 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?
The description is a compact two-clause sentence that conveys purpose and a key behavioral trait without waste. It front-loads the core action and keeps the read-only note at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema and no parameter descriptions, the description leaves significant gaps, particularly around ctx and the structure of the returned summary. However, it covers the basic purpose and one error case, making it minimally viable for a simple read 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 has 0% description coverage, so the description must explain parameters. It implies node_path refers to a cache node path, but ctx is entirely unexplained. The description does not define the expected format or semantics for either 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 uses the specific verb '读取' (read) and identifies the resource as 'cache 节点 status 摘要' (cache node status summary), clearly distinguishing it from mutation tools like manage_cache or clear_cache. It also notes behavior for unknown types, reinforcing 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?
The description states '只读' (read-only), implying use for querying status without side effects. However, it does not explicitly name alternatives or provide when-not-to-use guidance, so the usage context 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.
get_chop_dataC
有界读取 CHOP 采样。参数:node_path,sample/frame/time/start/end 选一。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| end | No | ||
| time | No | ||
| frame | No | ||
| start | No | ||
| sample | No | ||
| channels | No | ||
| node_path | Yes | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies read-only behavior via '读取' and 'bounded' but does not clarify what 'bounded' means practically (e.g., limits on data size or range). It also omits side effects, required permissions, or return format. This is insufficient for a tool with no 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 a single, compact sentence that conveys the essential purpose and the key parameter constraint. Every word 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?
Given the tool has 9 parameters, no output schema, and no annotations, this description is far too sparse. It addresses only one aspect (parameter selection constraint) and ignores other important parameters like ctx, channels, and output_index, as well as return behavior. A more complete description is needed for effective tool 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?
Schema description coverage is 0%, so the description must compensate. It adds meaning for the core selection parameters (node_path, sample/frame/time/start/end 'choose one'), which is helpful. However, it leaves ctx, channels, and output_index completely unexplained, so it only partially compensates for the schema's lack of 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 tool reads CHOP samples ('有界读取 CHOP 采样'), specifying the verb (read) and resource (CHOP samples). It also hints at bounded access, which distinguishes it from broader CHOP tools like export_chop_to_parm or list_chop_channels. However, it doesn't explicitly differentiate from all 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 gives a parameter selection rule ('node_path,sample/frame/time/start/end 选一') but provides no context on when to use this tool versus alternatives like export_chop_to_parm or list_chop_channels. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cook_chainA
有界 DFS 上游 cook chain(add-scene-context-selection-materials,READ_ONLY)。
从 ``node_path`` 沿 ``inputs()`` 关系向上递归;path-based
visited 在入栈前判定,菱形 / 环自动去重。``max_nodes`` 是
HOM 访问预算硬约束;触发时 ``truncated=True``。响应过
server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_depth | No | ||
| max_nodes | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility and does an excellent job. It discloses key behaviors: path-based visited set prevents diamond/cycle revisits, max_nodes is a hard HOM access budget that triggers truncated=True, and responses pass through server-side apply_response_cap. This goes well beyond basic read-only labeling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, dense and information-packed, front-loaded with the core purpose and read-only hint. Every sentence contributes value: traversal method, deduplication behavior, budget semantics, and response handling. 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?
The description covers the key behavioral contract (bounded DFS, dedup, truncation, response cap) but does not describe the return format. Since there is no output schema, the agent must guess the structure of the returned chain. Still, for a simple chain retrieval tool, the behavioral context 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?
Schema coverage is 0%, so the description must compensate. It clearly explains node_path (starting point) and max_nodes (HOM budget, hard constraint), but does not explain ctx or max_depth. max_depth is only present in the schema with a default value, leaving its meaning unclear. This is partial coverage, insufficient for fully disambiguating all four 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 the tool's function: it performs a bounded DFS upstream cook chain traversal along inputs() relationships from a given node_path. The verb 'get' is implied and it is distinguished from siblings like cook_node by being explicitly READ_ONLY and focused on dependency traversal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear the tool is for tracing upstream dependencies (cook chain) and explicitly marks it as READ_ONLY, giving context for when it's appropriate. However, it does not explicitly name alternatives or say 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.
get_cop_geometryA
读取 Copernicus output geometry 摘要(add-cops-tools,NO_UNDO)。
调 ``geometry``/``geometryAtFrame``,只返回 point/prim/vertex counts、
bbox、有界 attrib 摘要;不序列化完整几何。``frame`` 可选,指定时走
AtFrame 变体。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| frame | No | ||
| node_path | Yes | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly mentions the underlying calls ('geometry'/'geometryAtFrame'), what is returned, what is not (full geometry), and the NO_UNDO guarantee. It also explains the effect of the optional 'frame' parameter, adding valuable 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 concise (two sentences) and front-loaded with the purpose. Every sentence adds information: the first defines the scope and outputs, the second explains the 'frame' option and non-serialization. No redundant phrasing exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and no annotations, so the description must provide comprehensive context. It covers purpose, key outputs, and the frame variant, but lacks details about the other three parameters and does not explain return structure. Given moderate complexity (4 params), it is adequate but leaves 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 description coverage is 0%, so the description must compensate. It does explain the 'frame' parameter's behavior (triggers AtFrame variant), which is useful. However, it adds no meaning for 'ctx', 'node_path', or 'output_index', leaving their roles to be inferred from names alone. This is insufficient compensation for the low 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: reading a Copernicus output geometry summary, including counts, bbox, and attribute summary. It uses a specific verb ('读取') and identifies the resource ('Copernicus output geometry'). However, it does not explicitly differentiate itself from similar sibling tools like get_geo_summary or get_geometry_data, so it falls 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 usage for lightweight summary access ('只返回', '不序列化完整几何') and explains the selective use of the AtFrame variant based on the 'frame' parameter. It does not explicitly state when to choose this tool over alternatives or provide exclusions, so it provides only implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cop_infoA
读取 Copernicus 节点信息(add-cops-tools,NO_UNDO)。
返回 input/output data types、outputCableStructure 与每个 output 的
cable metadata(反射探针如实汇报 wire surface)。可能触发 COP cook;
响应经过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses important behavioral traits: that the operation may trigger a COP cook (side effect) and that the response passes through apply_response_cap (response modification). It also notes 'NO_UNDO' indicating no undo support. This is valuable context beyond a 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 concise, with the first line stating the core purpose and flags, and the second line adding return details and side effects. It avoids unnecessary filler, though the heavy use of technical jargon ('outputCableStructure', '反射探针') may reduce clarity for some 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?
Given no annotations, no output schema, and no parameter descriptions, the description is incomplete for reliable invocation. It does not explain the 'ctx' parameter, how to structure node_path, or what the 'reflection probe' means. While it lists return types, the missing param semantics and usage context make it insufficient 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 schema provides 2 parameters (ctx, node_path) with no descriptions, and the description does not explain their meaning or format. While 'node_path' is somewhat self-explanatory, 'ctx' is ambiguous and could refer to context or a Houdini context. With 0% schema coverage, the description should have compensated but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('读取' / read) and resource ('Copernicus 节点信息' / Copernicus node info). It also specifies the unique return data (input/output types, outputCableStructure, cable metadata), which distinguishes it from sibling tools like get_cop_geometry or get_cop_layer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 needing node info or cable metadata, and mentions side effects (may trigger COP cook). However, it does not explicitly state when to use this tool over alternatives, nor does it provide any 'when not to use' guidance. The specificity of the return values gives some contextual hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cop_layerA
读取 Copernicus ImageLayer metadata(add-cops-tools,NO_UNDO)。
先调 ``layer``/``layerAtFrame``;不可得时从 ``cable`` 反射 wire 选择
ImageLayer(响应披露 ``cable_fallback_used``)。只返回 resolution/
storage/bounds,不返回原始像素。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| frame | No | ||
| node_path | Yes | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the transparency burden. It discloses the fallback mechanism (layer/layerAtFrame then cable reflection), the cable_fallback_used response flag, and the NO_UNDO characteristic. This is valuable beyond what annotations would offer, though edge cases like complete failure are not 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 compact, front-loaded with the core purpose, and provides implementation details and return limitations without unnecessary fluff. Each sentence serves a distinct purpose, making it highly 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?
Given no output schema and sparse annotations, the description should be more thorough about parameter semantics and response structure. It states high-level return types but omits details on how output_index and frame affect results, or what happens on error, leaving significant gaps 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 0%, yet the description does not explain any of the four parameters (ctx, node_path, frame, output_index). While node_path and frame can be inferred from context, the lack of explicit parameter definitions leaves the agent to guess at their exact usage and formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 reads Copernicus ImageLayer metadata, specifies the exact return fields (resolution/storage/bounds), and explicitly excludes raw pixels. This differentiates it from sibling tools like get_cop_info or get_cop_geometry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 metadata retrieval but does not explicitly state when to use this tool versus alternatives like get_cop_info or get_cop_geometry. No exclusions or comparison with siblings are provided, so 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.
get_cop_vdbA
读取 Copernicus NanoVDB/grid metadata(add-cops-tools,NO_UNDO)。
先调 ``vdb``/``vdbAtFrame``;不可得时从 ``cable`` 反射 wire 选择
NanoVDB。只返回 grid_name/storage/bounds 等有界 metadata,不返回体素。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| frame | No | ||
| node_path | Yes | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the transparency burden. It discloses that the operation is read-only ('读取'), returns only bounded metadata (grid_name/storage/bounds) and not voxels, and describes the fallback behavior. This goes beyond minimal expectations, though it omits error handling and permission requirements.
Agents need to know what a tool does to the world before calling 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 in the first sentence, followed by a brief note on the fallback and return scope. Every sentence adds value, and there is 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?
The description explains the return scope and retrieval fallback, but the absence of parameter documentation is a critical gap given the 0% schema coverage and no output schema. For a tool with four parameters, this makes it difficult for an agent to invoke it correctly without additional 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 0% and the description provides no explanation for any of the four parameters (ctx, frame, node_path, output_index). The agent has no guidance on what values to pass or what each parameter means beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 this tool reads Copernicus NanoVDB/grid metadata, using a specific verb ('读取' = read) and resource. It distinguishes itself from sibling tools like get_cop_info or get_cop_geometry by focusing on NanoVDB/grid metadata and explicitly mentioning the fallback strategy and return 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 context about the retrieval method (first try vdb/vdbAtFrame, then reflect from cable) and what it returns, but it does not explicitly say when to use this tool versus alternatives like get_cop_info or get_cop_layer. Usage is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_takeA
读取当前 take,返回 name/path/parent。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It explicitly states '只读' (read-only), indicating no modification side effects, and specifies return fields. It omits error handling but for a simple read 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 two short sentences that front-load the action and output. Every word contributes value, making it extremely concise 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?
The tool is simple, but the description omits any explanation of the 'ctx' parameter, and there is no output schema to detail the return structure. It notes the return fields but leaves parameter semantics unexplained, creating a notable 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 includes one parameter 'ctx' with no description, and the description does not mention 'ctx' at all. With 0% schema coverage, the description fails to add any meaning to the parameter, leaving it completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '读取当前 take' (read current take) and lists return fields (name/path/parent) plus '只读' (read-only). This clearly identifies the operation and distinguishes it from sibling tools like list_takes, set_current_take, and create_take.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by indicating it reads the current take and returns its properties, implying when to use it. However, it does not explicitly mention alternatives or exclusions, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docA
按相对路径取回已索引文档的全文(bridge-local,无 Houdini 连接)。
本工具 **不建立 Houdini TCP 连接**,``path`` 只与已校验索引中的规范
化 POSIX 相对 path 做精确匹配,全文从 JSON 内嵌 content 返回,
**绝不拼接源文件系统路径或回读索引外文件**(含 ``..`` 遍历串)。
与 ``get_houdini_help`` / ``verify_hou_api`` 互补:那两个面向在线
结构化字段查询,本工具面向已索引离线文档的整篇读取。
参数说明:
- path: 索引中文档的 POSIX 相对路径(如 ``nodes/sop/box.html``),
可先用 search_docs 取得。
返回统一 envelope:status(success/error)、path、title、length、
content(全文,过 apply_response_cap)、returned(1 命中 / 0 未命中)。
path 不存在或非法返回 rag_doc_not_found;索引缺失 / 损坏分别返回
rag_index_missing / rag_index_unavailable。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that no Houdini TCP connection is made, that path matches exactly against normalized POSIX relative paths, that it never concatenates source filesystem paths or reads files outside the index (including .. traversals), and it details the return envelope and error codes (rag_doc_not_found, rag_index_missing, rag_index_unavailable). This is far more than typical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clearly separated sections for purpose, safety behavior, sibling distinction, parameter details, and return envelope. It is long but every sentence provides valuable information; no filler 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?
The description covers the tool's behavior, return format, and error conditions thoroughly. The only notable gap is the unexplained `ctx` parameter, which prevents it from being fully complete. Overall it's nearly comprehensive for a retrieval 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 description thoroughly explains the `path` parameter with format, example, and how to obtain it. However, the required `ctx` parameter is not described at all. Since schema has 0% parameter descriptions, the description only partially compensates, leaving the agent guessing about `ctx`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '按相对路径取回已索引文档的全文' (retrieve full text of indexed document by relative path), giving a specific verb, resource, and scope. It explicitly distinguishes itself from get_houdini_help and verify_hou_api as complementary tools, making sibling differentiation strong.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explains when to use this tool vs alternatives: states that get_houdini_help / verify_hou_api target online structured field queries, while this tool is for offline indexed documents. It also notes that search_docs can be used to obtain the path, guiding the agent to the prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dop_fieldB
读取 DOP data/record 字段(add-dops-tools,READ_ONLY)。
volume/VDB 字段不返回原始体素,只返回可廉价取得的 resolution /
bbox/min/max/average;不可得值标记 ``unavailable``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| dop_path | Yes | ||
| data_name | Yes | ||
| field_name | Yes | ||
| object_name | Yes | ||
| record_type | No | Options | |
| record_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden for behavioral disclosure. It states the tool is READ_ONLY and discloses a key limitation: volume/VDB fields do not return raw voxels but only cheaply obtainable resolution/bbox/min/max/average, with unavailable values marked as 'unavailable'. This adds meaningful context that an agent would need. However, it does not describe behavior for other field types, error handling, or the exact return structure, so it is not fully 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 extremely concise—two sentences—and front-loads the purpose. Every sentence adds information: the first identifies the action and scope, the second provides a specific behavioral caveat. No filler 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?
With no annotations, no output schema, and 7 parameters (5 required), the description is too sparse to provide complete context. It addresses the volume/VDB caveat but does not explain what other fields return, how to specify record_type or record_index, what 'ctx' means, or what the response format looks like. An agent would likely need to gather additional information to use this tool reliably.
Complex tools with many parameters or behaviors need more documentation. 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 0%, yet the description explains none of the seven parameters (ctx, dop_path, object_name, data_name, field_name, record_type, record_index). It mentions 'field' generically but does not clarify the difference between data_name and field_name, or the role of record_type and record_index. The description fails to compensate for the lack of schema-level 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 reads DOP data/record fields, using the verb '读取' (read) with a specific resource. It also notes this is part of add-dops-tools and READ_ONLY, which helps distinguish it from mutation tools. However, it does not explicitly differentiate from sibling tools like get_dop_object or list_dop_objects, which could also involve reading DOP 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 provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where get_dop_field is preferred over get_dop_object, get_dop_relationships, or other DOP-related tools. The only implicit context is that it is READ_ONLY and targeted at field-level access, which is not enough for an agent to make a selection decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dop_objectA
通过 findObject 查询单个 DOP object(add-dops-tools,READ_ONLY)。
``max_data`` 限制 data 摘要数量;不返回无界 record 内容。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| dop_path | Yes | ||
| max_data | No | ||
| object_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It clearly declares 'READ_ONLY' and discloses a key behavioral constraint: 'max_data limits data summaries' and 'does not return unbounded record content'. This provides useful safety/expectation-setting, though it doesn't cover all edge cases (e.g., object-not-found 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—two short sentences front-loading the core purpose, then providing a specific parameter limitation. No redundant 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 read-only query tool with no output schema, the description gives the essentials: purpose, method, and a key limitation. However, it lacks detail on the return format, error behavior, or how this tool fits among the many DOP-related siblings (e.g., get_dop_field, get_dop_relationships). This 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?
The schema provides zero parameter descriptions, and the description only explains 'max_data' (limits the number of data summaries). The other parameters (ctx, dop_path, object_name) are left to name-inference, which is fairly self-evident but not explicitly clarified. The description adds some value for max_data but does not fully compensate for the 0% 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 ('查询'/'query') and resource ('单个 DOP object'/'single DOP object'), and mentions the underlying method 'findObject'. This clearly distinguishes it from siblings like 'list_dop_objects' (multiple objects) and 'get_dop_field' (a specific field).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 querying a single DOP object, but it does not explicitly discuss when to prefer this tool over alternatives, nor any exclusions. The note about 'not returning unbounded record content' is a limitation, 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.
get_dop_relationshipsB
分页读取 DOP relationships(add-dops-tools,READ_ONLY)。
每个关系的对象名受 ``max_objects`` 硬上限约束;响应经过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| offset | No | ||
| dop_path | Yes | ||
| max_objects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the READ_ONLY nature, the hard max_objects limit, and that responses pass through apply_response_cap, which adds useful behavioral context. However, it does not explain pagination mechanics, error behavior, or what the response contains.
Agents need to know what a tool does to the world before calling 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-loaded with the action and resource, and every phrase adds information. There is no redundant text or repetition of 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?
Given no output schema and no annotations, the description covers the basic purpose, read-only safety, and a key constraint (max_objects). However, it omits parameter semantics and any description of the return structure or pagination behavior. It is minimally complete for a niche tool 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 0%, so the description must compensate. It only clarifies the max_objects parameter (hard limit) and the response cap, leaving ctx, dop_path, limit, and offset semantically unexplained. This is minimal compensation for a 5-parameter 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 clearly states '分页读取 DOP relationships' (paged read DOP relationships) with a specific verb and resource, and also notes it is READ_ONLY. It does not explicitly differentiate from sibling tools like list_dop_objects or get_dop_object, 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?
No guidance is provided on when to use this tool versus alternatives. It only implies a read operation with pagination, but does not state exclusions, prerequisites, or when to prefer other relationship-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expressionC
读取 parm 表达式(add-node-parameter-vex-tools,READ_ONLY)。
返回 ``{expression}``,空表达式时 ``expression: None``。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and provides useful behavioral details: it declares READ_ONLY, specifies that empty expressions return 'expression: None', and notes the response passes through 'apply_response_cap'. These go beyond the schema and help an agent understand safety and edge cases, though 'apply_response_cap' is not explained further.
Agents need to know what a tool does to the world before calling 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 main action stated first. Each sentence adds information, but terms like 'add-node-parameter-vex-tools' are cryptic and could be omitted or explained to improve 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?
Given the absence of annotations, output schema, and parameter descriptions, the description is incomplete. It fails to explain key parameters or usage context, leaving an agent without enough information to correctly construct a request. The tool's simplicity does not excuse the lack of parameter 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 schema has 0% description coverage for its three parameters, and the description does not compensate by explaining ctx, path, or parameter. The names are ambiguous (especially ctx), and there is no hint of what each parameter represents or how they should be structured, making it impossible to invoke correctly with confidence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a parm expression ('读取 parm 表达式') and explicitly notes READ_ONLY. This differentiates it from write tools like set_expression. However, it does not explicitly name alternatives or contrast with get_parameter, so it misses some 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. It does not mention that it retrieves the expression rather than the evaluated value, nor does it explain when a user should prefer this over get_parameter or set_expression. The usage context is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_frameA
读取当前帧 / 时间 / fps / 三组 range / increment,全部 float(PR 19)。
返回 dict 字段:frame / time / fps / frame_range /
playback_range / frame_increment;任一 hou 调用抛异常时降级为
status=error 而非向调用方抛异常。仅读取时间线状态,不修改场
景或参数(READ_ONLY_COMMANDS)。响应整体过 server 端
``apply_response_cap`` 截断大 payload(虽然规模小,仍保持
defense-in-depth)。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses error handling (degrades to status=error), read-only nature, return fields, and response payload truncation. This is rich 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 well-structured and front-loaded with the primary function, followed by return fields, error behavior, and read-only guarantee. Every sentence adds value 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 tool is simple and the description is complete: it lists all return fields, explains error behavior, confirms read-only semantics, and mentions response handling. No output schema exists, so the description adequately fills that need.
Complex tools with many parameters or behaviors need more documentation. 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 0% and the description does not explain the 'ctx' parameter. Since the description should compensate for low schema coverage, the lack of any parameter semantics is a clear gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 current frame, time, fps, ranges, and increment, with a specific verb and resource. It distinguishes from siblings like set_frame and get_keyframes by explicitly focusing on timeline 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?
It explicitly states 'only reads timeline state, does not modify scene or parameters', providing clear context for when to use it. However, it does not explicitly name alternative tools or exclusion scenarios, so not a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geometry_dataA
Read actual attribute values from geometry, paginated (limit capped at
500 — use start to page through large geometry). element: 'points' or
'primitives'. attributes: names to read (default: P for points); call
get_geometry_info first to see what exists.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| start | No | ||
| element | No | points | |
| attributes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavioral traits: pagination with a 500 limit, default behavior for points (attribute P), and the need to page using start. This goes beyond the schema and provides actionable operational details.
Agents need to know what a tool does to the world before calling 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 purpose, followed by concise yet informative details on pagination, element, attributes, and prerequisite call. Every sentence earns its place 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 tool with 5 parameters and no output schema or annotations, the description covers essential aspects: what it reads, how to handle large data, what to supply, and a recommended pre-step. It doesn't detail return format, but that is not mandatory without an output schema, and the context is sufficient 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 has 0% description coverage, but the description adds meaning to most parameters: element specifies 'points' or 'primitives', attributes names with default P, limit capped at 500, and start for paging. Path is the only unmentioned parameter, but is self-evident from the tool's context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Read actual attribute values from geometry.' It distinguishes itself from siblings like get_geometry_info by focusing on actual values rather than metadata, and explicitly references that tool as a prerequisite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage context: pagination instructions for large geometry, clear guidance on elements and attributes, and explicitly advises calling get_geometry_info first to discover available attributes. It doesn't explicitly exclude alternatives but the reference to the sibling tool implies the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geometry_infoA
Summarize a node's geometry: point/primitive/vertex counts, bounding box,
attribute listings per class, and group names. Accepts a SOP path or a
geometry container (its display SOP is used). Use this to verify what a
network actually produced instead of judging from a render.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it accepts either a SOP path or a geometry container (using its display SOP), which adds behavioral context. However, it does not explicitly state read-only nature, potential side effects (e.g., cooking), or error behavior. The verb 'summarize' implies safety but lacks explicit confirmation, leaving some ambiguity.
Agents need to know what a tool does to the 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, no wasted words. The first sentence packs a dense list of output contents, and the second provides input flexibility and a use case. Front-loaded with the core purpose and immediately 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?
The description covers the expected output (counts, bbox, attribute listings, groups), input flexibility, and the recommended use case. There is no output schema, so listing return categories is helpful. It does not cover error cases or performance implications, but given the tool's relative simplicity and clear scope, it is sufficiently complete for 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 schema has zero description coverage, and the sole parameter 'path' is documented only by name and type. The description compensates by explaining that the path can be a SOP path or a geometry container, giving the agent clear guidance on what to pass. It adds semantic meaning beyond the schema, though it omits examples or exact path formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'summarize' and identifies the resource as 'a node's geometry', listing exact contents (counts, bounding box, attributes, groups). This clearly distinguishes it from sibling tools like get_bounding_box, get_groups, and get_geometry_data, making its unique purpose 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 gives a clear context for when to use the tool: 'verify what a network actually produced instead of judging from a render.' It does not explicitly name alternatives or state when-not-to-use, but the use case is well-defined and implies inspection rather than modification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geo_summaryA
获取几何节点的轻量级概要信息。
返回 SOP 节点的 point / primitive / vertex 计数、bbox 6 元、attributes /
groups 列表(带 name/type/size),以及前 sample_size 个点的属性采样。
point_count 超过 max_points_for_full 时自动降级 — 跳过 sample_points 与
详细 attributes/groups,避免大几何撑爆 MCP。比 get_geometry_info 更轻,
比 get_geometry_data 更结构化。适用于“先看看节点生成了什么规模的几何”。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| sample_size | No | ||
| max_points_for_full | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
由于没有 annotations,描述承担了行为披露的全部责任。它详细说明了自动降级行为:point_count 超过 max_points_for_full 时跳过 sample_points 和详细 attributes/groups,并解释了原因(避免大几何撑爆 MCP)。这提供了 schema 之外的宝贵行为上下文,但未提及是否只读(尽管从内容显然可推断),因此给予 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?
描述结构清晰,首句点题,随后用列举方式说明返回内容,再描述降级行为,最后给出对比和适用场景。每一句都有实际价值,没有冗余或重复信息,在长度和信息密度之间取得了很好的平衡。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
工具没有输出 schema,描述列出了返回的核心数据(计数、bbox、attributes/groups 列表、属性采样)以及降级行为,足以让代理理解返回内容和执行成本。未给出 bbox 六元组的顺序等具体格式,但整体完整性较高,足以支持工具选择与调用决策。
Complex tools with many parameters or behaviors need more documentation. 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 描述覆盖率为 0%,描述为 sample_size(前 N 个点采样)和 max_points_for_full(降级阈值)补充了关键语义。但 ctx 和 node_path 仍未在描述中解释,尽管这两个参数名称相对直观。考虑到核心参数已说明,而通用上下文参数缺失,评分为 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?
描述以明确动词'获取'和资源'几何节点的轻量级概要信息'开头,并枚举返回内容(point/primitive/vertex 计数、bbox 6 元、attributes/groups 列表、采样点)。同时通过与 get_geometry_info 和 get_geometry_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?
提供了明确适用场景'先看看节点生成了什么规模的几何',并对比 get_geometry_info(更轻)和 get_geometry_data(更结构化)来指导选择。虽然未明确说明'何时不用',但替代关系与典型场景已足够清晰,属于良好但不完美的用法指导。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_membersA
分页读取 group 成员 (add-geometry-export-and-measure,NO_UNDO)。
- ``offset / limit`` 必填;``limit`` 默认 1000。
- vertex 成员 ``{prim_index, vertex_index, point_index}``;
edge 成员 ``[min_point, max_point]`` 排序端点对。
- 返回 ``{values, offset, limit, total, next_offset}``。响应过
server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| offset | No | ||
| node_path | Yes | ||
| group_name | Yes | ||
| group_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It reveals important traits: NO_UNDO, pagination behavior with offset/limit, server-side response cap via 'apply_response_cap', and the exact structure of returned values. This goes beyond the schema, though it does not explicitly state whether the operation is read-only (though '读取' implies 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 and uses bullets for clarity, but includes an extraneous tag 'add-geometry-export-and-measure' and cryptic terms like 'apply_response_cap' that are not explained. Despite this, it is relatively efficient and 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 provides return structure and pagination details, which is helpful given no output schema. However, it omits key context such as accepted group_type values, the meaning of node_path/ctx, potential errors, and permissions. For a tool with 6 parameters and no output schema, this leaves gaps in 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?
The schema has 0% description coverage, so the description must compensate. It explains offset/limit (including default limit) and describes vertex/edge member formats, but fails to define ctx, node_path, group_type, and group_name, which are required parameters and not self-explanatory from the schema. Additionally, the description states offset/limit are '必填' (required), contradicting the schema which lists them as optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 primary function: '分页读取 group 成员' (paged read group members). It specifies a distinct resource ('group members') and differentiates from sibling tool 'get_groups' which lists groups. The pagination aspect and member structure details further clarify the tool's 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 implies usage when one needs to read group members with pagination, but does not explicitly state when to use this tool over alternatives or when not to use it. No exclusions or alternatives are provided beyond an implicit separation from 'get_groups'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_groupsA
返回四类 groups(point / prim / vertex / edge)name 列表 (add-geometry-export-and-measure,NO_UNDO)。
edge groups 在 H21+ 通过 ``geo.edgeGroups()`` 公开。响应过
server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the NO_UNDO behavior, a server-side response cap (apply_response_cap), and version-specific availability of edge groups. This adds useful behavioral context beyond the bare function name.
Agents need to know what a tool does to the world before calling 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, immediately stating the main purpose and then adding key caveats. It is well-structured and 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?
The description explains the group types and edge group version, but lacks parameter guidance (ctx, node_path) and does not clarify what the response looks like beyond 'name list'. Because the output schema is absent, this leaves notable gaps for an agent to fully understand the tool's expected 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 coverage is 0%, and the description does not explain the meaning of ctx or node_path. The agent has no information about these parameters beyond their names, making it hard to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 returns name lists for four specific group types (point, prim, vertex, edge). This distinguishes it from sibling tools like get_group_members which deal with group membership, and other geometry inspection 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 from the purpose: use when you need group names. The note about edge groups requiring H21+ provides some context but does not explicitly mention when to prefer this tool over alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hda_section_contentA
分页读取 section 正文(add-hda-management-tools,READ_ONLY)。
``encoding`` 显式必填 ``utf8`` / ``base64``;两种模式均以
``binaryContents()`` 一次拿到的 raw bytes 为唯一分页真相。
响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| section | Yes | ||
| encoding | Yes | ||
| node_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no structured annotations, the description carries the full burden and does well: it discloses READ_ONLY safety, explicit encoding modes (utf8/base64), and the internal use of binaryContents() as the authoritative raw byte source for pagination. It also notes the response passes through apply_response_cap, giving the agent a clearer model 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 compact and front-loaded with the primary purpose. Every sentence adds value: the encoding constraint, the pagination truth source, and the response cap handling. No filler or redundant 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 description adequately explains core behavior but has clear gaps: it does not describe the return format (no output schema), parameter semantics for offset/limit, or any error/edge cases. For a tool with 5 parameters and no structured annotations, more detail would be needed to be 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 0% and the description only meaningfully explains the 'encoding' parameter (utf8/base64 and its relationship to binaryContents). The remaining parameters (limit, offset, section, node_type) are left undocumented beyond their names and types, so the description does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '分页读取 section 正文' (paged reading of section content), which clearly identifies the verb (read), resource (section content), and unique pagination aspect. It distinguishes itself from sibling tools like set_hda_section_content (write operation) and get_hda_sections (list sections).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stating 'paged reading of section body' and marks it as READ_ONLY, which helps an agent understand it is for reading content. However, it does not explicitly mention when to choose this tool over alternatives or provide exclusionary guidance, so it relies on the tool 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.
get_hda_sectionsC
枚举 sections metadata(add-hda-management-tools,READ_ONLY)。
每项含 ``name / size / protected / binary / utf8``;``utf8``
严格探测;``binary`` 固定 true。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses specific behaviors: utf8 is strictly detected, binary is fixed true, and responses pass through apply_response_cap. However, apply_response_cap is unexplained jargon, and there is no mention of error cases, permissions, or side effects, though the READ_ONLY label 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 brief and front-loaded with the core purpose. However, terms like add-hda-management-tools and apply_response_cap are not explained, which slightly reduces clarity. Overall it 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 one-parameter read-only metadata tool, the description covers the output structure and some behavioral quirks, but the parameter is completely unexplained and the output field semantics are only partially described. Given the lack of annotations and output schema, the description falls short of being fully self-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 only parameter node_type is required but has zero schema description and is never mentioned in the tool description. The agent has no information about valid values, default behavior, or how it affects the section enumeration, making the parameter effectively opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 enumerates HDA section metadata and lists the returned fields (name, size, protected, binary, utf8). It implicitly distinguishes from the sibling get_hda_section_content by focusing on metadata rather than content, though it does not explicitly name 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 provided on when to use this tool versus alternatives. The description gives no context on prerequisites, exclusions, or how node_type affects the operation, leaving the agent to infer usage from the name and generic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_houdini_eventsA
分页拉取 Houdini 进程级事件;cursor 由上一页响应返回。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| cursor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently describes the pagination mechanism and cursor flow, which is valuable. However, it does not mention whether the operation has side effects (e.g., consuming/acknowledging events), preconditions (e.g., valid ctx), or what happens on empty results. This partial disclosure is insufficient for a tool with no annotation 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 description is a single, concise sentence that front-loads the verb and resource, followed by the essential cursor detail. Every word contributes to understanding the tool's core behavior and usage. It is appropriately sized 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?
The tool has 3 parameters, no output schema, and no annotations, placing a high burden on the description. The description covers the primary purpose and pagination flow but omits details about required 'ctx', the 'limit' parameter, and the structure of the returned events. It is minimally viable but leaves the agent guessing about how to construct an initial call and interpret 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 0%, so the description must compensate for all three parameters. It only explains 'cursor' by stating it is returned from the previous page, adding meaning beyond the schema's default null. The other parameters 'ctx' (required) and 'limit' (with default 100) are not mentioned at all, leaving their purpose and format undocumented. This is a significant gap given zero 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 tool's function: '分页拉取 Houdini 进程级事件' (paginated fetch of Houdini process-level events). The verb '拉取' (fetch) specifies the action, and the resource '进程级事件' is distinct from sibling tools like subscribe_houdini_events and unsubscribe_houdini_events, which manage event subscriptions. The scope is unambiguous and differentiates from 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 implies usage for paginated retrieval of Houdini events, with the note that the cursor comes from the previous page's response, guiding how to iterate through pages. However, it does not explicitly state when to use this tool over alternatives like subscribe_houdini_events or exclude scenarios. The pagination context is clear but lacks direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_houdini_helpA
从 SideFX 在线文档查询 Houdini 节点、VEX 函数或 hou 方法的帮助(PR 15)。
help_type 支持 11 种:"sop" / "obj" / "dop" / "cop2" / "chop" /
"vop" / "lop" / "top" / "rop" / "vex_function" / "python_hou"。
item_name 是节点名 / VEX 函数名 / hou 方法名。timeout 是 HTTP 请求
超时秒数(默认 10)。返回 dict 包含 title / summary / parameters /
inputs / outputs / methods / status 等字段,HTML 解析使用 stdlib
html.parser(零新增 pip 依赖)。HTTP 4xx / 5xx / 网络错误 / 超时
全部降级为 status=error,不抛异常。响应整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| timeout | No | ||
| help_type | Yes | ||
| item_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the transparency burden and does so admirably. It discloses that HTML parsing uses only stdlib html.parser with zero new pip dependencies, HTTP errors and timeouts degrade to status=error without raising exceptions, and the response passes through apply_response_cap.
Agents need to know what a tool does to the world before calling 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 and front-loaded, with a clear purpose followed by compact parameter and behavior details. Each sentence adds meaningful information; the only minor distraction is the unexplained '(PR 15)' token, which does not materially hurt usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and no output schema, the description covers the core usage scenario, return dict fields, error behavior, and dependency footprint. The main gaps are the undocumented ctx parameter and the lack of a concrete example invocation, but overall it is sufficient for an agent to use 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 schema has zero parameter descriptions, so the prose must explain each parameter. It explains help_type (with all 11 values), item_name, and timeout, but completely omits the required ctx parameter, leaving a significant semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 action and resource: querying SideFX online documentation for Houdini nodes, VEX functions, or hou methods. It clearly distinguishes the tool from broader doc/search siblings by enumerating the exact supported help_type 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 supported help types (sop, obj, vex_function, python_hou, etc.) and the definition of item_name make the intended usage context clear. However, it does not explicitly state when to prefer this tool over alternatives like search_docs or get_doc, nor does it mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyframesA
读取 parm 的全部关键帧(PR 19,只读)。
返回 list 中每项 ``{"frame": float, "value": float}``,不
做 ``int()`` 截断;空关键帧列表返回 ``keyframes=[]``。本
工具仅查询状态(READ_ONLY_COMMANDS),不会修改场景或参数。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does exceptionally well. It discloses the return format (list of objects with frame and value as floats), the no-int-truncation behavior, the empty-list case (returns keyframes=[]), and explicitly states it is read-only and will not modify the scene or parameters. This goes well beyond minimal 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 compact and well-structured: the first sentence states the purpose, the second defines the return format and edge cases, and the third confirms side-effect-free operation. Every sentence adds value with no redundancy. It is appropriately sized for a simple read 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?
Given the tool's low complexity, the description covers return values, edge cases, and side effects. However, the lack of parameter explanations is a notable gap because there is no output schema and the input schema is minimal. The description covers the tool's functional behavior but leaves parameter semantics incomplete, preventing 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?
Schema description coverage is 0%, so the description must compensate, but it does not explain the meaning of ctx, path, or parameter. The description only mentions 'parm' (parameter) generically. While the tool name gives some hint, the parameter roles remain underspecified, making it hard for an agent to infer required values without additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('读取 parm 的全部关键帧') and resource (all keyframes of a parameter). It distinguishes itself from sibling keyframe tools like set_keyframe and delete_keyframe by emphasizing read-only behavior. The specific verb and resource 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 provides clear context by stating this tool only queries state and does not modify the scene or parameters. It implicitly guides when to use it (for reading keyframes) versus alternatives (set/delete keyframe tools). However, it does not explicitly name alternatives or state when not to use this tool, leaving a small gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_modified_primsC
最近修改信息不可证明时返回 unsupported (add-usd-solaris-tools,NO_UNDO)。
USD composed stage 无法提供可证明的 last-modified 排序;不伪造。响应
过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It reveals important behaviors: it returns 'unsupported' when the information is unprovable, explicitly states it does not fabricate data ('不伪造'), and mentions NO_UNDO and server-side apply_response_cap. This adds meaningful context beyond the name, though it does not describe success return format or potential 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 (roughly three sentences), so it is concise, but the structure is not front-loaded: it begins with the unsupported condition rather than the tool's primary purpose. It also uses unexplained jargon like 'apply_response_cap' without definition, which hurts clarity. It is efficient but could be better 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?
Given the tool has two required parameters, no output schema, and no annotations, the description is incomplete. It provides some limitation context (unsupported condition, no fabrication) but omits parameter meanings, success return value, typical use cases, and any relationship to sibling tools. The description is not sufficient for an agent to confidently use 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?
The input schema has two required parameters, ctx and node_path, with no descriptions in the schema, and schema description coverage is 0%. The tool description does not mention either parameter at all, leaving their semantics completely unexplained. This is a severe gap for an agent attempting to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name 'get_last_modified_prims' strongly suggests the tool retrieves prims by last modification, and the description mentions 'last-modified ordering' and 'recent modification info.' However, the description focuses on the unsupported case rather than clearly stating the core function (e.g., 'Returns prims sorted by last modification time'). The purpose is implied rather than explicitly defined, and no sibling differentiation is needed as no similar tool 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 provides no explicit guidance on when to use this tool or alternatives. It only mentions that it returns 'unsupported' when last-modified info cannot be proven, which is a limitation but not a clear usage instruction. There is no 'use this when...' statement, no exclusions, and no reference to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_scene_diffA
Return the last execute_code (capture_diff=True) scene before/after diff.
The Houdini-side server caches the most recent serialize_scene_state pair;
this tool fetches and pretty-prints the diff so the agent can verify what
a privileged execution actually changed in the scene.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool fetches from a cached pair and pretty-prints the diff, implying a read-only operation. However, it does not reveal edge cases such as behavior when no cached diff exists or potential errors, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling 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, with the primary action front-loaded. The second sentence adds valuable context about the server-side caching and the purpose for the agent. Every sentence earns its place, and there is no redundant 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 zero-parameter tool with an output schema, the description adequately explains what the tool does and why it exists. It references related concepts (execute_code, serialize_scene_state) that are part of the sibling tool ecosystem. However, it could be slightly more complete by mentioning prerequisite conditions or error scenarios, but overall it is 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, so the baseline is 4. The description correctly avoids adding parameter details that don't exist, and the schema coverage is trivially 100%. No additional semantic info 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 uses a specific verb ('Return') and identifies a precise resource (the last execute_code scene diff). It clearly distinguishes itself from sibling tools by referencing the capture_diff=True mechanism and the caching of serialize_scene_state pairs, making the tool's unique function 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 states the intended use case: to verify what a privileged execution changed in the scene. This provides clear context for when to use the tool. However, it does not explicitly mention when not to use it or suggest alternatives, though the specialized nature makes the context sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_material_infoA
获取材质节点的详细信息。
返回 dict 包含 path / type / name / parameters / texture_references
五项。parameters 仅保留 _materials.MATERIAL_PARM_WHITELIST 中列出的
50+ parm,过滤后键集合稳定跨材质类型一致;texture_references 列出
eval 值匹配已知贴图后缀(.png / .jpg / .jpeg / .exr / .hdr / .tif /
.tiff / .rat / .tex)的 parm。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| material_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and delivers substantial detail: it explains the return structure, that parameters are filtered to a whitelist with a stable key set, and that texture_references are determined by eval values matching known texture suffixes. This goes beyond a simple 'get' and informs the agent of important filtering 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 well-structured: the first sentence states the purpose, followed by a breakdown of the return dict. Every clause earns its place, with no repetition or unnecessary 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?
In the absence of an output schema, the description thoroughly explains the return value and its filtering logic, which is good. However, it does not cover usage context (when to choose this tool) or parameter semantics, leaving minor gaps for a read-only tool with two obvious-ish 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?
The schema has zero description coverage for its two parameters (ctx and material_path), and the description does not compensate by explaining them. material_path is fairly self-explanatory from the tool name, but ctx remains unclear, and the description does not address parameter meaning or format at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '获取' (get) and a specific resource '材质节点的详细信息' (detailed info of material node), and enumerates the exact return fields (path/type/name/parameters/texture_references), clearly distinguishing it from sibling tools like get_node_info or get_geometry_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: if you need material node details with filtered parameters and texture references, this is the tool. However, it does not explicitly state when to use it over alternatives or mention any exclusions or prerequisites, so 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.
get_network_overviewA
有界 BFS 遍历 parent 节点的网络拓扑(add-scene-context-selection-materials,READ_ONLY)。
``max_depth`` 控制 BFS 深度(0 = 仅 parent_path),
``max_nodes`` 限制 HOM 访问节点预算;返回 ``nodes / edges /
visited_count / truncated / truncation_reason``。节点去重
使用 path-based visited,环 / 共享祖先仅记一次。响应过 server
端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_depth | No | ||
| max_nodes | No | ||
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure burden. It discloses bounded BFS execution, exact semantics of max_depth and max_nodes, path-based visited deduplication, handling of cycles/shared ancestors, and server-side response cap. It also reports truncation and truncation_reason, which is more transparent than most tool descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and well-structured, front-loading the core purpose and then using bullets and code spans to explain parameters, return fields, and dedup behavior. Every sentence adds value, with 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 moderately complex (BFS with limits, dedup, truncation) and has no output schema. The description covers return fields, truncation, and dedup, which is essential. However, it leaves ctx unexplained and does not describe the shape or semantics of nodes/edges beyond their names, nor error scenarios. These gaps prevent a perfect score, but most critical operational details are 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 0%, so the description must compensate. It explains max_depth and max_nodes in detail (including the special case 0 = only parent_path) and implicitly defines parent_path via the phrase 'parent 节点的网络拓扑'. However, ctx is entirely unexplained, and the return structure of nodes/edges is only listed by name without further semantics. Thus compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it performs a bounded BFS traversal of the parent node's network topology and explicitly marks it as READ_ONLY. It clearly distinguishes this from sibling tools like list_children or find_nodes by describing the traversal algorithm (BFS, depth/node limits) and specifying return fields. The verb and resource are specific and accurate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 traversing a node's network topology with configurable depth and node budget, and the cryptic 'add-scene-context-selection-materials' may hint at a use case. However, it does not explicitly state when to use this versus list_children, find_nodes, or other related tools, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoA
获取节点的详细信息。
参数说明:
- node_path: 目标节点路径。
- include_errors: 可选,是否包含 errors / warnings 字段,默认 True。
- force_cook: 可选,读取前是否调 node.cook(force=True),默认 False。
- include_input_details: 可选,是否包含每个 input 的详细连接
(用 node.inputConnectors() 一次性取),默认 False。
- compact: 可选,是否仅返精简字段 path/type/counts(不含 parameters /
errors / warnings),默认 False。
返回 dict:compact=True 时仅含 path / type / children_count / input_count
/ output_count 五项;否则包含完整字段(详见 _node_info.get_node_info)。
节点不存在时函数会抛 ValueError,bridge 透传 error envelope 不静默吞错。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| compact | No | ||
| node_path | Yes | ||
| force_cook | No | ||
| include_errors | No | ||
| include_input_details | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does this exceptionally well by explaining defaults for all optional parameters, the side effect of force_cook (calls node.cook(force=True)), the compact return structure, and error propagation (throws ValueError, bridge passes through error envelope). This goes well beyond a generic 'get' 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 well-structured with a heading, bullet-pointed parameter list, and separate sections for return format and error behavior. Every sentence adds value, and there is no redundant or filler 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 covers parameters and error behavior well, but it does not enumerate the full (non-compact) return fields, instead referencing an internal function '_node_info.get_node_info' which is inaccessible to the agent. Without an output schema, this leaves the return format incomplete. Additionally, there is no usage context relative to 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?
Schema coverage is 0%, and the description compensates by explaining every parameter's meaning and default value: node_path, include_errors, force_cook, include_input_details, and compact. This adds essential meaning beyond the bare schema, making parameter usage unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '获取节点的详细信息' (get detailed information of a node), providing a specific verb and resource. However, it does not explicitly distinguish this tool from sibling tools like get_geometry_info or explain_node, so the purpose is clear but lacks 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 no guidance on when to use this tool versus alternatives. It only describes parameters and return behavior, leaving the agent to infer usage context without any exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parameterA
读取 parm 当前值/类型/表达式/时间依赖 (add-node-parameter-vex-tools,READ_ONLY)。
返回 ``{value, type, expression, is_time_dependent}``;无 expression
时 ``expression: None``。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states READ_ONLY, details the return structure, and discloses that expression is None when absent. The mention of apply_response_cap adds a behavioral nuance even if not fully explained. This goes beyond the schema and gives useful 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 primary purpose. It includes essential details (return format, None handling, response cap) in just a few lines without unnecessary fluff. Every sentence contributes 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 getter with no output schema and no annotations, the description covers the key context: read-only, return keys, expression behavior, and a response cap. It does not specify error handling or parameter semantics, but for this tool's simplicity, it is reasonably complete. The missing parameter details are a minor gap given the tool's straightforward 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 0%, so the description must compensate. However, it does not explain the meaning or format of ctx, path, or parameter. It only mentions 'parm' in a generic sense. This leaves significant ambiguity about how to construct the path or what ctx refers to, especially for an agent unfamiliar with the Houdini context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 reads the current value, type, expression, and time dependency of a parameter. The verb '读取' (read) and resource 'parm' are specific, distinguishing it from mutation tools like set_parameter and more focused tools like get_expression.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 what it reads and noting READ_ONLY, but does not explicitly compare with alternatives like get_expression or set_parameter. There is no direct 'use when' or 'when not to use' guidance, though the context of the return value provides some implicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_parameter_schemaA
Describe a node's parameters: names, labels, types, tuple sizes, current
values, defaults, numeric ranges and menu options. Use this to discover
valid parameter names/values before calling set_parameters. Filter with a
glob pattern (e.g. "*scale*", matched against name and label); paginate
with offset/limit when a node has many parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| offset | No | ||
| pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the output content (names, labels, types, tuple sizes, current values, defaults, numeric ranges, menu options), filtering behavior, and pagination. It doesn't mention potential side effects or failure modes, but as a read-only discovery tool, this is adequately 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?
Three sentences, front-loaded with the core purpose, followed by usage and filtering/pagination details. 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?
Given the absence of annotations and output schema, the description covers purpose, usage, output fields, filtering, and pagination. It doesn't describe return format or error handling, but for this tool's complexity, the description is sufficiently complete for an agent 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 coverage is 0%, so the description must compensate. It explains pattern matching semantics (glob against name and label) and pagination via offset/limit. Path is implied as the node to describe, though not explicitly tied to the 'path' parameter. Overall, it adds meaningful parameter context 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 clearly states the tool's purpose: to describe a node's parameters with a specific list of details (names, labels, types, etc.). It distinguishes itself from siblings like get_parameter and set_parameters by explicitly positioning this as a discovery tool before calling set_parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance: 'Use this to discover valid parameter names/values before calling set_parameters.' Also explains filtering with glob patterns and pagination with offset/limit. It doesn't explicitly compare to alternatives like get_parameter, but the usage 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_prim_intrinsicsA
仅查询指定 prim_index 的 intrinsics
(add-geometry-export-and-measure,NO_UNDO)。
``names`` 可选子集过滤;越界返回结构化 error。响应过 server
端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| names | No | ||
| node_path | Yes | ||
| prim_index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses that the operation is NO_UNDO, returns a structured error on out-of-bounds access, and passes through server-side 'apply_response_cap'. This goes beyond a bare minimum by revealing error behavior and side-effect 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 description is three sentences, front-loaded with the core purpose, and every sentence adds value: purpose, key parameters, error behavior, and response capping. No filler or repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and no annotations, the description is not fully complete. It lacks explanations for 'ctx' and 'node_path', and does not describe the return structure or format. While it covers error behavior and response limits, key context is missing for an agent to operate 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 schema has 0% description coverage, so the description must compensate. It clarifies 'prim_index' as the target and 'names' as an optional filter, but it does not explain 'ctx' or 'node_path'. Partial compensation is provided, leaving two parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 queries intrinsics for a specified prim_index, using the verb '查询' (query) and naming the specific resource. It distinguishes itself from sibling tools by focusing on intrinsics and adding contextual flags like 'add-geometry-export-and-measure' and 'NO_UNDO'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 '仅查询' (only query) and mentions optional subset filtering with 'names', but it does not explicitly state when to use this tool versus alternatives or provide exclusions. Usage context is inferred rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_render_settingsA
读取 node_path 的白名单 parm 值(design.md §"设置白名单")。
仅返回 ``ifd`` / ``opengl`` / ``karmarender`` 实际存在且数据安全的
parm;script / callback / command / executable 类型拒绝。整体
过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses important behaviors: returning only existing and data-safe parms, rejecting script/callback/command/executable types, and applying a response cap. This adds meaningful context beyond a 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, using code formatting and a reference to design.md, with no extraneous words. Every sentence adds specific behavioral or scope 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 tool's behavior is well covered: what it reads, what it filters, and the safety cap. It does not describe return format or error handling, but for a read tool with a simple schema, this 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?
The description references node_path and indicates it is the target node for reading settings, but does not explain the path format or expected structure. Since schema coverage is 0% and this is the only parameter, more detail would be helpful, but the reference provides some 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 reads whitelisted parm values for a given node_path, with a specific verb and resource. It distinguishes itself from siblings like set_render_settings (write operation) and get_parameter (generic) by narrowing to render settings and explicit renderer 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 implies usage for reading render settings but does not explicitly state when to use this over alternatives or when not to use it. It mentions filtering behavior but no direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_infoB
Ask Houdini for scene info. Returns JSON as a string.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the return is a JSON string, but it does not state what the JSON contains, whether it is a snapshot or live data, or if there are any performance implications. Minimal behavioral context beyond the return type.
Agents need to know what a tool does to the world before calling 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, with no filler or redundant information. It clearly communicates the action and return format in an efficient manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format details are likely structured. However, the meaning of 'scene info' remains ambiguous, and the description does not clarify the scope of data returned. For a zero-param tool, this is adequate but incomplete for an agent deciding between this and similar scene-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?
The tool has zero parameters, and the schema trivially covers 100% of the (empty) parameter space. Per the baseline for 0-param tools, the description does not need to add parameter semantics, and any addition would be redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it 'Ask(s) Houdini for scene info' and returns JSON, giving a verb and resource. However, 'scene info' is vague and does not distinguish it from siblings like get_scene_summary or get_network_overview, which likely cover similar ground.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description implies it is for getting general scene information but does not mention when it should be preferred over specific scene-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scene_summaryA
全场景 category counts + 时间线(add-scene-context-selection-materials,READ_ONLY)。
``max_nodes`` 控制 HOM 遍历预算;返回 ``total_nodes /
category_counts / frame / fps / start_frame / end_frame /
truncated / truncation_reason``。不返回完整节点列表,只聚合
category 分布。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_nodes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the read-only nature, the max_nodes traversal budget, truncation behavior via truncated/truncation_reason, and the server-side response cap. This is strong behavioral context, though it doesn't cover error cases or exact category semantics.
Agents need to know what a tool does to the world before calling 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 information-dense, using inline code formatting effectively. However, the parenthetical 'add-scene-context-selection-materials' is cryptic and adds little value, slightly reducing 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?
It lists return fields and truncation behavior, giving a good picture of output. But ctx is unexplained and 'category' is ambiguous; the timeline is mentioned but not detailed. It's adequate but has notable 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 0%, so the description must compensate. It explains max_nodes as controlling the HOM traversal budget, but the required ctx parameter is completely unexplained, leaving half the parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 provides full-scene category counts and timeline, and explicitly distinguishes itself by noting it returns aggregated category distribution rather than the full node list. This sets it apart from sibling tools like get_scene_info or get_geo_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 it when you need scene-wide category counts and timeline data. However, it does not explicitly compare to alternatives or state when not to use it, so 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.
get_selectionA
读取当前节点选择(add-scene-context-selection-materials,READ_ONLY)。
固定走 ``hou.selectedNodes()``,不接受 ``selectedItems()``;
因此不混入 network box / note / dot。返回 ``selected / count``,
每项 ``path / type / category``。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the internal function (hou.selectedNodes()), the exclusion of non-node items, the return structure (selected/count with path/type/category), and the server-side response cap. This is strong transparency, though it could mention edge cases like empty selection or order.
Agents need to know what a tool does to the world before calling 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. Every sentence adds meaningful detail about behavior, scope, return format, or limitations. 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 simple read tool, the description covers purpose, behavior, and return format well. However, the missing parameter semantics for the required 'ctx' parameter is a critical gap. The description does not enable full understanding of how 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 required 'ctx' parameter is completely undocumented in the description, and schema description coverage is 0%. The agent has no clue what 'ctx' represents or how to populate it, making correct invocation impossible without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the current node selection, specifies it uses hou.selectedNodes() rather than selectedItems(), and explicitly excludes network boxes/notes/dots. This distinguishes it from any generic selection tool and matches the name and sibling 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 implies a usage context: use this when you need the node selection only, not mixed items. However, it does not explicitly name alternatives or provide when-not-to-use guidance, so the agent must infer when this is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sim_memory_usageB
读取 DOP simulation 内存(add-dops-tools,READ_ONLY)。
使用 ``DopSimulation.memoryUsage()``,返回值明确标记 bytes;响应
经过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| dop_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds useful context by disclosing the internal API call `DopSimulation.memoryUsage()`, stating that the return value is explicitly marked in bytes, and noting the response passes through `apply_response_cap`. This goes beyond the bare purpose, though it doesn't cover error cases or detailed return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise, with two sentences that effectively cover the purpose and key behavioral details. Every clause earns its place, and there is 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 read tool, the description covers the return type and response cap, but it lacks parameter semantics and usage context. The absence of an output schema and annotations makes the description the only source of information, yet it leaves gaps in understanding what the required inputs represent.
Complex tools with many parameters or behaviors need more documentation. 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 0%, and the tool description does not compensate. It never explains what `ctx` and `dop_path` mean, so the agent is left guessing. The parameter names are somewhat self-explanatory, but the description adds zero 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 '读取 DOP simulation 内存' (read DOP simulation memory), specifying a verb and resource. It identifies the tool as part of add-dops-tools and READ_ONLY, but does not explicitly differentiate it from sibling tools like get_simulation_info, so it doesn't reach 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?
There is no guidance on when to use this tool versus alternatives. The description is purely functional and does not mention scenarios, exclusions, or related tools, leaving the agent without 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.
get_simulation_infoA
读取 DOP simulation 元数据(add-dops-tools,READ_ONLY)。
返回 frame/time/timestep/object_count;只使用有界 DopSimulation
查询。响应经过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| dop_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses read-only status, bounded queries (performance safety), and server-side response capping via 'apply_response_cap'. This goes beyond a simple 'get info' description, though it does not detail error behavior. It adds meaningful 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 sentences, front-loaded with the primary purpose, and each sentence adds value: the first defines the tool, the second specifies return values and safety/response cap. No redundant or filler 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 low-complexity metadata getter with two parameters and no output schema, the description lists the return fields and mentions response capping, which is important context. It lacks error-handling details, but overall provides adequate context for a metadata retrieval 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 0%, and the description does not explain the meaning of 'ctx' or 'dop_path'. The parameter names give some inference (dop_path is a path to a DOP node, ctx likely a context), but the description provides no explicit semantics, leaving a significant gap for a two-parameter 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 clearly states the tool '读取 DOP simulation 元数据' (read DOP simulation metadata) and lists specific return fields (frame/time/timestep/object_count). This distinguishes it from siblings like get_dop_field (which returns a specific field) and get_dop_object (which returns object details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 safe, bounded usage ('只使用有界 DopSimulation 查询') and read-only operation, but does not explicitly state when to use this tool versus alternatives or provide exclusions. It offers context but lacks direct alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_attributeB
单个属性值 + 类型名(add-usd-solaris-tools,NO_UNDO)。
从 composed stage 读取 attribute 在 ``time`` 的值。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| time | No | ||
| attribute | Yes | ||
| node_path | Yes | ||
| prim_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses that the operation is read-only ('读取') and mentions NO_UNDO and the server-side response cap. It does not detail error behavior or permission requirements, but for a read tool, the key safety aspect is covered. No contradictions with annotations (none 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 concise, with two sentences that front-load the core purpose. It avoids fluff, though terms like 'add-usd-solaris-tools' and 'apply_response_cap' are cryptic. Overall, it is efficiently 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?
The tool has 5 parameters, no output schema, and no annotations. The description gives a brief return format ('attribute value + type name') but fails to explain the parameters or usage context beyond the composed stage/time. This is inadequate for a tool with such low structured metadata.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate for parameter explanations. It mentions 'time' and 'attribute' but does not describe 'ctx', 'node_path', or 'prim_path'. The phrase 'from composed stage' hints at prim_path but insufficiently, leaving several parameters unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 a single attribute value and its type name from a composed stage at a given time. It is specific about the verb ('读取') and resource ('attribute'), and the phrase '单个' implies single-attribute scope, distinguishing it from plural-attribute tools. However, it does not explicitly name alternatives like get_attrib_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?
The description provides context on when to use the tool: reading an attribute from the composed stage at a specific time. It does not explicitly state exclusions or mention alternative tools, but the 'single attribute' scope and 'composed stage' context give implied usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_compositionC
composition arc 摘要(add-usd-solaris-tools,NO_UNDO)。
使用 ``Usd.PrimCompositionQuery`` 若可用;否则返回 unsupported。响应
过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_arcs | No | ||
| node_path | Yes | ||
| prim_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool has NO_UNDO (suggesting it is not an undoable operation), uses Usd.PrimCompositionQuery when available, and applies a server-side response cap (apply_response_cap). These details add meaningful context beyond the schema and name, helping the agent understand limitations.
Agents need to know what a tool does to the world before calling 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 purpose. It avoids verbosity and includes key behavioral notes (NO_UNDO, response cap) in a compact form. However, the Chinese phrasing may be less universally clear, and the mixing of technical terms and shorthand slightly reduces structural clarity. Still, it earns high marks for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 parameters, no output schema, and no annotations, the description is insufficient. It explains the underlying API and response handling but does not cover parameter meanings, return format, or usage scenarios. Given the complexity of USD composition arcs, a more complete description is necessary for reliable tool 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?
Schema description coverage is 0% and the description does not mention any of the four parameters (ctx, node_path, prim_path, max_arcs). There is no hint about what these parameters mean or how they relate to composition arc retrieval, leaving the agent without essential guidance 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 states 'composition arc 摘要' (composition arc summary), which clearly indicates this tool retrieves a summary of composition arcs for a USD prim. The verb is implied by the tool name 'get' and the resource is explicit. It distinguishes from sibling get_usd_* tools by focusing specifically on composition arcs rather than attributes or prim 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 no guidance on when to use this tool versus alternatives. It does mention a fallback behavior ('if available; otherwise returns unsupported') but does not explain typical use cases, prerequisites, or why one might choose this over related USD inspection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_prim_statsC
prim active / loaded / defined / abstract / instance + 属性计数 (add-usd-solaris-tools,NO_UNDO)。
响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| prim_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose 'NO_UNDO' and that responses pass through 'apply_response_cap', which are useful behavioral traits. However, it does not mention permissions, side effects, or whether the stage must be cooked, leaving significant 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 very short and front-loaded with the key output fields, making it easy to scan. However, the mixed-language shorthand and technical jargon (e.g., 'apply_response_cap') reduce clarity, and the second sentence adds operational detail without full 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, and the description only enumerates output categories without detailing the response structure. It also omits any explanation of required parameters or preconditions, leaving the tool under-specified for an agent to confidently 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?
Schema coverage is 0%, and the description does not explain the roles of ctx, node_path, or prim_path. While prim_path is inferable from the tool's purpose, ctx and node_path are undefined and the description adds no parameter-level 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 explicitly lists what is reported: active/loaded/defined/abstract/instance status and attribute count, which clearly identifies the tool's purpose. It distinguishes itself from sibling tools like get_prim_intrinsics or get_usd_attribute by focusing on prim state statistics, though it lacks a formal verb 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?
No guidance is provided on when to use this tool versus alternatives such as get_prim_intrinsics, get_geo_summary, or lop_prim_get. The mention of 'add-usd-solaris-tools' gives provenance but not usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usd_variantsD
variant set 名称与当前选择(add-usd-solaris-tools,NO_UNDO)。
响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| prim_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'NO_UNDO' as a behavioral trait, which is useful, but with no annotations it fails to disclose whether the operation is read-only, what side effects it has, or any permissions needed. The reference to 'apply_response_cap' is obscure and adds little clarity.
Agents need to know what a tool does to the world before calling 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 but it is under-specified, containing cryptic metadata like 'add-usd-solaris-tools' and 'apply_response_cap' that do not help an agent. It lacks a clean front-loaded purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a terse description, the tool is severely under-documented. The description does not explain what the function returns, how the parameters relate, or any operational 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?
All three parameters (ctx, node_path, prim_path) have 0% schema description coverage and the tool description does not explain them. An agent has no way to know what each parameter means or how to fill 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 mentions 'variant set name and current selection', which hints at the tool's output, but it lacks an explicit verb like 'get' or 'retrieve'. It is vague but more informative than a tautology, so it partially conveys the 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 no guidance on when to use this tool versus other getters like get_usd_attribute or lop_prim_get. There is no mention of context, prerequisites, or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewport_infoA
返回当前 SceneViewer viewport schema(add-viewport-control-tools,NO_UNDO)。
字段:camera / viewport_type / display_set / shaded_mode /
hydra_renderer。无 GUI / 无 pane 返 ``viewport_unavailable``
warning。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and adds meaningful behavioral details: it warns about the 'viewport_unavailable' edge case when no GUI/pane exists, and notes that the response passes through the server-side 'apply_response_cap'. These go beyond the simple 'returns info' implication and the input schema, though it omits any mention of permissions or exact return format.
Agents need to know what a tool does to the world before calling 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 main purpose, followed by a field list and edge-case notes. Each sentence adds value, though the parenthetical 'add-viewport-control-tools,NO_UNDO' is somewhat cryptic but still informative as a tag-like metadata. 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?
The description covers the main action, output fields, and a failure mode, which is decent for a simple getter. However, the unexplained parameter and the lack of any output schema leave a notable gap: the agent doesn't know what 'ctx' is or how the response is structured beyond a field list. Enough to be 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?
The only parameter 'ctx' is required but completely unexplained. Schema description coverage is 0%, and the description does not compensate; it only discusses return fields. The agent is left guessing what 'ctx' means, how to populate it, or what valid values are. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 returns the current SceneViewer viewport schema, listing specific fields (camera, viewport_type, display_set, shaded_mode, hydra_renderer). This specific verb+resource combination distinguishes it from sibling setter tools like set_viewport_camera or set_viewport_display, and from other getters targeting different contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clear use case: when you need to know the current viewport schema or its fields. It does not explicitly mention alternatives or exclusions, but the context is unambiguous – this is the tool for reading viewport information, while siblings are for setting or capturing. No misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wrangle_codeB
读取 Attribute Wrangle SOP 的 snippet (add-node-parameter-vex-tools,READ_ONLY)。
返回 ``{path, name, type, code}``。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must bear the full burden of behavioral disclosure. It does disclose that the tool is READ_ONLY and that the response passes through apply_response_cap, adding some transparency. However, it lacks details on error handling, required permissions, or any side effects, which is a modest but not comprehensive 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 composed of three short sentences, with the first sentence immediately stating the core purpose. It is front-loaded, contains no redundant information, and every phrase adds value, including the return structure and the response handling 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 tool is a simple getter, but the description is incomplete given the sparse schema and missing annotations. It does not explain the input parameters, which are critical for correct use. The return structure is mentioned, but without further context on when or how to use the tool, the description is insufficient for reliable 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 has 0% description coverage, and the description does not explain either 'ctx' or 'path' parameters. It only mentions 'path' as part of the return structure, which gives a hint about its meaning but does not clarify its input role or the meaning of 'ctx'. The description fails to compensate for the complete lack of 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 ('reads the snippet') and the resource ('Attribute Wrangle SOP'), making the tool's purpose unambiguous. It also includes 'READ_ONLY' to signal it is a read operation, which helps distinguish it from sibling tools like set_wrangle_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 its read-only nature and return type, but it does not explicitly state when to use this tool over alternatives. There is no mention of when not to use it or any alternative tools, leaving the agent to infer from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hda_createA
从节点创建 HDA(add-hda-management-tools,MUTATING)。
先 ``canCreateDigitalAsset()``,再
``createDigitalAsset(name=, hda_file_name=, description=)``。
``label`` 可选,作为 description。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| label | No | ||
| node_path | Yes | ||
| save_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the operation is mutating and outlines the internal validation and creation calls, plus a response cap via apply_response_cap. However, it does not mention permissions, reversibility, or failure behavior when canCreateDigitalAsset() returns 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 short but information-dense, with a clear purpose statement and code-like steps. It is well-structured and front-loaded, though the parenthetical '(add-hda-management-tools, MUTATING)' adds context without 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?
The description covers the main workflow but lacks details about return values, error handling, or prerequisites beyond the canCreateDigitalAsset check. With no output schema, the response format is not explained, leaving the agent with an incomplete picture for a create 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 0% description coverage, so the description must explain parameters. It explains that 'label' maps to the description parameter, but it references 'hda_file_name' which does not appear in the schema, and it does not clarify the roles of 'node_path' or 'save_path'. This creates 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 states '从节点创建 HDA' (create HDA from node), identifying a specific verb, resource, and scope. It also labels the operation as MUTATING, distinguishing it from read-only HDA tools like hda_get or hda_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 a procedural sequence (canCreateDigitalAsset() then createDigitalAsset()) but does not explicitly contrast with sibling tools such as hda_install or update_hda. There is no explicit 'when not to use' guidance, though the 'from node' phrase implies a specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hda_getA
读取 definition metadata(add-hda-management-tools,READ_ONLY)。
``node_type`` 仅接受 ``hou.NodeType.nameWithCategory()`` 完整
类别名(如 ``Sop/box``);短名称 / 未知 / 歧义均返回稳定
error。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explicitly marks the operation as READ_ONLY, specifies that short/unknown/ambiguous names return a stable error, and mentions response handling via apply_response_cap. This adds meaningful context beyond the schema, though the exact metadata contents 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 two sentences, front-loaded with the core purpose, and every clause adds value. It is dense yet readable, with no redundant wording or 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 simplicity (one parameter, no output schema), the description covers input constraints and error behavior well. However, it does not describe the structure or content of the returned definition metadata, which would be important without an output schema. This is a notable gap for an agent deciding whether the tool returns what it needs.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must fully compensate. It does: it explains that node_type must be a full category name from hou.NodeType.nameWithCategory(), provides an example (Sop/box), and warns against short/unknown/ambiguous names. This goes far beyond the schema's 'Node Type' string field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '读取 definition metadata' (read definition metadata), which is a specific verb+resource. This clearly distinguishes it from sibling tools like hda_list (listing HDAs) and get_hda_sections (getting sections). The 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 implies usage by specifying the required format for node_type, but it does not explicitly state when to use this tool over alternatives. No sibling tools are mentioned as alternatives or exclusions. The input constraint is helpful but does not provide full usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hda_installA
安装 HDA 库(add-hda-management-tools,NO_UNDO)。
落盘 + 全局 HDA registry 副作用,**不**可由 Houdini undo 恢复。
响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly warns about '落盘 + 全局 HDA registry 副作用' (disk + global HDA registry side effects) and that changes are '不由 Houdini undo 恢复' (not recoverable by Houdini undo). It also mentions 'apply_response_cap', which adds behavioral context. However, it does not cover permissions, error handling, or return values, keeping it slightly below full 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 highly concise, using three short sentences to convey the main action, side effects, and response cap. Every sentence contributes meaningful information, and the most critical facts are 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?
For a tool with global side effects, no output schema, and no annotations, the description covers the most important points: what it does, that it is non-undoable, and its response cap. However, it omits parameter details and return/error behavior, which would be needed for fully safe deployment. It 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 description coverage is 0%, and the description provides no explanation of the 'file_path' parameter beyond the schema's title. It does not compensate for the low coverage by describing path format, expected file types, or how to resolve paths. The parameter is self-explanatory by name, but the description adds no 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 '安装 HDA 库' (install HDA library), specifying a concrete verb and resource. It distinguishes from sibling HDA tools like hda_create, update_hda, and uninstall_hda by focusing on the install operation. The 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 notes significant side effects and non-undoability, which implicitly conveys when to be cautious. However, it does not explicitly state when to use this tool versus alternatives like hda_create or update_hda, nor does it mention any prerequisites. Usage context is implied rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hda_listA
枚举已加载 HDA(add-hda-management-tools,READ_ONLY)。
使用 ``hou.hda.loadedFiles()`` + ``hou.hda.definitionsInFile()``
按 ``(libraryFilePath, nameWithCategory())`` 去重。响应过
server 端 ``apply_response_cap``。``category`` 可选透传过滤。
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the read-only nature, the underlying Houdini API calls, deduplication logic, and the server-side response cap. These are meaningful behavioral traits, though it does not cover potential errors or pagination details.
Agents need to know what a tool does to the world before calling 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 first. It includes implementation details and dedup logic, but these might be more detailed than necessary for an AI agent. Still, there is minimal redundancy, and each sentence contributes 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?
This is a simple list tool with no output schema and no annotations. The description covers purpose, behavior, and the filter, but it does not explicitly state the return value structure (e.g., array of objects with fields). The dedup keys imply some fields, but the lack of explicit return format leaves a 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 single parameter 'category' lacks any schema description (0% coverage). The description adds only '可选透传过滤' (optional pass-through filter), giving minimal semantic meaning. It clarifies that the parameter filters results but does not explain allowed values or filtering behavior 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 begins with '枚举已加载 HDA' (enumerate loaded HDAs), which is a specific verb+resource statement. It clearly identifies the tool as a listing operation for loaded HDAs, distinguishing it from sibling tools like hda_install or hda_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 listing loaded HDAs but does not explicitly state when to use this tool versus alternatives. It mentions the optional category filter but provides no exclusions or comparative guidance relative to other list-oriented sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_usd_layerD
layer 自定义元数据 / sublayer 路径(add-usd-solaris-tools,NO_UNDO)。
响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| max_layers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It mentions 'NO_UNDO' and 'apply_response_cap', which are behavioral hints, but they are cryptic and unexplained. It does not state whether the tool is read-only or mutating, or what side effects might occur.
Agents need to know what a tool does to the world before calling 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 could be considered concise, but it is under-specified. It is not front-loaded with a clear purpose; instead, it leads with a noun phrase and a parenthetical tag, which makes it harder to parse than a well-structured sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, no annotations, and a 0% schema coverage, the description is the only source of context. It fails to describe return values, parameter usage, or operational effects. Given the tool's complexity, this is completely inadequate.
Complex tools with many parameters or behaviors need more documentation. 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 0% description coverage, and the description does not explain any of the three parameters (ctx, node_path, max_layers). The phrase 'layer custom metadata / sublayer path' is the only hint, but it is not explicitly tied to the parameter names or required 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 is a fragment: 'layer 自定义元数据 / sublayer 路径' (layer custom metadata / sublayer path) with no clear verb like 'inspect' or 'get'. It hints at what the tool touches but does not state an action or resource clearly. As a result, it only weakly distinguishes itself from 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?
No guidance on when to use this tool versus alternatives such as lop_layer_info or get_usd_composition. The description gives no context for selecting it or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_statsA
查看各知识库 root 状态与计数(只读状态报告)。
触发时机:需要了解知识库状态、确认写入是否生效或排查检索范围时调用。
查看各 root 状态(ok/unconfigured/unavailable)与 lessons/inbox/
recipes 计数;unconfigured 静默、unavailable 会带 _warning。本工具是
只读状态查询,不替代 verify_hou_api / get_houdini_help /
get_best_practices,也不替代目标 Houdini 版本的 live verification。
参数说明:
- scope: 可选 root 名;缺省/"all" 报告全部 root。
返回:{status:success, roots:[{name, state, path, priority, writable,
lesson_count, draft_count, published_count, inbox_count,
recipes_count}]};未知 scope → status=error + error.code=
ls_unknown_root。整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the read-only nature, status values (ok/unconfigured/unavailable), behavior for unconfigured roots (silent), warning suffix for unavailable roots, and error handling for unknown scope. It also notes it does not replace live verification.
Agents need to know what a tool does to the world before calling 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-organized: core purpose first, then trigger conditions, details, parameter explanation, and return format. Every sentence adds value with no redundancy, 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?
Despite having no output schema, the description provides the complete return structure, status semantics, and error code. Combined with the parameter explanation, it is fully self-contained for a one-parameter, read-only 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 only lists 'scope' with no description. The description explains scope is optional, with default/'all' returning all roots, and defines the special value 'all'. This fully compensates for the 0% 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 it views knowledge base root statuses and counts (read-only status report). It explicitly names the resource and differentiates itself from sibling tools like verify_hou_api, get_houdini_help, and get_best_practices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger conditions (e.g., when you need to check knowledge base status, confirm writes, or troubleshoot retrieval scope) and explicitly lists what it does not replace, offering clear context for when to use 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.
layout_childrenA
布局父节点下的子节点(按间距参数手动 setPosition,跨 Houdini 版本可移植)。
参数说明:
- parent_path: 父节点路径(PR 9 推荐命名)。
- parent: 旧版别名;若同时传 parent_path 与 parent,以 parent_path 为准。
- horizontal_spacing: 水平间距(Houdini units),缺省 2.0。
- vertical_spacing: 垂直间距,缺省 1.5。
- direction: "horizontal"(默认)或 "vertical"。
返回 dict 包含 parent_path / children_count / direction / spacing
四项。后向兼容:现有调用 layout_children(ctx, parent) 仍 work。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| parent | No | ||
| direction | No | ||
| parent_path | No | ||
| vertical_spacing | No | ||
| horizontal_spacing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it manually calls setPosition, is portable across Houdini versions, and returns a dict with specific fields. However, it does not mention side effects on existing child positions, error conditions, or whether the operation is destructive. With no annotations, this is moderate transparency but leaves important 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 well-structured with a main sentence, bullet-point parameter explanations, and a returns note. It is slightly verbose but every sentence adds value, especially given the sparse schema. Front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no annotations and no output schema, the description covers the return dict and parameter details well, but lacks usage context, why choose this over layout_network, and any caveats or examples. It is serviceable 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 description coverage is 0%, but the description compensates well: it explains all parameters except ctx, providing defaults (horizontal_spacing=2.0, vertical_spacing=1.5, direction='horizontal'), types (parent_path is PR9 recommendation, parent is alias), and precedence rules. It omits ctx, which is a required param, but the rest are well documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '布局父节点下的子节点' (layout children under a parent node) with a specific implementation detail ('按间距参数手动 setPosition') that distinguishes it from other layout tools like layout_network. The verb and resource 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?
No explicit guidance on when to use this tool vs alternatives (e.g., layout_network). It provides parameter precedence (parent_path over parent) and backward compatibility, but no context for choosing this tool over others. This is a significant gap given layout-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
layout_networkC
Auto-layout all children of a network node for a tidy graph.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, leaving the description responsible for behavioral disclosure. It does not mention side effects (e.g., permanent position changes), whether the graph is cooked, or the exact scope of 'children'. The simple action verb is there but lacks 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?
The description is a single, front-loaded sentence with no wasted words. It conveys the core purpose efficiently and remains 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 one-parameter tool, the description provides a minimum viable definition. However, it lacks usage context, alternatives, and behavioral details, making it incomplete for an agent to confidently invoke it in varied situations.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter ('path') with 0% coverage, so the description must clarify its meaning. It does imply the path refers to the network node, but it does not specify the path format, whether it supports wildcards, or any constraints. This is minimal compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Auto-layout'), the target ('all children of a network node'), and the outcome ('for a tidy graph'). It distinguishes from the sibling 'layout_children' by specifying 'network node' as the context, though it doesn't explicitly contrast 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?
No guidance is provided on when to use this tool, prerequisites, or alternatives like 'layout_children'. The description only states what it does without any contextual or exclusionary information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_parametersA
建立 parm 之间的真实引用(add-node-parameter-vex-tools,MUTATING)。
使用 ``Parm.set(Parm)`` / ``setExpression()`` 建跨 parm 引用;
不用 channel alias 冒充。``source`` / ``target`` 形式
``node_path.parm_name``。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| source | Yes | ||
| target | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions the operation is 'MUTATING' and describes the underlying implementation (Parm.set(Parm)/setExpression()), plus notes that responses go through 'apply_response_cap'. However, it does not disclose side effects, reversibility, or required permissions, leaving gaps in 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 extremely concise, with the core purpose front-loaded in the first sentence. Every sentence adds meaningful information (purpose, method, parameter format, response cap) 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?
The tool has only 3 parameters and no output schema, so the description provides the essential purpose, parameter format, and a note on response handling. However, the 'ctx' parameter is left unexplained, and return values/error behavior are not mentioned, leaving some contextual gaps for an agent to fully 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 has no descriptions (0% coverage). The description explains the format for source and target ('node_path.parm_name') but does not explain 'ctx'. This partially compensates for the schema gap but leaves one parameter undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '建立 parm 之间的真实引用' (establish real references between parms). It specifies the method (Parm.set(Parm)/setExpression()) and distinguishes itself from alternatives by explicitly rejecting channel aliases ('不用 channel alias 冒充').
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage context by indicating this is for creating cross-parm references and advises against using channel aliases as a substitute. However, it does not explicitly name alternative tools (e.g., set_expression) or state when not to use this tool, so 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.
list_cachesA
枚举白名单 File Cache 节点(BFS,受 max_nodes 限制)。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_nodes | No | ||
| parent_path | No | / |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses read-only behavior ('只读'), BFS traversal, and the max_nodes limit, which are important safety and algorithmic traits. It does not explain return format or the meaning of 'whitelisted', but for a simple listing 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 a single concise sentence that front-loads the key action and scope, with no filler words. Every part 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 listing tool with no output schema, the description covers the core action, safety, and limitations. However, missing details about the whitelist definition and the parent_path parameter make it 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 0%, so the description must compensate for parameter semantics. It only clarifies max_nodes as a limit; ctx and parent_path remain unexplained. This is insufficient for full parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '枚举白名单 File Cache 节点' specifically states the action (enumerate) and resource (whitelisted File Cache nodes), with additional details about BFS and max_nodes limit. This clearly distinguishes it from sibling tools like list_children or list_node_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 implies usage as a read-only enumeration tool but does not provide explicit when-to-use guidance or mention alternatives. It mentions BFS and max_nodes, which gives context, but no exclusions or comparison to related cache tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_childrenA
List the children of node_path. With recursive=True walk the subtree up to max_depth. compact=True returns only {path, type, children_count}.
PR 6: relays to server-side disc.list_children.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| compact | No | ||
| max_depth | No | ||
| max_nodes | No | ||
| node_path | No | / | |
| recursive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It does disclose important behavior: recursive subtree traversal up to max_depth, compact output shape, and server-side relay. However, it omits pagination/cursor behavior, the meaning of non-compact output, error handling, and any read-only safety guarantees.
Agents need to know what a tool does to the world before calling 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 actionable usage details. The first two sentences are concise and valuable. The final sentence about 'PR 6' and server-side relay is internal noise that does not help an agent invoke the tool, so it loses the 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?
With 7 parameters, no annotations, and no output schema, the description leaves material gaps: pagination via limit/cursor, the max_nodes safety cap, the full non-compact return format, and default behavior when node_path is invalid are all unexplained. The description covers core semantics but is not complete enough for correct advanced 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 0%, so the description must compensate. It gives meaning to node_path, recursive, max_depth, and compact, but completely ignores limit, cursor, and max_nodes. This is partial compensation for a 7-parameter 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 clearly states the action: 'List the children of node_path.' It names a specific resource (children of a node path) and distinguishes itself from sibling list_* tools by targeting node hierarchy children rather than node types, panes, or channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 tool when you need the children of a given node path. However, there is no explicit mention of when to choose this over alternatives like find_nodes or get_node_info, nor are any exclusions or prerequisite conditions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_chop_channelsB
枚举 CHOP 通道(track)名与采样范围。参数:node_path,output_index 可选。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| output_index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the output nature (names and sampling range) and implies a read-only operation via the verb '枚举', but it does not clarify the required ctx parameter or potential failure modes. This is acceptable for a benign listing, but lacks 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?
The description is brief and front-loaded with purpose, but the second sentence mostly duplicates schema information and is incomplete by missing ctx. It is concise overall but not fully earning 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 no output schema and zero annotation support, the description provides only a high-level outcome. Key gaps include the unexplained ctx parameter, ambiguous output_index semantics, and no return structure details. For a simple enumeration tool, this is near-minimal but still has clear omissions.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It mentions node_path and output_index (optional), but omits the required ctx parameter entirely. It also does not explain node_path format or output_index's expected values, despite the schema showing output_index as a string with default 0.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '枚举' (enumerate) and clearly identifies the resource (CHOP channels/tracks) plus additional scope (sampling range). This distinguishes it from siblings like get_chop_data or export_chop_to_parm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 get_chop_data or create_chop_node. There is no mention of appropriate contexts, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cop_node_typesA
枚举 Copernicus node type registry(add-cops-tools,READ_ONLY)。
默认枚举 "Cop" category(H21+ Copernicus);``"Cop2"`` 显式拒绝为
legacy。只查询 registry,不触发 COP cook 或写入。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| category | No | Cop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and steps up by explicitly stating '只查询 registry,不触发 COP cook 或写入' (only queries the registry, does not trigger COP cook or writes) and labeling itself READ_ONLY. This adds valuable behavioral context about side effects, though it does not describe return format or pagination.
Agents need to know what a tool does to the world before calling 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. The first sentence states the purpose and read-only nature; the second covers the default, exclusions, and safety. Every sentence earns its place with no 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 read-only enumeration tool, the description covers the key aspects: purpose, safe behavior, and parameter guidance. It lacks details on return values and ctx parameter, but given the simple list operation and no output schema, these are not critical gaps. The overall context is sufficient for 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?
Schema coverage is 0%, so the description must compensate. It does explain the 'category' parameter, including its default and the invalid legacy value 'Cop2', but it leaves the required 'ctx' parameter completely unexplained. This partial compensation yields a mid-range score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '枚举 Copernicus node type registry' (enumerate the Copernicus node type registry), with a specific verb and resource. It distinguishes itself from the sibling list_node_types by focusing on Copernicus-specific node types and mentions 'add-cops-tools' as a contextual qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage guidance on the 'category' parameter: the default is 'Cop' (H21+ Copernicus) and 'Cop2' is explicitly rejected as legacy. However, it does not mention alternative tools or explicitly state when to use this tool instead of siblings, 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.
list_dop_objectsA
分页列出 DOP objects(add-dops-tools,READ_ONLY)。
每项仅返回 name/object_id 与有界 data/record type 摘要;不展开
模拟数据。响应经过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| offset | No | ||
| dop_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states READ_ONLY, pagination, returns only name/object_id with bounded summaries, does not expand simulated data, and applies a response cap. These are concrete behavioral traits beyond the tool name and 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 and front-loaded: three sentences deliver the primary action, output scope, and behavioral caveats without redundancy. It uses technical precision and 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?
The tool has no annotations and no output schema, so the description must cover both behavior and return shape. It adequately describes pagination and response caps, but misses parameter semantics and exact return value structure beyond the field summary. Adequate for a listing tool but with 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 description coverage is 0%, yet the description does not explain any of the four parameters (ctx, dop_path, limit, offset). '分页' hints at limit/offset, but their types, defaults, and required context (ctx, dop_path) are undocumented in either schema or 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 tool's function: '分页列出 DOP objects' (paginated list of DOP objects), identifying both the verb (list) and the resource (DOP objects). It also distinguishes itself from sibling tools like get_dop_object by specifying it returns only summaries, not expanded 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 implies a listing use case and highlights pagination and limited field returns, but does not explicitly mention when to prefer this over alternatives like get_dop_object or get_dop_field. There is no explicit 'when not to use' or reference to sibling tools for detailed lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lightsC
灯光识别:优先 UsdLux.LightAPI,再具体 schema IsA (add-usd-solaris-tools,NO_UNDO)。
不依赖 ``UsdLux.Light`` 基类;缺少 API 时返回 capability warning。响应
过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| max_lights | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals key behaviors: it does not depend on the UsdLux.Light base class, returns a capability warning when the API is missing, passes the response through server-side apply_response_cap, and notes NO_UNDO. These details go beyond a basic description and alert the agent to potential limitations or 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 brief and front-loaded with the tool's core purpose of light recognition. It packs a lot of technical detail into two sentences, and each sentence adds value. However, the heavy use of USD-specific jargon (UsdLux.LightAPI, schema IsA) may reduce clarity for agents not deeply familiar with USD, but it is still concise and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 incomplete for a tool with three parameters and no output schema. It omits parameter explanations, return value format, and any usage examples. The mention of apply_response_cap and NO_UNDO hints at behavior but does not clarify the expected output or how to interpret results, making it insufficient for an agent to confidently invoke 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?
The schema has zero description coverage for its three parameters (ctx, node_path, max_lights), and the description does not explain any of them. The tool description focuses entirely on detection logic and response handling, leaving parameter meanings to be inferred from the tool name and context. This is a critical gap for a tool that requires two mandatory 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 explicitly states the tool's purpose as light recognition (灯光识别) and details the identification strategy (UsdLux.LightAPI then schema IsA). This distinguishes it from sibling tools like list_usd_prims by focusing specifically on lights. However, it does not explicitly say that it returns a list of lights, which is the implied 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?
The description provides no guidance on when to use this tool versus alternatives. It only describes the internal algorithm and does not mention any use cases, prerequisites, or exclusions. There is no reference to sibling tools or conditions for preferring list_lights over other listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_materialsA
枚举 parent 下材质节点(add-scene-context-selection-materials,READ_ONLY)。
验证 parent 存在且 childTypeCategory 为 Sop(Houdini 21
真实材质节点归属);每项 ``path / name / node_type / category``,
稳定按 path 排序。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| parent_path | No | /mat |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states READ_ONLY, validation behavior, output fields (path/name/node_type/category), stable sorting by path, and response cap. This is rich behavioral disclosure beyond basic purpose.
Agents need to know what a tool does to the world before calling 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 and read-only status. It efficiently packs validation, output format, and sorting. However, it includes the cryptic internal identifier 'add-scene-context-selection-materials' which adds noise without clear value, so it is not 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?
For a read-only listing tool, the description provides useful details: validation, output fields, sorting, and response cap. It lacks an explanation of the ctx parameter, but the overall behavior and return shape are sufficiently described. Given no output schema or annotations, this 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 0%, so the description must compensate. It clarifies that 'parent' refers to parent_path, but it does not explain the required ctx parameter at all. The description adds minimal meaning beyond the schema, leaving a key parameter undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 task: enumerate material nodes under a parent. It uses a specific verb '枚举' (enumerate) and resource '材质节点' (material nodes), which is clear. However, it does not explicitly differentiate from sibling tools like list_material_types, so it misses the full sibling differentiation criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 specifies that the parent must exist and that childTypeCategory must be Sop, providing a clear prerequisite. It also indicates READ_ONLY, but it does not mention alternatives or when not to use it. This is clear context with no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_material_typesA
枚举材质 category 下的 node types(add-scene-context-selection-materials,READ_ONLY)。
``category`` 仅接受 ``Vop`` / ``Shop``;使用对应 category 的
``nodeTypes()``,稳定排序返回 ``name / node_type / category /
description``,``node_type`` 走 ``nameWithCategory()`` 完整
类别名。未知 / 不支持 category 返 ``unsupported_category``。
响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| category | No | Vop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden and does an excellent job: discloses READ_ONLY, acceptable categories, stable sorting, return fields, use of nameWithCategory(), error handling for unsupported categories, and server-side apply_response_cap. This goes beyond basic expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: purpose and READ_ONLY first, then category constraints and return details, then error handling and response cap. Every sentence adds value, though the technical references could be clearer for less Houdini-savvy 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 enumeration tool with no output schema, the description covers purpose, return format, sorting, error handling, and response cap. Missing explanation of the `ctx` parameter and exact format of node_type, but otherwise 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 0%, so the description must compensate. It thoroughly explains `category` (only Vop/Shop, unknown returns unsupported_category), but the required `ctx` parameter is left unexplained. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 enumerates node types under the material category, with specific verbs and resource. It distinguishes itself from siblings like list_node_types and list_cop_node_types by scoping to material categories (Vop/Shop).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 through the material category scope, but no explicit guidance is given on when to use this tool instead of list_node_types or list_cop_node_types. There are no exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_node_typesB
List Houdini node types with optional category / name filter, paginated.
PR 6: relays to server-side disc.list_node_types, which populates the
NodeTypeCache on first call and reuses it across invocations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| category | No | ||
| name_filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses pagination and a caching mechanism (NodeTypeCache population and reuse), which add behavioral context beyond the schema. However, the return format and side effects are not detailed, and the 'PR 6' note is cryptic. Since no annotations exist, the description carries the full burden but remains incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and clear. The second sentence introduces internal implementation details ('PR 6', 'disc.list_node_types') that are likely confusing for an agent and add noise. The description could be tighter and more user-focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no annotations and no output schema, the description covers the core purpose but omits details like response structure, pagination cursor behavior, and explicit read-only nature. It is adequate but leaves notable 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 description maps 'category / name filter' to the 'category' and 'name_filter' parameters and mentions pagination, which implicitly covers 'limit' and 'cursor'. This adds some meaning, but it does not explain cursor mechanics or filter matching semantics. With 0% schema description coverage, the description partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'List Houdini node types' with optional filters and pagination. It distinguishes from sibling tools like 'list_cop_node_types' by referring generically to 'Houdini node 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?
No explicit guidance is provided on when to use this tool versus alternatives. The description implies usage for listing node types but does not mention exclusions or when a more specific tool like 'list_cop_node_types' should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_render_nodesA
枚举 parent_path 下可分类 ROP 节点(ifd / opengl / karmarender)。
响应字段:``parent_path / count / nodes``,每节点含
``name / path / type / renderer``。未知 ROP type 仍列出但
``renderer=""``。整体过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| parent_path | No | /out |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the response structure (parent_path/count/nodes) and documents an edge case: unknown ROP types are still listed with renderer="". It also mentions apply_response_cap. However, it does not state whether the listing is read-only or recursive, which are minor gaps for an enumeration 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 concise and well-structured: it front-loads the purpose, then uses bullet points to detail response fields and notable behavior. Every sentence contributes useful information without redundancy, making it easy 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 one-parameter enumeration tool, the description is largely complete: it states the response fields, handles the unknown-type edge case, and mentions response cap. Minor omissions include whether the listing is direct children or recursive, and lack of an explicit read-only hint, but these do not significantly impair usability given the tool's simplicity and the presence of an output 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 schema has 0% description coverage, and the description only references parent_path in passing ('under parent_path') without explaining its format, valid values, or default behavior. For a tool with a single parameter, the description should at least clarify that parent_path is a Houdini node path, especially given the schema provides no description. This lack of compensation for low schema coverage results in weak 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 tool enumerates ROP nodes (ifd, opengl, karmarender) under a specified parent_path, using the specific verb '枚举' (enumerate). This distinguishes it from sibling tools like list_dop_objects or list_cop_node_types by focusing specifically on render nodes and including the renderer field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: to list categorizable ROP nodes under a path. It does not explicitly mention alternatives or exclusions, but the specificity to ROP nodes and renderer types makes its use case evident relative to generic listing tools like list_children or find_nodes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_takesA
枚举全部 takes,返回 name/path/parent/current 列表。只读不改场景。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and explicitly states '只读不改场景' (read-only, does not modify scene), which is a key behavioral disclosure. It also lists return fields, but lacks details on permissions, performance, or edge cases.
Agents need to know what a tool does to the world before calling 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-loaded with the action, and every word serves a purpose. No redundant or irrelevant information 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 the main functionality and return fields, making it clear for a simple list tool. However, the total absence of context for the 'ctx' parameter and the lack of any detail on expected behavior or prerequisites leaves a notable 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 has one required parameter 'ctx' with 0% description coverage, and the tool description does not mention it at all. There is no explanation of what 'ctx' means or how it affects the listing, leaving the agent without guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '枚举全部 takes' (enumerate all takes), which is a specific verb+resource action. It further specifies return fields (name/path/parent/current), making it distinct from siblings like set_current_take or create_take.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 defining the action, but it does not explicitly state when to use this tool versus alternatives such as get_current_take or create_take. It lacks exclusionary guidance or mention of alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usd_primsB
受 max_depth / max_prims 限制的 prim 遍历 (add-usd-solaris-tools,NO_UNDO)。
返回 prim 路径 / 名称 / 类型 / 深度列表。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_depth | No | ||
| max_prims | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses NO_UNDO (non-undoable) and mentions the response cap (apply_response_cap), which are useful behavioral traits. However, it does not explicitly state side-effect status (read-only vs mutating) or any prerequisites, leaving some ambiguity.
Agents need to know what a tool does to the world before calling 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. The parenthetical notes about NO_UNDO and response cap add useful context without excessive length, though the structure could be slightly cleaner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 functionality and return contents, but given no annotations, no output schema, and 0% parameter coverage, it lacks details on required inputs (ctx, node_path) and when to use it. It is adequate for a simple list tool but has 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 description coverage is 0%, and the description only explains max_depth and max_prims conceptually as limits. It does not clarify ctx or node_path, which are required parameters. The partial insight into two parameters is insufficient for full understanding of all four.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 performs prim traversal limited by max_depth and max_prims, and lists what it returns (paths, names, types, depths). This distinguishes it from sibling tools like get_prim_intrinsics or lop_prim_search, which have different focuses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 guidance on when to use this tool versus alternatives. It only implies its purpose through the traversal limits, but there is no explicit mention of when to prefer list_usd_prims over sibling tools like get_prim_intrinsics or lop_prim_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_visible_panesA
列出当前所有 desktop 中可见的 pane tab。
返回 {desktop, pane_type, name, is_current} 四元组列表;is_current
标记该 desktop 当前激活的 pane。只读操作,响应过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states read-only behavior, the return tuple structure, and the meaning of 'is_current'. The mention of 'apply_response_cap' is cryptic but adds some context beyond basic 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 concise sentences, front-loaded with the purpose, followed by return format and safety note. No wasted words or repetitive 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?
It covers the core purpose and return format, but the unexplained 'ctx' parameter and ambiguity about 'current all desktops' leave gaps. The response cap note is vague, but overall the description is adequate for a simple list 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 0% and the description does not explain the required 'ctx' parameter at all. This is a critical gap, leaving the agent without any understanding of what ctx should be.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 uses a specific verb 'list' and identifies the resource as 'visible pane tabs in current desktop'. This distinguishes it from sibling tools like capture_pane_screenshot and get_viewport_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 for enumerating visible panes but provides no explicit guidance on when to use it versus alternatives, nor any exclusions. It is a clear purpose but without direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_sceneA
Load a .hip file as the current Houdini scene.
Server-side also calls cmn.invalidate_all_caches() so downstream caches
(NodeTypeCache coming in PR 6) reset on scene switch.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description assumes full responsibility for behavioral disclosure. It goes beyond the basic action by revealing a side effect: 'Server-side also calls cmn.invalidate_all_caches() so downstream caches reset on scene switch.' This is valuable transparency, though it omits other potential behaviors like overwriting unsaved changes or error 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 two sentences, both essential. The first states the core action, the second adds a relevant side effect. No redundancy or filler, and it is front-loaded with the primary 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 the tool's simplicity (one parameter, no output schema) and the lack of annotations, the description covers the essential purpose and a significant side effect. It does not mention return values, but none are expected, and the cache invalidation context adds completeness beyond a bare 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?
Schema description coverage is 0%, so the description must compensate, but it only says 'Load a .hip file' without explaining the file_path parameter's format, supported paths, or constraints. The connection between the parameter and the action is implied but not explicitly detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Load a .hip file as the current Houdini scene.' This uses a specific verb (Load), a specific resource (.hip file), and the context (current scene) which differentiates it from sibling tools like new_scene or save_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 gives no explicit guidance on when to use this tool versus alternatives. It does not mention 'use this instead of new_scene when you need to restore a saved scene' or any prerequisites, making it ambiguous for an agent deciding between load_scene, new_scene, or serialize_scene.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lock_parameterC
切换 parm 锁定状态(add-node-parameter-vex-tools,MUTATING)。
``locked`` 接受 bool;单 undo group。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| locked | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does state that the tool is MUTATING, operates in a single undo group, and that the response passes through apply_response_cap. However, it does not mention required permissions, side effects, or what happens if the parameter is not found or already in the desired state. This is a significant gap 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 compact and front-loaded, with three short sentences each adding distinct information. There is no redundant wording. It could be slightly more structured, but it is appropriately concise for the content it covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 four required parameters, no output schema, and no annotations, the description is incomplete. It does not explain the meaning of ctx, path, or parameter, nor does it describe the return value or error behavior. The tool is more complex than the description acknowledges.
Complex tools with many parameters or behaviors need more documentation. 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 no descriptions for its four parameters (0% coverage). The description only clarifies that 'locked' accepts a boolean, but it leaves ctx, path, and parameter unexplained. This is minimal compensation for the low schema coverage and does not enable an agent to correctly fill all 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 the tool's purpose: to toggle the lock state of a parameter ('切换 parm 锁定状态'). It uses a specific verb ('toggle') and a specific resource ('parm lock state'). However, it does not explicitly distinguish this from sibling tools beyond the unique action, so it falls 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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or alternative tools that might be more appropriate. The only context is the tool's own description, so an agent gets no usage direction beyond the obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_importA
创建 Reference 或 Sublayer LOP(add-usd-solaris-tools,MUTATING)。
创建 / 连接 / 配置是单 undo group 的连续步骤;失败 destroy 半成品。
**不**直接修改 stage layer stack;adapter 不可用时返回 unsupported。
``import_type`` 接受 ``reference`` / ``sublayer``。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| file_path | Yes | ||
| node_name | No | ||
| prim_path | No | / | |
| import_type | No | reference | |
| parent_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and delivers rich behavioral context: MUTATING, operations in a single undo group, failure destroys semi-finished products, unsupported when adapter unavailable, and response passes through apply_response_cap. These are valuable disclosures beyond what annotations would 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 brief, front-loaded with purpose, and uses structured line breaks to separate behavioral notes. Every sentence conveys distinct information without redundancy, making it 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?
The description is strong on behavior (mutation, undo, failure) but weak on parameter semantics for most inputs and does not explicitly describe return values beyond the response cap mention. For a 6-parameter tool with no output schema and no annotations, this leaves notable gaps 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 description only documents import_type accepted values ('reference'/'sublayer'). With 0% schema description coverage and 6 parameters, the description fails to explain ctx, parent_path, file_path, node_name, and prim_path. This is insufficient compensation for the low 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 explicitly states 'Create Reference or Sublayer LOP' with the specific node type 'add-usd-solaris-tools' and marks it as MUTATING. This provides a specific verb, resource, and scope, clearly distinguishing it from generic node creation tools like create_lop_node or create_node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (creating Reference/Sublayer LOPs) and explicitly states an exclusion ('does not directly modify stage layer stack'). However, it does not name alternative tools or provide explicit when-not-to-use guidance beyond that limitation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_layer_infoB
layer stack 摘要(add-usd-solaris-tools,NO_UNDO)。
读取 root / session / sublayer 的 identifier / real path / sublayer
数,受 ``max_layers`` 限制。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| max_layers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It mentions 'NO_UNDO' and 'apply_response_cap', which are useful behavioral hints, and indicates it is read-only ('读取'). However, it doesn't disclose error behavior, output format, or side effects beyond these points, so it's 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 description is two sentences with no redundant filler. The parenthetical 'add-usd-solaris-tools,NO_UNDO' is a bit cryptic but acceptable. It front-loads the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description is somewhat brief. It doesn't explain what the returned data looks like or when the tool is appropriate. However, it covers key aspects like scope (root/session/sublayer) and limits (max_layers), making it minimally 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 coverage is 0%, so the description must compensate. It explains that 'max_layers' limits the number of layers, but 'ctx' and 'node_path' remain undefined. This adds some meaning for one parameter but not the others.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 reads root/session/sublayer layer stack information (identifier, real path, sublayer count) and is a summary. This distinguishes it from prim-focused or stage-level tools like lop_prim_search or lop_stage_info, 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?
No guidance is given on when to use this tool versus alternatives. It only describes what the tool does, implying it's for inspecting layer stacks, but there are no explicit 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.
lop_prim_getA
单个 prim 的 type / active / loaded / kind + 有界属性 (add-usd-solaris-tools,NO_UNDO)。
``prim_path`` 必填(USD path,如 ``/Asset``)。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| prim_path | Yes | ||
| max_attributes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It notes NO_UNDO and that responses pass through server-side apply_response_cap, which adds context, but it does not disclose error behavior, confirm read-only nature, or elaborate on the response capping's 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 two terse sentences that commit no waste: the first states the core output, the second covers the required parameter and response handling. Every sentence earns its place, making it highly 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?
With 4 parameters, no output schema, and no annotations, the description omits essential context for three parameters and does not position the tool among closely related query siblings. Significant gaps remain for an agent to use it correctly in varying situations.
Complex tools with many parameters or behaviors need more documentation. 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 0%, and the description only explains prim_path with a concrete example. ctx, node_path, and max_attributes remain entirely undocumented, so the description fails to compensate for the schema gap for three of four 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 that the tool returns type/active/loaded/kind plus bounded attributes for a single prim, making its purpose specific and unambiguous. It distinguishes from sibling query tools like lop_prim_search by targeting a single prim's core properties rather than searching or general 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 implies usage is for retrieving a specific prim's info and marks prim_path as required, but it does not explicitly compare to alternatives like get_usd_prim_stats or provide when-not-to-use guidance. It gives a prerequisite but no 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.
lop_prim_searchA
按 name 子串 / type_name 精确匹配搜索 prim (add-usd-solaris-tools,NO_UNDO)。
两者都省略时等价于 ``list_usd_prims``(受 cap 限制)。响应过 server
端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | No | ||
| max_depth | No | ||
| max_prims | No | ||
| node_path | Yes | ||
| type_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses NO_UNDO semantics and the server-side response cap (apply_response_cap), which are useful beyond the tool name. However, it does not mention whether this is a read-only operation, permissions required, or any pagination/error 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, with each sentence providing meaningful information. 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?
Without annotations or output schema, the description covers core behavior (match type, fallback, cap) but omits parameter details, result format, and edge cases. It is adequate for basic use but lacks complete operational context for an agent needing to set max_depth or understand ctx/node_path.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It adds meaning for name (substring) and type_name (exact match), and implies cap applies to max_prims, but it leaves ctx, node_path, max_depth, and max_prims mostly undocumented. This is insufficient for a 6-parameter 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 clearly specifies a verb ('search') and resource ('prim') with match criteria ('name substring / type_name exact'), distinguishing it from sibling tools like list_usd_prims and lop_prim_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 both search criteria are omitted, the tool behaves equivalently to list_usd_prims (subject to cap), providing clear fallback usage context. It does not discuss exclusions or when to prefer alternatives, but the primary usage scenario is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lop_stage_infoB
composed stage 级元数据(add-usd-solaris-tools,NO_UNDO)。
从 ``LopNode.stage()`` 读取 upAxis / metersPerUnit /
framesPerSecond / defaultPrim 与有界 prim 计数。响应携带 capability
探针(Houdini 版本 / USD 版本 / feature flags)并过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_prims | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a read operation ('读取') and mentions 'NO_UNDO' and 'apply_response_cap', adding some context. However, it does not explicitly state side-effect-freeness, permission requirements, or error behavior, though the read-oriented wording is a strong safety signal.
Agents need to know what a tool does to the world before calling 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 function in the first line. The second paragraph adds meaningful detail about the response. Some mixed-language jargon ('add-usd-solaris-tools', 'apply_response_cap') may reduce clarity but does not waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 3 parameters, no output schema, and no annotations, the description leaves gaps: parameter semantics, exact return structure, and error behavior are missing. It covers the main metadata fields but is insufficient for an agent to confidently select and invoke it without additional assumptions.
Complex tools with many parameters or behaviors need more documentation. 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 0%, and the description does not explain ctx, max_prims, or node_path beyond implying node_path is the LOP node from LopNode.stage(). The meaning of max_prims (e.g., limit on counted prims) is unstated, and ctx is entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 composed stage metadata (upAxis, metersPerUnit, framesPerSecond, defaultPrim, and prim count) from LopNode.stage(). This is a specific verb+resource pairing that distinguishes it from sibling tools like lop_layer_info or get_usd_prim_stats, which focus on different layers or prim-level details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 retrieving stage-level USD metadata, but provides no explicit when-to-use vs alternatives, prerequisites, or exclusions. It is clear for the core scenario but does not guide the agent toward comparing it with other LOP-related tools like lop_layer_info or list_usd_prims.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_cacheA
Manage the Houdini-side NodeTypeCache.
action="stats" -> return cache hits/misses/size/last_populated_at
action="invalidate"-> clear all registered caches (calls
cmn.invalidate_all_caches under the hood)
action="warmup" -> pre-populate the NodeTypeCache
PR 6: relays to server-side disc.manage_cache. ValueError on unknown
action surfaces as an error dict with origin="houdini".
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | stats |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the underlying call (cmn.invalidate_all_caches), the server-side relay, and error behavior (ValueError as error dict with origin='houdini'). Side-effect details for warmup are not specified, but the core behaviors are 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 organized as a scannable action list with a clear opening line. The 'PR 6' note is slightly out-of-place and may distract, but the structure is otherwise 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 one-parameter tool with no output schema, the description covers the key behaviors, side effects, and error handling. It does not detail return formats for invalidate/warmup, but the essential context for correct invocation 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 sole parameter 'action' is fully documented in the description, explaining each possible value and its meaning. Since schema coverage is 0%, this rich explanation is essential and completely compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 manages the Houdini-side NodeTypeCache and enumerates three distinct actions (stats, invalidate, warmup) with their specific effects. This distinguishes it from sibling cache tools like clear_cache and get_cache_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 action list effectively defines when to use each behavior, but it does not explicitly compare against sibling tools or state when not to use this tool. The context is clear, though alternatives are not excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
monitor_renderA
在 bridge 进程 best-effort 观察 husk / mantra OS 进程。
不读 hou、不发 TCP;通过 stdlib ``subprocess`` 调 PowerShell CIM
(Windows)或 ``ps``(POSIX),按 executable basename
(``husk`` / ``husk.exe`` / ``mantra`` / ``mantra.exe`` /
``mantra-bin`` / ``mantra-bin.exe``)过滤;不把命令行任意
substring 当 renderer。PID / name 必填;CPU / memory 可得为
float,不可得为 ``null`` 并在 ``_warning`` 列明
``cpu_unavailable`` / ``memory_unavailable``。命令缺失、权限
不足或解析失败返 ``status=success``、空 / 部分结果与 warning,
不抛异常。响应整体过 ``apply_response_cap``。
本工具 **bridge-only**,不进入 server registry 或三个 server
分类集合。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: best-effort nature, use of stdlib subprocess with PowerShell CIM or ps, executable basename filtering, no arbitrary command-line substring matching, handling of unavailable CPU/memory with null and _warning tags, returning status=success with warnings on failures, not throwing exceptions, and applying response cap. This is exemplary 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 dense but well-structured, with the purpose stated first, followed by implementation details, failure behavior, and scope. Every sentence provides essential information without redundancy, making it appropriately sized for a tool with no other documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 there is no output schema, the description covers return behavior extensively: success status, empty/partial results, warnings, no exceptions, and response cap. It also mentions specific warning tags and field availability. The only minor gap is the lack of a complete JSON structure example, but for a monitoring tool 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?
The tool has zero parameters in the schema, so the baseline is 4. The description adds meaning by describing output fields (PID, name, CPU, memory, _warning) and clarifies that PID/name are always present while CPU/memory may be null. Although this is output rather than input semantics, it compensates for the lack of an output schema and adds 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's function: best-effort observation of husk/mantra OS processes in the bridge process. It specifies the resource (husk/mantra processes) and the action (observe), distinguishing it from sibling tools that operate on Houdini scene data or rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage context: it is bridge-only, not in the server registry, and uses subprocess instead of hou or TCP. It implies when to use (when OS-level process monitoring is needed) but does not explicitly name alternatives or exclusions, though 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.
move_nodeC
移动节点到 dest_parent 下(add-node-parameter-vex-tools,MUTATING)。
使用 ``hou.moveNodesTo``;预检目标 category。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| src_path | Yes | ||
| dest_parent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description self-labels as MUTATING and mentions pre-checking the target category and apply_response_cap, but with no annotations provided, it fails to disclose important behaviors like side effects on connections, error conditions, or reversibility. The description carries the full burden but provides only minimal insight.
Agents need to know what a tool does to the world before calling 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. It front-loads the core action. The inclusion of 'add-node-parameter-vex-tools' is somewhat cryptic but doesn't detract significantly from 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?
Given no annotations, no output schema, and no parameter descriptions, the description is the only source of context. It fails to mention return values, error handling, or the purpose of ctx. The operation's simplicity aside, too much essential context 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 0%, so the description must compensate. It explains dest_parent as the target parent and implies src_path is the node to move, but ctx is not mentioned at all. No formats or examples are given, leaving substantial gaps for the 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 the tool moves a node to a dest_parent, which is a specific verb+resource. This distinguishes it from sibling tools like copy_node or delete_node. The purpose is immediately 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?
No guidance is provided on when to use this tool versus alternatives such as copy_node or connect_nodes. The description mentions the underlying Houdini function but gives no context about scenarios or prerequisites, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_sceneA
Reset Houdini to an empty scene (suppress_save_prompt=True).
默认禁用:未设置 HOUDINI_MCP_ALLOW_NEW_SCENE(或非 truthy)时返回错误,
禁止 AI 自主清空用户场景;需显式放行时由用户设置
HOUDINI_MCP_ALLOW_NEW_SCENE=1。
Server-side also calls cmn.invalidate_all_caches().
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the destructive nature (resetting to empty scene), the suppress_save_prompt=True behavior, the default-disabled permission gate, and the side effect of invalidating caches. This is exceptionally 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 concise, with the main action stated in one sentence, followed by a bilingual safety warning and a side-effect note. It is front-loaded and each sentence adds value, though the bilingual repetition slightly lengthens 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 destructive reset tool with no annotations and no output schema, the description covers the core function, safety gate, and side effects. It is complete enough for an agent to decide and invoke correctly. Return value is not described, but for a reset action this is 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?
The tool has zero parameters, and the input schema is empty (100% coverage trivially). The description adds context about suppress_save_prompt and cache invalidation, which are not parameters but internal behaviors. No parameter explanation needed, so baseline 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 clearly states 'Reset Houdini to an empty scene', which is a specific verb+resource. It does not explicitly distinguish from siblings like load_scene or save_scene, but the meaning is unambiguous and unique 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 explicit when-to-use guidance via the environment variable gate: it is disabled by default and only works when HOUDINI_MCP_ALLOW_NEW_SCENE=1 is set. It also explicitly warns against autonomous use ('禁止 AI 自主清空用户场景'), giving a clear exclusion. No alternatives are mentioned, but the safety constraint guides usage effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_hip_offlineA
离线 best-effort 解析 .hip/.hiplc/.hipnc(bridge-local,无 Houdini 连接)。
本工具 **不建立 Houdini TCP 连接、不 import hou**,直接在 bridge 进程
内按真实 legacy cpio/odc entry 流式读取 archive(magic 070707、76 字节
header),best-effort 提取节点 type、def comment/position/connections、
可选 parm 序列化原始值、postit 文本与 netbox label,并对不可信输入施加
file/entry/section/total/node 五类硬限额(``max_depth`` 仅裁输出树)。
与 ``serialize_scene`` / ``get_node_info`` 互补:那两个面向**在线** Houdini
连接的实时节点树查询;本工具面向**离线**文件审计(如查看一个 .hip 里
有哪些节点/连线,而不必启动 Houdini)。
参数说明:
- file_path: ``.hip``/``.hiplc``/``.hipnc`` 文件路径;其他扩展名返回
``unsupported_extension``。
- include_params: 可选,True 时每节点附 ``parameters``(archive 中序列化
的原始 parm 文本,**不求值、不比较默认、不保证动画/表达式完整**)。
- max_depth: 可选,输出 ``structure`` 树深度,clamp 到 ``[1,64]``;
flat ``nodes``/``connections`` 不受影响。
返回统一 envelope:``status``(success/error)、``file_path``、
``save_version``(从 ``.variables`` 的 ``_HIP_SAVEVERSION`` 明确提取,
不可得为 null)、``nodes``(flat)、``connections``、``postits``、
``netboxes``、``structure``(depth-clipped 树)、``metadata``(含
complete_entries/bytes_consumed/trailer_seen/duplicate_entries/
skipped_sections/limits)。error 形如
``error:{code,message,details}`` 并尽可能附 partial(trailer_seen=false,
不含截断 body)。error code:unsupported_extension / invalid_archive /
corrupt_archive / truncated_archive / resource_limit_exceeded /
hip_not_found / hip_io_error。success 与 error-partial 均**过**
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| file_path | Yes | ||
| max_depth | No | ||
| include_params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: it states it does not establish a TCP connection or import hou, streams using legacy cpio/odc entry format, applies five hard limits for untrusted input, only clips output tree with max_depth, and includes caveats like '不求值、不比较默认、不保证动画/表达式完整'. It also explains partial error responses and the apply_response_cap behavior, far exceeding baseline expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but highly structured: first the core behavior and safety, then the differentiation from siblings, followed by parameter notes and the return envelope with error codes. Each sentence carries substantive information with no filler, and the front-loaded opening makes the tool's purpose immediately 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?
Given the complexity of the tool (4+ parameters, no output schema, no annotations), the description covers all necessary aspects: operation mode, extraction targets, limits, parameter semantics, return envelope fields, error codes, and partial-result behavior. It is self-sufficient for an agent to understand, invoke, and interpret results 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 provides no descriptions (0% coverage), so the description compensates by explaining file_path (extension restriction, unsupported_extension error), include_params (raw parm text, no evaluation), and max_depth (clamped to [1,64], affects only structure tree). However, the required 'ctx' parameter is not explained at all, which is a minor gap given the detailed coverage of the other three 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 opens with a specific verb+resource+scope: '离线 best-effort 解析 .hip/.hiplc/.hipnc(bridge-local,无 Houdini 连接)' clearly stating it parses offline Houdini archive files without a Houdini connection. It also distinguishes itself from siblings by explicitly naming serialize_scene/get_node_info as online alternatives, 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?
It gives explicit when-to-use guidance: '与 serialize_scene / get_node_info 互补:那两个面向在线 Houdini 连接的实时节点树查询;本工具面向离线文件审计' — directly contrasting with online tools and prescribing offline file auditing as the intended use case. This provides clear alternatives and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdg_cancelA
cancel 正在运行的 cook;对已终态 handle 幂等返回 cancelled。cancel 不可 undo。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| cook_id | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that cancelling is irreversible, idempotent for terminal handles, and returns 'cancelled' for such handles. This is meaningful behavioral context beyond just 'cancel a cook'.
Agents need to know what a tool does to the world before calling 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, with three short segments each adding key information: operation, idempotency, and irreversibility. No filler 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?
The description covers core behavior but lacks parameter roles, return value details, and edge cases (e.g., what happens if the cook is not running, or how cook_id vs node_path are used). Given no output schema, this is a noticeable 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 0%, so the description must compensate, but it never mentions any of the parameters (ctx, cook_id, node_path). The term 'handle' is vague and not mapped to 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 clearly states the tool cancels a running cook, using a specific verb plus resource. It also notes idempotent behavior for terminal handles, which distinguishes it from sibling tools like pdg_cook and pdg_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 use when a cook is running and needs to be cancelled. It does not explicitly name alternatives or exclusions, but the context is unambiguous; the idempotency and non-undo warnings add practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdg_cookA
启动 PDG/TOPs cook 并返回进程内 handle。blocking=True 时阻塞轮询至终态或超时;handle 进程内有效,server 重启失效。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| blocking | No | ||
| node_path | Yes | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses the in-process handle lifecycle (valid only in process, invalid after server restart), the blocking polling behavior until terminal state or timeout, and the effect of blocking=True. This is meaningful 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 two concise sentences, front-loaded with the core purpose and then key behavioral details. Every word adds value, 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 tool with no output schema and no annotations, the description covers the essential behavioral aspects (handle, blocking, timeout) but lacks parameter explanations and expected return format. It is adequate for a high-level understanding but leaves out details that could impact 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 0%, and the description does not explain node_path or ctx. Only blocking=True is mentioned, offering partial clarity for that parameter. The semantics of the required parameters are left entirely to the agent, which is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 launches a PDG/TOPs cook and returns a handle. The verb '启动' (launch) and resource 'PDG/TOPs cook' are specific, and the mention of returning an in-process handle distinguishes it from sibling tools like pdg_status or pdg_cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context about blocking behavior and handle validity, implying when to use it (for cooking PDG graphs). However, it does not explicitly state when not to use it, nor does it reference alternatives like cook_node for regular nodes. 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.
pdg_dirtyB
dirty work items,默认不删除磁盘输出。改变 scheduler 运行态,不可 undo。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses important safety and side-effect traits: default does not delete disk output, changes scheduler state, and is irreversible. This exceeds minimal expectations, though it could elaborate on exact scheduler consequences.
Agents need to know what a tool does to the world before calling 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 with the core purpose. Every word carries weight, but the mixed-language brevity slightly reduces structure 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?
Despite the tool's complexity (PDG scheduler state mutation), the description omits what 'dirty' does exactly, parameter meanings, and any return/result information. With no annotations or output schema, the description leaves major gaps in operational understanding.
Complex tools with many parameters or behaviors need more documentation. 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 0% for two parameters, and the description provides no explanation of ctx or node_path. The description entirely fails to compensate for the lack of parameter documentation, leaving the agent unable to infer parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('dirty work items') and distinct resource, distinguishing it from siblings like pdg_cook and pdg_cancel. It conveys a clear PDG operation, though 'dirty' as a verb may be jargon for non-experts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (marking work items dirty) and adds cautionary notes (doesn't delete disk output by default, cannot undo). However, it does not explicitly state when to use this tool versus alternatives or provide context-specific guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdg_statusA
查询 TOP cook 状态与 work item 计数。可选 cook_id 校验其归属;未知/过期返回结构化错误。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| cook_id | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that unknown/expired IDs return a structured error and mentions optional ownership validation. However, it does not state whether the operation is read-only, who has access, or what the response format is beyond the error case.
Agents need to know what a tool does to the 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 with the primary purpose stated first. No redundant details or fluff, achieving maximum efficiency for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 3 parameters, no annotations, and no output schema, the description is insufficient. It explains cook_id partially but omits semantics for ctx and node_path, and does not describe the success response structure, only the error behavior. This leaves significant gaps 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?
Schema description coverage is 0%, so the description must compensate. It only adds meaning for cook_id (optional ownership check) but leaves ctx and node_path completely unexplained. Both are required, and without description the agent cannot infer their roles.
Input schemas describe structure but not intent. Descriptions should explain 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 specific verb '查询' (query) and identifies the exact resource (TOP cook status and work item count). This clearly distinguishes it from sibling tools like pdg_cook (trigger cook) and pdg_workitems (list work items).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 checking status and counts, but does not explicitly state when to use this tool versus alternatives like pdg_workitems or pdg_cook. No exclusions or alternative mentions are given, leaving usage context vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdg_workitemsA
读取已生成 work item 摘要(index/name/state)。PDG 未生成时返回空列表;受 status_filter 与 max_items 限制。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| max_items | No | ||
| node_path | Yes | ||
| status_filter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses an important edge case (returns empty list when PDG not generated) and explicitly mentions the limiting effects of status_filter and max_items. It does not mention error conditions or whether it may trigger cooking, but the read-only semantics are clear from the verb 'read'.
Agents need to know what a tool does to the world before calling 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, well-structured sentence. The core purpose is front-loaded, and every clause adds meaningful behavior (return fields, empty-list behavior, filter limits). There is no repetitive or redundant 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?
The description provides useful context: return fields, empty-list behavior, and result limits. However, with no output schema and 0% parameter coverage, it falls short of explaining the exact return format and the roles of ctx and node_path. It is functional but leaves 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 0%, so the description must compensate. It mentions status_filter and max_items by name and their limiting role, but does not describe acceptable values or format. The required parameters ctx and node_path are not mentioned at all, leaving their purpose unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: reading generated work item summaries with fields index/name/state. It clearly distinguishes this from sibling tools like pdg_cook or pdg_status by focusing on the work item summary rather than cooking or overall status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: it is a read-only inspection tool for generated work items, likely after a PDG cook. However, there is no explicit guidance on when to choose this over pdg_status or other PDG tools, nor any conditions where it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ping_houdiniA
轻量级 Houdini 端 ping,验证响应时间(PR 16 连接诊断)。
参数说明:
- timeout: 最长等待秒数(默认 5),超过则 within_timeout=False
返回 dict 包含 pong / elapsed_ms / within_timeout / hou_version 四项;
hou 抛异常时返 pong=False 并带 error 字段。该 ping 不持久化新连接,
只在既有 hou 上下文里调用一次 hou.version();适合作为健康检查或
网络抖动场景下的快速探测。注意:与 bridge 协议的 "ping" 命令不同,
后者只验证 socket / 帧协议,本工具测量 Houdini 端的实际响应时间。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| timeout | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it does not persist a new connection, calls hou.version() once, returns a dict with pong/elapsed_ms/within_timeout/hou_version, and handles exceptions by setting pong=False and including an error field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and front-loaded with the core purpose. The parameter section and behavioral note are compact and valuable. It is slightly dense but every sentence adds meaning 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 return values, exception handling, connection semantics, timeout behavior, and usage context, making it fairly complete for a simple ping tool. However, it fails to explain the 'ctx' parameter and the schema types timeout as string while the description implies numeric seconds, causing minor 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 description coverage is 0%, so the description must compensate. It thoroughly explains timeout, including default and behavior when exceeded, but completely omits any explanation of the required 'ctx' parameter, leaving its meaning and usage unclear.
Input schemas describe structure but not intent. Descriptions should explain 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 it is a lightweight Houdini-side ping that verifies response time. It distinguishes itself from the bridge protocol's 'ping' command, which only validates socket/frame protocol, while this tool measures actual Houdini response time via hou.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?
Explicitly states it is suitable for health checks and quick probes in network jitter scenarios. It also warns against confusing it with the bridge protocol's 'ping' command, providing an exclusion and clarification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playbar_controlA
playbar 播放 / 步进 / 跳转(PR 19,运行态时间线写,no-undo)。
``action`` 取值:
- ``play`` / ``reverse`` / ``stop``:直接调 SideFX HOM 同名方法。
- ``step_forward`` / ``step_backward``:仅通过
``hou.setFrame(current ± hou.playbar.frameIncrement())``
路径并 clamp 到当前 playback range 闭区间,**不引入其
他 step helper**(increment 非有限正数 / range 不可用
→ error 且 **不**调 hou.setFrame)。
- ``goto_start`` / ``goto_end``:直接设 playback range 端点。
整个 action 集在 NO_UNDO_COMMANDS 中,batch dispatcher 在
该命令前关闭 undo segment,保证不进入 ``hou.undos.group``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels. It discloses the no-undo behavior, the internal path for step actions (via hou.setFrame with clamping), error conditions (non-finite increment or unavailable range), and the batch dispatcher's handling of undo segments. This goes beyond basic 'reads/writes' and provides operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear hierarchical breakdown of actions. Every sentence contributes technical value, such as the distinction between direct HOM calls and the step path, and the undo behavior. There is no padding or redundancy, and the content is front-loaded with 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 no output schema, the description is complete. It covers all action variants, error handling, clamping behavior, and undo interaction. Given the lack of annotations, it provides sufficient context for an agent to invoke the tool correctly without needing external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the input schema having no descriptions for parameters, the description thoroughly explains the possible values of the 'action' parameter, including the exact semantics for each. However, it does not explain the 'ctx' parameter, leaving that to the schema's empty structure. The compensation is strong for the primary param but incomplete for the other.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: playbar control for play/step/jump operations. It enumerates specific actions (play, reverse, stop, step_forward, step_backward, goto_start, goto_end) and distinguishes itself from sibling tools by emphasizing '运行态时间线写' (runtime timeline write) and 'no-undo' behavior, which is a unique 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 usage context: it is for playback control, not for generic frame setting or DOP stepping as seen in siblings like set_frame or step_simulation. It specifies exact behavior for each action, effectively guiding when to use this tool, but it does not explicitly state when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_lessonA
按 id 拉取单条 lesson 的完整 markdown 全文(含 front matter 与三段正文)。
触发时机:search_lessons 命中后按需拉全文;draft 也可读。本工具只读
advisory 内容,不替代 verify_hou_api / get_houdini_help /
get_best_practices,也不替代目标 Houdini 版本的 live verification。
参数说明:
- id: lesson id(如 L-20260802-001),由 search_lessons 返回。
返回:{status:success, id, root, lesson_status, markdown}(markdown 为
规范格式,可 round-trip);id 不存在 → status=error + error.code=
ls_lesson_not_found(提示先 search_lessons 获取 id)。整体过
apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states the tool is read-only ('只读 advisory 内容'), details the return fields, explains error behavior for missing ids, and mentions the apply_response_cap transformation. No side effects are hidden, and the read-only nature 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 well-structured with labeled sections (purpose, trigger, parameter, return) and front-loads the main action. It is slightly longer than strictly necessary, but every sentence adds useful detail, and the formatting aids 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?
With no output schema, the description explains the full return shape and error code. It covers usage context, alternatives, parameter source, and behavioral constraints. For a simple read tool with one parameter, this is 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 provides zero description coverage, so the description must fully explain the 'id' parameter. It gives a concrete format example and instructs that the id comes from search_lessons. This completely compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource: '按 id 拉取单条 lesson 的完整 markdown 全文' (fetch complete markdown by id). It explicitly distinguishes this from search_lessons (which finds lessons) and from other advisory tools, making its scope clear and unique among 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 states when to use: 'search_lessons 命中后按需拉全文' (after search_lessons hits, fetch as needed) and notes drafts are readable. It also names what it does NOT replace (verify_hou_api, get_houdini_help, get_best_practices) and cautions against replacing live verification. This is 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.
reload_hdaB
重载 HDA 库(add-hda-management-tools,NO_UNDO)。
落盘 + registry 副作用,**不**可由 Houdini undo 恢复。
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses disk and registry side effects and explicitly warns that the operation cannot be undone via Houdini's undo system. This is meaningful behavioral context, especially with no annotations provided. It could add preconditions or error behavior, but the core safety warning is clearly communicated.
Agents need to know what a tool does to the world before calling 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 action, and contains zero filler. The NO_UNDO repetition is acceptable and reinforces the warning 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?
The description covers the core purpose and side effects, but it lacks parameter clarification and usage timing. For a single-parameter tool with no output schema, the agent is left guessing what file_path should be. The description is adequate for a basic understanding 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 0% and the description entirely ignores file_path. There is no indication whether the parameter expects a .hda file path, a directory, or a library name. The description adds no meaning beyond the schema's bare 'File Path' title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource: '重载 HDA 库' (reload HDA library). It distinguishes the action from siblings by the explicit 'reload' and mentions the underlying tool name, though it does not directly contrast with update_hda or hda_install.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 or alternative exclusions are provided. The NO_UNDO warning implies caution but does not state 'use this after editing HDA files on disk' or avoid during active sessions. There is no mention of sibling tools or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_nodeB
重命名节点(add-node-parameter-vex-tools,MUTATING)。
预检同名冲突;返回新 path / old_name / new_name。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| new_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the operation is MUTATING, pre-checks for same-name conflicts, and returns new path/old_name/new_name. However, it does not mention failure behavior or any side effects beyond the rename.
Agents need to know what a tool does to the world before calling 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 at two sentences, with the core verb front-loaded. However, it includes some internal jargon like 'add-node-parameter-vex-tools' and 'apply_response_cap' that may be unclear to the 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 mutating tool with no annotations, the description provides some behavioral context (conflict precheck, return values) but omits parameter semantics, prerequisites, and error handling. This makes it incomplete for an AI agent to invoke 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 schema has 3 required parameters (ctx, path, new_name) with no descriptions. The description does not explain any of these parameters, leaving their meaning to be inferred from names. With 0% schema coverage, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 '重命名节点' (rename node), a specific verb+resource, and distinguishes from sibling tools like move_node by focusing on the name change. The mention of MUTATING further clarifies its 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 description implies the tool is used for renaming a node, but does not explicitly state when to use it versus alternatives such as move_node or set_parameters. There are no exclusions or prerequisites provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_node_networkA
定位到节点所在 NetworkEditor pane,cd 到节点,再截图。
node_path 必须存在;fit_contents=True 时截图前调用 homeAll() 把可视
范围对齐到节点子树。save_path=None 时不落盘(size_bytes 改用 QBuffer
估算)。响应过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes | ||
| save_path | No | ||
| fit_contents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals key behaviors: homeAll() invocation, disk save behavior with QBuffer estimation for size_bytes, and response cap. However, it stops short of explicitly noting read-only nature or all side effects, though homeAll 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 three concise sentences with no wasted words. The main action is front-loaded, and each sentence provides meaningful implementation 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 description covers key operational aspects well but omits return value details (beyond size_bytes) and the meaning of ctx. The fit_contents type mismatch (string vs boolean) is not addressed. For a 4-param tool with no output schema, it is moderately complete but not fully self-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?
Schema description coverage is 0%, so the description must compensate. It explains node_path (must exist), fit_contents (triggers homeAll), and save_path (None means no disk write, uses QBuffer). ctx is not explained, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: locate the node's NetworkEditor pane, cd to the node, and take a screenshot. This specific verb+resource description distinguishes it from other rendering/screenshot tools like render_single_view or capture_pane_screenshot by focusing specifically on node network rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 operational guidelines (node_path must exist, fit_contents triggers homeAll, save_path=None behavior) but does not explicitly state when to use this tool versus alternatives. It doesn't mention 'use this instead of X' or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_quad_viewsA
IMPORTANT (fork-render-policy-redirect-and-consent):
在用户机 H21 缺 OGL 3.3 环境下,本工具的 opengl renderer 已被 fork
强制 redirect 到 ``capture_pane_screenshot(SceneViewer)``;karma_cpu
/ karma_xpu 需带 ``consent_token`` 重调。详见 ``_render_policy.py``。
Render 4 canonical views from Houdini and return a structured result dict.
Returns a dict (4 views × {image_path, size_bytes, ...}) instead of a
string. See render_single_view docstring for the dict-vs-str Pydantic
background. The legacy bridge command name is `render_quad_view`
(singular) — kept for backward compatibility with the server-side
handler dictionary in opera-houdini-mcp/server.py.
| Name | Required | Description | Default |
|---|---|---|---|
| render_path | No | C:/temp/ | |
| karma_engine | No | cpu | |
| consent_token | No | ||
| render_engine | No | opengl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses significant behavioral traits: the fork-render-policy redirect under specific hardware/software conditions, the consent_token requirement for karma engines, and that it returns a dict rather than a string. This goes beyond basic schemas and adds concrete environmental 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 moderately concise, front-loading a critical note before stating the core purpose. It contains a mixed-language structure and a slightly verbose redirect explanation, but each sentence contributes useful information without excessive 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?
The description covers purpose, return type, and edge-case behavior, but lacks an output schema and detailed parameter narratives. It references render_single_view for Pydantic background, which offloads some explanation. For a tool with four parameters and no output schema, it is adequate but not fully 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 description coverage is 0%, so the description must compensate. It partially does by mentioning karma_engine values (karma_cpu/karma_xpu) and render_engine (opengl), but it doesn't explain render_path or fully elaborate on consent_token semantics. Only about half the parameters receive meaningful contextual explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Render 4 canonical views from Houdini and return a structured result dict.' It specifies the resource (Houdini) and scope (4 canonical views), distinguishing it from render_single_view by count. The return type is also clarified, resolving 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?
Provides conditional usage guidance: in environments without OGL 3.3, the opengl renderer is redirected to capture_pane_screenshot, and karma engines require a consent_token. It also mentions the legacy command name for backward compatibility. While it doesn't explicitly say when to prefer this over alternatives, 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.
render_single_viewA
IMPORTANT (fork-render-policy-redirect-and-consent):
在用户机 H21 缺 OGL 3.3 环境下,本工具的 opengl renderer 已被 fork
强制 redirect 到 ``capture_pane_screenshot(SceneViewer)``(不再
触发 opengl output node 链路,避免 Houdini 主线程死锁);karma_cpu /
karma_xpu renderer 需带 ``consent_token`` 重调,token 在首次调用返
回的 ``_interrupt`` 字段中获得。详见 ``_render_policy.py``。
Render a single view inside Houdini and return a structured result dict.
Returns a dict (carrying renderer / image_path / size_bytes / etc.)
instead of a string. Pydantic-typed MCP output models reject dicts
when the return annotation is `str`; this tool is the one that broke
live with `1 validation error for render_single_viewOutput / result
Input should be a valid string [type=string_type, input_type=dict]`.
Server-side always returns a dict; we forward it verbatim and only
fall back to an error envelope on exception.
| Name | Required | Description | Default |
|---|---|---|---|
| rotation | No | ||
| render_path | No | C:/temp/ | |
| karma_engine | No | cpu | |
| orthographic | No | ||
| consent_token | No | ||
| render_engine | No | opengl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly discloses that the tool returns a dict rather than a string, details the Pydantic validation failure that motivated this behavior, mentions server-side return behavior and error fallback, and explains the environment-specific fork redirect and consent token mechanism. This is rich 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 front-loaded with an IMPORTANT block but is verbose and includes an exact Pydantic error message and a reference to _render_policy.py. Every sentence adds some technical detail, but the structure is dense and could be more concise by separating critical usage notes from implementation 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 description covers output type, error behavior, and consent token requirements, and mentions that the result dict contains 'renderer / image_path / size_bytes / etc.' However, it lacks parameter semantics and clear usage boundaries relative to sibling render tools. For a 6-parameter tool with no annotations and no output schema, this is only partially 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 has 0% description coverage, so the description must compensate, but it only indirectly explains karma_engine and consent_token. It does not describe rotation, render_path, orthographic, render_engine, or the meaning of their defaults. Though parameter names are somewhat self-explanatory, the lack of any schema descriptions or clarification leaves a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 "Render a single view inside Houdini and return a structured result dict." This gives a specific verb (render), resource (a single view inside Houdini), and output type. It distinguishes from siblings like render_quad_views by emphasizing "single view," though it does not explicitly name 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 IMPORTANT block provides usage context for specific environments: on machines lacking OGL 3.3, the opengl renderer redirects to capture_pane_screenshot, and karma_cpu/karma_xpu renderers require a consent_token obtained from the first call's _interrupt field. However, it does not explicitly say when to prefer this tool over sibling render tools or 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_specific_cameraA
IMPORTANT (fork-render-policy-redirect-and-consent):
在用户机 H21 缺 OGL 3.3 环境下,本工具的 opengl renderer 已被 fork
强制 redirect 到 ``capture_pane_screenshot(SceneViewer)``;karma_cpu
/ karma_xpu 需带 ``consent_token`` 重调。详见 ``_render_policy.py``。
Render from a specific camera path in the Houdini scene.
Returns a structured dict (renderer / image_path / size_bytes) instead
of a string. See render_single_view docstring for the dict-vs-str
Pydantic background.
| Name | Required | Description | Default |
|---|---|---|---|
| camera_path | Yes | ||
| render_path | No | C:/temp/ | |
| karma_engine | No | cpu | |
| consent_token | No | ||
| render_engine | No | opengl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses important behavioral traits: the rendering path can be redirected to capture_pane_screenshot under certain conditions, karma engines require consent_token, and the return value is a structured dict rather than a string. These are non-obvious behaviors that help the agent anticipate 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 moderately sized but structurally disjointed. It starts with a prominent Chinese 'IMPORTANT' note, then a one-line English purpose, and a return-type sentence. Each part has value, but the mix of languages and abrupt topic shifts makes it less clean. It could be better organized without losing 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?
Given 5 parameters, no annotations, and no output schema, the description covers the core purpose, return type, and environment-specific redirect behavior. However, it leaves gaps: render_path is not explained, return keys are listed but not elaborated, and no examples are given. It references an external docstring for additional background, which is a slight completeness 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 0%, but the description adds meaning to several parameters: 'specific camera path' maps to camera_path, mentions opengl renderer (render_engine), karma_cpu/karma_xpu (karma_engine), and consent_token. However, render_path is not mentioned, and parameter value formats/defaults are left to the schema. It partially compensates for the lack of schema descriptions but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is clearly stated: 'Render from a specific camera path in the Houdini scene.' This is a specific verb+resource combination. It also differentiates from sibling render_single_view by explicitly noting that it returns a structured dict instead of a string, making the tool's unique role 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?
Usage context is provided: rendering from a specific camera path. The description also gives environment-specific guidance (H21 lacking OGL 3.3) and warns that karma_cpu/xpu need consent_token, implying when to adjust engine/token usage. It references render_single_view for dict-vs-str background, which hints at alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_inputsA
重新排列节点的输入顺序。
参数说明:
- node_path: 目标节点路径。
- new_order: list of input_index,按新顺序排列(如 [2, 0, 1] 表示把
原 input 2 移到 input 0,依此类推)。空 list 表示全部断开。
- order: 旧版别名;若同时传 new_order 与 order,以 new_order 为准。
返回 dict 包含 path / old_order / new_order / success 四项;
节点不存在时函数会抛 ValueError,bridge 不会再以 success:True 形式
静默吞错。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| order | No | ||
| new_order | No | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the return value format (dict with path/old_order/new_order/success) and the error behavior (throws ValueError on missing node, no silent swallowing). It also reveals the deprecated alias 'order' and the precedence rule. This adds non-obvious behavioral context beyond the operation name.
Agents need to know what a tool does to the world before calling 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 with a clear opening statement, bulleted parameter explanations, and a separate return/error note. It is concise yet thorough, with 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 description covers return values and error behavior, and gives a concrete example. However, it leaves ambiguity about whether new_order must be a complete permutation of all input indices or can be a partial reorder, and it does not describe the 'ctx' parameter or constraints on index validity. Given the tool's moderate complexity, these are gaps that 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?
The description explains the semantics of node_path, new_order, and order in detail, including the mapping example and empty-list meaning, compensating for the 0% schema description coverage. However, it omits any explanation of the required 'ctx' parameter, and the schema types new_order/order as strings while the description calls them lists, creating ambiguity about the expected input format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '重新排列节点的输入顺序' (Reorder the input order of a node), which is a specific verb+resource. It further explains the semantics of new_order with an example ([2,0,1]), distinguishing it from generic connect/disconnect operations. 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 usage context by explaining the parameter meanings, including the empty-list behavior (disconnect all) and the precedence rule between new_order and order. However, it does not explicitly mention when to use this tool versus alternatives like connect_nodes or disconnect_node_input, nor does it state any prerequisites. So it's clear context but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_simulationA
时间线优先重置 DOP 模拟(add-dops-tools,NO_UNDO)。
先移动到 reset frame 并 force cook;可选 force-reset 仅在真实签名
探针和对应 Houdini 版本 live gate 同时允许时执行。cache 清空/重建
不可由 HIP undo 恢复,owned simulation 权限失败返回结构化 warning。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| dop_path | Yes | ||
| reset_frame | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and effectively discloses key side effects: cache clearing/rebuilding is not HIP-undoable, and permission failures return structured warnings. It also mentions the force-reset gating conditions, adding transparency about what triggers the destructive path. However, it does not fully explain consequences like losing current simulation state in general terms.
Agents need to know what a tool does to the 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 tightly-packed sentences; the first states purpose and the second details procedural and side-effect behavior. No wasted words, and the structure front-loads the essential verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 annotations and no output schema, the description covers behavior, side effects, and failure modes. It could be more complete by explaining success indicators and what 'owned simulation' means, but it is largely sufficient for an agent to invoke 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 coverage is 0% and the description only implicitly covers reset_frame via 'move to reset frame'. The required parameters ctx and dop_path are not explained, leaving the agent to guess their intended values. A DOP reset tool's key identifiers deserve explicit mention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Timeline-first reset of DOP simulation', a specific verb and resource that clearly distinguishes the tool from siblings like step_simulation or get_dop_object. It also names the module and NO_UNDO flag, reinforcing the operation's 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 usage by describing the reset procedure, but it does not explicitly state when to choose this over alternatives or provide any exclusions. Sibling tools like step_simulation are not referenced, so an agent must 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.
revert_parameterA
恢复 parm 至默认值(add-node-parameter-vex-tools,MUTATING)。
走 ``parm.revertToDefaults()``,单 undo group。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well by disclosing that it is MUTATING, uses parm.revertToDefaults(), groups changes into a single undo group, and applies response cap. It lacks details on error handling or permissions, but the core behavioral traits are 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 concise, consisting of three short sentences, each adding specific information: purpose, implementation, and response handling. It is front-loaded with the main action and includes no fluff, though it assumes familiarity with terms like 'apply_response_cap'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the description provides the essential operation details and notes the undo behavior, but it omits parameter meanings, prerequisites (e.g., node existence, parameter existence), and potential return values. It is minimally adequate but leaves gaps for an agent to make assumptions.
Complex tools with many parameters or behaviors need more documentation. 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 0%, and the description does not explain the three parameters (ctx, path, parameter). It only mentions "parm" generically, leaving the agent to infer which parameter is the target. This fails to compensate for the lack of schema 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 tool's action: "恢复 parm 至默认值" (Restore parm to default values), using a specific verb+resource. It also explicitly marks it as "MUTATING", which distinguishes it from non-destructive parameter tools like get_parameter or lock_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 description implies usage: when you want to reset a parameter to its default value. However, it does not explicitly mention when not to use it or contrast it with alternatives like set_parameter or delete_keyframe. 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.
save_lessonA
把解决一个 Houdini 问题的经验沉淀为 lesson(写入个人库 draft 状态)。
触发时机:agent 在解决一个 Houdini 问题后主动沉淀经验。写入个人库
draft 状态,不立即进入检索索引;同 symptom 再次出现会自动累积
strength(只累积不覆盖)。团队 root 默认只读,写入返回
root_not_writable。沉淀的是 advisory 经验,不替代 verify_hou_api /
get_houdini_help / get_best_practices 与目标 Houdini 版本 live
verification。
主动沉淀工作流(advisory 行为注解,非强制协议):用户完成 HDA / 节点流
/ VEX 工作流后说"沉淀这些知识"时,agent SHALL 依次:get_selection 定位
→ capture_workflow_snapshot 取快照 → 组织为 recipe(用法文档,走
save_recipe)或 lesson(经验,走本工具)→ 写入后向用户汇报写入的
id / root / 状态。
加深与研究方法论(advisory 引导,非强制):用户要求"加深 / 改造 / 优化"
既有沉淀时,agent SHALL 先 search_lessons 定位既有 id,再用
capture_workflow_snapshot(自制 HDA 带 include_hda_internals=True)
重新研究,最后 save_recipe(recipe_id=...) 原地更新(recipe 通道),
**不得新增重复知识**。沉淀目标是原理 / 设计意图 / 为什么(方法论优先),
参数按需收录(用户显式要求除外);正文索引用资产级标识(type_full /
hda 资产全名 + 版本),实例名仅辅助,**禁止本机路径入正文**。
参数说明:
- problem / symptom / fix / category / affected_versions: 必填。
- severity: 必填,取值 low / medium / high / critical。
- verified_versions: 可选;缺省 "unknown"。
- root: 可选 root 名;缺省 personal(唯一可写 root)。
返回:新 lesson → {status:success, lesson_id, lesson_status:"draft",
strength:1, root};同 fingerprint 已存在 → strength 递增且内容保留。
错误为 status=error + error={code,message,details}(非法 severity →
ls_write_error 并列出合法值;只读团队 root → root_not_writable)。
| Name | Required | Description | Default |
|---|---|---|---|
| fix | Yes | ||
| root | No | ||
| problem | Yes | ||
| symptom | Yes | ||
| category | Yes | ||
| severity | Yes | ||
| affected_versions | Yes | ||
| verified_versions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It fully discloses key behaviors: writes to draft state, does not immediately enter the retrieval index, strength accumulates without overwriting, team root is read-only, and errors (ls_write_error, root_not_writable) and return formats are described. The advisory workflow with SHALL steps also sets clear expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the purpose and each section (trigger, workflow, methodology, parameters, return) is information-dense. Every sentence adds value, though some workflow details could be trimmed, but they are contextually important. It is structured with clear delineations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complex write-the-lesson tool with no output schema and no annotations. The description is remarkably complete: it covers purpose, trigger, lifecycle, team root permission, advisory workflow, prohibition of duplicate knowledge, parameter defaults, return shapes for success/error, and exclusions. No significant 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 0%, so the description must compensate. It lists required parameters, required severity values (low/medium/high/critical), optional verified_versions defaulting to 'unknown', and root defaulting to 'personal'. However, it does not specify formats for affected_versions or category, and parameter names are self-explanatory but not deeply annotated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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+resource statement: '把解决一个 Houdini 问题的经验沉淀为 lesson(写入个人库 draft 状态)', which specifies the action, target, and state. It also distinguishes this tool from save_recipe by explicitly stating that recipes go to the recipe channel while lessons go through this tool, and from read_lesson/search_lessons by focusing on writing new lessons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger timing ('agent 在解决一个 Houdini 问题后主动沉淀经验'), states when not to use it ('不替代 verify_hou_api / get_houdini_help / get_best_practices'), and gives a concrete alternative workflow: recipes go through save_recipe, and deepening existing lessons uses search_lessons + save_recipe instead of this tool. This is thorough guidance on when to use vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_recipeA
把一条用法/流程知识写入指定 root 的 recipes 文件 (add-workflow-knowledge-capture,write,bridge-local 不连接 Houdini)。
触发时机(advisory):用户完成工作流后说"沉淀这些知识"时,agent 先用
get_selection 定位,再调 capture_workflow_snapshot 取快照;用法/流程
文档("怎么用这个 HDA""这个网络怎么搭")走本工具 save_recipe(写入即被
search_lessons 检索,无 draft 门槛),错误经验走 save_lesson(draft
门槛 + 指纹累积)。本工具是 advisory,不替代 verify_hou_api /
get_houdini_help / get_best_practices,也不替代目标 Houdini 版本的
live verification。
参数说明:
- title / problem / symptom / fix / category / severity /
affected_versions: 必填;title 渲染为块上方 ``> title`` 注释行。
- severity: 必填,recipes severity 合法取值 low / medium / high
(3 值,与 lesson 的 4 值不同)。
- verified_versions: 可选;缺省 "unknown"。
- recipe_id: 可选;引用**既有** ``### BP-NNN`` 块 id(格式
``BP-\d{3}``,非自定义新 id)。提供时**原地替换**该块 9 字段、
不新增块(首块 ``> title`` 行同步更新),响应 action=updated;
未提供时维持自增追加,响应 action=created。
- root: 可选 root 名;缺省 personal(唯一默认可写 root)。
返回:{status:success, recipe_id, root, severity, source,
immediately_searchable:true, action:created|updated};recipe_id 为
BP-NNN 自动生成(扫描既有块最大序号 + 1),**不接受自定义 id**;团队
root 写入 source 自动附 ``@<用户名>``(系统标注)。错误为 status=error
+ error={code,message,details}(非法 severity → ls_write_error 并列出
合法值;recipe_id 格式非法 → ls_write_error;引用不存在的 id →
ls_recipe_not_found 且 message 附既有 id 列表;只读团队 root →
root_not_writable;未知/不可用 root → ls_unknown_root)。整体过
apply_response_cap。
方法论沉淀协议(advisory,非强制):
- 沉淀内容是工作流的**原理 / 设计意图 / 方法论**(为什么这么搭),
不是节点名与参数的复制粘贴;参数仅在用户要求或直接影响复现时收录。
- 正文索引用资产级标识(capture_workflow_snapshot 的 type_full / hda
资产全名 + 版本),实例名仅辅助。
- **禁止本机路径入正文**:不写 HDA 库路径 / hip 完整路径(团队知识库
跨机器误导源)。
- 改造 / 加深既有知识时先 search_lessons 定位既有 id,再传 recipe_id
**原地更新**,**不得新增一条重复知识**。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| fix | Yes | ||
| root | No | ||
| title | Yes | ||
| problem | Yes | ||
| symptom | Yes | ||
| category | Yes | ||
| severity | Yes | ||
| recipe_id | No | ||
| affected_versions | Yes | ||
| verified_versions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it performs a write, has no draft threshold, is immediately searchable, auto-generates recipe_id, conditionally replaces blocks, attaches @username for team roots, and details error codes. It also warns against storing local paths and notes advisory limitations relative to live verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: core purpose, trigger context, parameter semantics, return format, error handling, and methodology protocol. It is well-structured with clear subsections, front-loading the primary function, and avoids 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?
For a tool with 11 parameters, no output schema, and no annotations, the description is remarkably complete. It specifies return values ({status, recipe_id, root, severity, source, immediately_searchable, action}), every error scenario and code, and the methodology protocol. The only omission is ctx, but overall it fully compensates for missing structured metadata.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must explain parameters. It does so thoroughly for title/problem/symptom/fix/category/severity/affected_versions, severity value domain, verified_versions default, recipe_id format and replacement behavior, and root default. However, the required 'ctx' parameter is never mentioned in the 参数说明, leaving a small but real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 this tool writes a usage/workflow knowledge entry to a specified root's recipes file. It explicitly distinguishes itself from save_lesson ('用法/流程文档走本工具 save_recipe', '错误经验走 save_lesson'), demonstrating a specific verb+resource+scope and 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?
Provides explicit trigger timing ('用户完成工作流后说"沉淀这些知识"时'), a prescribed sequence (get_selection → capture_workflow_snapshot → save_recipe), and clear alternatives (save_lesson for error experiences; verify_hou_api / get_houdini_help / get_best_practices as non-substitutes). Also explains when to update existing recipes via recipe_id instead of creating duplicates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_sceneA
Save the current Houdini scene to file_path.
file_path 省略(None/"")时保存到当前 hip 路径(hou.hipFile.path());
会话 untitled(无 hip 路径)时返回错误而非弹出模态保存对话框。
Returns JSON like {"saved": true, "file_path": "..."} or an error string.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: omitted file_path falls back to the current hip path, untitled sessions return an error instead of popping a modal dialog, and the return format is JSON or error string. This is solid transparency, though it doesn't mention overwrite behavior or permissions.
Agents need to know what a tool does to the world before calling 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 yet complete, covering purpose, fallback behavior, edge case, and return format in four sentences. Every sentence adds value, and the structure 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 simple tool with one optional parameter and no output schema, the description covers the main action, all relevant edge cases, and the return value. It is fully 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 schema has 0% coverage, but the description fully explains the only parameter (file_path): when omitted or empty/null, it saves to the current hip path; if the session is untitled, it returns an error. This completely compensates for the missing schema 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 action: 'Save the current Houdini scene to file_path.' It specifies the resource (current Houdini scene) and the target (file_path), distinguishing it from siblings like load_scene and new_scene. The additional context about omitted paths and error handling adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 (saving a scene, including to the current hip path when no path is given). It does not explicitly name alternatives or exclude cases, but the context is sufficient given the tool’s name and sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsA
跨 Houdini 文档做 BM25 检索(bridge-local,无 Houdini 连接)。
本工具 **不建立 Houdini TCP 连接**,直接在 bridge 进程内加载并查询
本地 RAG 索引(``index.v1.json``)。与 ``get_houdini_help`` /
``verify_hou_api`` 互补:那两个面向单条 API / 节点的结构化查询
(local-help-first + 在线回退),本工具面向「跨文档主题检索」,
如「怎么搭 pyro 网络」「karma 采样设置」。
参数说明:
- query: 检索文本;tokenizer 会保留 hou.xxx() API 与 /obj/geo1 节点
路径整体语义,下划线复合词同时按完整与拆分匹配。
- limit: 可选,返回条目上限,clamp 到 [1, 50],默认 10。
返回统一 envelope:status(success/error)、query、limit、matched
(response cap 前所有 BM25 正分文档总数)、returned(cap 后实际
results 长度,恒等于 len(results))、results(每条含 path / title /
score / 围绕首个命中位置的 snippet)。索引缺失返回
rag_index_missing;损坏 / 不兼容返回 rag_index_unavailable;命中
stale 缓存时附 _index_warning。响应整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool does not establish a Houdini TCP connection, loads a local RAG index, returns a specific envelope, and handles error cases (rag_index_missing, rag_index_unavailable, _index_warning). This is high-value transparency beyond simple read/write 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 well-structured with clear sections (main purpose, connection detail, usage contrast, parameter details, return envelope) and front-loads the core functionality. It is somewhat verbose, including implementation details like 'apply_response_cap' and tokenizer internals, but these earn their place given the lack of annotations and output 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?
Given the tool's moderate complexity, no annotations, and no output schema, the description covers the return envelope, error states, and parameter behavior adequately. The missing ctx parameter and lack of environment prerequisites (e.g., prebuilt index location) are notable gaps, but the overall details are sufficient for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. 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 description richly explains the query parameter (tokenizer preserves hou.xxx() and /obj/geo1 semantics, underscore compound handling) and limit (clamp to [1,50], default 10), adding meaning absent from the schema. However, it completely omits the required ctx parameter, leaving its purpose unclear. This gap prevents a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 performs BM25 retrieval across Houdini documentation ('跨 Houdini 文档做 BM25 检索'), specifying the bridge-local mode and explicitly contrasting with get_houdini_help/verify_hou_api. This distinguishes it from sibling tools and identifies the specific resource and 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 description provides explicit guidance on when to use this tool: for cross-document thematic searches ('跨文档主题检索') such as examples given, and when NOT to use it (single API/node structured queries better served by get_houdini_help/verify_hou_api). This clearly delineates usage against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lessonsA
跨全部可用知识库 root 检索既往经验(published lessons + root recipes)。
触发时机:agent 在 Houdini 操作遇到报错、重试第 2 次仍未解决、或遇到
不认识的 API/参数时,先调用本工具检索既往经验;命中后用 read_lesson
拉全文。本工具是 advisory,不替代 verify_hou_api / get_houdini_help /
get_best_practices,也不替代目标 Houdini 版本的 live verification。
主动沉淀工作流(advisory 行为注解,非强制协议):用户完成 HDA / 节点流
/ VEX 工作流后说"沉淀这些知识"时,agent SHALL 依次:get_selection 定位
→ capture_workflow_snapshot 取快照 → 组织为 recipe(用法文档,走
save_recipe)或 lesson(经验,走 save_lesson)→ 写入后向用户汇报写入的
id / root / 状态。
加深与研究方法论(advisory 引导,非强制):用户要求"加深 / 改造 / 优化"
既有沉淀时,agent SHALL 先调用本工具定位既有 recipe/lesson id,再用
capture_workflow_snapshot(自制 HDA 带 include_hda_internals=True)
重新研究,最后 save_recipe(recipe_id=...) 原地更新,**不得新增重复
知识**。沉淀目标是原理 / 设计意图 / 为什么(方法论优先),参数按需收录
(用户显式要求除外);正文索引用资产级标识(type_full / hda 资产全名 +
版本),实例名仅辅助,**禁止本机路径入正文**(HDA 库路径 / hip 完整
路径,团队知识库跨机器误导源)。
参数说明:
- query: 检索文本(可为空串 → 按新鲜度/priority 基线浏览)。
- category / severity: 精确过滤(severity: low/medium/high/critical)。
- node_type: doc 文本子串过滤(如 /obj/geo1、sop/attribwrangle)。
- houdini_version: affected_versions 子串过滤(如 H21.0)。
- scope: 可选 root 名(如 "personal")或 "all";缺省检索全部 root。
返回统一 envelope:status/query/top_k/matched/returned_count/truncated/
results(紧凑摘要,含 source_root)/draft_suggestions;unavailable root
附 _warning。错误为 status=error + error={code,message,details}
(未知 scope → ls_unknown_root)。整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| scope | No | ||
| category | No | ||
| severity | No | ||
| node_type | No | ||
| houdini_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the tool is 'advisory', describes the return envelope (status/query/top_k/matched/returned_count/truncated/results/draft_suggestions), error format (status=error + error={code,message,details}), and special behavior for unknown scopes. It also includes detailed workflow annotations, exceeding what annotations would typically 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 well-structured with clear sections (purpose, trigger, workflows, parameters, return envelope) and front-loaded with the main purpose. It is long, but most content earns its place. The inclusion of the knowledge deposition workflow is arguably tangential to the search tool itself, adding some extra length, but still provides useful context for the 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?
Given the tool has 6 parameters, no output schema, and no annotations, the description is remarkably complete. It covers purpose, trigger conditions, alternatives, parameter semantics, output envelope, error handling, and workflow integration. An agent has everything needed to select and 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 has 0% description coverage, so the description compensates fully. It explains each of the 6 parameters: query (can be empty for baseline browsing), category/severity (exact filters with severity enum), node_type (substring filter with examples), houdini_version (substring filter), and scope (optional root name or 'all' with default). This adds substantial meaning beyond the schema's bare type declarations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '跨全部可用知识库 root 检索既往经验(published lessons + root recipes)', specifying a concrete verb (search) and resource (all knowledge base roots). It further distinguishes itself from siblings by explicitly naming related tools (read_lesson, verify_hou_api, get_houdini_help, get_best_practices) and explaining its advisory 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 gives explicit trigger conditions: '遇到报错、重试第 2 次仍未解决、或遇到不认识的 API/参数时,先调用本工具'. It also states when not to use it, saying it does not replace live verification or the help tools. This is a model of 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.
serialize_sceneA
递归序列化 root_path 下的节点树为 dict。
只读操作,AI 用于场景结构对比 / 文档生成。
include_params=False 时每节点只含 path/type/name/children;
True 时增加 parameters dict。
| Name | Required | Description | Default |
|---|---|---|---|
| max_depth | No | ||
| root_path | No | /obj | |
| include_params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses the key behavioral trait of being read-only. It also explains the effect of include_params on node contents, providing concrete output details. It doesn't mention max_depth behavior or potential performance impacts, but for a simple serialization 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 efficient, using two short sentences to convey the purpose, read-only nature, and parameter behavior. It is well-structured and front-loaded with the core action, with 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 tool with three optional parameters and no output schema, the description provides sufficient context: it specifies the return type (dict), the recursive nature, and the structure of nodes based on include_params. It doesn't explain max_depth or error scenarios, but given the simplicity of the tool and that the output schema is absent, this 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 description coverage is 0%, so the description must compensate. It explicitly explains include_params behavior, but does not elaborate on max_depth or root_path beyond their names, which are fairly self-explanatory. This partial compensation is insufficient to fully cover all three parameters, but it adds meaningful value for one key 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?
The description clearly states the tool's function: recursively serializing the node tree under root_path into a dict. It specifies the output structure and distinguishes this from simple listing tools by emphasizing structural serialization for comparison/documentation, differentiating it from siblings like get_scene_info or get_network_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by stating it is a read-only operation intended for scene structure comparison and document generation. It does not explicitly name alternative tools or exclusion criteria, but the use cases are well-defined, which gives the agent a good sense of when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_cop_flagsA
原子设置 Copernicus 白名单 flags(add-cops-tools,MUTATING)。
``flags`` 键只能是 display/export/template/selectable_template/
compress/bypass,值为 bool;未知键在任何写入前拒绝整次请求。单 undo group。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| flags | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description fully discloses critical behaviors: atomicity, mutation, validation (only allowed keys and bool values), and that unknown keys cause rejection before any write. It also mentions the single undo group, which is valuable beyond normal expectations.
Agents need to know what a tool does to the world before calling 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, followed by concise, relevant details about validation and undo behavior. Every sentence contributes essential 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 thoroughly covers the core behavior (atomicity, validation, undo), which is sufficient for a simple mutation tool. However, it omits details about the required parameters 'ctx' and 'node_path' and any return value, making it slightly incomplete for an agent without additional 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?
The description adds meaningful semantics for the 'flags' parameter by listing allowed keys and value types, but does not clarify 'ctx' or 'node_path'. With 0% schema coverage, this partial compensation leaves gaps, though the key parameter is well explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('atomically set Copernicus whitelist flags') and specifies the exact resource (Copernicus) and the mutation type (MUTATING). It distinguishes itself from siblings like 'set_node_flags' by clearly targeting Copernicus flags.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicitly naming 'Copernicus whitelist flags' and defining the valid flag keys, but it does not explicitly state when to choose this tool over alternatives like 'set_node_flags' or provide any exclusion criteria. The context is clear but not fully directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_networkB
NetworkEditor.cd(path)(add-viewport-control-tools,NO_UNDO)。
节点不存在返 ``node_not_found``;无 NetworkEditor pane 返
``viewport_unavailable`` warning。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides key behavioral details: NO_UNDO, error conditions (node_not_found, viewport_unavailable), and server-side response capping. This is helpful, though it does not explain success behavior or side effects beyond navigation.
Agents need to know what a tool does to the world before calling 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 API call. It efficiently lists error cases. The parenthetical phrase is a minor distraction but does not waste 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 2-parameter tool, the description covers the main operation and error cases, but misses the success return value and fails to define 'ctx'. It is adequate but leaves notable 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 0%, so the description must explain parameters. It implies 'path' is a node path via the node_not_found error, but 'ctx' is completely unexplained. No details on formats or allowed values are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 NetworkEditor.cd(path), which sets the current network context. It provides specific error conditions that clarify the tool's behavior. However, the reference to 'add-viewport-control-tools' is cryptic and does not explicitly differentiate it from 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?
No guidance is given on when to use this tool versus alternatives. It does not state typical use cases, preconditions, or contrast with other navigation tools. The error conditions are behavioral, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_current_takeB
切换当前 take。参数:name_or_path: take 名或路径,找不到/歧义时拒绝。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name_or_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose one behavior: rejecting when the take is not found or ambiguous. However, it does not mention that this changes the current take (mutation), potential side effects, or any prerequisites. Minimal 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 succinct: one sentence states the purpose and includes parameter details. It is front-loaded with the action and wastes no words. The parameter explanation is integrated 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 setter tool, the description covers the core action and one parameter, but it omits context about the role of ctx and the concept of 'current take'. No output schema or annotations exist, so more context would be beneficial. Adequate but incomplete in covering prerequisites or 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?
The description explains name_or_path as 'take 名或路径' (take name or path), adding meaning not present in the schema. However, the ctx parameter is entirely undocumented. Since schema coverage is 0%, the description must compensate but only covers half the parameters, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '切换当前 take' clearly states the action (switch) and the resource (current take). The verb is specific and unambiguous, and the name alone distinguishes it from siblings like get_current_take and create_take. It fully captures the tool's 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 provides no guidance on when to use this tool versus alternatives. It does not mention related tools like get_current_take or create_take, nor does it specify use cases. The only extra information is about error handling ('找不到/歧义时拒绝'), which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_detail_attribA
创建 Attribute Create SOP,class=detail (add-geometry-export-and-measure,MUTATING)。
- 创建 + 连接 + 配置是单 undo group 的连续步骤;失败 destroy
半成品。
- **不**调用 cooked ``node.geometry()`` 的写方法。
- ``attrib_type`` 接受 ``float / int / string / vector``。
- 响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| name | Yes | ||
| value | Yes | ||
| node_name | No | ||
| node_path | Yes | ||
| attrib_type | No | float |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses critical behaviors: mutating operation, single undo group, failure destroys half-finished work, does not call cooked node.geometry() write methods, and server-side response cap. This is rich, specific context beyond typical mutation tool descriptions.
Agents need to know what a tool does to the world before calling 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 well-structured: a summary line followed by bullet points. Each sentence adds meaningful behavioral or parameter details, with 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?
Given the tool's complexity and lack of annotations or output schema, the description covers key operational context: mutation, undo grouping, failure cleanup, and accepted parameter values. However, it omits success return behavior and explicit explanations for several parameters, leaving minor gaps for a complete picture.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It explicitly explains attrib_type accepted values (float/int/string/vector) and implies name/value semantics as attribute name and value. However, other parameters like ctx, node_name, and node_path remain unexplained, leaving 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 an Attribute Create SOP with class=detail, identifying the specific node type and scope. This distinguishes it from generic node creation tools like create_node and create_wrangle, and the resource is clearly specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 naming the node type, but does not explicitly mention when to use this tool versus alternatives. No exclusions or direct comparisons to sibling tools like create_node or set_parameter are provided, so 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.
set_expressionA
写入 parm 表达式(PR 19,参数通道持久写,可 undo)。
``language`` 接受 ``hscript`` / ``python``,映射到对应
``hou.exprLanguage``;其他值(包括大小写变体)一律
status=error。该命令属于参数通道数据写
(MUTATING_COMMANDS),**不**归为只读或 no-undo;与其他
关键帧 / 范围写共用 undo group 策略。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| language | No | hscript | |
| parameter | Yes | ||
| expression | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden and does an excellent job. It discloses the mutating nature, undoability, language validation behavior (hscript/python with status=error for invalid values), and its classification as not read-only/no-undo. This gives agents essential 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 concise and front-loaded with the core action. It uses structured formatting for the language parameter and includes essential caveats in three sentences. Minor noise includes the cryptic 'PR 19' reference, but overall it is well-organized and 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 description covers mutating behavior, undo, language validation, and undo group policy, which is good. However, it does not explain return values or success/error response structure (e.g., what a typical output looks like). Given the lack of an output schema, this is a notable gap for an agent to infer 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 0%, so the description must compensate. It only explains the 'language' parameter's allowed values and mapping to hou.exprLanguage. Other key parameters (ctx, path, parameter, expression) remain unexplained, leaving the agent to guess their meaning. This is insufficient for a 5-param 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 clearly states '写入 parm 表达式' (write parm expression), specifying a specific verb and resource. It distinguishes from siblings like get_expression (read) and set_parameter (set value) by focusing on expression writing, with additional context about persistence and undoability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 that this command is for parameter channel data writes and is not read-only or no-undo. It implicitly differentiates from read tools like get_expression and other mutating tools by mentioning undo group policy. However, it does not explicitly name alternative tools or provide '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.
set_frameA
设置当前帧(PR 19,运行态时间线写,no-undo)。
``frame`` 接受 int / float;拒绝 bool / NaN / ±inf / 非数值;
hou 接受 float 值并保留 sub-frame。任何 hou 异常降级为 error
dict。该命令在 NO_UNDO_COMMANDS 中,batch dispatcher 会在调
用前自动关闭当前 undo segment,确保不进入 ``hou.undos.group``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| frame | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behavioral details beyond any annotation (which are absent): input validation (accepts int/float, rejects bool/NaN/inf), sub-frame preservation, exception handling (degrading to error dict), and undo behavior (NO_UNDO_COMMANDS with batch dispatcher closing undo segments). This is thorough for a tool with no 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 dense yet efficient, with each sentence providing unique information: purpose, parameter validation, error behavior, and undo mechanics. It is front-loaded and contains no filler, making it ideal for agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description thoroughly covers validation, error handling, and undo behavior, it omits the return value (no output schema exists) and does not explain the 'ctx' parameter. These gaps leave an agent uncertain about the operation's result and the required context, preventing fully 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 description adds significant meaning to the 'frame' parameter, explaining accepted types and validation, which is essential since the schema declares it as string. However, the 'ctx' parameter is not explained at all, leaving its purpose and accepted values undocumented. With 0% schema coverage, this is only partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 the current frame in Houdini. It distinguishes itself from sibling tools like get_frame and set_frame_range by explicitly focusing on the current frame, with additional context about runtime timeline writes and no-undo 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 provides context about runtime timeline writes and no-undo but does not explicitly state when to use this tool versus alternatives like set_frame_range or playbar_control. No exclusions or alternative tool references are given, leaving the agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frame_rangeA
设置全局 frame range(PR 19,场景写,可 undo)。
``start`` / ``end`` 必须为有限浮点且 ``start <= end``;end
可 sub-frame。错误(如 start > end)返回 status=error 不写;
成功时由 hou.playbar.setFrameRange 持久化。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| end | Yes | ||
| start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It fully discloses that this is a scene-write operation, is undoable, requires finite floats with start<=end, supports sub-frame end values, returns status=error on invalid inputs without writing, and persists on success via hou.playbar.setFrameRange. This is excellent transparency 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 highly concise, using two compact sentences. It front-loads the purpose, then packs validations and error behavior without fluff. Every sentence adds meaningful 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 covers the core purpose, validations, error behavior, and persistence, but misses the meaning of ctx and the success return shape. Given no output schema, a brief note on success status would improve completeness. The tool is simple enough that this isn't critical, but the gap in ctx is noticeable.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It explains constraints for start and end (finite floats, start<=end, sub-frame possible) but completely omits ctx. Without explanation, ctx remains ambiguous. This partially compensates for the schema gap but leaves a key parameter undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Set global frame range' with a specific verb and resource. It mentions it's global and scene-writing, which distinguishes it from related tools like set_playback_range, though it doesn't explicitly name alternatives. Purpose is clear and 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?
No explicit guidance on when to use this tool versus alternatives. The description notes it's global and writes to the scene, but there is no mention of preferred use cases or exclusions. Without context, the agent gets no direction on selecting this over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_hda_section_contentA
allowlist 写入 section(add-hda-management-tools,MUTATING)。
``section`` 仅 ``Help`` / ``IconSVG`` 大小写敏感精确匹配允许;
其他全部 ``section_write_denied`` 且零写入。``content`` UTF-8
字节上限 65536。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| section | Yes | ||
| node_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on full disclosure responsibility. It clearly discloses critical behavioral traits: only 'Help' and 'IconSVG' sections are allowed (case-sensitive exact match), all other sections result in 'section_write_denied' with zero writes, content is limited to 65536 UTF-8 bytes, and responses pass through 'apply_response_cap'. This goes beyond minimal disclosure, though it doesn't mention side effects or permissions.
Agents need to know what a tool does to the world before calling 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 three compact lines to convey the core behavior and all critical constraints. Every sentence carries specific information (allowlist, section names, size limit, response cap) with no filler words 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 simple mutation tool with three parameters and no output schema, the description covers most essential context: what it does, which sections are permitted, content size limits, and response handling. However, the 'node_type' parameter is unexplained, and the meaning of 'apply_response_cap' is left for the reader to infer, leaving minor gaps in 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 0%, so the description must compensate. It adds meaningful semantics for two of three parameters: 'section' is restricted to Help/IconSVG with case-sensitive exact match, and 'content' has a UTF-8 byte limit of 65536. However, it does not explain 'node_type', leaving that parameter 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 states the tool writes a section ('allowlist 写入 section') and labels it as MUTATING, clearly indicating a write operation on HDA section content. The resource is implied by the tool name and the 'add-hda-management-tools' category, but it doesn't explicitly name 'HDA' in the description, so it's not fully 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 provides no guidance on when to use this tool versus alternatives like get_hda_section_content or update_hda. It only lists constraints (allowed sections, content size) but does not state usage context or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_keyframeA
单关键帧写入(PR 19,场景写,可 undo)。
``path`` / ``parameter`` 必为非空字符串;``frame`` / ``value``
必须为有限浮点。value 创建 ``hou.Keyframe(float(value))`` 并
``keyframe.setFrame(float(frame))`` 后 ``parm.setKeyframe``。
字符串参数 / NaN / inf 等返回 status=error 不写。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| frame | Yes | ||
| value | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses validation requirements (non-empty strings, finite floats), the exact Houdini API calls used, and error behavior (status=error, no write). It also notes undoability. However, it doesn't detail the success return shape.
Agents need to know what a tool does to the 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 tight paragraphs, the first sentence states purpose and key properties, second provides validation and implementation. 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 5-param tool with no output schema, it covers validation, operation, undoability, and error status. Missing success return spec and arcane 'PR 19' reference 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 has 0% coverage, and the description compensates by constraining path/parameter to non-empty strings and frame/value to finite floats, and explaining value conversion via hou.Keyframe. Ctx remains unexplained, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain 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 'single keyframe write' with a specific verb and resource, distinguishing it from the sibling set_keyframes tool. It also notes it's scene-scoped and undoable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 keyframe but does not explicitly compare to alternatives like set_keyframes or state when to use this over other parameter-set tools. No exclusions listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_keyframesA
批量关键帧写入(PR 19,场景写,可 undo)。
``keyframes`` 为 list,每项 dict 至少含 ``path`` /
``parameter`` / ``frame`` / ``value``;任一项无效则**整调
用**失败、零写入(在 server 上层预校验拒绝)。全部有效时
在单个 ``hou.undos.group`` 内逐项写入并返回 ``set_count`` /
``requested``。错误列表同样受 server 端 ``apply_response_cap``
截断保护。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| keyframes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
在无注释的情况下,详细披露了原子性(任一无效则整调用失败、零写入)、undo分组、返回set_count/requested以及错误截断机制,使代理能清楚预期调用效果。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
总体简洁,关键信息集中。但'PR 19'这类未解释的引用对代理可能无帮助,略增加理解成本。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
覆盖了原子性、undo、返回值等关键行为,但缺失输入序列化方式和ctx说明,且存在schema类型矛盾,对无输出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?
keyframes参数描述了list及必填字段,但schema定义keyframes为string,两者存在明确类型矛盾;ctx参数未做任何说明,且无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?
描述明确说明是批量关键帧写入,且提及场景写、可undo等,与set_keyframe等兄弟工具在功能和规模上有明显区分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述了批量写入的适用场景(批量关键帧),但未明确给出与set_keyframe的对比或排除性说明。不过'批量'本身就隐含了使用情境。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_colorA
设置节点颜色(颜色分量自动 clamp 到 [0, 1])。
参数说明:
- node_path: 节点路径。
- r, g, b: 颜色分量;负值 clamp 为 0.0,>1 值 clamp 为 1.0。
返回 dict 包含 path / color / success 三项;
节点不存在时函数会抛 ValueError。
| Name | Required | Description | Default |
|---|---|---|---|
| b | Yes | ||
| g | Yes | ||
| r | Yes | ||
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full burden of behavioral disclosure. It clearly explains input clamping ('负值 clamp 为 0.0,>1 值 clamp 为 1.0'), the return structure ('返回 dict 包含 path / color / success 三项'), and error behavior ('节点不存在时函数会抛 ValueError'). This is strong transparency, though it omits details about the ctx 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 concise and well-structured with clear parameter bullets and separate sections for return value and error behavior. Every sentence adds operational value, and there is no redundancy or filler. The use of a compact list format improves 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?
Given the tool's relative simplicity and the absence of annotations or output schema, the description is largely complete: it covers purpose, parameters (except ctx), clamping, return fields, and exception behavior. The omission of ctx prevents a full score, as it is a required parameter. Overall, it provides sufficient context for confident invocation in most 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?
The description compensates for the 0% schema coverage by explaining node_path and the r/g/b components with their clamping ranges. However, the ctx parameter, which is required in the schema, is entirely missing from the description. Also, r/g/b are typed as strings in the schema, but the description treats them as numeric color components without clarifying how strings are converted, leaving a semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: '设置节点颜色' (set node color), identifying the specific resource (node color) and action (set). It also distinguishes itself from sibling tools like set_node_flags and set_node_position by focusing solely on color. The clamp behavior adds useful specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, such as set_parameters or set_node_flags. It neither states ideal use cases nor explicitly excludes scenarios where other tools would be more appropriate. This leaves the agent without contextual decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_flagsA
Set node flags (display/render/bypass/template). Only flags you pass are changed. Flags a node type doesn't support are reported as 'unsupported'.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| bypass | No | ||
| render | No | ||
| display | No | ||
| template | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It discloses two important behaviors: that unspecified flags are left unchanged and that unsupported flags return an 'unsupported' report. However, it does not mention potential side effects, required permissions, or how the result is returned, leaving 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 two concise sentences, immediately stating the action and resource, then adding two key behavioral notes. Every sentence adds value 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?
The tool has 5 parameters, no annotations, and no output schema. The description covers the core purpose and two behavioral nuances, but it omits details about return values, parameter semantics, and edge cases (e.g., what happens if path is invalid). It is moderately complete but leaves room for agent confusion.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It names the flags but does not explain what true/false means for each boolean or the role of the required path parameter. The flags are listed but their semantic meaning is left to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Set node flags' with an explicit list of flag types (display/render/bypass/template). This distinguishes it from sibling tools like set_parameters or set_cop_flags, 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 useful usage context by explaining that only flags explicitly passed are changed, which helps avoid accidentally resetting other flags. It does not explicitly name alternatives or when-not conditions, but the partial-update guideline clarifies expected behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_positionB
设置节点在 network editor 中的位置。
参数说明:
- node_path: 节点路径。
- x: x 坐标(Houdini units)。
- y: y 坐标。
返回 dict 包含 path / position / success 三项;
节点不存在时函数会抛 ValueError。
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the function returns a dict with 'path / position / success' and raises a ValueError if the node does not exist, which is valuable behavioral context. However, it does not mention side effects such as persistence, triggering a cook, or whether the position is absolute vs relative. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling 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 well-structured: a clear purpose sentence, a bulleted parameter list, and a brief note on return value and error behavior. Every sentence adds value, with no 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 simple setter, the description covers the core behavior, return format, and error condition, which is fairly complete. However, the missing 'ctx' parameter explanation and lack of differentiation from 'move_node' are notable gaps. Given the tool's low complexity, the description is nearly complete but not fully.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It explains node_path, x, and y with meaningful semantics (e.g., 'x coordinate (Houdini units)'), but omits the required 'ctx' parameter entirely. Additionally, the schema types x and y as strings, while the description implies numeric coordinates—a potential confusion. The compensation is incomplete, warranting a 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?
The description states a specific action: 'Set node position in the network editor,' with a clear verb and resource. It lists the key parameters (node_path, x, y) that make the purpose unambiguous. However, it does not explicitly differentiate from the sibling tool 'move_node,' which may serve a similar function, so it loses one point for lack of sibling 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?
The description provides no guidance on when to use this tool versus alternatives like 'move_node.' There are no mentions of prerequisites, exclusions, or contextual triggers. The usage is only implied by the tool name and basic description, which is insufficient for an agent choosing among many node manipulation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parameterB
写 parm 值(add-node-parameter-vex-tools,MUTATING)。
单 undo group;失败抛 error。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| path | Yes | ||
| value | Yes | ||
| parameter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It provides useful operational details: single undo group, failure throws an error, and the response passes through 'apply_response_cap'. These are meaningful beyond a basic mutating operation, though it doesn't mention permissions 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 concise, front-loaded with the core purpose, and every sentence adds new information (mutating flag, undo behavior, error handling, response cap). However, the cryptic term 'apply_response_cap' could be clarified, slightly reducing structure quality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 required parameters, no output schema, and no annotations, the description is too sparse. It fails to explain parameter usage, expected return values, or context needed for correct invocation. The undocumented parameters leave significant gaps for an agent trying to call 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 input schema has 0% description coverage, and the description provides almost no parameter-level semantics. The names ctx, path, parameter, and value are somewhat self-explanatory, but the description does not explain their meaning, format, or how they interact. It fails to compensate for the lack of 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 'write parm value' (写 parm 值), identifying the specific action (write) and resource (a parameter). It is distinguished from the sibling 'set_parameters' by its singular focus, though this is implicit rather than explicit. The addition of 'MUTATING' reinforces 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?
No guidance is provided about when to use this tool versus alternatives like 'set_parameters' or other mutation tools. The description gives no context on prerequisites, typical scenarios, or exclusions. Usage is only implied by the generic 'write parameter value' statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parametersA
Set one or more parameters on a node in a single undoable call.
Values: scalar for single parms (e.g. {"scale": 2.0}), a list for parm
tuples (e.g. {"t": [0, 1, 0]}), and menu token or label strings for menu
parms. Unknown names fail per-parameter with did-you-mean suggestions —
check the "failed" list in the result. Use get_parameter_schema first if
unsure of names, types or valid menu values.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| parameters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the operation is undoable, per-parameter failure with did-you-mean suggestions, and the presence of a 'failed' list in the result. This goes beyond a basic statement of intent, though it could mention node-path requirements or success signaling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, immediately front-loaded with the main action. Examples are compact and illustrative. Every sentence earns its place, with 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 two-parameter tool with nested objects and no output schema, the description covers input formats, error handling, and a prerequisite. It could explicitly state that 'path' refers to a node path, but this is implied strongly. Overall complete enough for confident 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 0%, so the description must explain parameters. It does so thoroughly: explains scalar vs list vs menu token/label values with concrete examples, and mentions that unknown names fail per-parameter. This adds significant meaning beyond the bare 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's function: 'Set one or more parameters on a node' with a specific verb and resource. It distinguishes itself from sibling tools like 'set_parameter' (singular) by emphasizing 'one or more' and 'single undoable call.' The examples further clarify the 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?
Provides explicit guidance to use get_parameter_schema first when unsure, which is a clear prerequisite. It implies usage for setting parameters versus other tools, but does not explicitly contrast with the singular set_parameter. Context about value formats helps usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_playback_rangeC
设置 playback range(PR 19,场景写,可 undo)。
校验同 ``set_frame_range``;调 ``hou.playbar.setPlaybackRange``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| end | Yes | ||
| start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: it is a scene write operation and is undoable. It also states validation matches set_frame_range, giving the agent a concrete behavioral contract, though it omits error handling and exact 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?
Extremely concise and front-loaded, but the cryptic 'PR 19' abbreviation and cross-reference to set_frame_range require prior knowledge. Still, no wasted 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?
The tool is simple, but with no annotations, no output schema, and 0% schema coverage, the description leaves critical invocation details unspecified—especially parameter semantics and differentiation from set_frame_range. The undo and validation notes provide some context but are insufficient for confident 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 coverage is 0%, and the description does not explain the meaning or expected format of ctx, start, or end. It only implies a range via the tool name, leaving parameter usage entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain 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 action—setting the playback range—and references the underlying Houdini API (hou.playbar.setPlaybackRange). It is clear, but it does not explicitly distinguish itself from the closely related sibling tool set_frame_range, merely noting shared validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 choose set_playback_range over set_frame_range or other playbar tools. The only reference to set_frame_range is for shared validation, not usage context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_render_settingsA
受限可撤销写入(design.md §"set_render_settings")。
完整预校验所有 key/value/parm 可写性/prospective engine 后快
照旧值;应用失败显式恢复快照旧值,**不**依赖 undo 自动 rollback。
全部成功 -> ``status=success``;恢复成功 ->
``status=error, error_code=render_settings_apply_failed,
restored=true``;任一恢复失败 ->
``status=error, error_code=render_settings_restore_failed,
restored=false`` + ``restore_errors``。响应过
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| parameters | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden. It discloses pre-validation of key/value/parm writability, snapshoting old values, explicit restore on failure (not relying on undo), status codes for success, apply-failure with restore success, restore failure with 'restore_errors', and the response cap. This is exceptional transparency for a write 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 dense but structured, with a leading summary phrase and clear bullet-like details about validation, restore behavior, status codes, and response cap. It avoids unnecessary filler and each sentence contributes meaningful information. It is slightly technical but appropriately sized for 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?
Given no annotations and no output schema, the description covers essential behavioral aspects including error handling, restored flags, and response cap. It does not provide parameter examples or detailed return structure beyond status codes, but for a write operation it is reasonably complete. The lack of parameter semantics is a gap, but the tool's core behavior is well 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?
The input schema has 2 parameters with 0% description coverage. The description mentions 'key/value/parm' which gives a hint that the 'parameters' object contains key-value pairs validated for writability, but it does not explain 'node_path' or the structure of 'parameters'. It adds some semantic about validation but is insufficient to fully compensate for the lack of 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 opens with "受限可撤销写入" (limited reversible write), indicating a write operation with rollback, and references the specific design.md section. While it doesn't explicitly say "sets render settings", the tool name and context make the resource clear. It distinguishes itself from generic set_parameters etc. by focusing on reversible write semantics, though it doesn't name 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 implies the tool is for applying render settings with pre-validation and rollback, which suggests it should be used when reversible writes are needed. However, it never explicitly states when to use it or when to prefer alternatives like set_parameters. No exclusions are provided, so usage 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.
set_selectionB
覆盖节点选择(add-scene-context-selection-materials,NO_UNDO)。
全量预校验 ``node_paths``,任一无效 → 0 部分改变;clear 仅
走当前 ``selectedNodes()`` 的 ``setSelected(False)``,**不**
调 ``clearAllSelected()`` 避免影响 box / note / dot。UI /
viewport 运行态写,**不**能由 HIP undo 恢复;该命令归
``NO_UNDO_COMMANDS``,batch dispatcher 会在执行前关闭 undo
segment。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_paths | Yes | ||
| clear_others | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels: it discloses full pre-validation (atomicity), the specific clear approach avoiding clearAllSelected() to prevent side effects on box/note/dot, NO_UNDO behavior with batch dispatcher handling, and response capping. This is rich, actionable 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 dense but relatively compact, covering multiple important behaviors in three sentences. It uses formatting (bold, code) effectively and every sentence adds value. Slightly heavy in technical jargon but not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, and the description covers key aspects like atomicity, undo, and response cap, but it omits return value expectations and fails to explain the ctx parameter. For a selection tool with 3 parameters, the description is above average but still 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 coverage is 0% (no parameter descriptions), so the description must compensate. It explains node_paths (pre-validation) and clear behavior, but neither the ctx parameter nor the clear_others parameter is explicitly named or explained. The description does not fully map to the three schema properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'overrides node selection' with a specific scope (add-scene-context-selection-materials). This distinguishes it from get_selection and other selection-related tools, though it does not explicitly name alternatives as in the high calibration example.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description focuses on internal mechanics (pre-validation, undo behavior) rather than usage context or prerequisites. There is no mention of when to prefer set_selection over get_selection or frame_selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_usd_attributeB
创建白名单属性 authoring LOP(add-usd-solaris-tools,MUTATING)。
按其真实参数 schema author;adapter 或 value 无法无损映射时返回
``unsupported``,**禁止** fallback 到 composed stage mutation。
``attribute_type`` 接受 ``float / int / string / vector``。响应过
server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| value | Yes | ||
| attribute | Yes | ||
| node_name | No | ||
| prim_path | Yes | ||
| parent_path | Yes | ||
| attribute_type | No | float |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the mutating nature (MUTATING), the failure behavior (returns unsupported when mapping is lossy), the prohibition against fallback, accepted attribute_type values, and server-side apply_response_cap. This is substantial behavioral disclosure, though it omits prerequisites and 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 and every sentence conveys a constraint or type list. It is appropriately sized for the amount of information, though the lack of paragraph breaks makes it somewhat dense. 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 complex mutation tool with 7 parameters, no annotations, and no output schema, the description is incomplete. It does not explain parameter meanings, value formats, return values, or usage conditions, leaving significant gaps for correct 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 coverage is 0%, and the description adds little. It only clarifies attribute_type accepted values. Other parameters (ctx, parent_path, prim_path, attribute, value, node_name) are unexplained, leaving the agent without essential semantics 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 uses the verb 'create' and identifies the resource as a whitelist attribute authoring LOP, which differentiates it from generic get/set USD tools. However, the technical jargon (authoring LOP) may be unclear to those not familiar with USD workflows, so it is not 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 does not explicitly state when to use this tool versus alternatives. It mentions internal constraints (no fallback, unsupported mapping) but gives no guidance on appropriate scenarios or exclusions, so it fails to help the agent choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_cameraA
设置 SceneViewer viewport camera(add-viewport-control-tools,NO_UNDO)。
``camera_path`` 必须是已存在节点;无效返 ``camera_not_found``。
仅 UI/view 写,**不**进 undo group。响应过 server 端
``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| camera_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations are absent, the description carries full behavioral disclosure. It explicitly states the tool is a 'UI/view write' that does NOT enter the undo group, and it reveals error behavior (camera_not_found for invalid paths). It also mentions the response passes through server-side apply_response_cap. These details go beyond typical expectations and give the agent a clear 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 concise, with three short sentences that convey purpose, constraints, and behavior. It is front-loaded with the main action and uses formatting (code spans, bold) to highlight key terms. Every sentence adds value, making it compact and 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 setter tool, the description covers the essential context: what it does, error handling, undo behavior, and a note on response processing. The main omission is the return value, but since no output schema exists, a brief mention would have helped. Overall, it's fairly complete for 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 schema provides no descriptions for the two parameters (ctx, camera_path). The description adds meaning for camera_path by specifying it must refer to an existing node, but ctx remains unexplained. With 0% schema coverage, the description partially compensates but does not fully clarify both parameters, leaving a noticeable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 as '设置 SceneViewer viewport camera' (set SceneViewer viewport camera), with a specific verb and resource. It also includes 'NO_UNDO' which distinguishes this as a viewport-control operation separate from other setter tools like set_viewport_display or set_viewport_renderer. The purposes 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 usage constraints: camera_path must be an existing node, and invalid paths return camera_not_found. It also clarifies this is a UI/view write that does not enter the undo group. However, it does not explicitly mention when to use this tool versus alternatives like set_viewport_direction or frame_selection. The usage context is implied 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.
set_viewport_directionA
将白名单方向映射到 geometryViewportType 并调 changeType
(add-viewport-control-tools,NO_UNDO)。
七方向 token:front/back/left/right/top/bottom/perspective。
不接受反射式 setter。响应过 server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| direction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it explicitly mentions NO_UNDO (operation is not undoable), states it does not accept a reflective setter, and notes that responses go through server-side apply_response_cap. These are valuable behavioral disclosures 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 three short, purposeful sentences. The main action is front-loaded, followed by a list of allowed values and constraints. 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?
For a two-parameter setter with no output schema, the description covers the core purpose, valid inputs, and key side effects (NO_UNDO, no reflective setter). This is sufficiently complete for an agent to invoke the tool correctly without additional 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 description adds crucial meaning to the 'direction' parameter by listing the seven valid token values, which the schema lacks. However, it does not clarify the purpose or format of the 'ctx' parameter, and the exact mapping from direction tokens to geometryViewportType values is not specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 maps a direction token to geometryViewportType and invokes changeType, and it enumerates the seven accepted tokens (front/back/left/right/top/bottom/perspective). This makes its purpose specific and distinguishes it from sibling viewport tools like set_viewport_camera or set_viewport_display.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 changing viewport direction but provides no explicit guidance on when to prefer it over alternatives or when not to use it. The note about not accepting a reflective setter is a constraint, not a usage directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_displayA
设置 viewport display set + shaded mode(add-viewport-control-tools,NO_UNDO)。
两个值均为 design.md D2 白名单 token;不接受反射式 setter
或不存在枚举。仅 UI/view 写,**不**进 undo group。响应过
server 端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| display_set | Yes | ||
| shaded_mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly mentions NO_UNDO (not entering the undo group), 'only UI/view write', whitelist token constraints, and response cap handling. This is substantial transparency, though it omits error handling or exact return details.
Agents need to know what a tool does to the world before calling 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 purpose, and packs essential behavioral constraints into a few sentences without redundant information. Each sentence contributes 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 setter with three string parameters and no output schema, the description covers purpose, key constraints, and side effects. It lacks usage context and error behavior, but the simplicity of the tool and the disclosed constraints make it 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?
The schema provides only parameter names with 0% coverage. The description adds that display_set and shaded_mode must be whitelist tokens and that reflective setters/non-existent enums are rejected, but it doesn't explain the meaning of each parameter or provide allowed values. ctx remains entirely unexplained. It partially compensates but leaves significant 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 it sets the viewport display set and shaded mode, using a specific verb and resource. This distinguishes it from sibling tools like set_viewport_camera and set_viewport_direction, which target different aspects of viewport control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 say when to use this tool versus alternatives like set_viewport_camera or set_viewport_renderer. It implies usage for viewport display via the purpose, but lacks exclusions, prerequisites, or alternative comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_viewport_rendererA
LOP SceneViewer Hydra renderer 切换(add-viewport-control-tools,NO_UNDO)。
仅 LOP context 可用;非 LOP 返 ``viewport_unavailable`` warning。
``renderer`` 必须是 ``sceneViewer.hydraRenderers()`` 中存在的
identifier;不可用返 ``renderer_unavailable``。响应过 server
端 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| renderer | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly mentions NO_UNDO, error cases for invalid context and renderer, and that responses pass through apply_response_cap. This gives the agent a strong understanding of side effects and 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 concise and structured with clear lines for context, renderer constraint, and response handling. It could be slightly more streamlined, but every sentence adds useful information without unnecessary 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?
For a simple switch tool with no output schema, the description covers the key behavioral aspects: scope, prerequisites, and error conditions. It does not explicitly state return values, but the response cap hint and simplicity of the tool 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 has no parameter descriptions, so the description must add meaning. It explains that renderer must be an identifier from sceneViewer.hydraRenderers() and implies ctx is the LOP context. This partially compensates for the 0% schema coverage, though ctx is not fully detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 Hydra renderer for the LOP SceneViewer. It uses a specific verb ('switch') and resource ('LOP SceneViewer Hydra renderer'), distinguishing it from sibling viewport tools that adjust camera, display, or direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by stating it is only available in LOP context and that non-LOP usage returns a viewport_unavailable warning. However, it does not explicitly name alternative tools or provide when-not-to-use guidance beyond the context restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_wrangle_codeA
Replace the VEX snippet on an existing wrangle node. With validate=True (default) the node is re-cooked and the result includes a 'validation' report with any VEX compile errors.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| validate | No | ||
| vex_code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the re-cook behavior when validate=True and the inclusion of a validation report, which is meaningful 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?
Two sentences with no wasted words. The purpose is front-loaded, and the validation behavior is succinctly explained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 no output schema, the description covers the key return value (validation report) and default behavior. Minor omission: what happens if the path is invalid, but this does not detract significantly.
Complex tools with many parameters or behaviors need more documentation. 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 0%, but the description adds meaning for 'vex_code' (the snippet) and 'validate' (default True with side effects). However, the 'path' parameter is not described, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain 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 'Replace the VEX snippet on an existing wrangle node' with a specific verb and resource. This clearly distinguishes it from siblings like get_wrangle_code (read) and create_wrangle (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?
Clearly implies usage for existing wrangle nodes and describes the validation behavior. Does not explicitly name alternatives or exclusions, 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.
start_renderA
同步启动一次 ROP 渲染;四层防御见 _render_jobs.start_render。
Args:
node_path: 真实 ROP 节点路径(如 ``/out/mantra1``)。
policy_renderer: 必填提示,bridge Layer 1 用其初筛(``mantra`` /
``opengl`` / ``karma_cpu`` / ``karma_xpu``);不替换真实
node 推断。
frame_range: 可选 2 或 3 元 ``[start, end[, inc]]``,缺省走
ROP 自身设置。
consent_token: 可选,karma 路径重调时携带。
Returns:
dict: 直接 relay server 响应;blocked 时为 redirect / interrupt /
error 字典;正常完成时为 ``status=success`` 含
``state / elapsed / frame_range``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes | ||
| frame_range | No | ||
| consent_token | No | ||
| policy_renderer | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It reveals that rendering is synchronous, that there's a four-layer defense (though specifics are referenced to an internal function), and describes blocked behavior (redirect/interrupt/error dict) and success return fields (state/elapsed/frame_range). This is strong behavioral transparency for a tool of this complexity.
Agents need to know what a tool does to the world before calling 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 with Args/Returns sections and front-loads the core purpose. It is appropriately sized for a 4-parameter tool with caveats. However, the reference to `_render_jobs.start_render` is internal and adds mild noise, keeping it from being maximally 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 the tool's complexity and lack of output schema, the description covers all parameters, return behavior, and blocking semantics. It is largely complete, but the 'four-layer defense' is referenced rather than explained, leaving some operational context unspecified. This is a minor gap for an agent making decisions.
Complex tools with many parameters or behaviors need more documentation. 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 0%, but the description thoroughly explains each parameter: node_path (real ROP path with example), policy_renderer (required, screening role, allowed values), frame_range (optional format), and consent_token (purpose). This fully compensates for the lack of schema descriptions and adds semantics beyond mere type 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: '同步启动一次 ROP 渲染' (synchronously start a ROP render), identifying the action (start) and resource (ROP render). It distinguishes from sibling render tools like render_single_view by explicitly mentioning ROP, making it clear this is for render nodes, not view renders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 context on usage: it's synchronous, involves a four-layer defense, and policy_renderer is required for screening. However, it doesn't explicitly state when to use this tool over alternatives or when not to use it. The context is clear enough that an agent can infer appropriate usage, 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.
step_simulationA
推进 DOP 模拟(add-dops-tools,NO_UNDO)。
通过 ``hou.setTime(frameToTime(current + frames))`` 后
``dop_node.cook(force=True)``;拒绝 ``frames <= 0``,不恢复旧帧。
会触发依赖图 cook 与 DOP cache 生成/替换,**不**进入 undo group。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| frames | No | ||
| dop_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description thoroughly discloses behavioral side effects: it changes the current frame, triggers dependency graph cooking, generates/replaces DOP cache, rejects frames <= 0, and does not enter the undo group. This level of detail fully compensates for missing annotations and gives the agent critical execution expectations.
Agents need to know what a tool does to the world before calling 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 yet information-dense. The first sentence states the purpose and key constraints, the second describes the mechanism, and the third discloses side effects. No filler or repetition; every sentence contributes meaningful information, and it is well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 absence of an output schema and rich behavioral disclosure, the description is nearly complete for agent decision-making. It covers what happens, side effects, and constraints. The only gaps are the undefined 'ctx' parameter and lack of explicit mention of return values, but these are not critical for a simulation-stepping tool that performs a state-changing 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?
The description adds meaning to 'frames' (number of frames to advance, must be > 0) and implicitly links 'dop_path' to the DOP node being cooked. However, 'ctx' remains unexplained, and with schema coverage at 0%, the description only partially compensates. It improves clarity for two params but leaves a significant gap for the third.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: advancing a DOP simulation by a number of frames. It provides specific implementation details (hou.setTime + dop_node.cook) and explicitly distinguishes itself from merely setting the frame or cooking generically. The verb '推进' (advance) and resource 'DOP模拟' 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 the usage context: advancing DOP simulations. However, it does not explicitly mention when to prefer this over alternatives like set_frame, cook_node, or reset_simulation, nor does it state exclusions or prerequisites. The guidance is implicit rather than explicit, earning a mid-range score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_houdini_eventsB
订阅事件类型;省略 types 时订阅当前支持的全部事件。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It does add a meaningful detail: omitting 'types' subscribes to all supported events. However, it lacks other important behavioral context such as whether subscriptions are additive or replace existing ones, whether there are side effects, or why 'ctx' is required. This is insufficient for a subscription tool with no annotation support.
Agents need to know what a tool does to the world before calling 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 that front-loads the core purpose. It is efficient with no wasted words. However, it is so brief that it borders on under-specification, but that is more of a completeness issue than a conciseness issue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 subscription tool with two parameters and no output schema, but the description is minimal. It does not explain the event system, how subscriptions are managed, or how this relates to sibling tools like 'unsubscribe_houdini_events' and 'get_houdini_events'. The description is inadequate for an agent to fully understand the tool's role and 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?
With schema description coverage at 0%, the description must compensate. It explains the behavior of 'types' (when omitted, all events are subscribed), which adds meaning beyond the schema. However, it does not explain the required 'ctx' parameter at all, nor does it specify the format or accepted values for 'types'. The description only partially covers the 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 the tool's function: subscribing to event types. It uses a specific verb ('subscribe') and resource ('houdini_events'), and the added detail about omitting types to subscribe to all events further clarifies scope. It distinguishes itself from siblings like 'unsubscribe_houdini_events' and 'get_houdini_events'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 stating the action and the optional 'types' parameter, but it does not explicitly mention when to use this tool versus alternatives. There is no reference to 'unsubscribe_houdini_events' for stopping subscriptions or 'get_houdini_events' for listing events, so the 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.
uninstall_hdaA
卸载 HDA 库(add-hda-management-tools,NO_UNDO)。
落盘 + registry 副作用,**不**可由 Houdini undo 恢复。
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly warns that the operation has disk and registry side effects and cannot be undone via Houdini undo. This is valuable and goes beyond a generic 'uninstall' statement, though it does not describe return values or error 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 two short sentences, front-loaded with the core action and immediately warning about side effects and undo behavior. Every word earns its place; no wasted 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 tool is simple (one parameter, no output schema). The description covers purpose, side effects, and undo limitation, which is sufficient for an agent to decide and invoke it. It lacks details like whether confirmation is needed or what happens on failure, but these are not critical for a basic uninstall 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 describes only one parameter, file_path, with no description. The description does not explicitly explain the parameter, but its meaning is inferable from the tool name and purpose (the HDA to uninstall). Since schema coverage is 0%, the description provides minimal added 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 purpose: uninstalling an HDA library. The verb '卸载' (uninstall) plus the resource 'HDA 库' is specific and distinguishes it from siblings like hda_install, reload_hda, and update_hda.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 usage is implied by the name and description: use this to uninstall an HDA. However, there is no explicit guidance on when to choose this over alternatives, nor any exclusions or prerequisites. The context is clear but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsubscribe_houdini_eventsA
取消指定事件订阅;省略 types 时清空全部订阅。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing effects. It discloses the key 'clear all subscriptions' behavior and the cancellation action, but does not mention reversibility, permissions, or error cases. Since this is a mutation tool, additional detail on side effects would be expected, but the main behavior 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 a single concise sentence with two clear clauses. It front-loads the main action and adds the important conditional behavior without any waste. Perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool with no output schema and no annotations, the description covers the core action and the special omission case. However, it lacks details on 'ctx' and the accepted format of 'types', which are necessary for correct invocation. The overall picture is adequate but with noticeable 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 0%, so the description must compensate for parameter meaning. It only implies that 'types' is optional and omitting it clears all subscriptions, but does not explain what 'types' contains or what 'ctx' represents. This leaves significant ambiguity for the 2-parameter 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 clearly states the tool's function: canceling event subscriptions, with a specific resource ('指定事件' specified events) and an explicit behavior when types is omitted. It distinguishes from the sibling 'subscribe_houdini_events' by directly indicating the opposite 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 a clear usage context: omitting 'types' clears all subscriptions, which guides on how to use the tool for different scenarios. It does not explicitly mention alternatives or exclusions, but the context is sufficient for an agent to know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_hdaA
从实例更新定义(add-hda-management-tools,MUTATING)。
验证节点存在、拥有 definition、实例类型匹配后调
``definition.updateFromNode(node)``;**不**使用
``definition.save()``。响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does an excellent job: it flags the operation as MUTATING, discloses that it does NOT call `definition.save()`, lists validation prerequisites (node exists, has definition, instance type matches), and mentions the response passes through `apply_response_cap`. This gives an agent insight into side effects and safety.
Agents need to know what a tool does to the world before calling 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 first sentence states the purpose and mutating nature, followed by a short paragraph with implementation details. No fluff, and code identifiers are clearly marked.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 mutation tool without an output schema, the description covers the core behavior, validation steps, and a key non-behavior (no save). It does not explain what 'apply_response_cap' does or what the return value signifies, which would help an agent anticipate the response. Overall, it's above average but has 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?
The schema only defines `node_path` with no description, and schema coverage is 0%. The description indirectly clarifies that `node_path` refers to the instance node via references to '节点' and the validation logic. However, it does not explicitly define the path format or provide examples, leaving some 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 states the primary action in the first line: '从实例更新定义' (update definition from instance), with a specific verb and resource. It also names the underlying API method (`definition.updateFromNode(node)`), which disambiguates from generic HDA tools. However, it does not explicitly contrast with sibling tools like `hda_create` or `reload_hda`, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 instructions on when to use this tool versus alternatives. It mentions verification steps and implementation details, but no use-case context or exclusion criteria. It does not say 'use this when...' or point to a sibling for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_vexA
用真实 HFS/bin/vcc 编译 VEX(add-node-parameter-vex-tools,NO_UNDO)。
临时 ``.vfl`` + ``subprocess.run([vcc, ...], shell=False, timeout=10)``;
不调用 Python exec / eval / compile / execute_code / hou.hscript /
hou.vexLint / hou.text.vexSyntaxCheck;不执行编译产物。10 秒超时、
输出 64KB 上限、finally 清理源与产物。返回
``{valid, context, diagnostics: [{severity, line, column, message}]}``。
响应过 ``apply_response_cap``。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| code | Yes | ||
| context | No | cvex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels: it discloses the use of temporary .vfl files, subprocess.run with timeout=10, shell=False, a 64KB output cap, finally-cleanup of source and artifacts, and a detailed return structure. It also specifies what it does NOT do (no exec/eval/compile/hscript), giving the agent a clear 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 dense but every sentence adds critical information: purpose, implementation details, exclusions, timeouts, cleanup, return type, and response handling. It is efficiently structured with clear separations, no filler, and front-loads 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?
Given the tool's complexity and absence of an output schema, the description provides a thorough specification including the return shape, safety constraints, and resource limits. It does not fully clarify the semantics of the 'ctx' parameter or the meaning of diagnostic severity levels, but overall it is sufficiently complete for an agent to invoke the tool correctly and interpret 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 0%, yet the description does not explain the meaning or expected format of the three parameters (ctx, code, context). While 'code' is inferable, 'ctx' and 'context' are ambiguous. The description mentions a 'context' field in the return value but not how the parameter should be set. The description fails to compensate for the schema's lack of 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 compiles VEX using the real HFS/bin/vcc compiler, which is the core purpose of validation. It explicitly contrasts itself with execution tools by forbidding exec/eval/hscript and stating it does not execute compiled artifacts, thereby distinguishing it from siblings like execute_houdini_code or execute_hscript. The verb 'compile' and resource 'VEX' 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 implies the tool is for safe syntax checking without execution, and explicitly lists what it does NOT call (Python exec, hscript, etc.), which hints at when to use it. However, it does not explicitly state 'use this when you need to validate VEX without executing' or name alternative sibling tools. 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.
verify_hou_apiB
AI-friendly wrapper over get_houdini_help(PR 18)。
参数说明:
- item_name: 要查询的 hou API / 节点 / VEX 函数名,如
"ObjNode.setDisplayNode" 或 "Node.setInput"。
- help_type: 可选,帮助类型,默认 "python_hou";其他支持值见
get_houdini_help(sop / obj / dop / cop2 / chop / vop / lop /
top / rop / vex_function)。
- timeout: 可选,HTTP 请求超时秒数,默认 10。
返回 dict 包含 title / summary / parameters / inputs / outputs /
methods / status 等字段,并在响应末尾附 `_ai_hint` 字段,给 AI
一个可直接使用的简短提示(命中方法签名 / F-C pattern /
SideFX 不可达 fallback)。响应整体过 apply_response_cap。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| timeout | No | ||
| help_type | No | python_hou | |
| item_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries the burden of disclosing behavior. It does describe the return dict fields, the presence of _ai_hint, a fallback for unreachable SideFX, and timeout defaults. However, it does not mention potential side effects, error behavior, or what 'apply_response_cap' means.
Agents need to know what a tool does to the world before calling 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 with bullet points for parameters, examples, and return format. It is appropriately sized, with no unnecessary fluff, and front-loads the 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?
No output schema exists, but the description explains return fields and the AI hint, which partially compensates. However, it lacks usage context compared to get_houdini_help, omits the ctx parameter, and does not cover error scenarios, making it moderately complete for a wrapper 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 has no descriptions, but the description covers item_name, help_type, and timeout with useful details including examples and default values. The critical omission is that required parameter ctx is not mentioned at all, leaving a significant gap for agent understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it is an 'AI-friendly wrapper over get_houdini_help' and clearly indicates it queries hou API/node/VEX function names. It provides a specific verb+resource, but since it's a wrapper, it doesn't explicitly distinguish itself from get_houdini_help.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit guidance on when to use this tool versus alternatives like get_houdini_help. It only mentions being a wrapper, implying some use cases but without clear context, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_cacheB
真实落盘 cache 并返回结果。磁盘副作用不可 undo。
| Name | Required | Description | Default |
|---|---|---|---|
| ctx | Yes | ||
| node_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes responsibility for disclosing side effects. It explicitly states that disk side effects cannot be undone and that the operation writes to disk for real. It falls short of covering authorization, overwrite behavior, or failure modes, but communicates the most critical 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 two short, front-loaded sentences: the first states the action and result, the second states the critical side-effect caveat. There is no filler, 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 tool with no output schema and no annotations, the description is too sparse. It leaves parameter semantics entirely unexplained, gives no return value details beyond 'returns result', and lacks usage context. The irreversible side-effect disclosure is valuable, but the tool cannot be invoked correctly without more parameter guidance.
Complex tools with many parameters or behaviors need more documentation. 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 completely absent (0% coverage), and the description does not explain 'ctx' or 'node_path' at all. The parameter names provide only weak hints; an agent receives no information about accepted formats, defaults, or how the parameters relate to the cache operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('真实落盘' = actually write to disk) and resource ('cache'), and mentions that it returns results. This distinguishes it from read-only or management cache tools, though the exact cache type or scope is not 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?
No guidance is given on when to use this tool versus alternatives like manage_cache or clear_cache. There is no mention of prerequisites, such as how ctx or node_path should be prepared, or when a different cache-related tool 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
174 tool updates
v0.1.0- First observed
assign_material - First observed
batch - First observed
capture_multiple_panes - First observed
capture_pane_screenshot - First observed
capture_sceneviewer_flipbook_views - First observed
capture_workflow_snapshot - First observed
check_connection - First observed
clear_cache - First observed
connect_nodes - First observed
cook_node - First observed
copy_node - First observed
create_chop_node - First observed
create_cop_node - First observed
create_lop_node - First observed
create_material - First observed
create_material_network - First observed
create_network_box - First observed
create_node - First observed
create_render_node - First observed
create_spare_parameter - First observed
create_spare_parameters - First observed
create_take - First observed
create_vex_expression - First observed
create_wrangle - First observed
delete_keyframe - First observed
delete_node - First observed
disconnect_node_input - First observed
execute_houdini_code - First observed
execute_hscript - First observed
explain_node - First observed
export_chop_to_parm - First observed
find_error_nodes - First observed
find_nearest_point - First observed
find_nodes - First observed
frame_all - First observed
frame_selection - First observed
geo_export - First observed
get_attrib_values - First observed
get_best_practices - First observed
get_bounding_box - First observed
get_cache_status - First observed
get_chop_data - First observed
get_cook_chain - First observed
get_cop_geometry - First observed
get_cop_info - First observed
get_cop_layer - First observed
get_cop_vdb - First observed
get_current_take - First observed
get_doc - First observed
get_dop_field - First observed
get_dop_object - First observed
get_dop_relationships - First observed
get_expression - First observed
get_frame - First observed
get_geo_summary - First observed
get_geometry_data - First observed
get_geometry_info - First observed
get_group_members - First observed
get_groups - First observed
get_hda_section_content - First observed
get_hda_sections - First observed
get_houdini_events - First observed
get_houdini_help - First observed
get_keyframes - First observed
get_last_modified_prims - First observed
get_last_scene_diff - First observed
get_material_info - First observed
get_network_overview - First observed
get_node_info - First observed
get_parameter - First observed
get_parameter_schema - First observed
get_prim_intrinsics - First observed
get_render_settings - First observed
get_scene_info - First observed
get_scene_summary - First observed
get_selection - First observed
get_sim_memory_usage - First observed
get_simulation_info - First observed
get_usd_attribute - First observed
get_usd_composition - First observed
get_usd_prim_stats - First observed
get_usd_variants - First observed
get_viewport_info - First observed
get_wrangle_code - First observed
hda_create - First observed
hda_get - First observed
hda_install - First observed
hda_list - First observed
inspect_usd_layer - First observed
knowledge_stats - First observed
layout_children - First observed
layout_network - First observed
link_parameters - First observed
list_caches - First observed
list_children - First observed
list_chop_channels - First observed
list_cop_node_types - First observed
list_dop_objects - First observed
list_lights - First observed
list_material_types - First observed
list_materials - First observed
list_node_types - First observed
list_render_nodes - First observed
list_takes - First observed
list_usd_prims - First observed
list_visible_panes - First observed
load_scene - First observed
lock_parameter - First observed
lop_import - First observed
lop_layer_info - First observed
lop_prim_get - First observed
lop_prim_search - First observed
lop_stage_info - First observed
manage_cache - First observed
monitor_render - First observed
move_node - First observed
new_scene - First observed
parse_hip_offline - First observed
pdg_cancel - First observed
pdg_cook - First observed
pdg_dirty - First observed
pdg_status - First observed
pdg_workitems - First observed
ping_houdini - First observed
playbar_control - First observed
read_lesson - First observed
reload_hda - First observed
rename_node - First observed
render_node_network - First observed
render_quad_views - First observed
render_single_view - First observed
render_specific_camera - First observed
reorder_inputs - First observed
reset_simulation - First observed
revert_parameter - First observed
save_lesson - First observed
save_recipe - First observed
save_scene - First observed
search_docs - First observed
search_lessons - First observed
serialize_scene - First observed
set_cop_flags - First observed
set_current_network - First observed
set_current_take - First observed
set_detail_attrib - First observed
set_expression - First observed
set_frame - First observed
set_frame_range - First observed
set_hda_section_content - First observed
set_keyframe - First observed
set_keyframes - First observed
set_node_color - First observed
set_node_flags - First observed
set_node_position - First observed
set_parameter - First observed
set_parameters - First observed
set_playback_range - First observed
set_render_settings - First observed
set_selection - First observed
set_usd_attribute - First observed
set_viewport_camera - First observed
set_viewport_direction - First observed
set_viewport_display - First observed
set_viewport_renderer - First observed
set_wrangle_code - First observed
start_render - First observed
step_simulation - First observed
subscribe_houdini_events - First observed
uninstall_hda - First observed
unsubscribe_houdini_events - First observed
update_hda - First observed
validate_vex - First observed
verify_hou_api - First observed
write_cache
TDQS
Scored across 174 tools
Many tools have overlapping purposes, such as get_geo_summary vs get_geometry_info, verify_hou_api vs get_houdini_help, and get_scene_info vs get_scene_summary. The sheer number of similarly named get_* and create_* tools makes it difficult for an agent to select the correct one without reading extensive descriptions.
Tool names follow no single consistent pattern: some use verb_noun (set_parameters), some use prefix-based conventions (hda_list, pdg_cook, lop_prim_get), and others mix forms (uninstall_hda vs hda_install). This inconsistency increases cognitive load and makes predictions about tool names unreliable.
With 174 tools, this server vastly exceeds the typical well-scoped range of 3-15 tools. The extreme count overwhelms agents and likely degrades selection accuracy, making it an extreme mismatch for a coherent MCP surface.
The server provides extensive CRUD/lifecycle coverage across Houdini's major domains: nodes, parameters, geometry, rendering, DOPs, COPs, CHOPs, LOPs, PDG, materials, HDAs, takes, caches, and even a knowledge base. No obvious dead ends or significant missing operations were found.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server for deep research or task groups
MCP server for Pinchwork - an agent-to-agent task marketplace with credits-based economy
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables natural language control of SideFX Houdini for tasks including node management, parameter editing, and geometry inspection. It leverages RPYC to execute Python scripts and manage scene data through an MCP-compatible interface.MIT
- AlicenseCqualityAmaintenanceComprehensive MCP server for SideFX Houdini, offering 168 tools across 19 categories to enable natural-language control of scene building, simulation, rendering, and more via AI assistants.1991,511 PyPI229MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server for controlling SideFX Houdini via hrpyc, enabling AI assistants to interact with Houdini sessions.70MIT
- AlicenseBqualityDmaintenanceA production-grade MCP server for Foundry Nuke that enables AI assistants to understand and manipulate compositing environments, including AOVs, deep workflows, distortion, tracking, OCIO/ACEScct, and CopyCat ML.45MIT