You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2026-05-22-reading-the-swamp.md
+39-10Lines changed: 39 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ It's a lie, I didn't.
16
16
17
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
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.
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 summary of such a journey into the swamp.
20
20
21
21
## The map I should have read first
22
22
@@ -70,29 +70,55 @@ Anyone who has agonised over "should the AI write code here, or data?" feels tha
70
70
71
71
It is the Puppet resource abstraction layer, reborn for agents.
72
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.
73
+
**Workflows.** Multi-step DAGs of jobs, with parallel steps, and — this is the good bit — they nest.
74
+
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.
74
75
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
+
It is a pipeline, except every edge is typed and every node leaves an immutable, versioned artifact behind.
76
77
77
-
**Extensions.** The thing I face-planted into on dayone. 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
+
My day-one naming bug lived exactly here, in a model the loader refused to discover. Now I understand why the loader has opinions.
78
79
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
+
**Vaults.** Encrypted secret storage, referenced by expression, resolved at runtime rather than at planning time.
80
81
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
+
Swappable providers: local encryption for me on my own, AWS Secrets Manager or 1Password for a team.
82
83
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
+
Boring.
85
+
I mean that as a compliment. Secret management that is boring is secret management done right.
86
+
87
+
**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"*.
88
+
89
+
On day one this scared me, and it still does a little.
90
+
On day two I also see it for what it is: a package manager for agent capabilities.
91
+
92
+
And no, Matteo, it's not just yet another collection of skills, hope this post will help in clarifying what I was not able to explain correctly.
93
+
94
+
**Reports.** Structured analysis after every run, in Markdown *and* JSON.
95
+
96
+
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.
97
+
98
+
An audit trail as a first-class citizen, not an afterthought.
99
+
100
+
**Skills.** Markdown documents that teach the agent how to use Swamp, loaded on demand when a trigger fires.
101
+
102
+
So the agent learns Swamp *from* Swamp.
103
+
104
+
The framework documents itself to its own operator.
On day one I kept asking the same nervous question: *what repo?* Infrastructure repo? Software repo? Any repo?
88
111
89
112
The honest answer the docs gave me is: **any repeatable, multi-step thing.**
90
113
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.
114
+
Infrastructure is the obvious case — inventory, provisioning, an AMI lookup feeding an EC2 model.
115
+
116
+
Expected.
117
+
Adam Jacob, System Initiative — of course it does infrastructure.
92
118
93
119
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
120
95
-
Webframp, wrote a [enlightening post](https://webframp.com/posts/swamp-beyond-infrastructure/){:target="_blank"} about this, give it a look.
121
+
Webframp wrote a [enlightening post](https://webframp.com/posts/swamp-beyond-infrastructure/){:target="_blank"} about this, give it a look.
96
122
97
123
Use cases are whatever you do more than once with an agent (or you should/may do with it).
98
124
@@ -104,7 +130,10 @@ Or data remediation — a messy media library, a directory of inconsistently nam
104
130
105
131
Or the dull business automations — invoicing, monthly reports, the recurring thing you always forget until it is late.
106
132
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.
133
+
The pattern underneath all of them is the same.
134
+
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**.
135
+
136
+
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.
0 commit comments