Skip to content

The diagnostics agent

When a device fails, an investigation runs a fixed, inspectable pipeline. Every step, tool call, and retrieved passage is persisted — the run is auditable after the fact, never a black box.

Lifecycle

trigger (alert | ticket | manual)
  → gather    telemetry window around the failure
  → localize  fault, down to the firmware loop or pin
  → research  the MCU datasheet (page-cited passages)
  → resolve   RCA + patch draft, syntax-validated in a sandbox
  → review    a human approves — or it goes nowhere

status: queued → running → needs_review → resolved | failed

Grounding rules

The agent may not assert a root cause it cannot point to: every claim links to a telemetry window or a cited datasheet page. Below the confidence threshold it flags "manual review needed" instead of proposing a patch.

What the agent can never do

Auto-post a patch, execute firmware, or touch another tenant's data. Patch validation is clang-format plus a syntax-only compile in a sandbox. Posting to a ticket or handing a patch to your OTA pipeline requires an explicit human action after approval — and both are recorded in the audit log.

Datasheets

Upload your MCU reference manuals (PDF). They are parsed page-aware, embedded, and scoped to your organization — proprietary documents are never shared across tenants or used to train shared models. Citations carry the page number so you can check the agent's reading yourself, in one click.

Software issues (web, server, games)

The same agent investigates software failures, not just firmware. On the Issues screen, an Investigate button on any issue launches a run: it gathers the grouped error's occurrences (message, stack trace, and context) plus the surrounding telemetry, localizes the failing function, and drafts a code patch. The patch language is inferred from the failing stack frame — Python, JavaScript, TypeScript, and Go in addition to C and Rust.

Python, JavaScript, and Go patches are syntax-checked in the sandbox (parse-only — py_compile, node --check, gofmt — never executed). TypeScript patches stay format-only for now (a lone snippet references project types a checker can't resolve), and the RCA says so plainly. The same rules hold throughout: grounded in the stack trace, low-confidence runs flag for manual review, nothing is posted before a human approves, and code is never executed.

Agent features are part of the Enterprise / Agent tier. The eval harness and its accuracy history ship with it — ask to see our current localization and citation accuracy numbers before you trust the agent with more autonomy.