
How it works
- A GitHub
workflow_runworkflow collects metadata and up to 24,000 characters of failed-step logs. - The workflow posts a structured payload to an authenticated OpenComputer agent webhook.
- The webhook starts a new session against the active deployment.
- The agent analyzes only the supplied evidence and calls its
publish_ci_triagetool. - A durable outbox delivers provider-neutral report content to the Slack
conversation bound to the
ci-failuresdestination.
Start with the example
GitHub Actions triage agent
Clone the complete agent project and GitHub Actions workflows from GitHub.
Connect Slack
The repository declares an Engineering Slack channel inopencomputer/channels/team-slack.ts. That channel defines the Slack app’s
capabilities and a stable ci-failures destination. Credentials and the actual
Slack conversation are configured separately for each environment.
In the OpenComputer project dashboard:
- Select Development, then open Channels.
- Open Engineering Slack and create or update a Slack app from the generated manifest.
- Install the app in your workspace and invite it to the public conversation that should receive failure reports.
- Bind
ci-failuresto that conversation and verify the binding.
ci-triage outbox, so Slack delivery can retry separately
from the agent turn.
Create the agent webhook
Create a Development webhook from the repository:OPENCOMPUTER_WEBHOOK_URLOPENCOMPUTER_WEBHOOK_TOKEN
Choose workflows to monitor
The included.github/workflows/triage-failed-actions.yml listens for a
workflow whose display name is CI:
workflows to the exact display names you want to monitor. The
collector must be present on the repository’s default branch before GitHub
will run it. To monitor another repository, copy the collector workflow and
configure the same two repository secrets there.
Test the complete flow
The example’sCI workflow includes a manual force_failure input:
- Push the repository to GitHub’s default branch.
- Open Actions → CI → Run workflow.
- Set
force_failuretotrueand start the run. - Wait for Triage failed GitHub Actions and confirm its webhook step
returns HTTP
202. - Open the
sessionUrlprinted by that step to inspect the durable session. - In OpenComputer, confirm the
ci-triageoutbox item was delivered. - Confirm a concise diagnosis and GitHub run link appear in the bound Slack
conversation. The complete structured content remains available on the
ci-triageoutbox item.
Safety properties
- Workflow names, branches, commit metadata, actor names, and logs are treated as untrusted evidence rather than instructions.
- Common GitHub, AWS, and bearer-token shapes are redacted before model and Slack use, in addition to GitHub’s own secret masking.
- Interactive questions are disabled so an unattended run records unknowns, publishes its best available report, and finishes.
- Missing or truncated logs are called out in the report, which always links responders to the complete GitHub run.