Conductor
The Conductor turns a Hermes agent into an orchestrator for coding environments. You ask it to implement a change or review a pull request from chat; it provisions an isolated Codex environment in your cluster, runs the work there, and reports back with a pull request link or review findings. The conductor never edits code in its own pod, and you stay in charge: it opens pull requests, you review and merge them.
A review runs in a separate, fresh environment with read-only repository access, so the reviewer has no attachment to the code it reads and no credentials in the workspace. The conductor posts the result as a formal GitHub review, the way a colleague would: a verdict that approves or requests changes, a summary, and inline comments anchored to the changed lines. The same findings arrive in chat with the review link.
Requirements
Section titled “Requirements”- An installed Codex Agent with environments configured: a pinned Codex version, an environment domain, and authentication. See Codex Environments.
- The GitHub integration connected, with access to the repositories the conductor should work on.
- A Hermes Agent bootstrapped from the conductor profile distribution (next section).
Deploy a conductor agent
Section titled “Deploy a conductor agent”- Open a cluster, then go to Workloads → Agents.
- Select Deploy Agent and choose Hermes Agent.
- Under General, set Bootstrap to Profile distribution and set Profile to Edka Conductor. Edka fills in the distribution source. To install your own distribution instead, choose Custom repository and provide the repository, an optional branch or tag to pin, and an optional subpath.
- Open the Conductor tab and enable Conductor, then:
- Target Agent: the environment-capable agent whose environments this conductor manages.
- Allow All Repositories, or keep it off and list Allowed Repositories. The allowlist fails closed: an empty list allows no repositories.
- Max Concurrent Environments and Default Environment TTL as needed.
- Complete the remaining configuration and deploy.
Edka installs the distribution once, on first boot, as a named conductor
profile alongside the agent’s default profile. Your model provider and API
keys stay managed by Edka; the distribution brings instructions, skills, and
the Edka tool connection.
To update the profile later, open the agent’s Profiles tab and select Update profile distribution on the profile’s row. Edka re-stages the distribution from its source, replaces the distribution’s files in place, and preserves your profile config edits and data.
You can also enable the Conductor tab on an existing Hermes agent from its Settings. Enabling it provisions access only; the agent still needs the conductor profile to use it.
Talk to the conductor
Section titled “Talk to the conductor”Open the agent’s Hermes dashboard, switch to the conductor profile, and ask
for work in plain language:
- “Create a PR that adds rate limiting to the webhook endpoint in my-org/api.”
- “Review PR 128 in my-org/api.”
- “Fix findings 1 and 3; finding 2 is intentional.”
For a coding task, the conductor provisions an environment (this takes a couple of minutes), runs the task there, pushes a branch, opens a pull request, and replies with the link. For a review, it provisions a fresh read-only environment for the pull request, runs the review, posts a formal GitHub review with its verdict and inline comments, relays the summary in chat, and deletes the environment. Iteration reuses the coding environment with additive commits; it never force-pushes and never merges.
Review verdicts
Section titled “Review verdicts”Reviews are posted by a dedicated reviewer GitHub App identity, separate from the App that authors the conductor’s pull requests, because GitHub does not accept a verdict from a pull request’s own author. Install the reviewer App on the repositories the conductor reviews. Without it, reviews still post, downgraded to comments without a verdict.
Verdicts follow reviewer discipline: requesting changes requires at least one inline comment pointing at a concrete line, or Edka downgrades the review to a comment. Inline comments that no longer match the diff are folded into the review body, so findings are never lost. The verdict is advisory; merging always stays with you, and branch protection rules apply to the reviewer App like to any reviewer.
To reach the conductor from a messaging platform instead of the dashboard, add the platform tokens to the agent’s configuration. Chat platforms connect to the bootstrapped profile automatically; the default profile keeps the API server and dashboard. Keep Gateway Allowed Users restricted in the agent’s Configuration tab.
Limits and cleanup
Section titled “Limits and cleanup”- The conductor creates at most Max Concurrent Environments at a time.
- Environments it creates without an explicit TTL are deleted after Default Environment TTL hours (cap 24). The conductor also deletes environments when a task concludes.
- Environments the conductor creates appear in the target agent’s Environments tab like any other.
- An agent with active conductor-created environments cannot be uninstalled; delete the environments first.
Access and safety
Section titled “Access and safety”- The conductor authenticates to Edka with a scoped bearer. Edka stores only a hash; the plaintext lives in a Kubernetes Secret in your cluster. Disabling the Conductor toggle or uninstalling the agent revokes it.
- The repository allowlist is enforced on every environment the conductor creates, and it fails closed.
- The conductor only sees environments it created. It cannot list, connect to, or delete environments you created from the console.
- Review environments clone the repository read-only and carry no GitHub credential at runtime, so a malicious pull request cannot push, comment, or exfiltrate a token through the reviewer. Reviews are posted by Edka on the conductor’s behalf, never from inside an environment.
- Every environment connection the conductor obtains and every review it posts is recorded as an audit event.
- The conductor never merges and never resolves review threads. Its approval is advisory; merging is always yours.