Agent compliance
An agent is OpenGAP-compliant if:Required
- Has
agent.yamlat the repository root (or declared agent root) -
agent.yamlincludesopengap,name,version,model.provider, andmodel.name - The
opengapfield value matches the format"MAJOR.MINOR"(e.g.,"0.4") - All skills in
skills/export at least one skill-decorated function - No undeclared file dependencies outside the agent directory tree
- All referenced environment variables are documented (in README or
agent.yamlcomments)
Recommended (not required for compliance)
- Has a
tests/directory with at least one test per skill - Skills include descriptive
descriptionfields (not empty strings) -
agent.yamlhas adescriptionfield -
.gitignoreexcludes.env,*.pyc,__pycache__
Validation
gitagent validate with no errors is compliant.
Runtime compliance
A runtime is OpenGAP-compliant if it:Discovery
- Reads
agent.yamlfrom the agent root to initialize the agent - Rejects agents whose
opengapversion it does not support, with a clear error - Discovers skills by scanning the
skills.pathdirectory (default:skills/) - Loads skills from
.pyfiles and Python packages in the skills directory - Discovers hooks from the
hooks.pathdirectory (default:hooks/) - Discovers flows from the
flows.pathdirectory (default:flows/)
Skill contract
- Passes skill inputs as keyword arguments matching the function signature
- Returns skill output as a JSON-serializable value
- Reports
SkillErrorto the LLM as a tool error (not as an exception) - Enforces the
input_schemaif provided in the skill decorator
Execution
- Respects
execution.max_iterations— stops the agent loop after N iterations - Respects
execution.timeout— cancels the run after N seconds - Injects conversation history (last
memory.max_historyturns) into the context whenmemory.enabled: true
Environment variable interpolation
- Resolves
${VAR_NAME}and${VAR_NAME:-default}inagent.yamlvalues - Fails with a clear error if a required variable (no default) is not set
Validation command
- Implements
validate(or equivalent) that checks agent compliance and reports violations
Version negotiation
- Reports the OpenGAP spec version(s) it supports
- Refuses to execute an agent targeting an unsupported spec version
Spec version compatibility
| Spec version | GitAgent versions | Key changes |
|---|---|---|
0.4 | 0.7+ | Added flows/, plugin system, execution block |
0.3 | 0.5–0.6 | Added hooks/, memory providers |
0.2 | 0.3–0.4 | Added agent.yaml env var interpolation |
0.1 | 0.1–0.2 | Initial spec |
Requesting compliance certification
If you’ve built an OpenGAP-compatible runtime and want it listed as officially compliant:- Implement all required runtime compliance criteria above
- Run the OpenGAP compliance test suite against your runtime
- All tests must pass
- Open a PR to the OpenGAP repo adding your runtime to
RUNTIMES.md