Internal Agents Map

Junior

An open-source Slack agent built at Sentry that retrieves context and acts across company systems. People can steer interactive tasks in a thread; Junior also handles scheduled tasks and inbound events. Its author prefers one agent for work that spans several systems.

Company
Sentry
Approach type
Agent
Human involvement
Varies by scope: Continuous steering, Unknown. See each scope.
Interfaces
Slack, Web, Github
Deployment stage
Deployed
Evidence strength
Detailed primary
Entry reviewed
Copy as MDAsk ChatGPT

How it works

Slack thread request or watched event to an acted-upon answer or artifact.

Answer a Slack question from the codebase

Junior searches the repo, traces the code path, and answers in the thread instead of guessing[Source 1]

Open a GitHub issue from a conversation

Tagged in a thread, Junior summarizes the discussion, does gap analysis or an RCA, and opens the ticket through the typed tool that attaches the deterministic footer[Source 1]

Run visual QA in the browser sandbox

Junior opens a feature with agent-browser, clicks around, takes screenshots or videos, and writes up the rough edges in the same thread[Source 1]

Watch a pull request for follow-ups

After opening a PR Junior subscribes to its events; a failed check or requested change becomes a synthetic message, and Junior decides what to update in the thread[Source 1]

Where people stay involved

People review, approve, or guide the agent’s work here.

Reported: People give information, steer mid-run, and review the work. The event-driven follow-up boundary is unverified and stays in research details.

  • Supervision level

    Continuous steering

    A person pairs with the agent throughout execution.

    Level 2 of 5

    • interactive Slack task → human-steered and reviewed output[Source 1]
  • Supervision level

    Not classified

    • event- or scheduler-triggered follow-up (watched GitHub PR) → agent-initiated thread update[Source 1]

How supervision levels work

Implementation details

Model
Claude Sonnet (faster); swappable (Opus as a more expensive option)[Source 1]
Harness
Custom harness on Pi's SDK; a task broker over Vercel Queues with an inbox → worker-claim → interrupt/resume pattern to survive serverless timeouts; 'skills-as-runbooks'[Source 1]
Sandbox
Vercel serverless functions; Vercel agent-browser sandbox with an on-path proxy for traffic interception; ephemeral containers[Source 1]
Tool access
Progressive discovery via MCP; by default Junior connects to no provider until the agent requests a tool lookup; plugins connect Sentry, GitHub, Linear, Notion[Source 1]
Knowledge
Conversation transcripts persisted in Redis; repo search to trace code paths; skill docs (TELEMETRY.md, SOUL.md)[Source 1]
Context management
Incremental transcript updates in Redis; resource subscriptions to GitHub PR events for follow-ups[Source 1]
Credentials
On-path proxy injection; the model never sees the token because it is not in the sandbox; plugins declare OAuth flows and credential domains; GitHub distinguishes read vs. write[Source 1]
Interfaces

Slack is the primary surface and the dashboard is the web surface; the writeup also names a local junior chat CLI, which the claim list does not carry.

  • slack
  • web
  • github
[Source 1]

Mechanisms

Progressive tool discovery

searchMcpTools connects to a requested MCP provider and discovers its tools on demand[Source 1]

On-path credential proxy

An outbound proxy injects credentials for configured domains or pauses the agent for authorization[Source 1]

Interrupt/resume broker

Pauses near a serverless deadline and queues a task to continue the session[Source 1]

Validation and failure handling

Reported: Lesson

Reported observations

These results come from the sources. Notes below each result explain what it covers and any reported limits.

Headline claim

Open-source (Apache-2.0) Slack agent (~100k lines of TypeScript excluding tests, evals, docs, and lockfiles) used internally at Sentry[Source 1, Source 4]

Reported by
Sentry
Scope
Junior codebase size (excluding tests, evals, documentation, and lockfiles) and license in the July 2026 author report

The source does not report the denominator of this figure.

Observed in July 2026

About this result
Category
Implementation scale
Evidence type
Reported measurement
What it covers
Junior codebase size, Apache-2.0 license, and internal use at Sentry
Key observation

Around 171,700 lines of TypeScript under the same exclusions, counted from the public repository on 2026-10-08[Source 2]

Method
Line count of TypeScript files on the repository main branch excluding test, spec, fixture, eval, and docs paths

The source does not report the scope and denominator of this figure.

Observed in October 2026

About this result
Category
Implementation scale
Evidence type
Reported measurement
What it covers
Junior codebase TypeScript lines excluding tests, evals, docs, and lockfiles
Key observation

4 months from start to writeup[Source 1]

Reported by
Sentry
Scope
Author-reported development and iteration time before the writeup

The source does not report the denominator of this figure.

About this result
Category
Implementation scale
Evidence type
Reported measurement
What it covers
Author-reported development time from project start to writeup

Lessons

Reported opinion: Junior's author prefers one agent that can work across company systems to choosing among several vendor-specific bots.[Source 1]

