← Knowledge Library
FILE №08Conference · Field Report · Vol. 1
Berlin 28 May 2026 Author M. Fuhlmann
Applied AI Conference {h:Europe} · Berlin · 28 May 2026

Notes from a day on applied AI — what's shipped, what's measured, what's next.

EventApplied AI Conf {h:Europe}
VenueBerlin
DateMay 28, 2026
Talks covered4 of many
Common threadEvals as infrastructure
01 Talk One
Architecture · Building Dust

What a modern agent harness actually looks like.

§1.1 Governed Tool Calls

MCP vs CLI vs Code — pick none of the above, and combine them.

The three obvious ways to give an agent tools — raw code, model context protocol servers, or shell commands — each fail in a different direction. Dust's answer is a fourth thing built from the best parts of all three.

Polu opened with the deceptively boring question of how an agent calls a tool. The three default answers each break on a specific axis: code-or-CLI loses governance, MCP loses composability and floods the context window, and naked shell loses an audit trail. The comparison was sharp enough to print directly:

🐚 CLI / Code
Chainability
Pipe · Transform · Compose
No schema overhead
Zero tokens for discovery
No auth standard
Each integration = custom plumbing
No action governance
Every action is an opaque string
No audit trail
Can't track what the agent did
🔌 MCP
Schema bloat
GitHub MCP: 93 tools — 55k tokens
No chainability
Atomic calls, context-window tax
Auth discovery
OAuth 2.1 · PKCE · RFC 7591
Action enumeration
tools/list = typed security boundary
Typed audit trail
Named, structured events per call

What this means in practice

The synthesis is a thin CLI binary that speaks MCP under the hood. The agent gets POSIX-style composability (the thing humans love about shells) while the platform keeps MCP's auth, enumeration, and audit-trail properties. Lazy schema loading is the punchline: you only pay for the tool descriptions you actually use, which dissolves the 55k-token bloat of an unfiltered GitHub MCP server.

The three properties that survive into the merged design are worth memorising as a checklist for any tool-calling design you do: Auth Discovery, Action Enumeration, Typed Audit Trails. If your tool plumbing doesn't have all three, you've built either a prototype or a liability.

§1.2 Durable Execution

From a sync loop to an unstoppable workflow.

A naive agent loop dies the moment you deploy. Polu walked through why every serious agent infrastructure eventually rebuilds itself on durable execution — and why Temporal is the off-the-shelf answer.

A while-loop that calls a model, runs tools, and feeds results back is the textbook agent. It's also fragile in three specific ways: loops last hours, deploys resist completing, and any approval pause is fatal. The frame Polu used — "problem / constraint / solution" — is a clean diagnostic structure for any team facing the same wall.

The Problem → The Constraint → The Solution
The Problem
Loops last for hours. Deploys don't slow down for them. Any restart kills the loop's state.
The Constraint
Pause for days, resist any deploy. Two related needs: · interrupt for approval, · resume from checkpoint.
Solution: Temporal
Workflow as orchestration, activity as persisted step. Every step writes to the DB before returning. The loop becomes unstoppable.

The code, side by side

⚠ Synchronous Loop — fragile
function agentLoop() {
  const state = [userMsg];
  for (;;) {
    // 🔥 deploy = lost state
    const r = await callModel(state);
    await runTools(r);
  }
}
✓ Durable Workflow — unstoppable
workflow agentLoop() {
  for (;;) {
    // each step persisted to DB 
    await Activity.callAgent(step);
    await Activity.executeTool(step);
  }
}

The diff looks cosmetic — function becomes workflow, callModel becomes Activity.callAgent. The semantics are completely different. Every await in the durable version is a checkpoint that survives process death, deploys, network blips, and human approvals.

§1.3 Sandbox

The universal tool layer — give the agent a Linux box, not bash.

"Give the agent bash and let it rip" is not a product. It's a liability. The right primitive is an isolated, per-run sandbox with a pre-installed toolbox — bash is just one of the things inside it.

The Universal Tool Layer is where Polu's design becomes opinionated. Instead of mapping every external system to a custom tool, Dust gives the agent one tool: a fresh Linux x86_64 sandbox per run, with everything pre-installed and a typed CLI on top. The agent issues bash commands; the sandbox enforces governance.

Agent Loop → Sandbox → External world
Agent Loop
Temporal workflow (from §1.2). Sends bash tool + JWT to the sandbox; receives stdout / result back.
E2B Sandbox
Linux x86_64, isolated per run. Pre-installed: Python 3.12 · pandas · scipy · Node / tsx · jq · curl · git · ffmpeg. Mounted: /files/conversation (rw). Built-in tools: apply_patch · read_file · glob. Top-level: the dsbx CLI.
External APIs
Linear · Slack · GitHub · Notion — all reached through the sandbox via the CLI (e.g. $ dsbx tools linear create_issue --confirm ...), never directly by the agent.
"Give the agent bash and let it rip" is not a product. It's a liability.
Stanislas Polu · Dust

