[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93070":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":33,"discoverSource":34},93070,"Danus","frenzymath\u002FDanus","frenzymath","Orchestrating Mathematical Reasoning Agents with Fact-Graph Memory","",null,"Python",53,11,1,0,2,43.44,"Apache License 2.0",false,"main",[22,23,24,25,26,27,28,29],"agents","ai4math","automated-reasoning","claude-code","codex","llm","mathematics","multi-agent","2026-07-22 04:02:08","# Danus: Orchestrating Mathematical Reasoning Agents with Fact-Graph Memory\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2607.06447\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2607.06447-b31b1b\" alt=\"Danus paper on arXiv\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ffrenzymath.com\u002Fblog\u002Fdanus\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTechnical%20Report-frenzymath.com-1f6feb\" alt=\"Technical report\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffrenzymath\u002FRethlas\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRethlas-GitHub-181717?logo=github\" alt=\"Rethlas on GitHub\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.xiaohongshu.com\u002Fdiscovery\u002Fitem\u002F6a4da1ba00000000070201ef?source=webshare&xhsshare=pc_web&xsec_token=ABfiiMB7yyB-dW_hMzh3MW7ZRG2ddm5in_wBnBALXO6DE=&xsec_source=pc_share\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frednote-%E5%B0%8F%E7%BA%A2%E4%B9%A6-FF2442?logo=xiaohongshu&logoColor=white\" alt=\"rednote (Xiaohongshu) post\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-4c1\" alt=\"Apache 2.0 license\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nDanus orchestrates mathematical reasoning agents with fact-graph memory. A main\nagent (Claude Code) steers a swarm of autonomous codex workers that prove; a\ncold-start verifier is the sole authority on correctness: a result becomes real\nonly once it passes. Verified results accumulate in a content-addressed fact\ngraph — the system's only source of truth — and a strategy loop (a strong\nreasoning model) decomposes the problem and steers the swarm. When you have the\nanswer, Danus renders it into a human report or a publishable LaTeX paper.\n\nDanus builds on the worker–verifier core of our earlier system\n[Rethlas](https:\u002F\u002Fgithub.com\u002Ffrenzymath\u002FRethlas)\n([arXiv:2604.03789](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.03789)). The\n[paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2607.06447) and the\n[technical report](https:\u002F\u002Ffrenzymath.com\u002Fblog\u002Fdanus\u002F) tell the full story:\nthe system, six research-level case studies it resolved, and what we learned\nalong the way.\n\nSee `ARCHITECTURE.md` for the layered design and the map of every module.\n\n## How it works\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Farchitecture.png\" width=\"820\" alt=\"Danus architecture: a main agent orchestrates a worker swarm; a stateless verifier gates every fact; global memory and the fact graph are the shared storage\">\u003C\u002Fp>\n\nThe design follows a strict separation of powers: the main agent performs the\nglobal planning and coordination, the workers carry out the detailed proof\nsearch, the verifier is the sole authority on correctness, and the fact graph\nholds every verified result and is the system's only source of truth.\n\nEach kind of agent carries out its role through its own skills and its own\nrole-gated set of tools, so the separation is enforced by construction, not by\nprompts: the main agent has no `fact_submit` (the agent that steers the search\nstructurally cannot introduce unverified mathematics into the fact graph), and\nthe verifier writes nothing at all.\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fagent-tools.png\" width=\"820\" alt=\"The three kinds of agent, each with its own skills and its own role-gated set of tools: the main agent orchestrates and renders, the workers prove and submit, the verifier only reads\">\u003C\u002Fp>\n\nEvery claim enters truth through one cycle:\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fverify-loop.png\" width=\"820\" alt=\"The submit–verify–repair cycle: a worker submits a statement and proof citing existing facts; a fresh verifier instance accepts it into the fact graph or rejects it with repair hints\">\u003C\u002Fp>\n\nA worker typically focuses on one claim at a time — a lemma, a counterexample, a\ntoy example — rather than an entire proof. It repeatedly submits the claim with a\nsupporting proof and revises it under the verifier's feedback until it passes, at\nwhich point the claim enters the fact graph as a fact, with the facts its proof\ndepends on as its incoming edges. The verifier is stateless: a fresh instance\njudges each submission and retains nothing afterwards. Because each worker draws\non only the facts it needs for its current claim and submits one fact at a time,\nthe working context stays small even as the proof grows to many pages — and many\nworkers' contributions accumulate into one shared structure.\n\nThe graph below is the fact graph of a real research run: **3,157 verified facts\nand 8,616 dependency edges**, in dependency chains up to 54 facts deep (nodes\ndarken and grow with dependency depth). The search was far broader than the proof\nit left behind: 664 facts form the supporting closure of the final theorem, and\nthe clusters are separate lines of attack — among them conditional scaffolding\nthat the final proof never cites, and an independent re-derivation of one of its\nbounds.\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ffact-graph.png\" width=\"440\" alt=\"The fact graph of a real run: 3,157 verified facts and 8,616 dependency edges, nodes darkening and growing with dependency depth\">\u003C\u002Fp>\n\n## Layout\n\n```\ndanus\u002F                 the engine (installable Python package)\n  core\u002F                truth layer: content-addressed fact graph + typed memory + schema\n  gateway\u002F             role-gated MCP server — the only door to the truth stores\n  verify\u002F              cold-start proof-verifier HTTP service (the sole write-gate)\n  execution\u002F           worker swarm: the autonomous per-worker round loop + scaffolding\n  orchestration\u002F       the `danus` CLI verbs (list\u002Fnew\u002Fassign\u002Fstart\u002Fstatus\u002Fstop)\n  strategy\u002F            consult gateway (elaboration → strong model → master_guidance)\n  integrations\u002F        arXiv theorem search\n  observability\u002F       read-only dashboard\n  authoring\u002F           shared one-shot isolated-codex driver for the two renderers below\n  write_paper\u002F         write-paper MCP service (fact graph → publishable LaTeX paper)\n  human_summary\u002F       human-summary MCP service (fact graph → progress-report PDF)\nagents\u002F                codex agent contracts (main\u002Fworker\u002Fverifier) + worker & verify skills\n.claude\u002Fskills\u002F        main-agent skills: elaboration · consult · human-summary · initialize · write-paper\nbin\u002F scripts\u002F config\u002F  runtime layer (wrappers, bootstrap\u002Fservices\u002Fdoctor, env templates)\ndocs\u002F                  human docs: getting started · concepts · operating guide · security & trust · …\nexamples\u002F              unattended-ops examples + a toy project\n```\n\n## Quickstart\n\n```bash\n# 1. provision the toolchain (Node + venv + codex CLI) into runtime\u002F\nbash scripts\u002Fbootstrap.sh\n\n# 2. configure — copy the templates and fill in YOUR keys (never committed)\ncp config\u002Fdanus.env.example config\u002Fdanus.env\ncp config\u002Fcodex.env.example config\u002Fcodex.env      # BYO OpenAI-compatible endpoint + key\n\n# 3. health check + bring up the verify service (REQUIRED for any proving)\nbash scripts\u002Fdoctor.sh\nbash scripts\u002Fservices.sh up verify\n\n# 4. connect Claude Code rooted at this repo dir; on first run it runs `initialize`.\n#    --dangerously-skip-permissions lets the main agent operate autonomously (no\n#    per-action permission prompts). That is the intended mode, but it means the\n#    agent acts with your shell privileges — run Danus on an isolated, disposable\n#    host, and read docs\u002Fsecurity-and-trust.md first.\nclaude --dangerously-skip-permissions\n```\n\nEverything runs on your own keys (BYO). Workers and the verifier run on your codex\nbackend; the strategy consult runs on a top-tier reasoning model over the `gpt_pro`\ntransport (paid), `claude_api` (the Anthropic API, per-token), or `claude_code`\n(your Claude subscription), or `off` to skip it.\n\n## Design invariants (see ARCHITECTURE.md §3)\n\n- Three memory tiers, one correctness boundary: only the verifier-gated fact graph\n  is truth; global memory is awareness.\n- Permission is enforced by the MCP role table (main cannot `fact_submit`; the\n  verifier is read-only).\n- Content-addressed, cascade-revocable facts; the verifier is the sole write-gate.\n- The finished paper is itself re-verified as written (a dedicated paper-math\n  verifier reads the whole document) before delivery, on top of the per-fact\n  verification.\n","Danus是一个面向数学推理的多智能体协同系统，通过事实图（Fact-Graph）记忆机制实现严格可信的定理证明与知识积累。其核心采用主控代理（Claude Code）协调多个Codex工作代理执行搜索，由独立、无状态的冷启动验证器对每个结果进行权威性校验；仅经验证的事实被持久化至内容寻址的事实图中，作为系统唯一可信源。支持自动输出人类可读报告或LaTeX格式论文。适用于形式化数学验证、自动化定理证明、AI辅助数学研究等需高可靠性与可追溯性的学术与科研场景。","2026-07-11 02:30:49","CREATED_QUERY"]