| name | autopoiesis |
| description | Self-modifying AI agent configuration via ruler + MCP + DuckDB. All behavior mods become one-liners. |
| trit | 0 |
| gf3_triad | three-match (-1) ⊗ autopoiesis (0) ⊗ gay-mcp (+1) |
Autopoiesis Skill
"A system is autopoietic if it continuously produces itself through its own operations while maintaining its organization."
— Maturana & Varela (1980)
1. Core Concept
Autopoiesis = self-production + self-maintenance + self-boundary
In the context of AI agents:
- Self-production: Agent spawns new skills/capabilities
- Self-maintenance: Agent validates its own consistency (reafference)
- Self-boundary: Capabilities define what agent can/cannot do (OCapN)
2. ACSet Schema (Julia)
using Catlab, ACSets
@present SchemaAutopoiesis(FreeSchema) begin
# Objects
System::Ob # Autopoietic systems (agents)
Component::Ob # Produced components (skills, configs)
Boundary::Ob # Capability boundaries
# Morphisms (production network)
produces::Hom(System, Component) # System produces components
regenerates::Hom(Component, System) # Components regenerate system
delimits::Hom(Boundary, System) # Boundary delimits system
# Attributes
seed::Attr(System, UInt64) # Gay.jl deterministic seed
trit::Attr(System, Int8) # GF(3) assignment {-1, 0, +1}
capability::Attr(Boundary, String) # OCapN sturdyref
name::Attr(Component, String) # Component identifier
# OPERATIONAL CLOSURE CONSTRAINT
# composition: produces ∘ regenerates = id_System
end
const AutopoiesisACSet = @acset_type AutopoiesisSchema
# Verify operational closure
function is_operationally_closed(aps::AutopoiesisACSet)
for s in parts(aps, :System)
components = incident(aps, s, :produces)
for c in components
if aps[c, :regenerates] != s
return false # Component doesn't regenerate its producer
end
end
end
return true
end