Junior's skills contain operational instructions, including telemetry lookup conventions and the GitHub workflows used for package releases.[Source 1]

Junior pauses before a serverless timeout and queues a continuation task at a resumable point.[Source 1]

Junior tests agent behavior with event scenarios, explicit evaluation criteria, and assertions on side effects.[Source 1]

Junior combines an installation token for reads with per-user OAuth for writes in its GitHub integration.[Source 1]

Back to agents
Improve this record

Give your coding agent the context and instructions to prepare a source-backed update.

Paste the prompt into your coding agent, then describe the correction or add a public source.

Preview prompt

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. Building an Intern (Junior at Sentry)https://cra.mr/building-an-intern/Engineering blog · First party · Last source verification: 2026-08-31
  2. getsentry/junior source repositoryhttps://github.com/getsentry/juniorRepository · First party · Last source verification: 2026-08-31
  3. Sentry Labshttps://labs.sentry.dev/Documentation · First party · Last source verification: 2026-08-31
  4. getsentry/junior Apache 2.0 licensehttps://github.com/getsentry/junior/blob/main/LICENSE?plain=1Source code · First party · Last source verification: 2026-08-31
Question coverage and scope
purpose
Reported
workflow
Reported: The four runs the writeup documents; the discovery, proxy, and broker primitives are reusable mechanisms.
human involvement
Reported: People give information, steer mid-run, and review the work. The event-driven follow-up boundary is unverified and stays in research details.
implementation
Reported
validation
Reported: vitest-evals runs event scenarios with explicit pass and fail criteria and asserts on side effects; interceptors also force deterministic issue and PR footers at runtime.
observations
Reported
lessons
Reported
Research details for every claim on this page
  1. Summary
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  2. Headline claim
    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
    Reported by
    Sentry
    Scope
    Junior codebase size (excluding tests, evals, documentation, and lockfiles) and license in the July 2026 author report
    Denominator
    Not reported
    Method
    Not reported
    Observation date
    2026-07
  3. Sandbox
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  4. Harness
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  5. Model
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  6. Interfaces
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  7. Tool access
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  8. Knowledge
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  9. Credentials
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  10. Context management
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  11. Progressive tool discovery
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  12. On-path credential proxy
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  13. Interrupt/resume broker
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  14. Answer a Slack question from the codebase
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  15. Open a GitHub issue from a conversation
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  16. Run visual QA in the browser sandbox
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  17. Watch a pull request for follow-ups
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  18. Key observation

    Around 100,000 lines of TypeScript excluding tests, evals, docs, and lockfiles at the July 2026 writeup

    Duplicate representation of Headline claim. Component of the compound headline: the same about-100,000-line TypeScript count with the same exclusions.

    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
    Reported by
    Sentry
    Scope
    TypeScript lines in Junior excluding tests, evals, documentation, and lockfiles at the July 2026 writeup
    Denominator
    Not reported
    Method
    Not reported
    Observation date
    2026-07
  19. Key observation
    Statement type
    Metric
    Provenance
    Observed
    Confidence
    Medium
    Confidence reason
    A direct count on the public main branch, reproduced by two independent checks on 2026-10-08; the exclusion set mirrors the writeup's wording rather than a Sentry-defined list.
    Reported by
    Not reported
    Scope
    Not reported
    Denominator
    Not reported
    Method
    Line count of TypeScript files on the repository main branch excluding test, spec, fixture, eval, and docs paths
    Observation date
    2026-10
  20. Key observation
    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
    Reported by
    Sentry
    Scope
    Author-reported development and iteration time before the writeup
    Denominator
    Not reported
    Method
    Not reported
    Observation date
    Not reported
  21. Lesson
    Statement type
    Opinion
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    The author describes a personal workflow preference and also acknowledges the value of vendor specialization; the article contains no head-to-head outcome comparison.
  22. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    The Sentry skill lists concrete query and authentication steps, and release-package is given as an example of a reusable playbook.
  23. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    The runtime section names the soft deadline, a completed tool result as the intended pause point, and the queued continuation.
  24. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    The vitest-evals example checks continuation after authorization and retained conversation context. The concrete practice does not require adopting the author's broader dismissal of unit tests.
  25. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    The authorization discussion distinguishes global read access from user-authorized writes; it is an integration design, not a guarantee for every tool.
  26. Operating model assessment
    Statement type
    Inference
    Provenance
    Catalog judgment
    Confidence
    High
    Confidence reason
    The source explicitly describes humans steering and reviewing the agent throughout its work.
    Observation date
    2026
  27. Operating model assessment
    Statement type
    Inference
    Provenance
    Catalog judgment
    Confidence
    Unverified
    Confidence reason
    Webhook and scheduler inputs become synthetic messages the agent decides on alone; no passage documents a person reviewing the agent-initiated thread updates.
    Observation date
    2026