Building a Public AI Agent Workspace for Organizational Learning

shopify · E-commerce · 2026 · source Agentic: yes · promotional bias: low · summary-only (no fetched source) · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Organization-wide coding-agent adoption and learning

Shopify needed its River coding agent to improve developer productivity while also spreading prompt patterns, debugging techniques, and agent skills across the organization instead of hiding every AI interaction in private one-off sessions.

Constraints:

Architecture

Shopify built River as an AI coding agent that works only in public Slack channels. Employees invoke River in channels rather than DMs; River can read code, run tests, write code, open pull requests, query data, examine traces, and execute development tasks. Public threads become a teaching-workshop environment where others observe prompts, add context, react, assist with reviews, and learn from successful and failed agent interactions.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  shopify-employee[Shopify Employee] --> public-slack-channel[Public Slack Channel]
  observers[Observers] --> public-slack-channel
  public-slack-channel --> river-agent[River Agent]
  river-agent --> codebase[Codebase]
  river-agent --> test-runner[Test Runner]
  river-agent --> pull-request-system[Pull Request System]
  codebase --> pull-request-system
  river-agent --> data-warehouse[Data Warehouse]
  river-agent --> production-traces[Production Traces]
  skills-and-instructions[Skills and Instructions] --> river-agent
  river-agent --> observers
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Shopify Employee User who invokes River and learns from public agent interactions. Public Slack Channel
Public Slack Channel Shared workspace where River operates and observers can learn or contribute. Shopify Employee, River Agent, Observers
Observers Employees who watch, react, add context, pick up work, assist with reviews, and learn from River threads. Public Slack Channel, River Agent
River Agent AI coding agent integrated into Shopify's development and data workflows. Public Slack Channel, Codebase, Test Runner, Pull Request System, Data Warehouse, Production Traces, Skills and Instructions
Codebase Shopify code that River reads and edits. River Agent, Pull Request System
Test Runner Testing infrastructure River uses to validate changes. River Agent
Pull Request System Version-control workflow where River opens PRs and participates in code review. River Agent, Codebase
Data Warehouse Internal analytics source River can query for development or business context. River Agent
Production Traces Operational telemetry River can inspect during debugging. River Agent
Skills and Instructions Agent behavior assets refined by teams across the company. River Agent

Data flow

An employee mentions River in a public Slack channel. River performs development work against Shopify systems, such as code reading, test execution, pull-request creation, data warehouse queries, and trace inspection. Other employees can watch the thread, add context, review work, and reuse prompting/debugging patterns. Team-level refinements to River's skills and instructions improve future behavior.

