Unified AI Security Orchestrator: From Single-Purpose CVE Agent to Multi-Workflow Autonomous Platform

trm · Tech · 2026 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.6 (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: Autonomous security operations

TRM Labs needed to evolve a narrow CVE patching agent into a unified AI security orchestrator that could triage, remediate, approve, and escalate multiple security workflows safely across infrastructure.

Constraints:

Architecture

TRM rebuilt the CVE patch agent into a Slack-native orchestrator-workers platform. Claude Opus acts as a central dispatcher in a Cloud Run service, selecting among 14 skills and context-specific subsets of 56 tools. The platform handles alert triage, PR review, helpdesk requests, and vulnerability remediation with per-workflow SLAs, OpenTelemetry instrumentation, staging/prod channel ownership, and a knowledge flywheel.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  slack_event_interface["Slack event interface"] --> pub_sub_fanout["Pub/Sub fanout"]
  pub_sub_fanout --> cloud_run_orchestrator_service["Cloud Run orchestrator service"]
  channel_ownership_config["Channel ownership config"] --> cloud_run_orchestrator_service
  cloud_run_orchestrator_service --> claude_opus_orchestrator["Claude Opus orchestrator"]
  claude_opus_orchestrator --> skill_registry["Skill registry"]
  skill_registry --> tool_registry["Tool registry"]
  tool_registry --> github_and_security_systems["GitHub and security systems"]
  claude_opus_orchestrator --> brain_knowledge_system["Brain knowledge system"]
  open_telemetry_instrumentation["OpenTelemetry instrumentation"] --> cloud_run_orchestrator_service
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Slack event interface Receives user, alert, PR, and helpdesk workflow events. Pub/Sub fanout
Pub/Sub fanout Delivers verified Slack events to staging and production Cloud Run services. Slack event interface, Cloud Run orchestrator service
Cloud Run orchestrator service Runs the single orchestrator loop for Slack-native security workflows. Pub/Sub fanout, Claude Opus orchestrator, Channel ownership config, OpenTelemetry instrumentation
Claude Opus orchestrator Dispatches workflow skills and tool subsets. Cloud Run orchestrator service, Skill registry, Tool registry, Brain knowledge system
Skill registry Contains 14 user-invocable skills and operational triage capabilities. Claude Opus orchestrator, Tool registry
Tool registry Provides 56 tools, narrowed by channel and workflow context. Claude Opus orchestrator, GitHub and security systems
Brain knowledge system Captures observations and supports the knowledge flywheel. Claude Opus orchestrator
OpenTelemetry instrumentation Tracks production service behavior and per-workflow operations. Cloud Run orchestrator service
Channel ownership config Declares staging/production Slack channel ownership in YAML. Cloud Run orchestrator service
GitHub and security systems Provide PR, alert, CSPM, DSPM, Cloudflare, and remediation surfaces. Tool registry

Data flow

Slack events enter a public load balancer, are HMAC-verified, fan out through Pub/Sub to staging and production Cloud Run services, and are accepted or dropped based on YAML channel ownership. For accepted events, Claude Opus selects a workflow skill and a narrowed tool subset, investigates, diagnoses, fixes or escalates, records observations, and emits outcomes back to Slack or GitHub/security systems.

3 supporting quotes
“The platform now runs as a single Cloud Run service handling every Slack event through one orchestrator loop with adaptive thinking.”summary, stated
“The fanout mechanism provides elegant simplicity: Slack posts to one public load balancer, which verifies the HMAC signature once and republishes events to a Pub/Sub topic.”summary, stated
“tool subsetting: rather than presenting all 56 tools to the model on every interaction, the system narrows the available toolset based on the current channel and workflow context.”summary, stated

Why this architecture

TRM recognized that security workflows share the same alert-investigate-diagnose-fix-close loop, so a single orchestrator with skill/tool specialization could compound learning across workflows instead of duplicating automation.

“all security workflows share the same five-step pattern: alert, investigate, diagnose, fix, and close.”summary, stated
“Rather than building separate automation for each workflow, they created a unified orchestrator that could learn across workflows and compound its effectiveness over time.”summary, stated

Models used: Claude Opus · Claude Code

Scale

Alternatives considered (roads not taken)

Keep separate agents per workflow

Rejected because: The shared five-step security pattern supported a unified orchestrator.

“Rather than building separate automation for each workflow, they created a unified orchestrator”summary, stated

Expose all 56 tools to the model

Rejected because: Tool subsetting improves selection and authorization boundaries.

“This subsetting produces significantly sharper tool selection decisions and tighter authorization boundaries than exposing the full tool surface.”summary, stated

Replace the proven CVE patch worker

Rejected because: TRM preserved the Cloud Run and Claude Code worker loop as one skill.

“preserve the original patch agent's Cloud Run and Claude Code worker loop as the kernel for one skill among many”summary, stated

Patterns

multi-agent-orchestration (security workflows)

Claude Opus dispatches skills and workers across remediation, triage, reviews, and helpdesk tasks.

“orchestrator-workers pattern with Claude Opus serving as the central dispatcher.”summary, stated

tool-use-orchestration (security tools)

The orchestrator selects workflow-specific subsets from 56 available tools.

“handling security alert triage, PR reviews, helpdesk requests, and vulnerability remediation.”summary, stated

observability-tracing (production ops)

The service runs with comprehensive OpenTelemetry instrumentation and workflow SLAs.

“The system operates as a production service with per-workflow SLAs, comprehensive OpenTelemetry instrumentation, and a knowledge flywheel that continuously improves through captured observations.”summary, stated

agent-memory (knowledge flywheel)

The Brain knowledge system captures observations to improve future workflow handling.

“The system operates as a production service with per-workflow SLAs, comprehensive OpenTelemetry instrumentation, and a knowledge flywheel that continuously improves through captured observations.”summary, stated

safety-policy-enforcement (authorization)

Tool subsetting and escalation boundaries limit what the model can do per channel/workflow.

“This subsetting produces significantly sharper tool selection decisions and tighter authorization boundaries than exposing the full tool surface.”summary, stated

Tradeoffs

Use one orchestrator service.

Chose Unified Cloud Run orchestrator loop over Separate services for each security workflow.

Rationale: Common workflow shape and shared knowledge let improvements compound.

“This shift from function-oriented automation to platform-oriented orchestration represents a mature approach to LLMOps in production environments.”summary, stated

Fan out Slack events to staging and production.

Chose Shared Slack app, Firestore, secrets, and Pub/Sub fanout with channel ownership over Separate isolated Slack apps per environment.

Rationale: This enables realistic staging against real Slack and Firestore state without double-handling.

“This design enables engineers to ship features to staging-owned channels, test against real Slack and real Firestore state”summary, stated

Gotchas (what bit them)

Specialized agents do not generalize without re-architecture.

Root cause: The V1 CVE agent was a function from CVE to PR.

Resolution: Preserve the patch worker as one skill inside a broader orchestrator platform.

“While effective for its narrow purpose, this architecture couldn't generalize to other security workflows without complete reimplementation.”summary, stated

Full tool surfaces degrade selection and security.

Root cause: A model seeing all 56 tools at once faces unnecessary choice and broader authority.

Resolution: Subset tools by Slack channel and workflow context.

“when operating in the security alerts channel, the agent sees only CSPM, DSPM, Cloudflare, Brain (their knowledge system), and a few read operations.”summary, stated

Testing Slack-native agents can create double-handling risk.

Root cause: Staging and production services both receive the same Slack events.

Resolution: Use channel ownership config so non-owner services drop events quietly.

“Each service then consults the configuration file to determine if the event's channel is one it owns; if not, the event is silently dropped”summary, stated

Evaluation

TRM evaluates the orchestrator through monthly interactions, alert auto-closure, helpdesk ticket avoidance, autonomous low-risk PR approvals, per-workflow SLAs, and instrumentation.

Metrics: 10,000 interactions monthly. · 17% security alert auto-close rate. · 45% helpdesk resolution without tickets. · 150+ repositories in the original CVE agent. · 14 skills and 56 tools.

“processes approximately 10,000 interactions monthly, auto-closes 17% of security alerts without human intervention, resolves 45% of helpdesk requests”summary, stated

Outcomes

The orchestrator handles about 10,000 monthly interactions with 14 skills and 56 tools.

“TRM Labs evolved their initial single-purpose vulnerability patching agent into a unified Slack-native AI orchestrator”summary, stated