> ## Documentation Index
> Fetch the complete documentation index at: https://lab.pollack.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pollack AI Lab

> Tools and experiments for building agents that work — and understanding why they work

<div
  style={{
position: 'relative',
marginTop: '-2rem',
marginBottom: '2rem',
padding: '3rem 2rem',
borderRadius: '8px',
overflow: 'hidden',
background: 'linear-gradient(180deg, rgba(2,9,21,0.95) 0%, rgba(2,9,21,0.98) 100%)'
}}
>
  <div
    style={{
position: 'absolute',
inset: 0,
backgroundImage: 'url(https://mintcdn.com/mcpjavasdk/vV_7S-Kh5_jdaxd-/images/bubble-chamber-bebc.jpg?fit=max&auto=format&n=vV_7S-Kh5_jdaxd-&q=85&s=a346ebd4f302c207bb09a395cf006f95)',
backgroundSize: 'cover',
backgroundPosition: 'center',
opacity: 0.07,
pointerEvents: 'none'
}}
  />

  <div style={{position: 'relative', zIndex: 1, textAlign: 'center'}}>
    <div
      style={{
  width: '7px',
  height: '7px',
  borderRadius: '50%',
  background: '#ffd740',
  margin: '0 auto 1.5rem',
  boxShadow: '0 0 0 2px rgba(255,215,64,0.2), 0 0 18px 5px rgba(255,215,64,0.35)'
}}
    />

    <div style={{
          fontFamily: 'Geist Mono, monospace',
          fontSize: 'clamp(1.4rem, 3vw, 2.2rem)',
          fontWeight: 300,
          letterSpacing: '0.14em',
          color: '#ffffff',
          textTransform: 'uppercase',
          marginBottom: '0.75rem'
        }}>Pollack AI Lab</div>
    <div style={{
          fontFamily: 'Geist Mono, monospace',
          fontSize: '0.72rem',
          letterSpacing: '0.2em',
          color: 'rgba(79, 195, 247, 0.7)',
          textTransform: 'uppercase'
        }}>Agent Infrastructure · Experiments</div>
  </div>
</div>

Helping you build agents that demonstrably work. A growing ecosystem of projects — usable together or individually — for composing, evaluating, and understanding agent behavior. Experiments that prove the approach works, with published data and reproducible results.

