<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>gates on tomrochette.com</title>
    <link>https://tomrochette.com/tags/gates/</link>
    <description>Recent content in gates on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 03:44:27 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/gates/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Evo</title>
      <link>https://tomrochette.com/agents/automated-research/evo/</link>
      <pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/automated-research/evo/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>automated-research</category><category>autoresearch</category><category>tree-search</category><category>gates</category><category>open-source</category>
      <description>&lt;p&gt;Evo is evo-hq&amp;rsquo;s Apache-2.0 autoresearch orchestrator that turns a codebase into a tree-searched experiment loop: a discover pass figures out what to measure, and an optimize pass runs parallel coding-agent subagents in git worktrees toward that benchmark, keeping gains and discarding gate failures.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Evo is the member whose judge is built before the loop starts: the discover pass instruments the benchmark and attaches a held-out score-floor gate by default, so the tree search optimizes against a measurement and a correctness bar it did not choose mid-run.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A Python package (evo-hq-cli on PyPI, v0.8.0) installed as a plugin for Claude Code, Codex, Cursor, Kimi, OpenClaw, Hermes, OpenCode, or Pi, authored by Alok Kumar Bishoyi under the evo-hq organization, with a Zenodo DOI and a named debt to Karpathy&amp;rsquo;s autoresearch, which the README calls a pure hill climb that evo extends.&#xA;Two commands run the loop: &lt;code&gt;/evo:discover&lt;/code&gt; explores the repository, asks what to optimize, and creates the benchmark plus gates against unintended changes, and &lt;code&gt;/evo:optimize&lt;/code&gt; starts the loop, sizing each round to the benchmark&amp;rsquo;s resource profile.&#xA;The search is a tree, not a single branch: subagents fork from any committed node in their own worktrees, read shared state (failure traces, annotations, discarded hypotheses), and frontier strategies (argmax, top_k, epsilon_greedy, softmax, and a GEPA-inspired pareto_per_task) pick which branch extends next.&#xA;Gates are pass-fail commands that run on every experiment and discard failures even when the score beats the current best, and RLM-inspired scan subagents read trace batches between rounds, surfacing compound failure patterns into shared state.&#xA;Experiments run in local worktrees or on SSH hosts, Modal, E2B, Daytona, AWS, or Azure backends, watched from a local dashboard on 127.0.0.1.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Young and shipping: 1,487 stars, 115 forks, 38 open issues and pull requests, created 2026-04-05, last pushed 2026-10-05, v0.8.0 the latest tag and PyPI release, as of 2026-10-28.&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=evo-hq/evo&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=evo-hq/evo&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=evo-hq/evo&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;The footprint is thin: a single Hacker News thread from April 15, 2026, at 2 points with zero comments, and this run&amp;rsquo;s searches found no independent evaluation or third-party coverage of any kind.&#xA;The company surface has already moved: evo-hq.com and its beta funnel now front EVO Router (RouterPlus), an LLM-inference-routing product, so the platform access the README advertises leads to the router business today.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The discovered gate is the design point: discover builds the benchmark and attaches a held-out score-floor gate automatically, answering the return-a-constant and trade-correctness-for-speed failures the README names itself.&lt;/li&gt;&#xA;&lt;li&gt;Tree search with declared frontier strategies makes the exploration policy inspectable and tunable instead of emergent.&lt;/li&gt;&#xA;&lt;li&gt;Shared state across worktree subagents (traces, annotations, discarded hypotheses) attacks the repeat-failure problem parallel searches have.&lt;/li&gt;&#xA;&lt;li&gt;The surface is broad and legible: eight host harnesses, seven execution backends, a dashboard, and an update train with lockstep version pins between CLI, skills, and hooks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Every number is the project&amp;rsquo;s own: no independent replication, benchmark table, or third-party measurement surfaced in this run&amp;rsquo;s searches, and the launch footprint is one zero-comment thread.&lt;/li&gt;&#xA;&lt;li&gt;The judge is written by the same system that optimizes against it: discover decides what to measure, so a mis-specified benchmark or a leaky held-out slice is exactly what the loop will exploit.&lt;/li&gt;&#xA;&lt;li&gt;Gates are opt-in when the benchmark already exists in the repository, so ungated runs keep the failure mode the gates exist to block.&lt;/li&gt;&#xA;&lt;li&gt;The vendor&amp;rsquo;s attention has moved to EVO Router, the inference-routing product its site and beta funnel now front, leaving the loop&amp;rsquo;s own commercial continuation unclear as of 2026-10-28.&lt;/li&gt;&#xA;&lt;li&gt;One named author and seven months of history is a bus factor of one beside the institutional columns in this category.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free and open source under Apache-2.0; there is no paid tier, so pricing does not apply.&#xA;Costs are your own model subscriptions (the loop drives eight host harnesses) and your compute, local or on the cloud backends.&#xA;The company&amp;rsquo;s beta funnel prices EVO Router, the LLM-routing product, not evo.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/karpathy-autoresearch/&#34; &gt;Karpathy Autoresearch&lt;/a&gt;: the cited ancestor, a pure hill climb on one branch against a fixed metric; evo adds forking tree search, parallel subagents, and a benchmark the tool discovers itself.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/autokernel/&#34; &gt;AutoKernel&lt;/a&gt;: the domain-bound sibling whose bench.py is fixed and supplied; evo generalizes to any codebase at the cost of trusting the discovery pass.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/arbor/&#34; &gt;Arbor&lt;/a&gt;: the held-out merge gate on a persistent hypothesis tree; evo&amp;rsquo;s gates discard inside the loop and its tree lives per target rather than across campaigns.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for engineers with a codebase, a measurable target, and the discipline to review what discover chose to measure before trusting what optimize found.&lt;/strong&gt;&#xA;Not for anyone needing an independently validated loop or a vendor committed to it: the footprint is one zero-comment thread and the company fronts a router now, as of 2026-10-28.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-28 - Created.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/karpathy-autoresearch/&#34; &gt;Karpathy Autoresearch&lt;/a&gt; - the ancestor evo cites and extends&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/autokernel/&#34; &gt;AutoKernel&lt;/a&gt; - the fixed-benchmark sibling in the same family&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/arbor/&#34; &gt;Arbor&lt;/a&gt; - the held-out-gate cousin for hypothesis trees&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/autocontext/&#34; &gt;AutoContext&lt;/a&gt; - the promotion-gated sibling with declared policies&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/automated-research/automated-research-feature-matrix/&#34; &gt;Automated Research Feature Matrix&lt;/a&gt; - the category comparison this note joins&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/evo-hq/evo&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/evo-hq/evo&lt;/a&gt; - repository and README: the two commands, tree search, frontier strategies, gates, backends, hosts, telemetry, and the CITATION.cff attribution (fetched via the API, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/evo-hq/evo&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/evo-hq/evo&lt;/a&gt; - repository metadata: Apache-2.0, 1,487 stars, 115 forks, created 2026-04-05, last push 2026-10-05, v0.8.0 the newest tag (fetched 200, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pypi.org/pypi/evo-hq-cli/json&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=pypi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://pypi.org/pypi/evo-hq-cli/json&lt;/a&gt; - package version 0.8.0, Apache-2.0 license, Python 3.10-plus requirement (fetched 200, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://news.ycombinator.com/item?id=47780457&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=news.ycombinator.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://news.ycombinator.com/item?id=47780457&lt;/a&gt; - the lone launch thread: 2 points, zero comments, April 15, 2026 (fetched via the Algolia API, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://evo-hq.com&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=evo-hq.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://evo-hq.com&lt;/a&gt; - the company site, now fronting RouterPlus, an LLM-inference-routing product (fetched 200, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://evo-hq.com/beta&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=evo-hq.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://evo-hq.com/beta&lt;/a&gt; - the beta funnel, now titled Request access to EVO Router (fetched 200, 2026-10-28)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://doi.org/10.5281/zenodo.20447923&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=doi.org&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://doi.org/10.5281/zenodo.20447923&lt;/a&gt; - the Zenodo citation record (fetched 200, 2026-10-28)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
