How it works
When you enable Self Diagnostics, the SDK gives your agent a reporting tool and prompt-engineers its description from your category definitions. Whenever the agent hits one of those situations, it reports it, and Raindrop records it as a signal withsignal_type: "agent", grouped separately from classifier- and SDK-tracked signals so agent-reported issues don’t get lost in the mix. See Default signal categories for what it catches out of the box.
Using Self Diagnostics
Enable it
Self Diagnostics is enabled through the SDK when you instrument your agent. AddselfDiagnostics: { enabled: true } to your wrap() call:
Customize the categories
You can define your own signal categories and add domain-specific guidance. When you provide customsignals, they replace the defaults entirely:
Report without wrap()
Beyond wrap(), the SDK offers two additional approaches for more advanced use cases:
createSelfDiagnosticsTool()— a standalone self-diagnostics tool for agents that don’t usewrap(). See the TypeScript SDK docs.selfDiagnose()— manually report a diagnostic from your own code, no LLM tool call needed. See the TypeScript SDK docs.
View reports in the dashboard
Self Diagnostics reports appear in a dedicated Self Diagnostics tab on the Signals page. From there you can:- Track issue rates over time with signal charts
- Drill into individual incidents to see the agent’s description of what went wrong
- Set up alerts to get notified when problems spike
Reference
Default signal categories
Out of the box, the agent detects and reports four categories of issues:
Providing custom
signals replaces these defaults entirely (see Customize the categories).
Troubleshooting
Reports aren’t showing up. ConfirmselfDiagnostics.enabled is true in your wrap() config and that your agent has run since. Reports land under the Self Diagnostics tab on the Signals page, not the main Signals list.
Custom categories replaced the defaults. That’s expected: custom signals replace the four defaults entirely. Re-add any defaults you still want alongside your custom ones.