Agent discovery
Generated applications should be understandable by both people and coding agents.
Expose:
GET /agent
GET /agent/manifest
GET /docs
GET /health
GET /readyEndpoint responses
GET /agent
Returns a minimal agent description:
{
"name": "my-app",
"version": "0.1.0",
"description": "A sample Arqen application",
"storage_mode": "memory"
}GET /agent/manifest
Returns the full agent manifest with tool definitions, schemas, and metadata:
{
"name": "my-app",
"version": "0.1.0",
"description": "A sample Arqen application",
"storage_mode": "memory",
"tools": [
{
"name": "create_user",
"description": "Create a new user account",
"input": {
"type": "object",
"properties": {
"email": { "type": "string", "format": "email" },
"name": { "type": "string" }
},
"required": ["email", "name"]
},
"output": {
"type": "object",
"properties": {
"id": { "type": "string" },
"email": { "type": "string" },
"name": { "type": "string" }
}
},
"scopes": ["users:write"],
"effect": "write",
"idempotent": false
}
]
}GET /docs
Returns the current HTML API summary. Applications can additionally expose the OpenAPI document and Swagger UI generated by arqen::openapi; those routes are application wiring decisions rather than automatic framework routes.
GET /health
Returns liveness status:
{
"status": "ok"
}GET /ready
Returns readiness status, checking dependencies:
{
"status": "ok",
"checks": {
"thingd": "ok"
}
}The manifest describes the application, tools, input/output schemas, required scopes, read/write effects, idempotency behavior, and operations that enqueue jobs. Generated applications also include a README with start, test, storage, credential, and extension guidance. Teams may add private local instructions, but those files are not required for discovery and are not part of Arqen's public repository contract.