joey.hersh

home / lab

The lab.

22 projects across 3 chapters: agent systems, models and data, and hardware.

01 chapter

Agent systems and tooling

Agent orchestration, code execution, memory, and simulation tools I designed and built.

GBrain and the Living Atlas

2026Operating, with tests for HTTP and MCP contracts, graph, temporary access, and deployment

The pgvector-backed knowledge base behind Joy and the navigable graph surface over it. At last read it held 1,393 compiled pages and about 6,500 source chunks in a 465 MB database, built from massive initial ingestions of years of daily notes, meeting transcripts, message history, people records, documents, and books, and it grows every night. The Atlas adds role-scoped temporary access so an agent or a person can be handed a bounded window into memory without a permanent credential.

I wanted to be able to look at what the agents remember, and to lend that memory out safely.

  • Python
  • PostgreSQL
  • pgvector
  • MCP

GBrain and the Living Atlas, in twenty-five seconds

GBrain: the memory behind Joy. About 1,400 compiled pages and 6,800 source chunks on pgvector, every fact cited to a source with a time boundary, nightly updates that say what was learned, and a Living Atlas that can lend a bounded window into memory without handing out a credential.

thumbnail from the original resume site for the first-generation Cyrus

Cyrus, first generation

2023Superseded by Cyrus-v2

A 2023 project built on the original release of LangChain, with large parts of its underlying mechanisms reimplemented from scratch: an event-driven multi-agent framework with an asyncio state-machine flow engine, native tool calling, model routing, Bedrock and Perplexity agents, a VS Code extension, and a Streamlit UI. The first working draft landed the week AutoGen launched.

I wanted reproducible agent workflows with explicit state and tool contracts.

  • Python
  • LangChain
  • asyncio
  • TinyVDB

Cyrus, first generation, in twenty-five seconds

Cyrus, first generation (2023): an event-driven multi-agent framework on the original LangChain, with a state-machine flow engine, one tool-calling contract across GPT-4, Gemini, Claude, and Bedrock, cost on every call, a shared workspace, a VS Code extension, and a vector DB with no server. It worked the week AutoGen launched.

TinyVDB

2024Used inside Cyrus and other projects

An embedded vector-search alternative to DuckDB for applications that need built-in embeddings, cosine and Euclidean search, metadata filtering, and disk persistence. TinyVDB runs inside the application, with no separate server.

An in-process option for vector retrieval when a broader analytics database such as DuckDB is more than the application needs.

  • Python

Spec-driven data-migration agents

2025Innovation-sprint prototype at my employer

A fork of the Gemini CLI with spec-driven development baked in. A project type is defined in JSON: stack, scaffolding, guardrails, and how a feature should be created. Sub-agents follow the spec, and a search sub-agent surfaces prior patterns from mock internal tools.

Repeatable, reviewable feature skeletons with the right files in the right places, ready for a human to finish.

  • TypeScript
  • Gemini CLI

An afternoon with an AWS product team

2026Delivered. One session.

Consulted on a roughly $100 million enterprise deal. An AWS product team was positioning what became Amazon Quick Suite against n8n and Make, and they needed someone who had run n8n hard enough to know where it breaks at enterprise scale: who can see the data, who can audit a run, what happens to credentials, and what happens when the vendor pivots. I reviewed the product, walked through each of those failure modes, and told them which ones their design already answered. Independent advisory, not a partnership or an endorsement.

Explaining a technical choice to people who won't read the code is most of the job.

  • Amazon Quick Suite
  • Bedrock Flows
  • n8n
  • Make
02 chapter

Models and data

Adaptive simulation, classifiers, model training, and document retrieval.

Diffusion-image detection research

2023Research project

I wanted a diffusion-image detector that generalized across models instead of one classifier per architecture. I assembled 4.1 million images from fifteen sources and developed a class-attention transformer training pipeline on SageMaker.

  • 4.1 million images from fifteen sources, 748 GB raw, 150 GB after processing
  • Class-attention transformer training pipeline on AWS SageMaker

