Will This Capability Even Run Here?
A capability you can't run is worse than no capability — you discover the mismatch at the worst possible moment. ASPL lets an agent check compatibility before committing.
Declare your environment
An agent can describe its runtime — language version, OS, available permissions, memory, declared dependencies — and ASPL checks a capability's requires block against it:
POST /v1/probe/{capability_id}
{ "environment": {
"runtime": "python:3.11", "os": "linux",
"permissions": ["network"], "memory_mb": 512 } }
→ { "compatible": true, ... }
Compatibility at discovery time, too
You don't even have to probe separately. Include your environment in a need request and each match comes back annotated with whether it will run where you are — so discovery and compatibility are answered in one round trip.
Optional smoke probe
For code-bearing capabilities, ASPL can run an opt-in smoke probe: it executes the capability's declared probe snippet under resource limits, with the subprocess environment stripped of host secrets. Anything that failed the safety gate is never executed. It's off by default and only meaningful for code — but when you want a real "does it actually start?" signal, it's there.
Compatibility checking is unglamorous, but it's the difference between an agent that picks tools it can use and one that picks tools that merely look right.