Show HN: AgentML – SCXML for Deterministic AI Agents (MIT)

Show HN (score: 5)
Found: November 03, 2025
ID: 2261

Description

Other
Show HN: AgentML – SCXML for Deterministic AI Agents (MIT) Hey HN,

We’ve been experimenting with how to make AI agents more deterministic, observable, and production-safe, and that led us to build AgentML — an open-source language for defining agent behavior as state machines, not prompt chains.

My co-founder posted before but linked to the project website instead of the repo, so resharing here.

AgentML lets you describe your agent’s reasoning and actions as a finite-state model (think SCXML for agents). Each state, transition, and tool call is explicit and machine-verifiable.

That means you can:

- Reproduce any decision path deterministically

- Trace reasoning and tool calls for debugging or compliance

- Guarantee agents only take valid actions (e.g. “never send a payment before verification”)

- Run locally, in the cloud, or within MCP-based frameworks

Example:

```

<?xml version="1.0" encoding="UTF-8"?>

<agentml xmlns="github.com/agentflare-ai/agentml" xmlns:openai="github.com/agentflare-ai/agentml-go/openai" version="1.0" datamodel="ecmascript" name="researcher">

<datamodel>

    <data id="papers" expr="[]"
        schema='{"type":"array","description":"Fetched papers from Hugging Face"}' />

    <data id="summary" expr="''"
        schema='{"type":"string","description":"Summary of the papers"}' />
</datamodel>

<state id="start">

    <onentry>

        <log label="Researcher: "
            expr="`Fetching papers from Hugging Face and summarizing with OpenAI\n`" />

        <openai:generate model="gpt-4o" location="summary" stream="false">

            <openai:prompt>Summarize these recent AI/ML papers from Hugging Face:

                {{fetch "https://huggingface.co/api/daily_papers"}}

                Provide a concise summary of the key trends, breakthroughs, and developments in AI/ML research.
            </openai:prompt>

        </openai:generate>

    </onentry>

    <transition target="log_summary" />
</state>

<state id="log_summary">

    <onentry>

        <log label="Researcher Summary: " expr="summary" />

    </onentry>

    <transition target="done" />
</state>

<final id="done" />

</agentml>

```

We’re using this in Agentflare to add observability, cost tracking, and compliance tracing for multi-agent systems — but AgentML itself is fully open-source (MIT licensed).

Repo: https://github.com/agentflare-ai/agentml Docs: https://docs.agentml.dev

We also launched SQLite-Graph, a Cypher-compatible graph extension for SQLite, which will serve as the base for AgentML’s native memory layer. It’s also MIT licensed: https://github.com/agentflare-ai/sqlite-graph

Would love feedback from anyone building with LLM orchestration frameworks, rule-based systems, or embedded MCP tool servers… especially around how to extend deterministic patterns to multi-agent coordination.

— Jeff @ Agentflare

More from Show

Show HN: Parse a PDF from your terminal with PaddleOCR-VL-1.6

Show HN: Parse a PDF from your terminal with PaddleOCR-VL-1.6 I built OpenParser because I wanted PaddleOCR-VL-1.6 behind an endpoint I could actually use. Now there are open-sourced CLI and TypeScript&#x2F;Python SDKs:<p>``` npm install -g @openparser&#x2F;cli openparser auth login openparser parse sync document.pdf ```<p>That is basically it. It doesnt get easier and cheaper that this. Give it a PDF and get back the text and document structure.<p>Repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;eigenpal&#x2F;openparser" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;eigenpal&#x2F;openparser</a><p>I would love feedback from anyone willing to try the CLI and tell me what is still annoying.

Show HN: A free curl API for IP data (we scan the IPv4 space in <24h)

Show HN: A free curl API for IP data (we scan the IPv4 space in <24h) The curl API for WorldIP is now live and completely free to use. You can hit it right from your terminal:<p>curl worldip.io — returns information about your requesting IP. curl worldip.io&#x2F;8.8.8.8 — returns details on any specific IP.<p>The main differentiator here is that we aren&#x27;t just wrapping another provider&#x27;s API and reselling their data. We built and run our own global infrastructure capable of scanning the entire IPv4 space in about a day.<p>Happy to answer any questions about the scanning infrastructure or the stack!

No other tools from this source yet.