Internal Agents Map

Kolega

Company
Bitrise
Approach type
Agent
Work
Coding, Code review, CI triage, Maintenance
Human involvement
Drafts reviewed
Invocation
Interactive, Event-driven
Interfaces
Slack, Jira, Github, Ci
Deployment stage
Deployed
Evidence strength
Detailed primary
Entry reviewed

Purpose

Bitrise runs Kolega, an internal coding agent that lives in Slack. A Jira ticket assigned to its Jira user or an @mention in a thread starts a session; the agent reads the requirements, posts a plan, and delegates the coding to a disposable Remote Dev Environment. It opens a pull request, watches CI, and reacts to review comments, CI results, and Jira events as they arrive, then cleans up the machine and closes the ticket after the merge. The orchestrator itself cannot run or read code. Bitrise published bitclaw, an MIT-licensed reference implementation of the same architecture.

Check the reviewed sources and claim details.

How it works

Representative workflow: Jira ticket assignment or Slack mention through delegated coding in a disposable dev environment to a human-instructed merge and ticket closure. Research details

Pick up the work and post a plan

Assigning a Jira ticket to Kolega's Jira user, or an @mention in a thread, starts a session; the agent posts a card within a second, reads the requirements, posts a plan, and then reports milestones only

Delegate the coding to a disposable dev environment

The orchestrator creates a Remote Dev Environment from a pinned template with a self-contained task brief naming the repository, the ticket, the acceptance criteria, and the branch rules

Write and test the code, push a branch, and open a pull request

The coding agent in the dev environment makes the change, runs the tests locally, pushes the branch over git, and the pull request is opened and reported back to the thread

React to anchored events without a human relay

Review comments, CI results, Jira comments, and the merge itself arrive in the owning thread as they happen; the agent fixes what a reviewer asked for, answers questions on the ticket, and reacts to events rather than polling

Merge on an explicit human instruction, then clean up

Merging happens only on an explicit human instruction; after the merge the agent tears down the dev machine, transitions the ticket, and signs off in the thread

Where people stay involved

Each scope pairs its normal attention boundary with supporting evidence. See the supervision definitions for the level mapping and limits.

Reported: Humans review the pull request and then give an explicit merge instruction; the agent may not merge on an approval alone, and every write the outside world can see waits behind an Approve / Reject button.

  • Jira ticket assignment or Slack mention merged pull request

    Work-product review · Level 3

Catalog interpretation: Level 3 for Jira ticket assignment or Slack mention merged pull request; human attention boundary: work-product-review.

Observed in July 2026

Implementation details

Model
Claude. The orchestrator holds one persistent Claude conversation per Slack thread, and the dev-environment template installs Claude Code for the coding agent; no model version is named
Harness
A single small Python service orchestrating from Slack. One Slack thread is one session; the orchestrator creates and drives Remote Dev Environment sessions through the RDE MCP server, typing instructions into the coding agent's tmux pane and reading the pane back
Sandbox
A disposable Remote Dev Environment per task, created from a single pinned template whose warmup script installs Claude Code, sets up a git-only SSH identity, and starts the agent in a tmux session; every task gets its own machine, and the machine is deleted when the work is done
Tool access
Narrowly scoped orchestrator tools: post to Slack, read and manage pull requests, read Jira, query Datadog for logs, metrics, and error tracking, and create and drive Remote Dev Environments. The orchestrator has no shell and no file access and cannot read source code through the GitHub API; those tools are denied in code rather than in the prompt. The coding agent inside the dev environment holds a push-scoped SSH key and no GitHub API access, so git is its only interface to the outside world
Knowledge
Not reportedThe agent pulls what it needs at run time through scoped tools and the working tree in the dev environment; no retrieval corpus, index, or company knowledge store is described.
Context management
One Slack thread is one session backed by one persistent Claude conversation, so context survives messages, webhooks, and days-later follow-ups. Pull requests and tickets are anchored to the thread that owns them, so review comments, CI results, and Jira transitions arrive in the right conversation. The thread receives milestones only, not the agent's running commentary
Credentials
Credentials reach the coding machine through encrypted saved inputs and session inputs and are never baked into an image. The coding agent receives a push-scoped SSH key and no GitHub API access, and the orchestrator's own credentials never touch the machine
Interfaces
slack, jira, github, ci

Mechanisms

Ticket-to-merge loop in one Slack thread

Jira assignment or Slack mention plan delegated coding in a disposable dev environment pull request reactions to review and CI events human-instructed merge, cleanup, and ticket closure

An orchestrator that cannot code

The orchestrator has no shell and no file access and cannot even read source code through the GitHub API; the tools are denied in code, not in the prompt, so it plans, relays, narrates, and asks

Isolation as the security model

The coding agent's push-scoped SSH key and lack of GitHub API access mean that a prompt injection hidden in a codebase reaches no further than a pushed branch that still has to survive human review

Never block on input

The task brief instructs the coding agent to pick the most defensible default, document the assumption in the commit message and pull request description, and continue, because the pull request review is where wrong assumptions get corrected

Validation and failure handling

Test in an environment that matches CI

Dev-environment sessions run on the same infrastructure and stacks as Bitrise CI, so passing tests in the session and in CI stop being different claims; when CI fails the orchestrator relays the failing check into the session and the coding agent reproduces it