The architectural sleight-of-hand here is that the sandbox is per-run and isolated — it doesn't survive past the conversation. Persistence happens at the durable-workflow layer (§1.2), not the execution layer. The combination is what makes the system both safe (each run starts clean) and capable (the agent gets a full POSIX environment).

§1.4 Harness

The bi-directional harness — same view, both sides.

The third pillar is the part everyone forgets: the agent and the human need to be looking at the same things. Not "the agent has its own state" plus "the human has a UI". The same primitives, exposed symmetrically.

A bi-directional harness is the unsexy half of the architecture and the half that determines whether collaboration with an agent feels real or absurd. Dust exposes six shared primitives — Sandbox, Projects, Tasks, Conversations, Files, Tools — and the rule is that both human and agent operate on them.

Human → shared primitives → Agent
Sandbox
The Linux box from §1.3 — visible to both.
Projects
Long-running containers for related work.
Tasks
Discrete units the agent can be assigned and the human can review.
Conversations
The chat thread — but also a first-class object the agent can reference.
Files
Mounted into the sandbox, viewable in the UI, edited by either party.
Tools
Same governance rules whether the human invokes them via UI or the agent via CLI.

The principle is simple but rare in practice: whatever the human sees, the agent sees — and vice versa. No private agent state, no human-only side channels. This is what makes pause-for-approval (§1.2) genuinely useful: the human reviewing the paused state is looking at the same object the agent will resume on.

§1.5 Anatomy

The anatomy of a modern harness — three pillars together.

Polu's closing slide collapsed the whole talk into three pillars. Memorise these. Any agent platform missing one of them is incomplete.

Hosted Durable Execution

Survives restarts. Supports hours-long workflows.

· Pause for approval
· Resume from checkpoint

Sandbox with Tools

bash · python · node · jq · curl · git

· POSIX composability
· Persistent per session

Bi-directional Harness

Human sees → agent sees. Sandbox · Projects · Tasks · Conversations.

· Real collaboration

What's striking is how boring this stack is. Durable workflows have existed since the early 2000s. Sandboxes are well-trodden. The "harness" idea is just symmetric APIs. The novelty isn't in any one piece — it's in the insistence that all three are necessary, and that anyone shipping an agent without all three is shipping a demo.

02 Talk Two
Lifecycle · Evaluation

The two halves of evaluation — what you do before and after release.

§2.1 Pre-release

Pre-release — automated checks plus a human sanity loop.

Before anything ships, two flavours of automated evaluation run side by side, with a human evaluator pulled in for the cases the machines can't grade.

Pre-release evaluation lives inside the Development phase. The structure splits cleanly into automated and human work, and the automated half splits further by what kind of question you're asking.

Pre-release evaluation · Development phase
Verifiable evals
Deterministic checks. Did the agent return valid JSON? Did the function call match the expected signature? Pass/fail, no judgement needed.
Open-ended evals
LLM-as-judge or rubric-based. Was the response helpful, on-topic, well-formed? Graded by another model against a rubric — fast but fallible.
Human evaluation
Last resort, always present. Runs in parallel with the automated layer. Picks up the cases where automation disagrees with itself, or where the rubric can't capture nuance.

The structural point is that human evaluation isn't a final gate — it's a parallel track that calibrates the automated layer. Verifiable evals catch the cheap mistakes; open-ended evals approximate quality; human review keeps the rubric honest. Drop any one of the three and the other two drift.

§2.2 Post-release

Post-release — guardrails first, A/B second, monitoring throughout.

Once the model is in front of real users, the eval problem flips. You're no longer asking "is it good?" but "is it still good?" — and "is the new version better than the one users have right now?"

The slide showed a single dashed-line container labelled simply Post-release evaluation, with three components flowing into each other.

Post-release evaluation · Production phase
Guardrails
The first line of defence. Real-time checks that reject or override outputs before they reach users. PII filters, toxicity classifiers, jailbreak detectors. Always-on.
A/B Test
The decision layer. New model versions are compared against the current production version on real traffic, with statistical rigor. No graduation without significance.
Monitoring
Two parallel streams: online evaluations (lightweight automated checks running on live traffic) and manual audit (humans sampling production output for quality drift).

The order matters. Guardrails first because they protect users from the worst outputs. A/B testing second because it's how new versions actually graduate. Monitoring throughout because it's the only thing that catches slow degradation — the kind that pre-release evaluation, by definition, can't see.

