Skip to main content
Glama
vikranthviki

Causal Decision Agent

by vikranthviki

session

Read-only

Make causal analysis reproducible by setting every reachable random generator to a known seed for the duration of a block. Restore RNG state afterward to prevent drift.

Instructions

Set every reachable RNG to a known seed for the duration of the

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jaxNoYield a fresh JAX ``PRNGKey(seed)`` to the caller via the ``jax_key`` attribute on the yielded session object, when JAX is already imported. Never imports jax on its own. (JAX has no global state so we can't seed it -- agents must thread the key explicitly.)
seedNoSeed value. ``None`` (the default) means "snapshot current state but don't reseed" -- useful for opportunistic save / restore around code that you don't want to leak RNG drift.
torchNoSeed PyTorch (CPU + CUDA) when the library is already imported. Never imports torch on its own.
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
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_pathNoAbsolute 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.
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.
pythonhashseedNoSet ``PYTHONHASHSEED`` for the duration of the block. Most causal-inference numerics don't depend on dict iteration order, but spec-curve enumerators and graph-based DAG search sometimes do. Off by default to avoid surprising downstream callers.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.9/5.0
Behavior3/5

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

The description adds the scoping/duration behavior ('for the duration of') and the scope of the effect ('every reachable RNG'), which goes beyond the readOnlyHint annotation. However, the truncation prevents a full disclosure of side effects, restoration semantics, or the yielded session object, leaving behavioral transparency incomplete.

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

Conciseness2/5

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

The description is only a sentence fragment, cut off mid-phrase ('for the duration of the'). This is under-specification rather than effective conciseness; the structure is incomplete and poorly formed.

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

Completeness2/5

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

Given the tool's role as a context manager, the description fails to convey how the session is yielded, how restoration works, or what the caller should do with the result. The rich parameter schema and output schema compensate partially, but the truncated description leaves critical operational context missing.

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 10 parameters thoroughly. The description itself adds no parameter-level detail, which is acceptable at the baseline but does not elevate the score.

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 description states a specific verb ('Set') and a specific resource ('every reachable RNG'), making the core purpose clear despite being truncated mid-sentence. It also distinguishes itself from the long list of analysis siblings by targeting RNG state rather than data analysis.

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?

No guidance is given on when to use this tool versus alternatives, nor when not to use it. The context is implied (reproducibility, seeding), but there is no explicit when/where guidance or mention of any sibling tools.

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