See docs/DISCLAIMER_SNIPPET.md
α-AGI Insight · Discovery Workbench
Find the opening. Earn the conviction. Compare cross-sector hypotheses, expose their assumptions, allocate limited review time, and export a reproducible dossier with verification jobs and Nova-Seed drafts. Version 1.15.0 preserves the original research presentation, numeric search, launchers and flowcharts.
Open the browser workbench · Insight Atlas · Colab notebook · Original research and flowcharts
The browser and Python paths run locally without credentials, a wallet, provider, database or GPU. Five clearly labeled synthetic cases make every assumption inspectable. You can replace them with your own supplied source excerpts; the tool does not fetch or authenticate those sources. Priority scores are not forecast probabilities, valuations or a claim of beyond-human prediction.
Current runnable path — 1.15.0
Mode: Local evidence review. Prerequisites: Python 3.11–3.13 and a source checkout.
python -m alpha_factory_v1.demos check alpha_agi_insight_v0
python -m alpha_factory_v1.demos run alpha_agi_insight_v0 --output-dir discovery-runs
Expected: A review portfolio and six files in a content-addressed output directory. Scope: Synthetic assumptions; jobs are unsubmitted; seed drafts are plaintext and unminted.
Start in two minutes
Use Python 3.11–3.13 from a source checkout. The discovery engine uses the standard library only.
python -m alpha_factory_v1.demos.alpha_agi_insight_v0 --list
python -m alpha_factory_v1.demos.alpha_agi_insight_v0 --case public-software --output insight-runs
The default case allocates a 60-minute review budget across eight opportunities. It saves six files
under insight-runs/<dossier-sha256>/ and prints the exact verification command. A completed calculation
exits 0, including a valid empty portfolio; malformed inputs or altered evidence exit 2.
After installing the package, insight-workbench is the equivalent console command.
insight-workbench --input my-scenario.json --output insight-runs --json
insight-workbench --verify insight-runs/<dossier-sha256>/dossier.json
--json writes only the dossier to stdout. Errors use stderr. Output directories are content-addressed:
an identical run reuses identical files; partial, altered or symlinked run output is rejected. Use a new
output directory after investigating an interrupted or modified run.
The browser workflow
- Choose a case. The starter set compares software, energy, materials research, logistics, synthetic clinical data checks, education, autonomy and transport. Every source is labeled synthetic.
- Set review constraints. Change available minutes, conservative score threshold, required source coverage and proposed job bounty. Weights are integer basis points totaling 10,000.
- Inspect a thesis. Select its title to see the goal, measurable success metric, low/base/high assumptions and exact supplied excerpts. Missing evidence and capacity deferral have distinct states.
- Edit your own scenario. Open the complete JSON editor to change opportunities, sources and intervals. Apply or discard pending changes before exporting. No arbitrary code is evaluated.
- Export the review bundle. The six files below have identical bytes in Python and the browser.
- Return with evidence. Import a dossier to recompute every score, portfolio choice, job and draft. A modified result fails verification even if someone recomputes its checksum.
Save/Restore is explicit, uses this browser's local storage and never clears another workspace's data. Export a ZIP for a portable copy. After a successful first load and service-worker installation, the workbench supports offline reload and recalculation. Private browsing or blocked storage may prevent saved drafts or offline caching; the local Python path remains available.
| Case | Question | Expected behavior |
|---|---|---|
public-software |
Where should the next hour of review go? | Select a review portfolio within 60 minutes |
capacity-shock |
What if only 20 minutes remain? | Defer eligible opportunities that cannot fit |
evidence-gap |
What if demand excerpts are missing? | Source-coverage gate prevents selection |
optimism-trap |
Can a wide optimistic range justify priority? | Conservative scores govern the 35-minute portfolio |
zero-capacity |
What if there is no review capacity? | Valid empty portfolio; no seed drafts |
What the engine computes
For each opportunity and each interval endpoint, it computes the exact integer numerator
sum(weight[dimension] * signal[dimension][endpoint]). Divide by 1,000,000 to display a score out
of 100. The four dimensions are demand, feasibility, readiness and advantage. Supplied source coverage
is the sum of weights whose signals reference an existing excerpt. It measures reference coverage,
not source quality, truth, freshness or independence.
Eligibility requires the low score and source coverage to meet the supplied thresholds. Exact 0/1 knapsack then maximizes the sum of conservative priority numerators within the supplied review minutes. Each opportunity can be selected once. Ties prefer fewer minutes, then lexicographically ordered opportunity IDs. The objective neither models profit nor accounts for cross-opportunity correlation or overlapping review effort. Zero-score items need not consume review time.
The landscape ranks by conservative score, base score, then ID. Rank separation means the highest low
score exceeds every rival high score. The supplied ranges are not statistical confidence intervals.
Selection returns REVIEW_REQUIRED; eligible unselected rows return CAPACITY_DEFERRED; unmet input
gates return EVIDENCE_REQUIRED. There is no automatic approved state.
Evidence and Ascension handoff
| File | Purpose |
|---|---|
scenario.json |
Complete normalized inputs and supplied excerpts |
dossier.json |
Inputs, exact decisions, jobs, drafts and SHA-256 |
jobs.json |
One unsubmitted verification job for every opportunity, bound to the input hash |
nova-seeds.json |
Selected opportunities as plaintext, unminted, unfunded seed drafts |
review-brief.md |
Portable human review summary |
SHA256SUMS |
SHA-256 of the other five exact files |
Every job carries a goal ↔ success metric ↔ bounty, a seven-day duration and price weight 5,000. Bounties use $AGIALPHA's 18-decimal base units as decimal strings. All opportunity jobs are exported, including those deferred or missing evidence, so a reviewer can commission the verification they need. The bundle's total proposed bounty covers all jobs, not only the selected portfolio. No funds move.
With the installed chain extra or hash-locked operator environment:
alpha-agent ascension-compile insight-runs/<dossier-sha256>/jobs.json --output fusion-plan.json
The Ascension protocol guide documents the separately operated cryptosealing, ERC-721 Nova-Seed lifecycle, validator risk oracle, MARK funding, Sovereign activation, staked ENS agents, validator approval and marketplace settlement with the 1% payout burn. This workbench prepares inputs for that lifecycle. It does not encrypt or mint an NFT, authenticate a validator, certify compliance, trade, escrow funds, submit jobs or authorize enterprise execution. Those gates require their own evidence, authenticated roles and deployment review.
Input contract and limits
Use an exported scenario.json as the complete schema example. Unknown or missing fields fail closed.
The schema is agialpha.insight.scenario.v1; dossiers use agialpha.insight.dossier.v1.
| Input | Accepted range |
|---|---|
| JSON | UTF-8; at most 1,000,000 bytes and 24 nested levels; no duplicate keys, nonfinite numbers or lone surrogates |
| Opportunities / sources | 1–24 / 1–32, with unique lowercase ASCII IDs of 1–40 characters |
| Signal low/base/high | Integer 0–10,000, ordered low ≤ base ≤ high |
| Weights | Four integers 0–10,000 totaling 10,000 |
| Review minutes | Capacity 0–2,400; each opportunity 1–2,400 |
| Minimum score / coverage | Integer basis points 0–10,000 |
| Job bounty | 1–1,000,000 AGIALPHA per job |
| Source URLs | HTTPS hostname, no credentials, backslashes or explicit port; never fetched |
| Text | UTF-8 byte limits: title 160, note 600, sector 80, thesis 500, goal 240, success metric 400, excerpt 1,200, URL 500 |
A signal's source is a supplied source ID or an empty string for missing coverage. Inputs may contain
Unicode; control characters are rejected in text fields. Decimal strings and booleans are not numbers.
Integral JSON numbers such as 20.0 normalize to integers for portable exports.
Preserved numeric search and launchers
The original numeric-target example remains available explicitly:
python -m alpha_factory_v1.demos.alpha_agi_insight_v0 --legacy --offline --episodes 30 --seed 42 --json
python -m alpha_factory_v1.demos.alpha_agi_insight_v0.insight_demo --episodes 30 --target 3 --seed 42
bash alpha_factory_v1/demos/alpha_agi_insight_v0/run_insight_demo.sh --offline --episodes 3
It now expands a bounded binary UCB search tree, backpropagates each observation once and ranks sectors
by their own observed rewards. Sector names map from numeric policies modulo the list length; the
numbers are not evidence about those industries. A local RNG preserves the caller's global state.
Default seed is 0; episodes are 1–500; exploration is finite 0–10; target is ±10,000.
Optional logs use a per-run directory with scores.csv, summary.json and an optional ranking plot.
All original official_demo*, run_demo, beyond_human_foresight and bridge modules remain.
An API key's presence does not automatically select a provider. Provider rewriting requires explicit
--rewriter openai|anthropic and a model through --model or explicit YAML configuration, is limited to 20 calls with 15-second timeouts and no retries,
and validates the one-step JSON-integer response. If that step is already expanded, the remaining
unexpanded step is used. Provider errors are surfaced. --offline, ALPHA_AGI_OFFLINE,
ALPHA_TEST_OFFLINE or NO_LLM forbid provider calls. Optional legacy runtime/ADK exposure requires
--runtime and a compatible installed interface; current SDK presence alone does not establish that.
Dependency verification is opt-in with --verify-env; launching never installs packages automatically.
The CLI alone can read a local sector file or ALPHA_AGI_SECTORS; the API never resolves filesystem
paths or ambient sector settings. YAML config accepts only documented settings and requires PyYAML.
Local dashboard and API
Install the project dependencies for FastAPI/Uvicorn or Streamlit, then:
python -m alpha_factory_v1.demos.alpha_agi_insight_v0 --dashboard
python -m alpha_factory_v1.demos.alpha_agi_insight_v0.api_server --port 8000
The dashboard opens a discovery view with downloadable evidence; the original search has explicit
provider controls. The API binds 127.0.0.1 by default:
| Route | Behavior |
|---|---|
GET /healthz |
Local offline service status |
GET /sectors |
Default numeric-search labels |
POST /discovery |
Bounded scenario JSON → recomputed dossier (1 MB limit) |
POST /insight |
Strict local numeric search (16 KB limit); no providers, model or output paths |
Requests require application/json. If API_TOKEN is set, send Authorization: Bearer <token>.
Origin-bearing browser requests are rejected. One calculation runs at a time; busy calls receive 429
with Retry-After: 1. Other errors: 401 authentication, 403 browser origin, 413 body size,
415 content type and 422 invalid input. Non-loopback binding requires --allow-network and a
24-character token; use a separately managed TLS/authenticated reverse proxy for remote operation.
The built-in API is a bounded local service, not a multi-tenant deployment platform.
Notebook, validation and original material
The maintained notebook pins source to release v1.15.0, runs all five cases without provider calls,
recomputes dossiers and writes a portable bundle. Set ALPHA_INSIGHT_SOURCE to a local checkout to
run fully offline. It checks Python compatibility and fails visibly instead of swallowing install errors.
The original notebook and complete original README
remain byte-for-byte archives; their older setup commands and aspirational claims are historical.
Release acceptance checks independent exhaustive portfolio optimality, Python/browser parity, input-bound job compilation, altered and rehashed evidence, API boundaries, all browser cases, exact ZIP bytes, small screens, keyboard access, WCAG A/AA checks and offline reload. The public report must match the packaged commit, version, asset hashes and native case results before release finalization.
python -m pytest --noconftest -o addopts= tests/test_insight_discovery.py tests/test_insight_v0_boundaries.py
python -m scripts.validate_discovery_core
python -m scripts.validate_discovery --site site --axe-script tests/browser/node_modules/axe-core/axe.min.js
Original architecture flowchart — preserved
The original diagram below describes the research architecture and future direction; it does not assert that the local numeric search or review workbench implements a production autonomous AGI.
%% α-AGI Insight — Meta-Agentic Tree Search Architecture (ZERO-DATA Demo)
flowchart TD
%% ───────────── Core components ─────────────
Controller["<b>Controller</b><br/>(Meta-Agent<br/>Orchestrator)"]:::controller
DB["<b>Knowledge Base</b><br/>(Program DB / Insight Archive)"]:::db
Sampler["<b>Prompt / Task Sampler</b><br/>(Curriculum Generator)"]:::sampler
Ensemble["<b>LLM Ensemble</b><br/>(Insight Generators)"]:::ensemble
Evaluator["<b>Evaluator Pool</b><br/>(Sandbox & Scorers)"]:::evaluator
%% ───────────── Evolutionary loop (dashed ring) ─────────────
subgraph EvolutionaryLoop
direction TB
Controller
DB
Sampler
Ensemble
Evaluator
end
class EvolutionaryLoop loopStyle
%% ───────────── Data-flow arrows ─────────────
Controller -- "stores results" --> DB
DB -- "past programs / metrics" --> Controller
Controller -- "request prompt" --> Sampler
Sampler -- "context-rich prompt" --> Controller
Controller -- "dispatch program stubs" --> Ensemble
Ensemble -- "candidate code / insights" --> Controller
Controller -- "submit programs" --> Evaluator
Evaluator -- "metrics & scores" --> Controller
%% ───────────── Styling ─────────────
classDef controller fill:#e9d8ff,stroke:#7844ca,color:#29065d,font-weight:bold
classDef db fill:#d7e7ff,stroke:#3e7edb,color:#0a2e59
classDef sampler fill:#d8f8d4,stroke:#3b9e3b,color:#0d2f0d
classDef ensemble fill:#ffe1e1,stroke:#d45050,color:#5a0d0d
classDef evaluator fill:#fff0d5,stroke:#d4a44c,color:#694a00
classDef loopStyle stroke-dasharray:4 4,stroke-width:2,stroke:#14c4ff,fill:transparent
linkStyle default stroke-width:1.5px