The whole pipeline in one breath

Verifiable + open-ended evals catch the obvious before launch. Human review keeps the rubric calibrated. Guardrails catch the unsafe in production. A/B tests measure whether new versions are actually improvements. Monitoring catches drift. None of these substitutes for any of the others.

03 Talk Three
Platform · Enterprise architecture

From a tangle of agents to a clean platform.

§3.1 Orchestration

Orchestration agents — one front door, a mesh behind.

A real enterprise has dozens of domain agents. Putting them all in front of users is a disaster. The pattern: a single orchestration agent absorbs every user request and dispatches to the right domain agent.

The slide showed a clean, almost archetypal architecture: a human on the left, real-time user interactions flowing into a single orchestration agent, which fanned out to a dense mesh of domain agents — HR, Sales, IT, Legal, Marketing, Finance, Operations, Customer Support — each containing two or three specialised sub-agents.

Domains and their agents (typical enterprise pattern)
HR
Recruiting Agent · Onboarding Agent
Marketing
Content Agent · Campaign Agent
Sales
Lead Research Agent · Proposal Agent
Finance
Invoice Agent · Reconciliation Agent
IT
Access Agent · Ticket Triage Agent
Operations
Supply Chain Agent · Vendor Agent
Legal
Contract Review Agent · Policy Agent
Customer Support
Triage Agent · Resolution Agent

How they're connected

The mesh isn't a free-for-all. Three connection types appeared in the legend, and they matter:

  • Direct integration — solid lines. Tight coupling, used sparingly.
  • Indirect / API calls — dashed lines. The default. Stable contract, loose coupling.
  • Data / context flow — dotted lines. Implicit context-sharing, not a control channel.

The orchestration agent's job isn't to do the work. It's to (a) understand what the user is asking, (b) route to the right domain, and (c) hand back a coherent answer when domains have to be combined. That's it. Resist the temptation to make the orchestrator clever.

§3.2 Streaming

Batch processing is not good enough anymore — context gets lost.

The single most underweighted point of the day. AI workloads break batch ETL because context that was true at ingest time isn't true at inference time. The fix is real-time streaming from operational to analytical estate.

The slide title was the whole point: "Batch Processing is not good enough anymore in the age of AI as Context gets lost!" The picture underneath showed the typical enterprise data flow — but with the batch lag highlighted as the problem.

Operational Estate → Analytical Estate
Operational
IoT sensor data via MQTT. Operational databases. The estate where things actually happen.
Streaming
Kafka / equivalent as the spine. Continuous capture, not nightly dumps. Sub-second context preservation.
Analytical
Apache Iceberg + similar. The estate where AI/ML, dashboards, and notebooks read from. Same data, queryable.

Why batch fails for AI specifically

A traditional dashboard is fine with overnight refreshes — the human reading it has their own context. An agent doesn't. When an agent decides at 11:00 based on data refreshed at 02:00, nine hours of operational reality are invisible to it. That gap is where bad agentic decisions live. The fix isn't smarter prompting; it's closing the latency between operational truth and the agent's worldview.

§3.3 AI Gateway

The AI gateway — one abstraction in front of every model.

A single proxy between your applications and every LLM you might call. Switch providers without touching application code. Manage cost, auth, rate limits, and fallbacks in one place.

The pattern is simple enough to describe in one sentence: backend services and local experimentation both call a single AI Gateway, which fans out to whatever model provider is right for the request — Gemini, Anthropic, OpenAI, Mistral, Llama, anyone.

Apps → Gateway → Model providers
Inputs
Backend Services (production code) and Local Experimentation (engineers prototyping) both point at the same gateway URL.
AI Gateway
One proxy. Owns auth, rate limiting, cost tracking, fallback routing, prompt caching, observability. Application code never sees an API key.
Providers
Gemini · Anthropic · OpenAI · Mistral · Llama · whichever provider is best for the request. Adding a provider doesn't touch application code.

Why this matters more every quarter

The cost of not having a gateway used to be acceptable — you'd hardcode one provider and switch every two years. That stopped being true in 2025. New providers ship every month, models change weekly, and pricing shifts by orders of magnitude. The gateway is the layer that absorbs that volatility so your application doesn't have to.

It's also the layer where you enforce policy: which teams can use which models, who pays for what, what gets logged for compliance. Without a gateway, you discover later that the answers to these questions are scattered across forty repos.

04 Talk Four
Forecast · Closing keynote

Three predictions worth defending — and one sentence to memorise.

§4.1 Three Predictions

Three predictions worth defending.

Not "AI will change everything" platitudes. Three concrete shifts, each of which can be checked against reality in twelve months.

Compute ≠ training

