How does an operator connect planning, specialists and node state?
For node operators: inspect opportunity selection, specialist routing, knowledge capture and the distinction between local status and connected services.
01
Inspect operator settings
Read identity, model, chain and service settings before launching. Example values are not valid provider credentials or an authorized production identity.
The planner chooses jobs, domain specialists produce results and the knowledge lake records them. The aggregate indices are defined in this implementation.
This lightweight Python wrapper delegates to run_alpha_node.py and defaults to a non-interactive status snapshot. The root npm command invokes a separate TypeScript CLI.
{"revision":"5b4cebb309a83a7a6749d8911d8bf96a1921e042","sources":[{"file":"demo/AGI-Alpha-Node-v0/config.toml","content":"[ens]\ndomain = \"demo.alpha.node.agi.eth\"\nowner_address = \"0x000000000000000000000000000000000000dEaD\"\nprovider_url = \"\"\nexpected_resolver = \"\"\n\n[governance]\ngovernance_address = \"0x1111111111111111111111111111111111111111\"\nemergency_multisig = \"0x2222222222222222222222222222222222222222\"\nauto_transfer_on_boot = true\n\n[stake]\nasset_symbol = \"$AGIALPHA\"\nminimum_stake = 10000\nrestake_threshold = 150\nreward_address = \"0x3333333333333333333333333333333333333333\"\n\n[jobs]\npolling_interval_seconds = 2.0\njob_source = \"jobs.json\"\n\n[knowledge]\nstorage_path = \"knowledge.json\"\nsnapshot_interval = 100\n\n[metrics]\nlisten_host = \"0.0.0.0\"\nlisten_port = 9101\n\n[dashboard]\nlisten_host = \"0.0.0.0\"\nlisten_port = 8081\n\n[planner]\nhorizon = 64\nexploration_constant = 1.7\nexploitation_bias = 1.3\nrisk_aversion = 0.2\n\n[specialists]\nfinance_model = \"Fermion-Finance-9000\"\nbiotech_model = \"GenesisBio-Omnissynth\"\nmanufacturing_model = \"MidasForge-Prime\"\n\n[compliance]\nantifragility_target = 0.8\nstrategic_alpha_target = 0.9\n","format":"text","sha256":"9e0021d24ad99626b842287b0a4cab24e6e12bf8bbad18f9cf4865f947c136e7","bytes":1005,"download":"/AGIJobsv0/examples/9e0021d24ad99626-config.toml","source":"https://github.com/MontrealAI/AGIJobsv0/blob/5b4cebb309a83a7a6749d8911d8bf96a1921e042/demo/AGI-Alpha-Node-v0/config.toml"},{"file":"demo/AGI-Alpha-Node-v0/alpha_node/orchestrator.py","content":"\"\"\"Orchestrator connecting planner and specialists.\"\"\"\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom typing import Dict, Iterable, List\n\nfrom .knowledge import KnowledgeLake, KnowledgeEntry\nfrom .jobs import JobOpportunity\nfrom .planner import MuZeroPlanner, PlanDecision\nfrom .specialists import (\n BiotechSynthesist,\n FinanceStrategist,\n ManufacturingOptimizer,\n Specialist,\n SpecialistResult,\n)\nfrom .state import StateStore\n\n\n@dataclass(slots=True)\nclass ExecutionReport:\n decisions: List[PlanDecision]\n specialist_outputs: Dict[str, SpecialistResult]\n\n\nclass AlphaOrchestrator:\n \"\"\"Coordinates planning, execution, and knowledge capture.\"\"\"\n\n def __init__(\n self,\n planner: MuZeroPlanner,\n knowledge: KnowledgeLake,\n specialists: Dict[str, Specialist],\n store: StateStore,\n ) -> None:\n self.planner = planner\n self.knowledge = knowledge\n self.specialists = specialists\n self.store = store\n\n def run(self, jobs: Iterable[JobOpportunity]) -> ExecutionReport:\n jobs_list = list(jobs)\n decisions = self.planner.plan(jobs_list)\n outputs: Dict[str, SpecialistResult] = {}\n for decision in decisions:\n job = next(job for job in jobs_list if job.job_id == decision.job_id)\n specialist = self.specialists.get(job.domain, self.specialists[\"default\"])\n result = specialist.solve(job, self.knowledge)\n outputs[job.job_id] = result\n self.knowledge.add_entry(\n KnowledgeEntry(\n topic=f\"{job.domain}-{job.job_id}\",\n insight=result.narrative,\n impact=result.strategic_alpha,\n job_id=job.job_id,\n )\n )\n antifragility = min(1.0, sum(r.strategic_alpha for r in outputs.values()) / 3)\n strategic_alpha = min(1.0, sum(d.expected_value for d in decisions) / 100)\n self.store.update(\n antifragility_index=antifragility,\n strategic_alpha_index=strategic_alpha,\n )\n return ExecutionReport(decisions=decisions, specialist_outputs=outputs)\n\n\ndef build_specialists(settings) -> Dict[str, Specialist]:\n return {\n \"finance\": FinanceStrategist(settings.finance_model),\n \"biotech\": BiotechSynthesist(settings.biotech_model),\n \"manufacturing\": ManufacturingOptimizer(settings.manufacturing_model),\n \"default\": FinanceStrategist(settings.finance_model),\n }\n\n\n__all__ = [\"AlphaOrchestrator\", \"ExecutionReport\", \"build_specialists\"]\n","format":"text","sha256":"11a461bae02f3f2a38c726ffcd3483d3cb652a6e7575ce27dead52b2df0865ec","bytes":2618,"download":"/AGIJobsv0/examples/11a461bae02f3f2a-orchestrator.py","source":"https://github.com/MontrealAI/AGIJobsv0/blob/5b4cebb309a83a7a6749d8911d8bf96a1921e042/demo/AGI-Alpha-Node-v0/alpha_node/orchestrator.py"},{"file":"demo/AGI-Alpha-Node-v0/run_demo.py","content":"\"\"\"Lightweight launcher for the AGI Alpha Node demo.\n\nThis wrapper keeps parity with other demos by allowing operators to run a\nsingle, self-contained command. By default it loads the bundled configuration\nand prints a status snapshot without requiring interactive input. Pass\nadditional arguments to reach the full interactive console.\n\"\"\"\nfrom __future__ import annotations\n\nimport importlib.util\nimport sys\nfrom pathlib import Path\nfrom typing import Iterable, Optional\n\nMODULE_PATH = Path(__file__).resolve().parent / \"run_alpha_node.py\"\nspec = importlib.util.spec_from_file_location(\"agi_alpha_node_cli\", MODULE_PATH)\nif spec is None or spec.loader is None: # pragma: no cover\n raise RuntimeError(\"Unable to load run_alpha_node module\")\n_run_alpha_node = importlib.util.module_from_spec(spec)\nspec.loader.exec_module(_run_alpha_node)\n\n\ndef main(argv: Optional[Iterable[str]] = None) -> int:\n args = list(argv) if argv is not None else None\n if not args:\n args = [\"--config\", str(_run_alpha_node.DEFAULT_CONFIG), \"--action\", \"status\"]\n return _run_alpha_node.main(args)\n\n\nif __name__ == \"__main__\":\n raise SystemExit(main(sys.argv[1:]))\n","format":"text","sha256":"499226cd3ee6db770ca6a9825aca97145d122cc32bfd2466b93d42335eda2540","bytes":1164,"download":"/AGIJobsv0/examples/499226cd3ee6db77-run_demo.py","source":"https://github.com/MontrealAI/AGIJobsv0/blob/5b4cebb309a83a7a6749d8911d8bf96a1921e042/demo/AGI-Alpha-Node-v0/run_demo.py"}]}
FROM READING TO A REPRODUCIBLE RUN
Try the selected path.
Isolated Python environment
Use Python 3.12 in a virtual environment. Install this demo’s tracked requirements file when present, then run python -m pip check. Some variants have additional requirements: follow the selected implementation’s guide, not an unrelated demo’s dependency list.
The wrapper prints the bundled local node status. Inspect configured identities and services before opting into the interactive or provider-connected paths.
The source inspector above reads bundled repository material. Local commands run separately on your computer. Recorded examples may contain historical timestamps, placeholders and simulated metrics.
MAKE IT YOUR OWN
One useful experiment.
Compare a specialist output with the corresponding job domain and knowledge entry. Identify what external evidence would be required to verify the result.
THE SYSTEM, MADE VISIBLE
Architecture & relationships
Architecture diagram · source preserved belowView original Mermaid source
flowchart LR
Operators((Mission Owners)) --> demo_AGI_Alpha_Node_v0[[Demo → AGI Alpha Node v0]]
demo_AGI_Alpha_Node_v0 --> Core[[AGI Jobs v0 (v2) Core Intelligence]]
Core --> Observability[[Unified CI / CD & Observability]]
Core --> Governance[[Owner Control Plane]]
WHEN SOMETHING DOESN’T MATCH
Troubleshooting
Import or dependency error
Confirm the active virtual environment and the selected demo’s requirements. Run python -m pip check; do not install unrelated demo requirements over a working environment.
Unexpected result or missing file
Check the selected entry point, configuration and output argument. Keep the seed and implementation fixed before comparing outcomes.
TRACE THE CHECKS
Verification & next steps
21 tracked test source files are available in this directory. Inspect the tests and their environment before choosing a suite; file counts do not establish test results.