By [Mark Pollack](https://pollack.ai), creator of [Spring AI](https://spring.io/projects/spring-ai).

***

## Highlights

What's genuinely new and cool across the lab right now.

<CardGroup cols={2}>
  <Card title="Run a workflow step in Anthropic's cloud" icon="cloud" href="/projects/agent-workflow">
    `ManagedAgentStep` hands one step of your workflow to Claude Managed Agents — a full hosted sandbox with bash, files, and web. Same graph; swap a single step between local JVM, Temporal, or Anthropic's cloud.
  </Card>

  <Card title="Speak the latest Agent Client Protocol" icon="plug" href="/projects/acp-java-sdk">
    Tracks ACP 0.14.0 — elicitation (agents ask *you* for structured input), session fork & resume, and provider config — dropping a Java agent straight into Zed, JetBrains, and VS Code.
  </Card>

  <Card title="Evaluate any agent, any framework" icon="gavel" href="https://blog.pollack.ai/here-comes-the-judge/">
    Agent Judge scores output from Spring AI, LangChain4j, Koog, or any CLI agent through one judge / jury layer — LLM and RAG judges (faithfulness, hallucination), plus tooling to evaluate the evaluators. **Read the deep dive →**
  </Card>

  <Card title="Provably CVE-clean dependencies" icon="shield-check" href="/projects/agentworks-bom">
    The AgentWorks BOM ships only behind a 9/9 convergence gate (plain / Boot 3.5 / Boot 4) — every consumer gets one coherent, vulnerability-free dependency set, verified in CI, not by hand.
  </Card>

  <Card title="Trace Claude and Gemini in one format" icon="binoculars" href="/projects/agent-journal">
    Agent Journal captures Claude *and* Gemini CLI runs into one portable trace + cost schema — one analysis layer across runtimes, no per-vendor lock-in. New in 1.5.0.
  </Card>
</CardGroup>

<div style={{textAlign: 'right', fontSize: '0.8rem', marginBottom: '0.5rem'}}>
  <a href="/whats-new">Full release history →</a>
</div>

***

## Active release train

The whole suite ships as one coordinated train, pinned by the [AgentWorks BOM](/projects/agentworks-bom) — currently **1.15.0**, spanning a dozen libraries all shipped within the last month.

<div style={{display: 'flex', flexWrap: 'wrap', gap: '0.5rem', margin: '1.25rem 0'}}>
  <a href="/projects/agentworks-bom" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(255,215,64,0.35)', background: 'rgba(255,215,64,0.08)', fontSize: '0.8rem', textDecoration: 'none', color: '#e8e8e8'}}>agentworks-bom <b style={{fontFamily: 'Geist Mono, monospace', color: '#ffd740'}}>1.15.0</b></a>
  <a href="/projects/agent-client" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-client <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.23.0</b></a>
  <a href="/projects/agent-workflow" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-workflow <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.10.0</b></a>
  <a href="/projects/claude-agent-sdk" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>claude-agent-sdk <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>1.4.0</b></a>
  <a href="/projects/acp-java-sdk" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>acp-java-sdk <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.14.0</b></a>
  <a href="/projects/agent-judge" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-judge <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.13.0</b></a>
  <a href="/projects/agent-memory" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-memory <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.3.0</b></a>
  <a href="/projects/agent-hooks" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-hooks <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.6.4</b></a>
  <a href="/projects/agent-journal" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-journal <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>1.6.0</b></a>
  <a href="/projects/agent-experiment" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-experiment <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.5.0</b></a>
  <a href="/projects/agent-bench" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-bench <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.4.0</b></a>
  <a href="/projects/agent-sandbox" style={{padding: '0.3rem 0.75rem', borderRadius: '999px', border: '1px solid rgba(79,195,247,0.25)', background: 'rgba(79,195,247,0.06)', fontSize: '0.8rem', textDecoration: 'none', color: '#cfe8f5'}}>agent-sandbox <b style={{fontFamily: 'Geist Mono, monospace', color: '#4fc3f7'}}>0.9.3</b></a>
</div>

<div style={{textAlign: 'right', fontSize: '0.8rem', marginBottom: '0.5rem'}}>
  <a href="/projects/agentworks-bom">Full version table →</a>
</div>

***

## Core Projects

<CardGroup cols={3}>
  <Card title="ACP Java SDK" icon="plug" href="/projects/acp-java-sdk">
    Agent Client Protocol — build and consume agents for Zed, JetBrains, VS Code
  </Card>

  <Card title="Agent Workflow" icon="arrows-spin" href="/projects/agent-workflow">
    Multi-step agentic pipelines with typed context, quality gates, and portable runtimes
  </Card>

  <Card title="Agent Judge" icon="gavel" href="/projects/agent-judge">
    Evaluation with deterministic, command, and LLM judges
  </Card>

  <Card title="Loopy" icon="terminal" href="/projects/loopy">
    Interactive coding agent CLI for Java developers
  </Card>

  <Card title="Agent Client" icon="robot" href="/projects/agent-client">
    Claude, Gemini, Codex, Amazon Q as unified Spring services
  </Card>

  <Card title="Agent Journal" icon="book" href="/projects/agent-journal">
    Behavioral trace capture for analysis and observability
  </Card>

  <Card title="Agent Bench" icon="chart-bar" href="/projects/agent-bench">
    Benchmarking on real enterprise Java tasks
  </Card>
</CardGroup>

***

## Latest Experiments

<div style={{display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '1rem'}}>
  <div style={{borderLeft: '3px solid #4fc3f7', paddingLeft: '0.75rem'}}>
    <div style={{fontWeight: 'bold', fontSize: '0.95rem'}}>Code Coverage v3 — The Exemplar Effect</div>
    <div style={{fontSize: '0.8rem', color: '#666', margin: '0.25rem 0'}}>When existing tests use older patterns, skills can't override them — the codebase is the agent's primary teacher. 2 variants on Spring PetClinic.</div>
    <div style={{fontSize: '0.75rem'}}>Apr 2026 · Complete · <a href="/experiments/code-coverage-v3">Details →</a></div>
  </div>

  <div style={{borderLeft: '3px solid #4fc3f7', paddingLeft: '0.75rem'}}>
    <div style={{fontWeight: 'bold', fontSize: '0.95rem'}}>Code Coverage v2 — Skills vs Knowledge Bases</div>
    <div style={{fontSize: '0.8rem', color: '#666', margin: '0.25rem 0'}}>Do structured skills beat flat knowledge injection? Skills + pre-analysis cut steps 31% with no quality loss. 7 variants.</div>
    <div style={{fontSize: '0.75rem'}}>Mar 2026 · Complete · <a href="/experiments/code-coverage-v2">Details →</a></div>
  </div>

  <div style={{borderLeft: '3px solid #4fc3f7', paddingLeft: '0.75rem'}}>
    <div style={{fontWeight: 'bold', fontSize: '0.95rem'}}>Code Coverage v1 — Knowledge Injection Baseline</div>
    <div style={{fontSize: '0.8rem', color: '#666', margin: '0.25rem 0'}}>9 variants testing progressive knowledge injection on Spring Boot test generation.</div>
    <div style={{fontSize: '0.75rem'}}>Feb 2026 · Complete · <a href="/experiments/code-coverage-v1">Details →</a></div>
  </div>
</div>

***

<div style={{textAlign: 'center', fontSize: '0.8rem', color: '#666', marginTop: '2rem'}}>
  <a href="https://pollack.ai">pollack.ai</a> · <a href="https://blog.pollack.ai">Blog</a> · <a href="https://github.com/markpollack">GitHub</a>
</div>