4 supporting quotes
“Shopify built River, an AI coding agent that represents a distinctive approach to deploying LLMs in production environments.”summary, stated
“The case study, written by Tobi Lütke (Shopify's founder), describes how the company deliberately designed River to operate only in public Slack channels, creating what they call a "Lehrwerkstatt" (teaching workshop) at scale.”summary, stated
“River possesses a comprehensive set of capabilities that position it as a full-fledged development team member rather than a simple chatbot. The agent can: • Read code across the codebase • Run tests • Write code • Open pull requests • Query the company's data warehouse • Examine production traces”summary, stated
“The public nature of interactions led to knowledge diffusion across the organization, with prompt patterns and debugging techniques spreading organically. The agent's merge rate improved from 36% to 77% over two months through collective learning and iterative refinement of River's skills and”summary, stated

Why this architecture

The core architectural choice is social rather than merely technical: River is public-only so every useful or failed interaction becomes inspectable training material for the organization. Running inside Slack reduces workflow switching, while broad development-tool integrations make River a real teammate rather than a Q&A bot.

4 supporting quotes
“how the company deliberately designed River to operate only in public Slack channels, creating what they call a "Lehrwerkstatt" (teaching workshop) at scale. This constraint was intended to transform the typical private AI assistant model into a transparent, collaborative learning”summary, stated
“This constraint was intended to transform the typical private AI assistant model into a transparent, collaborative learning environment”summary, stated
“River operates within Slack, leveraging the company's existing communication infrastructure rather than requiring developers to adopt new tools or contexts.”summary, stated
“River possesses a comprehensive set of capabilities that position it as a full-fledged development team member”summary, stated

Models used: AI coding agent

Scale

Alternatives considered (roads not taken)

Private AI assistant interactions

Rejected because: Private sessions do not create organizational knowledge diffusion or observable learning.

“This represents a fundamental departure from the typical AI assistant paradigm, where tools like ChatGPT, Claude, and Cursor operate in private windows between the user and the tool.”summary, stated
“This represents a fundamental departure from the typical AI assistant paradigm, where tools like ChatGPT, Claude, and Cursor operate in private windows between the user and the tool.”summary, stated

Direct-message operation

Rejected because: River explicitly declines DMs and pushes users into public channels to preserve the teaching-workshop model.

“implementation is the architectural decision to restrict the agent to public channels only. River explicitly declines to respond to direct messages and instead suggests users create public channels for collaboration. This represents a fundamental departure from the typical AI assistant paradigm,”summary, stated
“agent to public channels only. River explicitly declines to respond to direct messages and instead suggests users create public channels for collaboration. This represents a fundamental departure from the typical AI assistant paradigm, where tools like ChatGPT, Claude, and Cursor operate in”summary, stated

Patterns

tool-use-orchestration (coding-agent)

River uses code, test, PR, warehouse, and trace tools to participate in development work.

“River possesses a comprehensive set of capabilities”summary, stated
“Query the company's data warehouse • Examine production traces”summary, stated

human-in-the-loop-gate (collaborative-development)

Public threads let employees observe, react, add context, pick up work, and assist with reviews around River output.

“observe, react to threads, add context, pick up work, assist with reviews”summary, stated
“a single interaction between one person and the agent becomes a learning opportunity”summary, stated

agent-memory (organizational-learning)

River uses skills, zones, and memory-like knowledge structures to maintain and improve behavior across teams.

“Knowledge Architecture: Skills, Zones, and Memory”summary, stated
“iterative refinement of River's skills and instructions by teams across the company.”summary, stated

observability-tracing (debugging)

River can examine production traces as part of its development and debugging work.

“Examine production traces”summary, stated
“debugging techniques spreading organically.”summary, stated

Tradeoffs

Make River public-only

Chose public Slack channels over private assistant windows and DMs.

Rationale: Public operation creates learning, context sharing, review assistance, and prompt-pattern diffusion across the organization.

“designed River to operate only in public Slack channels”summary, stated
“transparent, collaborative learning environment”summary, stated

Use Slack as the workspace

Chose mention-based channel interactions over a new standalone agent interface.

Rationale: Slack was already the collaboration substrate, lowering adoption friction and making observation natural.

“leveraging the company's existing communication infrastructure rather than requiring developers to adopt new tools or contexts.”summary, stated
“Users interact with River by mentioning her in channels”summary, stated

Gotchas (what bit them)

Private agent work hides learning opportunities.

Root cause: Only the direct user sees the prompt, agent behavior, debugging moves, and result.

Resolution: Shopify constrained River to public Slack channels.

“private AI assistant model”summary, stated
“public-only operation was designed to create a "Lehrwerkstatt"”summary, stated

Transparency creates a different security and collaboration posture.

Root cause: Public-only agent use optimizes for knowledge diffusion rather than individual privacy.

Resolution: River declines direct messages and nudges users into public collaboration spaces.

“River explicitly declines to respond to direct messages”summary, stated
“Shopify deliberately optimized for organizational transparency and knowledge diffusion.”summary, stated

Evaluation

The summary reports production adoption and contribution metrics: employee/channel reach, PR volume, merged-PR share, and merge-rate improvement. The public-channel design also creates qualitative observation loops where employees learn and refine prompts/skills.

Metrics: employees engaged · Slack channels used · pull requests opened per week · share of merged pull requests · merge rate · observer count · skill/instruction refinement

“5,938 Shopify employees engaged with River across 4,450 different Slack channels.”summary, stated
“The agent's merge rate improved from 36% to 77% over two months”summary, stated

Outcomes

The summary reports 5,938 employees, 4,450 Slack channels, 1,870 PRs in one week, about one in eight merged PRs, over 100 observers in Tobi's working channel, and merge-rate improvement from 36% to 77%.

3 supporting quotes
“River opened 1,870 pull requests in just one week in Shopify's main monorepo”summary, stated
“approximately 12.5% of merged PRs are authored by River”summary, stated
“The public nature of interactions led to knowledge diffusion across the organization”summary, stated