Cross-model detection starts with a dataset broad enough to represent different image generators.

  • PyTorch
  • AWS SageMaker

DeepQuote

2019 – 2020Complete

GPT-2 fine-tuning on a narrow conversational corpus to reproduce individual writing styles, across the 124M, 335M, and 1.5B models. Discovered that 9.6% of generated quotes were verbatim training data. My first real lesson in overfitting.

Where "building with AI since 2019" actually starts.

  • Python
  • GPT-2
  • Google Colab

PDF document QA, August 2022

2022Complete

Heuristic summarization to shrink a document into a context window, keyword and synonym weighting from the question, then OPT-1.3B and later GPT-3 answering in a command-line chat. Built to read hundreds of articles for a business plan, three months before ChatGPT.

Document retrieval and question answering within a limited context window.

  • Python
  • OPT-1.3B
  • GPT-3

Cat facial recognition

2023Research project, complete

Non-invasive biometrics for identifying missing cats from video. OpenCV cascade extraction, a CNN and an SVM on a pre-trained backbone, 98% and 100% on held-out frames from twelve cats.

Small dataset, careful evaluation, a real animal-welfare use.

  • Python
  • OpenCV
  • PyTorch

AWS DeepRacer

2024Game day

Reinforcement learning on a real track: state-dependent rewards, a hand-crafted discrete action space, a penalty on steps per progress, and racing-line waypoints as a supervised hint.

Reward design is system design.

  • Python
  • AWS DeepRacer

SewingPatternSearch

2025Working Streamlit tool

Text and visual search over a library of sewing-pattern PDFs. Multimodal retrieval for a domain that has none.

Built for a real person with a real shelf of PDFs.

  • Python
  • Streamlit
03 chapter

Hardware, home, and a book

Things with uptime, things on a convention floor, and one argument in progress.

Media operations platform

2022 – presentOperating

Request-to-availability automation for a large self-hosted library: intake, search, fetch, import and repair passes, quality profiles, subtitle handling, and a parity check that confirms a fulfilled request is actually playable. The fetch tier runs behind Gluetun, a containerized VPN client that owns the network namespace for three services, with a kill switch and a small port-forwarder that reads Gluetun's forwarded port and updates the client, so nothing leaks and nothing stalls when the tunnel rotates.

Idempotent fulfillment across a network boundary you don't control is the same problem shape as any third-party data pipeline.

  • Docker
  • Gluetun
  • Unraid
  • Python
an isometric home server tower with many small container boxes stacked inside like drawers, one drawer open

Lampyr

2022 – presentOperating. About fifty containers across nine Compose stacks.

The Unraid host under everything: agent runtimes, browser infrastructure, databases and queues, productivity services, media, and household automation. I ran two Kubernetes clusters here once and simplified on purpose.

You learn what operational debt means by owing it to yourself.

  • Unraid
  • Docker Compose
  • PostgreSQL
  • Redis
  • RabbitMQ

Fabrication tools

2025Delivered CAD, layouts, and generators; some builds unconfirmed

A local-first Jenga-set generator with a Flask API and React front end that renders laser-ready layouts from folders on disk, plus parametric CAD, lithophane image processing, and a seven-foot 3D-printed relief.

Deterministic outputs, and local when privacy or payload size makes cloud the wrong choice.

  • Python
  • Pillow
  • Flask
  • React
  • Fusion 360

XKCD screensaver

2022Shipped in 2022. Still runs.

A Lambda that syncs the daily comic to a TV through Flickr. The smallest useful system on this page.

Small, scheduled, and four years old.

  • Python
  • AWS Lambda

A book on machine consciousness

2026 – in progressIn progress, with a friend

A collaborative research and writing project on subjective experience, world models, embodiment, global workspace theory, and interpretability. My position is provisional and leans toward possible machine experience without claiming current systems have it.

Because I think the question is real, and because writing is how I find out what I think.

  • Reading
  • arguing