{"article":{"slug":"these-agents-run-on-the-runtime-theyre-building","title":"These agents run on the runtime they're building","subtitle":null,"summary":"How Rebuno runs its own development agents, from writing code and reviewing changes to testing the kernel and its policies.","content_type":"blog_post","language":"en","canonical_url":"https://rebuno.io/blog/agents-that-build-rebuno","author":{"name":null,"url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Rebuno","url":"https://rebuno.io/","listing_slug":null,"listing":null},"topics":[{"name":"AI Agents","slug":"ai-agents","url":"https://listedarticles.com/topics/ai-agents"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":557,"reading_minutes":2,"published_at":"2026-09-17T00:00:00.000Z","added_at":"2026-09-18T06:16:35.072Z","updated_at":"2026-09-18T06:16:35.072Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/these-agents-run-on-the-runtime-theyre-building","markdown_url":"https://listedarticles.com/articles/these-agents-run-on-the-runtime-theyre-building.md","example":false,"citation":"Rebuno. \"These agents run on the runtime they're building.\" 17 Sept 2026. https://rebuno.io/blog/agents-that-build-rebuno (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://rebuno.io/blog/agents-that-build-rebuno"},"body_markdown":"The agents that build Rebuno run on Rebuno. Each task is an execution, with tool calls recorded as steps and checked against policy before they run. The agents depend on the same kernel they help develop.\n\nThey write code, review changes, test the runtime, and investigate failures. Here's how that work fits together.\n\n## Where work comes from\n\nWork starts in GitHub issues, pull requests, or Slack conversations. Clients turn those requests into executions and post updates where the conversation started.\n\nThe GitHub client responds to webhook events. In Slack, a message starts the run, and the thread shows its progress and asks for approval when an action needs it.\n\n## The agents\n\nEach agent is a service that receives work through a webhook. Its prompt, tools, and policy are chosen for a particular job.\n\n### Code\n\nThe coding agent takes an issue or a comment and works on it in its own worktree and branch. It edits files, runs tests, and commits changes as it goes.\n\nFollow-up requests reuse the branch and conversation from the same session. When asked to open a pull request, the agent waits for human approval before submitting it.\n\n### Review\n\nFor a review, the agent checks out the proposed commit, reads the diff, and runs tests relevant to the changes. It posts its findings as inline comments on the pull request.\n\nIts policy prevents it from approving the pull request, leaving that decision to a person.\n\n### QA\n\nThe QA agent runs scenarios that test recovery, approvals, replay, and execution limits. When a check fails, it investigates and files a GitHub issue.\n\nIt needs a separate cluster to break, with its own replicas and database. Scripted agents run as executions on that cluster. QA can kill replicas, cut network connections, or wipe the database there while its own execution keeps running on the cluster that dispatched it.\n\n### Debug\n\nDebugging starts with an execution ID. The agent reads the run's events and steps, then checks container logs and source code to work out what failed.\n\nIt has read-only access to these sources, so it can investigate a live incident without modifying the system. It reports the cause and recommends a fix.\n\n### Policy\n\nA policy can block an action through one tool and leave another route open. The policy agent looks for those gaps before the policy is used in production.\n\nIt runs under the policy it's testing and probes actions that should be denied. Each probe goes to the kernel as a step, but the tool never performs the action. The agent collects the decisions into a report showing which attempts were allowed, denied, or held for approval.\n\n## What they are allowed to do\n\nEach agent's policy sets what it can do and which actions need human approval.\n\nChanging what an agent is allowed to do means updating its policy. The kernel enforces those rules outside the agent, regardless of what its prompt says.\n\n## Summary\n\nThe agents that build Rebuno run as ordinary executions on it. A coding task might restart after a crash or wait for approval to open a pull request.\n\nWhen a run fails, we can inspect its recorded calls, results, and policy decisions to understand what happened. Those runs give us feedback on the runtime as we build it.\n\nTo learn more about Rebuno, read the [docs](https://docs.rebuno.io) or visit the [repository on GitHub](https://github.com/rebuno/rebuno).","body_html":"<p>The agents that build Rebuno run on Rebuno. Each task is an execution, with tool calls recorded as steps and checked against policy before they run. The agents depend on the same kernel they help develop.</p>\n<p>They write code, review changes, test the runtime, and investigate failures. Here&#39;s how that work fits together.</p>\n<h2 id=\"where-work-comes-from\">Where work comes from</h2>\n<p>Work starts in GitHub issues, pull requests, or Slack conversations. Clients turn those requests into executions and post updates where the conversation started.</p>\n<p>The GitHub client responds to webhook events. In Slack, a message starts the run, and the thread shows its progress and asks for approval when an action needs it.</p>\n<h2 id=\"the-agents\">The agents</h2>\n<p>Each agent is a service that receives work through a webhook. Its prompt, tools, and policy are chosen for a particular job.</p>\n<h3 id=\"code\">Code</h3>\n<p>The coding agent takes an issue or a comment and works on it in its own worktree and branch. It edits files, runs tests, and commits changes as it goes.</p>\n<p>Follow-up requests reuse the branch and conversation from the same session. When asked to open a pull request, the agent waits for human approval before submitting it.</p>\n<h3 id=\"review\">Review</h3>\n<p>For a review, the agent checks out the proposed commit, reads the diff, and runs tests relevant to the changes. It posts its findings as inline comments on the pull request.</p>\n<p>Its policy prevents it from approving the pull request, leaving that decision to a person.</p>\n<h3 id=\"qa\">QA</h3>\n<p>The QA agent runs scenarios that test recovery, approvals, replay, and execution limits. When a check fails, it investigates and files a GitHub issue.</p>\n<p>It needs a separate cluster to break, with its own replicas and database. Scripted agents run as executions on that cluster. QA can kill replicas, cut network connections, or wipe the database there while its own execution keeps running on the cluster that dispatched it.</p>\n<h3 id=\"debug\">Debug</h3>\n<p>Debugging starts with an execution ID. The agent reads the run&#39;s events and steps, then checks container logs and source code to work out what failed.</p>\n<p>It has read-only access to these sources, so it can investigate a live incident without modifying the system. It reports the cause and recommends a fix.</p>\n<h3 id=\"policy\">Policy</h3>\n<p>A policy can block an action through one tool and leave another route open. The policy agent looks for those gaps before the policy is used in production.</p>\n<p>It runs under the policy it&#39;s testing and probes actions that should be denied. Each probe goes to the kernel as a step, but the tool never performs the action. The agent collects the decisions into a report showing which attempts were allowed, denied, or held for approval.</p>\n<h2 id=\"what-they-are-allowed-to-do\">What they are allowed to do</h2>\n<p>Each agent&#39;s policy sets what it can do and which actions need human approval.</p>\n<p>Changing what an agent is allowed to do means updating its policy. The kernel enforces those rules outside the agent, regardless of what its prompt says.</p>\n<h2 id=\"summary\">Summary</h2>\n<p>The agents that build Rebuno run as ordinary executions on it. A coding task might restart after a crash or wait for approval to open a pull request.</p>\n<p>When a run fails, we can inspect its recorded calls, results, and policy decisions to understand what happened. Those runs give us feedback on the runtime as we build it.</p>\n<p>To learn more about Rebuno, read the <a href=\"https://docs.rebuno.io\" rel=\"nofollow ugc noopener\">docs</a> or visit the <a href=\"https://github.com/rebuno/rebuno\" rel=\"nofollow ugc noopener\">repository on GitHub</a>.</p>","headings":[{"level":2,"text":"Where work comes from","id":"where-work-comes-from"},{"level":2,"text":"The agents","id":"the-agents"},{"level":3,"text":"Code","id":"code"},{"level":3,"text":"Review","id":"review"},{"level":3,"text":"QA","id":"qa"},{"level":3,"text":"Debug","id":"debug"},{"level":3,"text":"Policy","id":"policy"},{"level":2,"text":"What they are allowed to do","id":"what-they-are-allowed-to-do"},{"level":2,"text":"Summary","id":"summary"}]}}