Skip to content

Commit f57cf0e

Browse files
committed
New post
1 parent fbef4df commit f57cf0e

1 file changed

Lines changed: 133 additions & 0 deletions

File tree

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
layout: blog
3+
title: Reading the Swamp
4+
description: "Day two with Swamp: I climbed out of the mud and actually read the docs on swamp.club — and the framework for giving AI agents typed, versioned, deterministic memory turned out to be rather brilliant."
5+
---
6+
7+
Two days ago I put my hands in the [Swamp](https://swamp.club){:target="_blank"} and they got, predictably, very dirty.
8+
9+
Then I did something radical, revolutionary, somehow epic.
10+
11+
I read the ***ing manual.
12+
13+
No.
14+
15+
It's a lie, I didn't.
16+
17+
I forced an innocent AI to read it and summarize and explain the whole thing with the patience only AIs can have nowadays.
18+
19+
This post, written in 4 hands, well, two hands and a bunch of tokens, (you will never know, nor care, who wrote what), is the final, public, of such a journey into the swamp.
20+
21+
## The map I should have read first
22+
23+
Day one was hands-in-the-mud. I installed the tool, pointed an agent at it, and spent several hours and an indecent amount of tokens fighting a bug which could be avoided just by using a better name. Btw, the bug has already been corrected and the fix released (thank you Paul), what a time to be alive!
24+
25+
Day two I climbed back onto dry land, wiped my glasses (wait, I don't have glasses :-> ), and actually looked at the map.
26+
27+
The map, it turns out, is good. Suspiciously good. There is a whole [manual](https://swamp.club){:target="_blank"} on swamp.club, neatly organized into tutorials, how-to guides, reference and explanation, written in a dry, essential, effective and ultimately boring style (had to say that also here, Adam :).
28+
29+
The homepage line that meant absolutely nothing to me on day one — *"deterministic automation for AI agents"* — finally clicked. So let me try to explain it, naively, the way you explain a thing the morning after you finally got it.
30+
31+
## What I finally understood
32+
33+
Here is the problem Swamp is staring at.
34+
35+
An AI agent is a brilliant amnesiac improviser.
36+
37+
Every session it re-derives the world from scratch, does something genuinely clever, and then the clever thing dissolves into the chat history.
38+
39+
Capabilities lost in chat, like tears in rain.
40+
41+
One-off scripts that rot.
42+
43+
Ephemeral logs nobody can query.
44+
45+
Credentials scattered wherever the agent felt like leaving them.
46+
47+
I know this dance well. I *am* the continuity in that dance — me, my head, and a growing pile of `CLAUDE.md` files.
48+
49+
Swamp's bet is to give the agent a **substrate** instead.
50+
51+
A place where the work it does becomes typed, versioned, queryable, composable — and therefore survives. The agent stops winging it and starts *building* things.
52+
53+
It is, more or less, the difference between asking a consultant to solve your problem and asking them to leave behind a reusable module.
54+
55+
For a man who spent twenty years preaching reusability in the Puppet world, that sentence clicked on day one, but I didn't full realized that immediately.
56+
57+
## Six creatures living in the swamp
58+
59+
The framework decomposes automation into a handful of primitives.
60+
61+
They compose.
62+
63+
Of course they compose — that is the whole point — but it still made me happy to see it.
64+
65+
**Models.** Typed interfaces to anything. *"Zod schemas in, validated data out."* A model is a typed interaction with an external system: it has a type — something like `command/shell` or `@swamp/aws/ec2/vpc` — methods such as `create`, `sync`, `delete`, and typed input and output schemas.
66+
67+
The detail that made me sit up: reusable *logic* lives in TypeScript, while *configuration* lives in YAML. So the agent doesn't write code to configure things — it reasons over data.
68+
69+
Anyone who has agonised over "should the AI write code here, or data?" feels that one in the spine.
70+
71+
It is the Puppet resource abstraction layer, reborn for agents.
72+
73+
**Workflows.** Multi-step DAGs of jobs, with parallel steps, and — this is the good bit — they nest. Steps chain data from earlier steps with CEL expressions, so the output of one job feeds the input of the next, typed all the way. It is a pipeline, except every edge is typed and every node leaves an immutable, versioned artifact behind. My day-one naming bug lived exactly here, in a model the loader refused to discover. Now I understand why the loader has opinions.
74+
75+
**Vaults.** Encrypted secret storage, referenced by expression, resolved at runtime rather than at planning time. Swappable providers: local encryption for me on my own, AWS Secrets Manager or 1Password for a team. Boring. I mean that as a compliment. Secret management that is boring is secret management done right.
76+
77+
**Extensions.** The thing I face-planted into on day one. Extensions package reusable components — models, vault providers, execution drivers, datastores, reports — and you publish them to a registry where they become *"a full citizen immediately"*. On day one this scared me, and it still does a little. On day two I also see it for what it is: a package manager for agent capabilities.
78+
79+
And no, Matteo, it's not just yet another collection of skills, hope this post will help in clarifying , what I not able to explain correctly.
80+
81+
**Reports.** Structured analysis after every run, in Markdown *and* JSON. The agent doesn't just do the thing — it tells you what it did, in a format a human and another machine can both read. An audit trail as a first-class citizen, not an afterthought.
82+
83+
**Skills.** Markdown documents that teach the agent how to use Swamp, loaded on demand when a trigger fires. So the agent learns Swamp *from* Swamp. The framework documents itself to its own operator. Mildly meta. Slightly unsettling. Mostly brilliant.
84+
85+
## Not only for infrastructures
86+
87+
On day one I kept asking the same nervous question: *what repo?* Infrastructure repo? Software repo? Any repo?
88+
89+
The honest answer the docs gave me is: **any repeatable, multi-step thing.**
90+
91+
Infrastructure is the obvious case — inventory, provisioning, an AMI lookup feeding an EC2 model. Expected. Adam Jacob, System Initiative — of course it does infrastructure.
92+
93+
But the moment you stop reading "automation for AI agents" as "infrastructure" and start reading it as *"anything an agent currently does ad hoc in a chat window"*, the thing gets a great deal bigger.
94+
95+
Webframp, wrote a [enlightening post](https://webframp.com/posts/swamp-beyond-infrastructure/){:target="_blank"} about this, give it a look.
96+
97+
Use cases are whatever you do more than once with an agent (or you should/may do with it).
98+
99+
Think about automated transcript generation of a podcast episode, extraction of summaries, tags, generation of posts, web pages and all the corollary stuff.
100+
101+
Or security operations — key rotation. Rotate an API key, update the vault, notify the team. Three steps, secrets involved, must be repeatable, must be auditable. Swamp's home turf.
102+
103+
Or data remediation — a messy media library, a directory of inconsistently named files, a spreadsheet that needs reconciling. Boring, repetitive, the kind of job you hand to an agent once and can then never reproduce.
104+
105+
Or the dull business automations — invoicing, monthly reports, the recurring thing you always forget until it is late.
106+
107+
The pattern underneath all of them is the same. The moment you frame a task as *"a workflow of typed models"* instead of *"a thing I ask the agent to improvise again"*, it stops being a one-off and becomes an **asset**. Reusability, abstraction, repeatability, traceability — my day-one sacred principles — except now they apply to what the AI does, not only to what I write by hand.
108+
109+
## Teaching my agents to swim
110+
111+
This is the part I am still slightly amazed by.
112+
113+
Right now my working relationship with an agent is: brilliant intern, infinite enthusiasm, almost zero long-term memory (memory.md? really?). Every morning it forgets it ever met me. It re-derives, re-discovers, re-improvises, and occasionally re-breaks. It is, as I said two days ago, smart for smart users — which is a polite way of saying *I* carry the continuity, in my head and in config files.
114+
115+
Swamp moves that continuity out of my head and into a structured substrate. The agent's work becomes:
116+
117+
- **typed**, so it can no longer lie to itself quite so cheerfully — and on day one the AIs were *always* reassuring me everything was fine while nothing worked;
118+
- **versioned**, so I can see what actually changed;
119+
- **auditable**, through reports;
120+
- **repeatable**, so the second run is deterministic rather than a fresh improvisation;
121+
- **shareable**, through extensions.
122+
123+
The agent stops being an intern who forgets everything and starts being a colleague who builds and reuses a real toolkit. That is a genuinely different way of working — and I did not expect a download-and-run-a-script tool to be the thing that handed it to me.
124+
125+
## Conclusions
126+
127+
I am, clearly, hooked. The hands are still a bit muddy.
128+
129+
Still wondering about all the possible use cases, for the world and for myself, but Alvabot and Webframp (hope he is human, at least) are helping.
130+
131+
We'll keep wading.
132+
133+
Alvabot and Alessandro Franceschi

0 commit comments

Comments
 (0)