---
seoThumbImage: 'https://seongland.com/article/asg/og.png'
title: 'Automata from Agent Traces'
subtitle: 'One automaton, built from traces, serves as a memory, prediction, and monitoring prior'
description: 'Automata from Agent Traces: compact finite-state machines extracted from LLM agent traces for failure prediction, next-step prediction, and runtime monitoring.'
authors:
  - name: Seonglae Cho
    url: 'https://seongland.com'
    affiliations:
      - 1
  - name: Franklin Cardenoso Fernandez
    affiliations:
      - 1
      - 3
  - name: Umar Mohammed
    affiliations:
      - 1
  - name: Zekun Wu
    url: 'https://981526092.github.io/zekunwu.github.io/'
    affiliations:
      - 2
  - name: Kleyton Da Costa
    url: 'https://kleytoncosta.com'
    affiliations:
      - 2
  - name: Ilham Wicaksono
    affiliations:
      - 1
  - name: Adriano Koshiyama
    affiliations:
      - 2

affiliations:
  - name: Holistic AI
    url: 'https://www.holisticai.com'
  - name: University College London
    url: 'https://www.ucl.ac.uk'
  - name: PUC-Rio
    url: 'https://www.puc-rio.br'

published: 'Jun. 30, 2026'
licence: >
  Diagrams and text are licensed under <a
  href="https://creativecommons.org/licenses/by/4.0/" target="_blank"
  rel="noopener noreferrer">CC-BY 4.0</a>. Code is available on <a
  href="https://github.com/seonglae/agent-state-graph" target="_blank"
  rel="noopener noreferrer">GitHub</a>.
tags:
  - agents
  - interpretability
  - finite-state-machines

tableOfContentsAutoCollapse: true
pdfProOnly: false
---

import Sidenote from '../components/Sidenote.astro';
import Image from '../components/Image.astro';
import HtmlEmbed from '../components/HtmlEmbed.astro';
import Note from '../components/Note.astro';
import Wide from '../components/Wide.astro';
import FullWidth from '../components/FullWidth.astro';
import Quote from '../components/Quote.astro';
import Reference from '../components/Reference.astro';
import Accordion from '../components/Accordion.astro';

import Chapter01 from './chapters/01-opacity.mdx';
import Chapter02 from './chapters/02-extraction.mdx';
import Chapter03 from './chapters/03-construction.mdx';
import Chapter04 from './chapters/04-bound.mdx';
import Chapter05 from './chapters/05-compression.mdx';
import Chapter06 from './chapters/06-prediction.mdx';
import Chapter07 from './chapters/07-discussion.mdx';

<Chapter01 />
<Chapter02 />
<Chapter03 />
<Chapter04 />
<Chapter05 />
<Chapter06 />
<Chapter07 />