Gate public writes and fail closed

Untrusted authors' text is redacted before the model sees it, every public write waits behind an Approve / Reject button in Slack, and the agent holds when it cannot confirm that an author is trusted, a repository is private, or a check succeeded

Reported observations

The catalog records what the sources report, with the scope and the denominator of every figure. A qualification below limits the figure it sits under.

Implementation scale · Qualitative · One design-system migration Kolega handled, in usages, files, days, merge-conflict rounds, and review comments

Key observation

Bitrise describes a design-system migration touching around 200 usages across 167 files that Kolega planned, delegated, and then shepherded for four days through three rounds of merge conflicts and nine automated review comments, with the humans involved only reviewing

One design-system migration Kolega handled during a recent week

Implementation scale · Qualitative · Size, authorship, and elapsed build time of the Kolega orchestrator service

Key observation

Bitrise describes the orchestrator as a single small Python service that was mostly written by a coding agent and went from first commit to handling real tickets in a few weeks

Building the Kolega orchestrator service

Lessons

Bitrise puts its guardrails in code rather than in the system prompt: which tools exist, whose text the agent may read, and what needs approval are hard checks rather than prompt instructions.

Bitrise keeps humans on two decisions, merging and anything the outside world can see, and lets planning, coding, testing, and replying to reviewers run without a human in the middle.

Each Bitrise guardrail followed an incident: the agent once merged its own pull request the moment it saw an approval, so merging now happens only on an explicit human instruction.

Bitrise handles a stop command outside the normal message queue so that it interrupts a running turn, and holds when the agent cannot confirm that an author is trusted, a repository is private, or a check succeeded.

Reported opinion: The Bitrise team prefers to delegate the thinking rather than only the typing: its orchestrator does not read source code even to plan, on the view that the coding agent in front of the full working tree should plan its own work.

Sources and research details

Citations link to the original publisher. Each source also keeps a preserved copy in the repository, so a changed or removed page stays checkable.

  1. How we built a coding agent that lives in Slack, and the recipe to build your ownhttps://bitrise.io/blog/post/how-we-built-a-coding-agent-that-lives-in-slack-and-the-recipe-to-build-your-ownEngineering blog · First party · Last source verification: 2026-09-21
Question coverage and scope
purpose
Reported
workflow
Reported
human involvement
Reported: Humans review the pull request and then give an explicit merge instruction; the agent may not merge on an approval alone, and every write the outside world can see waits behind an Approve / Reject button.
implementation
Reported
validation
Reported
observations
Reported: Bitrise reports no performance metric for Kolega: no throughput, acceptance rate, cost, or time saved. Both recorded observations describe the scale of the work and of the build, not a measured result.
lessons
Reported
Research details for every claim on this page
  1. Summary
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  2. Sandbox
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  3. Harness
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  4. Model
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  5. Interfaces
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  6. Tool access
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  7. Credentials
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  8. Context management
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  9. Ticket-to-merge loop in one Slack thread
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  10. Pick up the work and post a plan
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  11. Delegate the coding to a disposable dev environment
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  12. Write and test the code, push a branch, and open a pull request
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  13. React to anchored events without a human relay
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  14. Merge on an explicit human instruction, then clean up
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  15. An orchestrator that cannot code
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  16. Isolation as the security model
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  17. Never block on input
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  18. Test in an environment that matches CI
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  19. Gate public writes and fail closed
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    A linked first-party source states the claim.
  20. Key observation
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    Bitrise reports the file and usage counts for one migration in its own engineering blog without a measurement method; it describes the scale of one task, not a measured result.
    Scope
    One design-system migration Kolega handled during a recent week
  21. Key observation
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    Bitrise states the service size, its authorship, and an approximate build time in its own engineering blog; no line count, commit history, or dated milestone supports the few-weeks figure.
    Scope
    Building the Kolega orchestrator service
  22. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    The post states the rule and names the enforced case: the orchestrator's shell, file, and GitHub source-read tools are denied in code rather than in the prompt.
  23. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    The two retained decisions are stated explicitly, and the merge gate and the Approve / Reject button on public writes are described as the mechanisms that hold them.
  24. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    Confidence reason
    The post names the specific incident and the specific rule change it produced; it does not say how often the incident occurred or what other guardrails each incident produced.
  25. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    Both behaviors are described as implemented rules with their triggers named; the post gives no example of either firing, so the effect on real runs is not documented.
  26. Lesson
    Statement type
    Opinion
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    This is the team's stated design preference for its own orchestrator, supported by the reported fact that the orchestrator does not read source code; the post offers no comparison against an orchestrator that plans from source, so the preference is not shown to generalize.
  27. Operating model assessment
    Statement type
    Inference
    Provenance
    Catalog judgment
    Confidence
    High
    Confidence reason
    The post states that on a four-day migration the humans involved did exactly one thing, review, and that merging now happens only on an explicit human instruction after the agent once merged on seeing an approval. Review is of the pull request itself, which places the boundary at the work product rather than at the outcome.
    Observation date
    2026-07
Back to agents
Know an internal agent?

Share a resource or public mention, suggest an addition, or correct an existing entry. Pull requests are also welcome.