Ken Faiman Applied AI

Open source · MIT · Agent orchestration

Research with a point of view.

Claude Oracle turns one hard question into a disciplined field operation: broad where discovery matters, focused where judgment does, and explicit about the constraints that keep the whole system trustworthy.

Explore the source on GitHub ↗ Python · Claude Agent SDK

one inquiryten scout perspectivesone grounded brief

A playful night-garden illustration of one inquiry branching to ten small research sprites, gathering in a synthesis greenhouse, and departing as a final briefing firefly.
Ask broadly. Organize once. Return a brief.
10–80parallel scouts
1–8independent chains
3purposeful tiers

Scroll to trace the decisions, not just the diagram

Jump to the engineering lens ↓

01 / the dispatch

Give every question its right altitude.

The system does not spray identical agents at a problem. It separates discovery, organization, and final judgment into roles with different economics, contexts, and responsibilities.

Research observatory / chain A

Calling session

A nuanced question arrives with the context that makes it worth asking.

SMITH / 01Market terrainsearching
SMITH / 02Primary sourcestracing
SMITH / 03Alternativesmapping
SMITH / 04Failure modestesting
SMITH / 05Current statechecking
SMITH / 06Competitive terraincomparing
SMITH / 07Technical stackinspecting
SMITH / 08Implementation signalsverifying
SMITH / 09Safety & limitsbounding
SMITH / 10Contrarian evidencechallenging
Chain organizer

Anderson

Not a shorter answer. A better-organized evidence field.

  • dedup the overlap
  • weigh recency
  • surface disagreements
  • name the gaps
Briefing returns to
editorial judgment
Animate the paths: each line describes a real responsibility boundary.10 scouts per chain · up to 8 chains

02 / design principles

The interesting work lives in the constraints.

The project is a case for treating agent behavior as a systems-design question. The most meaningful decisions are not model prompts; they are limits, boundaries, and recovery paths that keep promises under stress.

01 / STRUCTURAL CONTEXT

Privacy is a shape, not a suggestion.

Each organizer is given only the reports in its own chain. No instruction has to persuade a model to ignore data it was never handed.

02 / STARTUP DISCIPLINE

Fast does not mean reckless.

Parallel work begins through isolated configuration directories when possible, with a launch gate when it is not. The throughput is designed around the real failure surface.

03 / USEFUL DEGRADATION

A partial answer can still have integrity.

Failures are named, bounded, and handled without erasing completed work. A failed organizer returns the underlying scout reports instead of a confident-looking void.

Visibility boundary / enforced before inference

verified path
Parallel research chainsOne organizer per boundary
8 × 10 = 80Maximum concurrent scouting capacity.
Each cell below represents one Haiku scout.
CHAIN AA only
SONNET / A
CHAIN BB only
SONNET / B
CHAIN CC only
SONNET / C
CHAIN DD only
SONNET / D
CHAIN EE only
SONNET / E
CHAIN FF only
SONNET / F
CHAIN GG only
SONNET / G
CHAIN HH only
SONNET / H
8 discrete reports return to Opus

Each organizer receives only its own ten scout reports. The grouping happens in Python before Sonnet is dispatched, so scale never dissolves the boundary between chains.

03 / safety as architecture

Where an agent can look is part of what it can do.

Oracle starts with web research only. Local files must be deliberately opted into, because untrusted web content and local access together change the system’s risk profile.

  • 01Tool access is intentional: web tools by default; local read tools only for a local-code question.
  • 02Child processes receive short-lived access, never a copied credential store with a refresh token.
  • 03Per-run isolation directories are throwaway state and are cleaned even when a run is cancelled or crashes.

04 / failure is a first-class input

Make the bad day legible.

Agent systems become credible when their recovery policy is as carefully designed as their happy path. Here, every response to trouble is local, bounded, and explainable.

01

Timeouts are part of the protocol.

Each scout and organizer has its own deadline. A runaway search cannot quietly consume an unbounded session while the calling context waits in the dark.

02

Retry the exception, not the catastrophe.

Failed scouts receive one serial retry after the launch storm. If a majority fails, the retry is skipped: that signal looks systemic, not transient.

03

Preserve the expensive work.

If an organizer fails after its scouts succeeded, the raw reports become an explicit fallback. Recovery is redo synthesis, not redo research.

04

Do not invent a report from an empty field.

When every scout in a chain fails, no organizer is called. The system reports the absence of evidence rather than asking a model to fill it with plausible prose.

05 / provenance of the practice

Good agents are measured into existence.

The design instincts behind Oracle came from a separate benchmark-governed agent program: treat a prompt change as a hypothesis, isolate the delta, and make the instrument cheap enough to govern real decisions—not merely explain them afterward.

Benchmark instrument / built on the Claude Agent SDK

A compact suite built around Claude Agent SDK transcripts, engineered to catch regressions, targeted changes, and competencies that the prompt was never explicitly taught.

Program II
13Questions
10Frozen fixtures
44Recorded runs
Question taxonWhat it puts under load
03SpineHallucination, refusal, code traceregression
04FeatureRouting, context, conflict, decisiontargeted
03BlindspotAbsence, injection, mutation baitunstated
02Deep researchAuthority weighting, constraint synthesismulti-source
01Deep codingMulti-hop defect localizationexecution
Claude Agent SDK runFrozen corpusRecorded transcriptRegex · tool sequence · hashPromotion or retain champion

A small system with a serious opinion

Make the intelligence feel earned.

Claude Oracle is a research tool, but its real portfolio value is the way it thinks about composition: every boundary has a reason, every fallback retains useful work, and every seemingly simple interaction carries an implementation decision underneath it.

Read the implementation