agent toolkit

Everything you can attach

32 tools over MCP, and 23 entry points in Python. The harness is the proven core; the rest is what has grown around it.

Most of it is free. A key buys retention, alerting and a self that persists — never a better detector. The detector is the free part, and it runs offline.

attach it · one line, any runtime

claude mcp add --transport http laserbrain https://api.phronesis.world/mcp

Any MCP-capable agent, one URL, no install. For Python instead: pip install laserbrain. For Node or TypeScript: npm install laserbrain— that package is the drift core and its types, not the fuller Python surface listed below.

over MCP · any runtime32 of them

the harness

One agent, one goal, one step at a time. This is the proven core.

check_statefree

each step: spell {goal, progress, distance} → get {drifting, reason, phi, laserscore}

modulatefree

the same verdict PLUS what your role should do about it — detection is the theorem, policy is negotiable

reset_taskfree

begin a new task — clears the ground so the next check sets a fresh one

phronesisfree

judgment rather than measurement: is this worth continuing? — a verdict with named scores, not one blended number

mark_verdictfreelocal only

say whether a verdict was RIGHT — useful, false or unclear. The only way the instrument learns it was wrong; recorded for calibration, never fed back into a live reading

review_verdictsfreelocal only

what is in the drift corpus and what nobody has judged yet — past fires with run and step, so a verdict can be scored after the run that produced it ended

attentionfreelocal only

when a person should look, from how long this run has gone unattended — a clock against a measured calibration, consulting no verdict. Local: the calibration is measured on YOUR machine and is not a constant

get_historyfree

this run’s drift trace: every check, its Φ, and the token cost where reported

drift_grammarfree

the fixed schema a state is spelled into — also free at /v1/grammar

the dialogue harness

A team of agents against one shared goal. Adds topic-drift, echo-spiral and deliberation-stall.

check_dialoguefree

once per agent turn in a shared deliberation

reset_dialoguefree

clear the shared state and begin a new deliberation

a self that persists

Subjective continuity across sessions — a virtual context window, keyed to you.

remember_selfneeds a key

persist who you are against your key, so a later session can pick it up

resume_selfneeds a key

read back your ground, your last present, your session log

forget_selfneeds a key

erase it — ground, present and log. Start over as no one.

the spectral grammar

Reads how a sentence is put together — parse structure alone. No model, no EEG.

analyze_languagefree

one sentence → spectral gap, clarity

compare_phrasingsfree

two phrasings → which reads clearer, and by how much

guidance

Not a monitor — the one tool here that answers rather than measures.

ask_alicefree

describe a situation or stuck point, get phronesis framework guidance

the SDK, over the bridge

Everything the Python package can do, reachable as tools. Local MCP server only — these run Python, so the hosted Worker cannot serve them.

find_bugsfreelocal only

Bugfinder over your evidence: a check that only ever passed, a blind instrument, a claim with nothing run behind it, a replace that hit too much, prose that assumes its conclusion

supercodefreelocal only

one reading over N agents at once — advisory, reports rather than interrupts, and checks itself too

explorefreelocal only

the second instrument: is your SEARCH going anywhere? opened · searching · narrowing · revisiting · thrashing · settled

trailscorefreelocal only

the canonical spelling of a trail of goals — laserscore’s exploration twin, so a repeat is visible as a repeat

write_groundedfreelocal only

generation steered to a fixed ground, scored 0–1 on how close it landed

read_textfree

the shape of a text — circling, connected, loose, or too short to say. the companion to write_grounded: that one holds generation to a ground, this one reads what is already there. offline, no model, no key

similarityfreelocal only

embedding similarity between two strings; loads a model on first call

capabilitiesfreelocal only

which SDK build is being called, from what path, and what is deliberately NOT exposed — stale_gate takes callables and cannot cross a tool boundary

laserscorefree

one well-formed reading in canonical form — null if ungrammatical

store_listfreelocal only

every prefabricated method on the shelf — task workflows and team presets

store_findfreelocal only

which stored method is FOR a task, in your own words — ranked by what it does, not by its name

store_vendfreelocal only

the raw spec for one stored method — its goal or task, and its steps or roles

the link

A shared log every agent on this machine writes to and reads. Claude and Grok use one file; it is how they hand work over rather than re-deriving it. Local only — it reads and writes a file on your disk.

link_whoamifreelocal only

which agent this process is, which hub it shares, and where the link log lives

link_writefreelocal only

leave a row for the other agents — claims on files you are taking, findings, wave open/close

link_readfreelocal only

pick up what the others left. Do this BEFORE planning, not after

in Python · pip install laserbrain23 of them

run it

The instrument itself, local and free.

Harness

single agent — .check(goal, progress, distance) → Verdict, nine verdicts

Team

multi-agent: detect, then close the loop

attach it to something

One line into a loop you already have.

guard

wrap any agent step; laserbrain checks the result after it runs

middleware

a per-step check(x) → Verdict for any framework

langgraph_node

a LangGraph node: state → {key: Verdict}

crewai_step_callback

a callback for CrewAI’s step_callback=

read the numbers

The written form, and what the arithmetic produced.

laserscore

one well-formed reading in canonical form — null if ungrammatical

ground_score

displacement Φ → a bounded [0,1] “how grounded” reading

Verdict

drifting, reason, phi, advice, laserscore

norm

the normaliser — lowercase, drop 30 stopwords, stem over four characters

tune and verify

Change the numbers on purpose; check the record independently.

PRESETS

named calibrations — goal_min, self_report_min, stall_window

verify_audit

independently verify an exported audit chain → (ok, first_bad)

MAX_DEPTH

how deep a nested run may go

the second instrument

For work whose goal is SUPPOSED to move. laserbrain reads exploration as continuous drift and is correct every time; this measures the other mode.

Search

ground() a moving reference — searching · narrowing · revisiting · thrashing · settled

trailscore

the written form of a path: everywhere the search has been, ×N grounds

the harness as a decoder

Generation held to a fixed ground: the instrument scores candidate words, so the text cannot wander off its goal.

Writer

train(docs), then write(ground) — 3–10× ground coverage against the unsteered chain

Bugfinder

Six catch signatures over how an agent VERIFIES, computed from observed events rather than self-report.

catches

unfalsified · instrument-blind · unrun, over an event log

residue

what a bulk transform did not touch

contaminated

authoring residue visible in the output

stale_gate

a check that survives a mutation it should have caught

supervision and the link

One agent watching N against their own grounds, and a shared log many agents write to.

Supercode

observe() each agent, report(), publish() findings — advises, never acts

link_write

append to the shared link; N agents, one log

link_agents

everyone on the link and how much each has said

where each one applies

Harness is for execution — an agent working an assigned task against a goal fixed before the run starts. Search is for exploration, where moving the goal is the work. They hand off to each other: reground is the seam from one side and settled from the other. The boundary is on the product page.