Skip to main content
Glama
vikranthviki

Causal Decision Agent

by vikranthviki

rd2d_bw

Read-only

Selects the appropriate bandwidth for 2D boundary regression discontinuity, using treatment, running variables, and outcome to define the neighborhood for causal analysis near the boundary.

Instructions

Bandwidth selection for 2D boundary RD.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pNoPolynomial order.
yYesOutcome variable name.
x1YesRunning variable names.
x2YesRunning variable names.
detailNoPayload depth: 'minimal' (~150 tokens) for sub-step calls where only the point estimate is needed; 'standard' (~1K tokens) for diagnostics + coefficient table; 'agent' (~2K tokens, default) adds violations / next_steps / suggested_functions so the LLM can plan its next call without another round-trip.agent
kernelNoKernel function.triangular
approachNo'distance' or 'location'.distance
boundaryNoBoundary function f(x1) -> x2. None implies x1 = 0.
as_handleNoIf true, cache the fitted result on the server and return result_id + result_uri alongside the JSON payload so a subsequent tools/call can chain without re-running.
data_pathYesAbsolute path or URL to a data file. Supported: .csv / .tsv / .txt (delimited), .parquet / .pq, .feather / .arrow, .xlsx / .xls, .dta (Stata), .json / .jsonl. Schemes: file://, s3://, gs://, https://.
result_idNoOptional handle to a previously-fitted result (returned by an earlier call when as_handle=true). Tools that operate on a fitted object accept this in place of re-supplying data_path + columns.
treatmentYesBinary treatment indicator.
data_columnsNoOptional column projection. Parquet/Feather/Stata loaders honour this for fast partial reads.
data_sample_nNoOptional uniform random subsample size (seed=0, deterministic) — useful on huge panels.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a safe, non-mutating computation, so the description does not need to restate that. However, it adds no behavioral context beyond the core idea of selecting a bandwidth, and it does not disclose anything about the selection criterion, cache behavior, or potential heavy computation. This is acceptable but minimally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single seven-word, front-loaded phrase with no filler or redundancy. Every word adds information about what the tool does and in what setting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Between the rich parameter descriptions and the presence of an output schema, an agent can understand the mechanics of calling this tool. What is missing is the surrounding context: whether this is a preparatory step for rd2d or boundary_rd, what selection procedure it implements, and how it relates to sibling bandwidth tools. The description is adequate but not complete for the complexity it fronts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 14 parameters, including the meaning of boundary, detail, and as_handle. The tool description contributes no additional parameter-level meaning, which is fine because it is not needed; the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The phrase 'bandwidth selection for 2D boundary RD' states a specific operation and a precise domain, and it is distinct enough from plotting/estimation siblings like rd2d_plot or boundary_rd to orient an agent. It does not reach 5 because it never names or contrasts the nearest siblings (e.g., rd2d, rdbwselect, rdbwhte), so differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to invoke this tool versus the many RD alternatives in the sibling list, and no mention of prerequisite steps or pipeline position. The schema's detail parameter hints at sub-step chaining, but the description itself offers no when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools