I’m building a CI/CD Diagnosis Agent that needs to reason under uncertainty.
The basic idea is:
A CI pipeline fails → the actual root cause is hidden → the agent observes the available evidence → assigns probabilities to possible causes → chooses the next diagnostic action → receives new evidence → updates its beliefs → eventually diagnoses the failure.
For example, if a build fails, possible hidden causes might include:
- Code regression
- Dependency/version conflict
- Environment/runner problem
- Flaky test
- Configuration/secrets issue
- Database migration problem
- Infrastructure/network failure
- Resource exhaustion
- Build/cache issue
- Test/data issue
The agent could potentially take actions such as:
- Inspect the recent code changes
- Check dependency changes
- Check the CI environment
- Retry the failed test
- Run unit tests
- Run integration tests
- Inspect previous runs
- Compare with a known-good commit
- Check logs from another stage
- Escalate to a human
I’m particularly interested in how this should be modeled as a decision-making problem.
For example, if the initial evidence is:
What should the agent's belief distribution look like?
Should it consider something like:
Dependency issue: 70%
Environment issue: 15%
Code issue: 10%
Configuration issue: 5%
And then choose the next action based on both probability and diagnostic cost/information value?
I'd love to hear from CI/CD engineers:
- What are the most common failure scenarios you've encountered?
- What hidden root causes would you include in a simulation?
- What evidence is actually useful for distinguishing between them?
- What diagnostic actions would you take first?
- Are there cases where the obvious error message is misleading?
I'm trying to build the evaluation environment around realistic failure modes rather than inventing arbitrary examples, so real-world experiences would be extremely valuable.
Posted Aug 30, 2026, 12:08 PM UTC