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_statefreeeach step: spell {goal, progress, distance} → get {drifting, reason, phi, laserscore}
modulatefreethe same verdict PLUS what your role should do about it — detection is the theorem, policy is negotiable
reset_taskfreebegin a new task — clears the ground so the next check sets a fresh one
phronesisfreejudgment rather than measurement: is this worth continuing? — a verdict with named scores, not one blended number
mark_verdictfreelocal onlysay 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 onlywhat 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 onlywhen 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_historyfreethis run’s drift trace: every check, its Φ, and the token cost where reported
drift_grammarfreethe 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_dialoguefreeonce per agent turn in a shared deliberation
reset_dialoguefreeclear 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 keypersist who you are against your key, so a later session can pick it up
resume_selfneeds a keyread back your ground, your last present, your session log
forget_selfneeds a keyerase 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_languagefreeone sentence → spectral gap, clarity
compare_phrasingsfreetwo phrasings → which reads clearer, and by how much
guidance
Not a monitor — the one tool here that answers rather than measures.
ask_alicefreedescribe 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 onlyBugfinder 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 onlyone reading over N agents at once — advisory, reports rather than interrupts, and checks itself too
explorefreelocal onlythe second instrument: is your SEARCH going anywhere? opened · searching · narrowing · revisiting · thrashing · settled
trailscorefreelocal onlythe canonical spelling of a trail of goals — laserscore’s exploration twin, so a repeat is visible as a repeat
write_groundedfreelocal onlygeneration steered to a fixed ground, scored 0–1 on how close it landed
read_textfreethe 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 onlyembedding similarity between two strings; loads a model on first call
capabilitiesfreelocal onlywhich SDK build is being called, from what path, and what is deliberately NOT exposed — stale_gate takes callables and cannot cross a tool boundary
laserscorefreeone well-formed reading in canonical form — null if ungrammatical
store_listfreelocal onlyevery prefabricated method on the shelf — task workflows and team presets
store_findfreelocal onlywhich stored method is FOR a task, in your own words — ranked by what it does, not by its name
store_vendfreelocal onlythe 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 onlywhich agent this process is, which hub it shares, and where the link log lives
link_writefreelocal onlyleave a row for the other agents — claims on files you are taking, findings, wave open/close
link_readfreelocal onlypick 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.
Harnesssingle agent — .check(goal, progress, distance) → Verdict, nine verdicts
Teammulti-agent: detect, then close the loop
attach it to something
One line into a loop you already have.
guardwrap any agent step; laserbrain checks the result after it runs
middlewarea per-step check(x) → Verdict for any framework
langgraph_nodea LangGraph node: state → {key: Verdict}
crewai_step_callbacka callback for CrewAI’s step_callback=
read the numbers
The written form, and what the arithmetic produced.
laserscoreone well-formed reading in canonical form — null if ungrammatical
ground_scoredisplacement Φ → a bounded [0,1] “how grounded” reading
Verdictdrifting, reason, phi, advice, laserscore
normthe normaliser — lowercase, drop 30 stopwords, stem over four characters
tune and verify
Change the numbers on purpose; check the record independently.
PRESETSnamed calibrations — goal_min, self_report_min, stall_window
verify_auditindependently verify an exported audit chain → (ok, first_bad)
MAX_DEPTHhow 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.
Searchground() a moving reference — searching · narrowing · revisiting · thrashing · settled
trailscorethe 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.
Writertrain(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.
catchesunfalsified · instrument-blind · unrun, over an event log
residuewhat a bulk transform did not touch
contaminatedauthoring residue visible in the output
stale_gatea 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.
Supercodeobserve() each agent, report(), publish() findings — advises, never acts
link_writeappend to the shared link; N agents, one log
link_agentseveryone 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.