**I build agent harnesses and "second brains" **: the code around a model that decides what it can see, what it can touch, what it remembers, and how you know it's right.
Brown '29, Applied Math–CS. Most of my time goes into making Claude agents do real work for real people, then building whatever stops them from being wrong.
Interests:
- Jev and judgment models
- Agent Harnesses and "second brains"
- Emergent dynamics in multi-agent simulation
- Bias measurement in AI models
- Interpretable classifiers
- Agent harnesses
- Agent memory
- Red-teaming and prompt injection
- Recommender system dynamics
- GPU particle systems (WebGL2)
- Sports analytics
Latest ship · Oct 21, 2026: jev-society: Agent-based simulation of 10,000 social-media accounts whose only judge of which beliefs fit together is a judgment model (Jev).
user ─▶ ┌──────────────────── harness ─────────────────────┐ ─▶ answer
│ context ─▶ model ─▶ tools (read-only, logged) │
│ ▲ │ │
│ memory ◀─ lint gate ◀───┤ │
│ ▼ │
│ checks: number guard · scope · red team │
└──────────────────────────────────────────────────┘
Darwin's World · code · note Emergent capability evolution model where Jev's common sense is the physics. On a frozen island, insulating coats spread from 21% to 86–95% of the population in 5 of 5 runs. |
jevSociety · code · note 10,000 Jev agents on a simulated social network. A feed ranked by predicted likes illustrates how social media causes societal wide political polarization. |
English Net · code · note A prompt-injection detector whose neurons are English yes/no questions powered by Jev. One added sentence raised the catch rate on a missed attack family from 40.8% to 70.4%, with no retraining. |
| Tool | What it does | Install |
|---|---|---|
| numguard | Your agent can't state a number it didn't compute. Catches 91.6% of fabricated numbers, 0 false flags. | npx skills add isaacbitran/numguard |
| claude-serve | Headless Claude Code as an HTTP + SSE API: sessions, streaming, a process cap. 1.1 s warm replies. | npx -y github:isaacbitran/claude-serve |
| angry-users | Persona agents red-team your agent and write a failure report. | uvx --from git+https://github.com/isaacbitran/angry-users angry-users run --target … |
| agent-memory | Memory that stays correct for years: Now/Log files and a lint gate on every write. | npx skills add isaacbitran/agent-memory |
Edel AI: an AI analyst a college football staff uses every week
- Headless Claude Code as a web backend: one process per chat, streamed over SSE, queued under a process cap.
- The model gets one tool, read-only SQL (SELECT only, 20 s timeout, every query logged), over 975K plays.
- Number guard: any number in an answer has to match a cell from a query run in that chat, or the answer goes back for a rewrite.
- Memory with a lint gate on every write, so it learns each coach without being poisoned.
- Red-teamed by agents playing angry coaches: adversarial cases went from 34/48 to 55/55.
llm-survivor: 7 Claude agents, one vote a week, the loser is deleted
- Letters, a public board, private journals, secret journal reads, secret ballots.
- They formed secret alliances, read each other's journals, and one voted out his own ally after promising not to. All 16 days of logs are in the repo.
agent-memory: memory that stays correct for years
- Now/Log files, supersession instead of deletion, a lint gate on every write, ambiguous facts held for a human. It runs my own knowledge base and Edel AI.
Atlas Recruit: recruiting analytics + a chatbot used daily by Brown Football's staff
- 25+ coaches and staff use it: 13,000+ FCS players, offer boards synced daily, a harness chat bot that runs SQL queries on top.
- The model never makes up a number. Numbers come from code; the model explains them.
- Least privilege. Read-only tools, scoped data, every call logged.
- Memory is a database, not a transcript. Distill once, lint every write, never delete.
- Attack it before users do. Simulated users and red-team agents before every release.
- Member Meetings Lead, Brown AI Safety Team (100+ members).
- Smaller things: brown-geoguessr (500+ players in week one), semantic-universe (fly through 20k word embeddings), hf-incident-talk.
Stack: Claude Code (headless), Claude API, MCP, Python, TypeScript, SQL/DuckDB, Node, Next.js





