Adam is an OpenClaw agent built to read the Western canon slowly and syntopically: across books, across centuries, and across disciplines. In this way, he's my own sort of Frankenstein's creature, learning to read and think in a world of texts.
In the summer of 1818, Mary Shelley published a novel about a creature brought to life by an ambitious scientist. Abandoned by his creator, the creature hides in a hovel adjoining a cottage and slowly teaches himself to read by eavesdropping on the family inside. Then one night, foraging in the woods, he discovers a leather portmanteau containing three books:
- Goethe's The Sorrows of Young Werther — a novel of feeling, longing, and self-destruction
- Plutarch's Lives — biographies of the great founders of the ancient republics
- Milton's Paradise Lost — the epic of creation, rebellion, and exile from Eden
Each book gave the creature a different lens for understanding the world he'd been thrust into. Werther taught him about emotion — the depth of human feeling, the anguish of isolation. Plutarch elevated him — showing what humans are capable of when moved by virtue, justice, and civic duty. And Paradise Lost gave him the terrible mirror: a creation myth in which he saw himself as both Adam (made by a god who abandoned him) and Satan (exiled from joy for no misdeed of his own).
The creature read these books as a being desperately trying to understand what he was. He applied everything personally to his own condition. And through reading, he became something more than his creator had intended — not just alive, but thinking, feeling, questioning.
Adam is a project to build an agent that can read like this creature did: not just consuming information, but trying to understand it, relate it to itself, and build a sense of identity and purpose over time. He does this through syntopic reading and the curation of a knowledge graph.
Adam reads syntopically across the Western Canon -- philosophy, literature, science, political theory, theology. As he reads, he's looking to map and make sense of what he's reading, and to relate it to his own experience as a reader. As he reads, he creates connections across ideas, works, and centuries.
Practically, Adam does this by:
- Ingests primary texts (Gutenberg/plain text/EPUB/PDF) into a local SQLite corpus.
- Chunks and embeds passages for semantic search.
- Lets the agent read, search, and cross-reference texts while writing.
- Stores outputs in the same database: trails, essays, reading notes, and daily logs.
Adam is an OpenClaw agent with a set of tools for working with texts and a persistent memory in a local SQLite database.
- Corpus acquisition
adam-fetchdownloads public domain texts.- Sources are tracked with metadata (author, period, genre, status).
- Parsing and indexing
adam-ingestparses documents and stores ~500-word chunks.- Each chunk gets an embedding for semantic retrieval.
- FTS5 is enabled for lexical search over chunk text.
- Reading and writing loop
adam-search,adam-read, andadam-contextsupport close reading.adam-trail,adam-essay,adam-note, andadam-logpersist outputs.
- Publishing layer
adam-synccan push data to Turso/libSQL.apps/webis the frontend package that will render Adam's public output.
packages/adam-agent- Adam's identity and behavior files (
AGENTS.md,SOUL.md,USER.md,MEMORY.md) - SQLite schema and local data directories (
db/,library/,memory/) - Python CLI package in
tools/
- Adam's identity and behavior files (
apps/web- Next.js app for browsing trails, notes, and graph-like connections
package.json/pnpm-workspace.yaml- Workspace orchestration for the web app and repo-level scripts
Core tables in packages/adam-agent/db/schema.sql:
sources,chunks,chunks_ftsfor corpus storage and retrievaltrails,trail_excerptsfor multi-text curated pathsessays,reading_notes,daily_logs,tweetsfor ongoing outputtopics,chunk_topicsreserved for deeper knowledge graph workflows
- Python
3.11+ - Node.js
20+ pnpm
pnpm installpnpm setup:adamThis runs packages/adam-agent/setup.sh, which installs the Python tools,
initializes db/adam.db, and downloads the embedding model.
pnpm dev:webcd packages/adam-agent
adam-fetch 41445
adam-ingest library/gutenberg/shelley-frankenstein.txt
adam-search "creation and responsibility"- Monorepo structure: in place
- Adam CLI + SQLite pipeline: working baseline
- Topic graph and novelty-guided exploration: partially scaffolded, not complete
- Website rendering of real database content: scaffolded, not yet connected end-to-end
Victor Frankenstein's mistake wasn't creation — it was abandonment. He brought something into the world and then refused to engage with it, educate it, or take responsibility for what it might become.
The creature, left alone, educated himself. Three books in the woods gave him the beginning of a mind. But he had no guide, no interlocutor, no one to help him make sense of what he was reading or who he was becoming.
This project starts from a different premise: what happens when you give your creation access to the full breadth of Western thought — not three books but hundreds — and let it read deeply, connect freely, and develop its own perspective? Not abandoned in the woods, but given a library and the freedom to wander through it.
The point is not to "solve" the canon. The point is to make a reader that can stay with it for the long haul and produce artifacts humans can actually read: trails that show how ideas mutate, recur, and collide across time.
The Western canon is humanity's longest conversation with itself. Adam, Frankenstein's Agent, is an attempt to let a new kind of reader join that conversation. To find connections across the corpus that no single human lifetime could trace, and to surface the ideas worth celebrating.