Details
ai / professional
ABCD
I built ABCD from scratch at Adopt AI as an open-source coding-agent workspace for turning HAR/API recordings into WDL actions, tests, drafts, and publishing steps.
Live 3D architecture
Use the navigator to move between diagrams and related work, then scroll for more details.
Action authoring runs through a coding-agent workspace, Python CLI, local WDL edits, backend execution, and traces.
Role and problem
I built ABCD from scratch to shorten Adopt action authoring.
Built from scratch
I built ABCD alone from scratch at Adopt AI.
Why I built it
Adopt actions were written in WDL, and new customer integrations could stall when private web APIs had wrong or incomplete schemas. Forward-deployed engineers spent too much time translating recorded behavior into reliable actions.
Odoo demo
In the Odoo demo, one recorded HAR went through authentication discovery, API/schema ingestion, action creation, workflow creation, and cloud publication. I took that integration task from 7 days to 2-3 hours.
Implementation mechanisms
The code organizes agent context, discovery, tests, drafts, and publication.
Agent workspace
ABCD gives Cursor or Claude Code platform tools, instructions, sub-prompts, and WDL documentation. The coding agent edits local action files while the Python CLI resolves context and calls the Adopt backend.
Profile inheritance
Client profiles use a recursive non-empty merge from environment to agent to action. More specific profile values override inherited values, while empty strings, empty lists, empty objects, and null do not erase parent settings. .env loading uses a separate search from the active environment toward the workspace root.
Discovery and cache
Semantic discovery uses normalized Sentence Transformer embeddings with a FAISS inner-product index, so cosine similarity works on normalized vectors. Hybrid action search combines semantic candidates with text matching and keeps the maximum score for each item. The narrow cache hash covers id, title, and description, not the whole API schema.
Tests and versions
The test runner can send local WDL to /run-wdl, run multi-turn cases, inline child actions under a parent, use --remote for registered actions, and use --compile or --validate when requested. A successful test reports execution status; checking the output still requires reviewing its contents. Checkout restores local WDL files, not external API side effects.
Engineering benefits
Concrete mechanisms that made action authoring easier.
Trace-guided iteration
Engineers could edit WDL, run concrete cases, inspect traces, identify the failed operation, and prepare drafts without copying each API detail by hand.
Composed action tests
Multi-turn cases and parent agents with inline child actions let the team test workflows closer to the way composed Adopt actions run.
RCE connection
After the Remote Code Execution layer existed, ABCD could target Lambda or Sandbox and upload generated Lambda code to the platform registry.
Publication control
Drafts and backend publication are separate. Publication asks for confirmation by default, --yes skips the prompt, --dry-run previews changes, and child action publication failures warn rather than acting as one transaction.
Stack and domains
- Python
- Poetry
- WDL
- HAR analysis
- LLM agents
- FAISS
- Sentence Transformers
- Pydantic
- Playwright