Early benchmarks: 30%+ input-token reduction from reusable reasoning — read the field note

About

Why this, why now.

As agents move from demos into real workflows, their work needs to remain reviewable after the chat ends. Scholialang turns goals, evidence, decisions, actions, and conclusions into a structured trace that humans can read and tools can validate.


Why use Scholialang

Reasoning traces that survive real work.

Readable traces

See what changed and why.

Capture goals, observations, evidence, decisions, and actions in one compact artifact so teammates can review an agent's work without replaying the whole session.

Portable handoff

Move reasoning between tools.

Give agent hosts, workflow runners, CI jobs, and review systems a common trace format so context follows the work instead of staying locked in one chat or log.

Audit-ready evidence

Check claims before trusting results.

Typed evidence, stable references, confidence, criticality, and contradictions make it easier to compare traces, spot weak assumptions, and ask for targeted review.

Accountable AI work

Make automated decisions inspectable.

As AI systems touch code, operations, research, and business decisions, teams need artifacts they can diff, sign, validate, and discuss without exposing hidden chain-of-thought.


Authors + license

Who made this.

License posture: MIT OR Apache-2.0, at your option.

Affiliation: Doug Fir Labs — a neurosymbolic cognitive architecture and autonomous-runbook framework.

Contribute

Feedback welcome.

The language split is now tracked across three public repos: scholialang-spec for the specification and examples, scholialang for the Python reference package, and scholialang-mcp for MCP and LSP protocol tooling. File spec issues in scholialang-spec; implementation issues belong in the package or protocol repo.


Release

Initial v0.6 release.

  1. v0.6 · content-addressable substrate

    The initial public v0.6 release defines the 32-atom catalog, content-addressable canonical_id, a canonical_id-keyed DAG registry over REFER/IMPLIES edges, and a lazy canonical-prelude with three core modes: hash_only, hash_list, and inline. What's new in v0.6 →