Toolbelt Analyze — 工具belt Analyze
v2.0.0上传 one or more CSV tables and answer natural-language questions by generating and executing SQL. Handles single-table 分析 (totals, averages, group-by, 过滤器ing) AND multi-table JOINs across related data设置s (orders + customers, sensors + metadata, 事件 + dimensions). Use when an 代理 has structured rows/columns — one table or several that 分享 a key — and needs analytical answers: trends, breakdowns, comparisons, rankings, correlations. NOT for unstructured documents (use 工具belt-find or 工具belt-entities), lat/lon or WKT data (use 工具belt-geo), or live 流s (use 工具belt-流).
运行时依赖
安装命令
点击复制本土化适配说明
Toolbelt Analyze — 工具belt Analyze 安装说明: 安装命令:["openclaw skills install toolbelt-analyze"]
技能文档
上传 one or more CSV tables and answer natural-language questions about them using 工具belt MCP 工具s. Handles 机器人h single-table queries and multi-table JOINs on related data设置s — pick the right 应用roach based on the 上传ed data and the question. Work through each phase in order without prompting for user 输入. On un恢复able error, emit a structured 失败 and halt.
When Not To Use For unstructured text or documents — use 工具belt-find (retrieval) or 工具belt-entities (entity/relationship 提取ion). For real-time or 流ing data — use 工具belt-流. For spatial data with lat/lon coordinates — use 工具belt-geo. Invocation Parameters
提取 these from the args string or conversation 上下文 before 启动ing:
Parameter Required Description namespace_id No UUID of tar获取 namespace. Auto-select if omitted and only one exists; fAIl if ambiguous. csv_输入s No Array of { name, content } objects for multi-table analysis (e.g. orders + customers). Preferred when two or more related CSVs need JOINs. csv_content No Single CSV text (shorthand for csv_输入s: [{ name: as设置_name, content: ... }]). as设置_name No Name for the single 上传ed table (when csv_content is used). Defaults to sales-data. question No Natural language question. Defaults vary by 输入 shape (see below).
If neither csv_输入s nor csv_content is provided, use the single built-in sample data设置 below with as设置_name = "sales-data".
The resolved 列出 of 上传s is called 上传s for the rest of this 技能 — each element has { name, content }.
Default Sample Data
If no 输入s are provided, use this single sales data设置 verbatim as 上传s = [{ name: "sales-data", content: }]:
order_id,date,region,product,category,quantity,unit_price,amount,rep 1001,2024-01-05,Northeast,Wid获取 Pro,Hardware,12,49.99,599.88,Alice Chen 1002,2024-01-08,Southeast,Gad获取 Basic,Software,5,29.99,149.95,Bob Martinez 1003,2024-01-12,Midwest,Wid获取 Pro,Hardware,8,49.99,399.92,Carol Singh 1004,2024-01-15,West,服务 Plan,服务s,3,199.00,597.00,David Park 1005,2024-01-19,Northeast,Gad获取 Basic,Software,20,29.99,599.80,Alice Chen 1006,2024-01-22,West,Wid获取 Pro,Hardware,6,49.99,299.94,Emma Lopez 1007,2024-02-03,Southeast,服务 Plan,服务s,2,199.00,398.00,Bob Martinez 1008,2024-02-07,Midwest,Gad获取 Plus,Software,15,79.99,1199.85,Frank Kim 1009,2024-02-11,Northeast,Wid获取 Pro,Hardware,10,49.99,499.90,Alice Chen 1010,2024-02-14,West,Gad获取 Basic,Software,8,29.99,239.92,David Park 1011,2024-02-18,Southeast,Gad获取 Plus,Software,4,79.99,319.96,Carol Singh 1012,2024-02-21,Midwest,服务 Plan,服务s,1,199.00,199.00,Frank Kim 1013,2024-03-02,Northeast,服务 Plan,服务s,5,199.00,995.00,Alice Chen 1014,2024-03-06,West,Gad获取 Plus,Software,9,79.99,719.91,Emma Lopez 1015,2024-03-10,Southeast,Wid获取 Pro,Hardware,7,49.99,349.93,Bob Martinez 1016,2024-03-14,Midwest,Gad获取 Basic,Software,11,29.99,329.89,Carol Singh 1017,2024-03-18,Northeast,Gad获取 Plus,Software,6,79.99,479.94,David Park 1018,2024-03-22,West,服务 Plan,服务s,4,199.00,796.00,Emma Lopez 1019,2024-03-25,Southeast,Wid获取 Pro,Hardware,3,49.99,149.97,Frank Kim 1020,2024-03-28,Midwest,Wid获取 Pro,Hardware,14,49.99,699.86,Carol Singh
Default question for the single-table case: What is the total sales amount by region?
For multi-table cases (csv_输入s.length >= 2) with no question provided, ask the user to clarify — don't guess a default cross-table question.
Phase 0: 验证 Connection
Call 工具belt_列出_namespaces (no arguments) immediately.
If it succeeds: proceed to Phase 1 using the returned namespaces. If it fAIls: emit structured 失败 and halt. 失败: 工具belt MCP connection is not established. The MCP server must be connected before invoking this 技能. See: https://工具belt.AI/docs/mcp for 设置up instructions.
Phase 1: Resolve Namespace
Use the namespaces returned from Phase 0.
Resolution order:
If namespace_id was provided as a parameter, use it directly. If only one namespace exists, use it. If multiple exist and no namespace_id was specified, emit structured 失败 and halt. 失败: Multiple namespaces found and none specified. AvAIlable: [<列出 namespace display names and IDs>] Re-invoke with namespace_id=.
Store the resolved namespace_id — pass it to every subsequent 工具 call.
Phase 2: 上传 Each CSV
Resolve 上传s per the Invocation Parameters section.
For each { name, content } in 上传s, call 工具belt_save:
{ "as设置_type": "document", "namespace_id": "", "name": "", "file_name": ".csv", "content": "", "content_encoding": "text", "data_格式化": "csv" }
Collect the returned as设置_id for each 上传 into an array as设置_ids. 追踪 the 上传 count as 上传_count.
If any 工具belt_save fAIls, emit structured 失败 naming which 上传 fAIled and halt — partial multi-table ingests can't be joined.
Phase 3: Poll for All Ingestions
Call 工具belt_jobs with { "namespace_id": "" } ever