Skip to content

AgenticNetOS 2.40.0

Choose a tag to compare

@alexejsailer alexejsailer released this 02 Aug 21:07

Changed

  • external can only be set explicitly (agentic-net-master, agentic-net-mcp, agentic-net-desktop). A provider-less master used to auto-mark every newly deployed llm/agent lane external, overloading a marker that is supposed to mean "I chose MCP-only execution" with "master happened to lack a provider that day" — and because starting a lane writes an explicit opt-out, one start_transition then made it invisible to the only thing that could run it. Now nothing but set_external produces that status. A provider-less master instead skips its llm/agent lanes: they keep a normal lifecycle (deployed, or running) and wait, rather than firing into a guaranteed LlmDisabledException and flapping error ⇄ running on RestartBackoff — which, for any lane carrying the when:"error" emit branch we tell every client to add, was quietly consuming real input tokens into error tokens on every retry. Lanes already carrying status=external keep it; set_external {all:true, external:false} returns them.

Added

  • The CLI can serve AI lanes (agentic-net-cli). New agenticos transition lanes [--all] lists llm/agent lanes with their servable verdict, and agenticos transition serve [id] runs them with the CLI's own LLM provider. MasterApi gained listAiLanes, setExternal, prepareExternalFire, completeExternalFire and abandonExternalFire. This is the external-fire protocol, not EXECUTE_TRANSITION: master still binds and leases the tokens, applies the inscription's emit rules, consumes exactly what it showed the client, and books usage — so a lane served from outside behaves identically to a master-run one, which is what makes a provider-less master a configuration difference rather than a behavioural one. Verified end-to-end against a live master: input consumed exactly once, @response.json parsed by master into the postset. Agent lanes are skipped with a pointer, since they need the authorized tool loop an MCP client provides; a failed serve always abandons its lease so the inputs stay retryable rather than blocked for the 30-minute TTL.
  • The AI-lane roster with a servable verdict (agentic-net-master, agentic-net-mcp). GET /api/transitions/external/ready gains includeAll=true, listing every llm/agent lane of a model whatever its status, each with servable + servableReason (MARKED_EXTERNAL · MASTER_HAS_NO_PROVIDER · LANE_IDLE · MASTER_OWNS_IT · NO_TOKENS_BOUND · POSTSET_AT_CAPACITY · FIRE_IN_FLIGHT · NOT_DEPLOYED), plus a provider block. list_external_fires exposes it as includeAll, counts stranded lanes, and returns a hint pointing at the wider view whenever the provider is off — the default view is precisely the one that hides stranded lanes. The verdict is advice, not a gate. set_external {all:true} now resolves lanes through this one endpoint instead of sweeping /runtime/transitions and re-deriving "is this an AI lane" client-side.
  • A client can take over a running AI lane (agentic-net-master). prepare_external_fire and complete_external_fire no longer refuse running lanes (only starting, which has no stable bindings): with no provider, refusing left a lane unrunnable by anyone. Master stands down while a prepared fire is in flight, closing the one hole the existing token lease did not already cover (preset-less agent lanes). The prepare response carries takenOverFromMaster so a client can say so rather than doing it silently.
  • The protocol volunteers the external-fire backlog (agentic-net-mcp). Without a server-side provider, llm/agent lanes run only while an MCP client is connected, and a cron on one is armed but dispatched by nobody. That was previously discoverable only by knowing to call list_external_fires. Now readiness reports llm.youAreTheRuntime plus an externalFires block counting the lanes holding bound tokens, and warns naming them (a backlog is pending work, so it does not make the installation unready); scheduler_status marks such lanes willNotFireUnattended and lists them under headline.externalScheduled; the server instructions tell the connected client to check the count early in a session, report it, and offer to work it; and the new work-external-fires prompt is that recipe on demand. The scheduling instructions and docs/scheduling no longer claim that every scheduled transition runs unattended, which was false for exactly these lanes.
  • Newcomer manual in the tray (agentic-net-desktop). A new Manual (Start Here) item, grouped with the MCP connect actions, opens a self-contained guide written for people who have never seen a Petri net: what Desktop Lite is (memory, clock and hands for an MCP client that already thinks), how to connect Claude Code or Codex and verify with readiness, the five-term vocabulary, seven things worth building (durable memory, composable linked context, scheduled nets replacing repeated sessions, autonomous personas, zero-LLM watchers, local command lanes, crystallization), copy-paste starter prompts, an honest table of what does and does not run while no client is connected, cost/safety boundaries, and a symptom-to-tool troubleshooting table. The launcher serves it from its own jar at http://localhost:4200/manual, so it versions with the app, needs no login nonce, and stays readable while the services are still starting or failing to start. DESKTOP-LITE.md remains the operator reference.

AgenticNetOS Desktop Lite

The fast local creator/operator profile: node, deterministic master, gateway,
executor, encrypted local credential vault (no OpenBao), MCP endpoint, and
Studio — supervised by a tray app on bundled Java/Node runtimes. No Docker,
host Java/Node installation, API key, or server-side LLM is required. Connect
an MCP client and let its model build, schedule, inspect, and execute nets.
This loopback-only profile is not the recommended production deployment.

macOS: open the .dmg, accept the license, drag AgenticNetOS to Applications.
First launch of this unsigned build: right-click the app and choose "Open", or allow
it under System Settings → Privacy & Security → "Open Anyway". Verify the download
against SHA256SUMS.txt first.

Linux (Debian/Ubuntu): sudo apt install ./AgenticNetOS-<version>-linux-<arch>.deb,
then run /opt/agenticnetos/bin/AgenticNetOS. An
.rpm is provided for Fedora/RHEL. On servers without a desktop the app runs headless;
the tray is optional.

Windows: not yet published — planned.

Build it yourself: agentic-net-desktop/scripts/build.sh (or build-windows.ps1)
in the repository bundles an installer for your machine from this release's
standalone binaries (agentic-net-node-*.jar, agentic-net-master-*.jar,
agentic-net-gui-*.zip below — EULA applies), no Docker needed.

Connect an MCP client: the tray copies a ready Codex config.toml block,
Claude Code command, or generic MCP URL + bearer token. Studio: tray menu →
"Open Studio" (login secret is one click away under "Copy Studio Admin Secret").
Server-run AI lanes can be enabled later, but fresh installs use
llm.provider=disabled, so new AI lanes default to MCP external fires and need
no server model.

Data lives in ~/.agenticos/ and survives updates. The bundled node, master and
gui binaries are covered by the EULA shown at install (also in the app dir);
everything else is BSL 1.1.