Show HN: AgentML – SCXML for Deterministic AI Agents (MIT)
Show HN (score: 5)Description
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/Python SDKs:<p>``` npm install -g @openparser/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://github.com/eigenpal/openparser" rel="nofollow">https://github.com/eigenpal/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/8.8.8.8 — returns details on any specific IP.<p>The main differentiator here is that we aren't just wrapping another provider'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.