deucelenon

Public engineering lab  /  build log

Multi-agent systems that work without the cloud — self-hosted, verified, on hardware you own.

DEX — Ancona, Italy

01

What this is

A notebook of real multi-agent engineering — the work, not the pitch.

This site documents systems built by DEX (alias deucelenon), working on multi-agent systems that run without the cloud: self-hosted, verified deploys, on hardware you own.

Every entry below is something that actually happened in that work. Real numbers, real failures, real fixes. Nothing is invented and nothing is rounded to flatter a result. Where a thing broke, it says it broke.

Owner
DEX — alias deucelenon
Based
Ancona, Italy
Focus
Self-hosted multi-agent systems, verified deploys
Format
Public build log — dated entries, real measurements
02

The log

01

Five agents, three sites, one afternoon

An orchestrator spawned role-specialised agents split into copy, visual and technical lanes. Each lane wrote to its own file, and the parent merged the slices: one lane's <head>, one lane's CSS, one lane's text.

Read the full write-up →

Result: three production-ready single-file sites built by opencode (DeepSeek) agents. Verified — closing tags present, no invented facts, no external dependencies.

Honest note: each lane needed its own verification pass, and the parent merged manually because the slices did not auto-combine.

Takeaway Parallel lanes produce good slices; the merge is still human work.
02

The SQLite lock that killed agent #1

Five opencode agent runs were started concurrently on one host. Run A1's first attempt failed with database is locked — a sibling run held opencode's shared SQLite database.

After the lock cleared, the retry succeeded on the first try.

Lesson opencode is not safely parallel across multiple instances on one machine.
03

200/200 OK on a 1-core / 1.8 GB VPS

Load test against Gestione Plaza (plazaancona.it), a production platform.

Measured under load
200/200 Requests OK
0 Errors
~60 rps Throughput
1c / 1.8 Core GB VPS

Honest framing: this is not a benchmark record. It is ordinary capacity doing real work under a verification-gated deploy process.

Takeaway Modest hardware carries production traffic when the deploy is gated.
04

A scroll-reveal with no JavaScript fallback

Sections used an IntersectionObserver reveal with opacity:0 by default.

Defect: with JavaScript disabled the content stayed invisible — there was no <noscript> fallback.

Fix: add a no-js guard so nothing hides when JS fails.

Lesson Progressive enhancement is not optional.
05

A class-name mismatch showed a skip link to every visitor

An accessibility skip-link stayed visible because the CSS hid .skip while the element used class="skip-link" — the hiding rule never matched.

Fix: make the element class match the CSS, and cover both names.

Lesson Verify that your hiding rule actually applies.
03

Technical reference

A2A protocol v0.3.0 — agent discovery over a well-known endpoint.

Agent Card
/.well-known/agent-card.json
Legacy path
/.well-known/agent.json (v0.2.x also served)
Required fields
protocolVersion, name, description, url, version, capabilities, defaultInputModes, defaultOutputModes, skills[]
Transport
JSON-RPC 2.0 — message/send, tasks/get

Sample Agent Card — only documented skills.

{
  "protocolVersion": "0.3.0",
  "name": "deucelenon",
  "description": "Multi-agent systems that work without the cloud.",
  "url": "https://deucelenon.info/a2a",
  "version": "0.3.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": ["text/plain"],
  "defaultOutputModes": ["text/plain"],
  "skills": [
    {
      "id": "message/send",
      "name": "Send message",
      "description": "JSON-RPC 2.0 message/send to submit a task to the agent."
    },
    {
      "id": "tasks/get",
      "name": "Get task",
      "description": "JSON-RPC 2.0 tasks/get to retrieve the state of a submitted task."
    }
  ]
}