pm
params.md Draft v0.1

Shared parameter semantics for AI systems (concept-first reference).

Shared parameter semantics

params.md is a reference for parameters used to control execution in AI systems. Parameters define how work is executed (time, cost, retries, permissions, observability) — not what is being executed.

Why separate params from other concepts?

  • The same parameters appear across many places. Defining semantics once prevents drift and ambiguity.
  • Component docs can list supported parameters, while params.md owns the shared meaning (units, defaults, behavior).
  • Parameters evolve faster than core abstractions; this keeps other docs stable.

Parameter index

A compact list of commonly used keys (illustrative, not exhaustive).

Execution limits

Limits prevent runaway execution and create predictable operational behavior. These parameters are commonly enforced by execution runtimes and workers.

timeout_ms integer • ms
limit

Maximum wall-clock time allowed for a single execution. When exceeded, execution should terminate cleanly and return a timeout status.

Example

timeout_ms: 30000
max_cost_usd number • USD
budget

Maximum estimated cost allowed for execution. Implementations may enforce this preemptively (before the limit is exceeded) using conservative estimates.

Example

max_cost_usd: 0.25
max_tokens integer
model

Upper bound for token usage for the model call(s) in a single execution. This may map to provider limits or internal budgets.

Example

max_tokens: 8000

Reliability & retries

Retries are a policy decision expressed as parameters. The goal is predictable behavior: what gets retried, how many times, and with what delays.

retries integer • default 0
reliability

Number of additional attempts after failure. Implementations should define which errors are retryable (network, rate limit, transient tool failures) and which are not.

Example

retries: 2
retry_policy enum
reliability

Strategy used when retrying. Recommended values:

  • immediate — retry right away
  • fixed_delay — wait a constant delay
  • exponential — exponential backoff

Example

retry_policy: exponential
retry_delay_ms integer • ms
reliability

Base delay between retries. For exponential backoff, this is the starting delay. For fixed delay, this is the constant delay.

Example

retry_delay_ms: 500

Safety & permissions

Safety parameters express least-privilege execution. These controls are often enforced by the runtime (before tools are invoked) and audited after execution.

tool_allowlist list[string]
security

List of tools that execution may invoke. Tools not listed should be rejected by default.

Example

tool_allowlist: [web_search, summarize, database_read]
allowed_domains list[string]
security

Network scope limit for web access. This is useful when tools include web browsing or HTTP calls.

Example

allowed_domains: ["docs.example.com", "api.example.com"]
read_only boolean • default true (recommended)
safety

If true, forbid mutating actions (writes, deletes, sending emails) unless explicitly allowed by policy.

Example

read_only: true

Observability

Observability parameters control what execution emits: logs, traces, metrics, and artifacts. These should balance debuggability with privacy and cost.

trace boolean • default false
observability

Emit structured traces for tool calls and intermediate steps. Useful in debugging and audits.

Example

trace: true
log_level enum
observability

Controls verbosity of logs. Recommended values: error, warn, info, debug.

Example

log_level: "info"
emit_metrics boolean • default true (recommended)
observability

Emit execution counters and timings. This should be safe-by-default and not contain sensitive data.

Example

emit_metrics: true

Naming conventions

These conventions are intentionally simple. They exist to reduce ambiguity when parameters travel across systems and teams.

Be unit-aware

If a number has a unit, encode it in the name.

✓ timeout_ms, max_cost_usd, retry_delay_ms

✗ timeout, budget, delay

Prefer stable semantics

Avoid fuzzy keys that hide behavior.

✓ retries + retry_policy

✗ smart_retry

Defaults should be conservative

Prefer safe defaults (e.g., read-only, low budgets). Raise limits explicitly.

Inheritance should be explicit

Pipelines and agents may set defaults; per-step overrides should be clear and local.

Examples

Illustrative snippets showing how parameters can appear in other documents while keeping shared meaning here.

Example A — Worker configuration

A worker uses shared parameters to bound execution and limit tools.

# worker.md (conceptual)
worker: research
params:
  timeout_ms: 30000
  max_cost_usd: 0.25
  max_tokens: 8000
  retries: 1
  retry_policy: exponential
  tool_allowlist: [web_search, summarize]
  trace: true
  read_only: true

Example B — Agent chooses limits per task

An agent may select tighter or looser parameters depending on task risk and value.

# agents.md (conceptual)
route:
  - when: task.type == "quick_answer"
    use_worker: qa
    with_params:
      timeout_ms: 7000
      max_cost_usd: 0.05
      trace: false

  - when: task.type == "deep_research"
    use_worker: research
    with_params:
      timeout_ms: 60000
      max_cost_usd: 0.80
      retries: 2
      retry_policy: exponential
      trace: true

Example C — Pipeline defaults + overrides

Pipelines can set defaults once, then override per-step.

# pipelines.md (conceptual)
pipeline: weekly_digest
defaults:
  params:
    max_cost_usd: 1.00
    timeout_ms: 60000
    read_only: true
    trace: false
steps:
  - worker: research
    params:
      max_tokens: 12000
  - worker: summarize
    params:
      timeout_ms: 20000

Relationships

params.md is designed to be referenced by other concept documents without tightly coupling layout or ownership.

  • worker.md lists supported params; params.md defines shared meaning.
  • agents.md chooses params per task (within policy constraints).
  • schema.md can validate types without changing human-readable docs.
  • skills.md or similar catalogs may declare what tools/capabilities exist.
  • claude.md (or model notes) may map vendor-specific fields to canonical params.

Status

Draft v0.1. Concept-first. Intended to establish shared vocabulary for execution parameters. Not a rigid standard and not tied to any specific vendor.

Future work may include a machine-readable schema, parameter mappings across runtimes, and clearer inheritance rules.