Inference becomes the dominant share of AI compute spend — likely already true at hyperscalers, soon broadly visible.

That reshapes what "AI infrastructure" even means — and who wins selling it.

Outcomes, not tokens

Pricing shifts from per-token to per-task for at least one major category — likely customer support, then coding agents.

The pricing change pulls reliability, evals, and observability forward whether vendors are ready or not.

Eval becomes infra

Continuous trajectory-level evals on production traffic become standard, the way unit tests are standard for code.

Teams without this will quietly stall in the "pilot that never ships" phase.

Notice what's not in this list: nothing about model capability, AGI timelines, model releases, parameter counts. The bet is that the next twelve months aren't about models getting smarter — they're about the industrial layer around models maturing. Compute mix, pricing model, evaluation discipline.

The one sentence to memorise

§4.2 The Thesis

The next 12 months — agents become measurable, not magical.

Memorise this one. It's the centre of gravity for every other point on the day.
The Thesis
The next 12 months are not about agents becoming magical.
They are about agents becoming measurable.

The trick of this sentence is that it forecloses two debates at once. "Magical" is the breathless capability discourse — the next model is going to change everything. "Measurable" is the engineering discourse — the next year is about telemetry, evals, governance, control. The speaker is saying: stop having the first conversation; start having the second.

This is also the centre of gravity for every other point on the day. Polu's harness (§1) is what makes agents governable enough to be measured. The evaluation pipeline (§2) is the measurement. The orchestration mesh (§3) makes agents visible enough to be measured. Predictions one through three (§4.1) describe the economic consequences of measurability — pricing, infrastructure, evals as infra.

§4.3 The Buying Shift

Buying agents means buying outcomes — three shifts in the question.

If the industry is moving from per-token to per-task pricing, the buyer's question changes shape too. The slide reframed it as three parallel shifts.

From capability to completion

Not "which model is best?" but "does the workflow finish?"

From demos to evals

Buyers test on their own tickets, PRs, invoices, and incidents — not the vendor's curated showroom.

From accuracy to control

Audit logs, cost caps, approvals, rollback, and blast radius — the operational primitives matter more than the score.

The buying question becomes: can I trust this system to act?
Closing keynote · Applied AI Berlin · 28 May 2026

Each of the three shifts pulls power from the vendor's marketing team to the buyer's engineering team. Capability benchmarks live on vendor websites; "does the workflow finish?" lives in the buyer's bug tracker. Demos are theatre; evals on your own tickets are evidence. Accuracy is one number; control is a posture. The whole talk pushes the buyer toward becoming a competent evaluator rather than a passive customer.

§4.4 Closing 2×2

Four phrases — print them above your desk.

The closing slide was a 2×2 of four declarative claims. Each one summarises a different chunk of the talk. Read together, they're the most compact statement of where the industry is headed.
Inference is the workload
Evals shift to trajectories
Orchestration is the product
Workloads are long-running

The four claims interlock. If inference is the workload (not training), then the unit cost that matters is per-inference and pricing follows (talk 4.3). If workloads are long-running, you need durable execution (talk 1.2). If orchestration is the product, then the orchestration layer is where the value accrues (talk 3.1). And if evals shift to trajectories — to whole sequences of model calls in production rather than single-prompt benchmarks — then evaluation becomes infrastructure (talk 4.1).

Four sentences. Twenty words. Most of what was said all day, compressed.

Bringing it home · For DocuSketch

Four talks, five actions for our R&D org.

Action 01 · Audit our agent stack

Map our current agentic plumbing against Polu's three pillars: durable execution, governed sandbox, bi-directional harness. Likely gaps: no durable execution layer at all; partial harness. Output: one-pager for Eran and Malte by end of June.

Action 02 · Close the LLM side-door

Everything routes through Bedrock today except local engineer experimentation. That side-door means we don't have full cost attribution or audit. Q3 action: single AI gateway, no exceptions.

Action 03 · Build a post-release eval loop

Our AI Water Mitigation Estimate has good pre-release coverage but no formal post-release monitoring or A/B harness. Q3 priority: guardrails + online evals + manual-audit sampling cadence.

Action 04 · Reframe the AI-first KPI

Current KPI flavour: "Claude Code installed." New KPI flavour: "engineers above effectiveness threshold." Same point Later.com made (File №.07). The next twelve months are about measurability, not magic.

Action 05 · Apply the buying filter

Every AI tool purchase in H2 must demonstrate on our data, ship with audit logs, and include cost caps as contractual line items. Capability → completion. Demos → evals. Accuracy → control.

Closing thought

The thread running through all four talks: the AI industry is moving from capability theatre to operational discipline. The teams that win the next year are the ones who decided that measurability is the product, and started building accordingly.