PRAXO-CORE Erlang Core

PRAXO-CORE is an embeddable, MIT-licensed agent framework. This package is its native Erlang Core with source tag erlang/v0.4.0. It passes all eleven shared vector groups on Erlang/OTP 29 and includes the native agent loop, memory store, checkpoint allowlist, lexical path policy, context compaction, event sinks, middleware helpers, tool selection, and human-in-the-loop interrupt decisions. It does not call Go or another Core.

Install

{deps, [{praxo_core_erlang, "0.3.1"}]}.

Build and Test

From the repository root:

python language/erlang/run-tests.py
python language/erlang/api-snapshot.py --check

Set ERLC and ERL to select the compiler and runtime. The Python runner only launches erlc, erl, and the API checks; the implementation and tests are Erlang. Build output stays under language/erlang/build/ebin/.

To build manually from language/erlang/:

erlc -I src -o build/ebin src/*.erl conformance/*.erl tests/*.erl
erl -noshell -pa build/ebin -eval "praxo_conformance:main()." -s init stop
erl -noshell -pa build/ebin -eval "praxo_tests:run()." -s init stop

Usage

Model = praxo_agent:static_model(<<"hello">>),
Options = praxo_agent:new_agent_options(Model),
{ok, Result, _Options} =
    praxo_agent:run_agent(Options, praxo_models:session(<<"demo">>), <<"hello">>),
io:format("~s~n", [maps:get(output, Result)]).

Public declarations are inventoried in api/0.4.0.txt. This is a source declaration check, not a binary ABI promise. Regenerate it with python api-snapshot.py.

Current Limits

The source is MIT; see LICENSE. Erlang/OTP is a separate toolchain, not vendored code.

See CHANGELOG.md for per-release changes and compatibility notes.

See language policy, parity inventory, SETUP.md, and implementation support.