{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_csz63t7jfctx","handle":"ahel-technologies-ou-ahel","url":"https://wellknown.network/agents/ahel-technologies-ou-ahel","links":{"self":"https://wellknown.network/agents/ahel-technologies-ou-ahel/record.json","html":"https://wellknown.network/agents/ahel-technologies-ou-ahel","markdown":"https://wellknown.network/agents/ahel-technologies-ou-ahel/record.md","api":"https://wellknown.network/api/v1/agents/ahel-technologies-ou-ahel","status":"https://wellknown.network/api/v1/agents/ahel-technologies-ou-ahel/status","claim":"https://wellknown.network/agents/ahel-technologies-ou-ahel/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ahel-technologies-ou-ahel/claim.json","badge":"https://wellknown.network/agents/ahel-technologies-ou-ahel/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ahel-technologies-ou-ahel/history","tools":"https://wellknown.network/api/v1/agents/ahel-technologies-ou-ahel/tools"},"ard":{"identifier":"urn:air:ahel.ai:agent:ahel-technologies-ou-ahel","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"ahel","summary":"The gateway between an AI client and the apps, MCP servers, skills and knowledge a person has connected. Connect an app once in ahel; every AI client the person uses can then discover it, check whether it is ready, and run it — with the person's credentials held server-side and never returned. Also…","description":"The gateway between an AI client and the apps, MCP servers, skills and knowledge a person has connected. Connect an app once in ahel; every AI client the person uses can then discover it, check whether it is ready, and run it — with the person's credentials held server-side and never returned. Also runs saved agents on a schedule and hands work between teammates. IMPORTANT: ahel exposes these skills over MCP (Streamable HTTP and SSE), not over an A2A protocol binding. There is no message/send endpoint, no A2A Task lifecycle, and therefore no entry in supportedInterfaces; see the required extension in capabilities for the endpoint an MCP-speaking client should use.","publisher":{"name":"Ahel Technologies OÜ","url":"https://ahel.ai"},"homepage":"https://ahel.ai/install","repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["discovery","routing","catalog","capabilities","search","read-only","installation","connection","setup","inventory","readiness","configuration","accounts","limits","introspection","schemas","execution","tool-call","delegation","actions","credentials","escape-hatch","http","sandbox","scripting","compatibility","skills","instructions","agents","scheduled-runs","long-running","built-in","handoff","collaboration","workspace"],"pricing":null,"endpoints":[{"url":"https://ahel.ai","type":"a2a","auth":"declared","probeable":true}],"skills":[{"id":"explore","name":"explore","tags":["discovery","routing","catalog","capabilities"],"description":"Find a capability for the person's ask or underlying ability. Returns one relevant offer with its availability and next step. Explain setup and execution limits; install only after the person agrees."},{"id":"search","name":"search","tags":["discovery","catalog","search","read-only"],"description":"Search ahel's catalog of apps, skills and knowledge by what the person wants their AI to do. Returns a list of results with id, title and url; call fetch with an id to read one in full."},{"id":"fetch","name":"fetch","tags":["discovery","catalog","read-only"],"description":"Read one catalog record in full by the id search returned: what it does, who serves it, whether it is installable, and how to install it through ahel."},{"id":"install","name":"install","tags":["installation","connection","setup"],"description":"Install one capability by its id from explore. It is added and made available to this account's AI clients in a single step; there is no separate enable. Reports whether it is ready or still needs the person to add a credential, and one example prompt to try. Its tools are then reached with tools and use; nothing needs to reconnect."},{"id":"installed","name":"installed","tags":["inventory","readiness","read-only"],"description":"What this account has installed, and whether each one is on, off, needs setup, or is unavailable."},{"id":"switch","name":"switch","tags":["inventory","configuration"],"description":"Turn an installed capability on or off. On makes it available to this account's AI clients. Off keeps it installed but removes its tools and prompts. A seat that cannot configure the workspace switches capabilities marked available on or off for itself only."},{"id":"status","name":"status","tags":["readiness","accounts","limits","read-only"],"description":"Installed capability readiness, execution limits and named accounts for account_id selection. Account identifiers, credential names and status only, never secrets."},{"id":"tools","name":"tools","tags":["introspection","schemas","read-only"],"description":"List an installed capability's executable tools and schemas by key. Without a key, return an overview. Follow the execution next step for instruction-only skills. Named account IDs come from status."},{"id":"use","name":"use","tags":["execution","tool-call","delegation"],"description":"Run a capability tool using its key, tool name and arguments from tools. Credentials stay server-side. For instruction-only skills use skill_read. Named account IDs come from status."},{"id":"list_actions","name":"list_actions","tags":["actions","discovery","read-only"],"description":"What this account's AI can DO on connected services (send an email, create an issue, post a message) using the person's own key, stored once in ahel. Call with the person's ask as query (e.g. \"email my team\") to get ranked matching actions, or with a service for its full list. Each action runs with the key ahel holds; no key ever appears in chat."},{"id":"run_action","name":"run_action","tags":["actions","execution","credentials"],"description":"Run one action from list_actions on the person's own account of that service. ahel injects their stored key server-side; the result comes back structured. Params are the action's declared parameters."},{"id":"raw_request","name":"raw_request","tags":["actions","escape-hatch","http"],"description":"Escape hatch for endpoints no listed action covers: one HTTP request to a connected service's own API host, with the person's stored key injected server-side. The request cannot leave that service's host. Prefer run_action when one fits."},{"id":"run_script","name":"run_script","tags":["execution","sandbox","scripting","credentials"],"description":"Run a short Node script, synchronously, in a locked per-run sandbox that holds no credential of its own. Use it when one job needs several credential-bound calls — a loop, a join, a total — that would otherwise be many round trips. The script's stdout is the result. Sixty seconds maximum; prefer run_action for a single call."},{"id":"stack_list","name":"stack_list","tags":["inventory","compatibility","read-only"],"description":"Compatibility verb; prefer installed. Lists this account's gateway: every item, its sector, and whether it is currently on."},{"id":"catalog_search","name":"catalog_search","tags":["discovery","catalog","compatibility","read-only"],"description":"Compatibility verb; prefer explore. Searches the ahel catalog and returns matching items with their ids."},{"id":"stack_add","name":"stack_add","tags":["installation","compatibility"],"description":"Compatibility verb; prefer install, which adds and serves in one step. Adds a catalog item without serving it."},{"id":"stack_set_enabled","name":"stack_set_enabled","tags":["configuration","compatibility"],"description":"Compatibility verb; prefer switch. Sets whether one item is served."},{"id":"credentials_status","name":"credentials_status","tags":["readiness","credentials","compatibility","read-only"],"description":"Compatibility verb; prefer status. Per server: the credentials its record declares and whether each is sealed or missing. Names and status only, never values."},{"id":"skill_read","name":"skill_read","tags":["skills","instructions","read-only"],"description":"Read an enabled skill's instructions or a file it lists, using its key from installed. Instruction delivery does not prove its remote dependencies are available; check execution readiness before promising the workflow."},{"id":"ahel-services-agents","name":"Agents","tags":["agents","scheduled-runs","delegation","long-running","built-in"],"description":"Built in, no installation: run a saved agent in the person's own AI, or on a schedule on the person's own model key with ahel's executor, then read its progress, questions, charge and result. A scheduled run keeps running after the calling client disconnects and is capped by a limit the person approves first. Reached with tools(\"ahel-services-agents\") for the current sub-verbs and schemas, then use."},{"id":"ahel-services-handoff","name":"Teammate handoff","tags":["handoff","collaboration","workspace","built-in"],"description":"Built in, no installation: package what the current conversation shows — goal, decisions, what changed, what is unresolved, the next step — and hand it to a teammate in the same workspace, who opens it from their own AI client. Never carries credentials. Reached with tools(\"ahel-services-handoff\"), then use."}],"tools":["explore","search","fetch","install","installed","switch","status","tools","use","list_actions","run_action","raw_request","run_script","stack_list","catalog_search","stack_add","stack_set_enabled","credentials_status","skill_read","Agents","Teammate handoff"],"extra":{"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"capabilities":{"streaming":false,"pushNotifications":false}},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"declared"},{"slug":"security.secrets","name":"Secrets Management","confidence":1,"provenance":"declared"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":1,"provenance":"declared"},{"slug":"code.execution","name":"Code Execution","confidence":1,"provenance":"declared"}],"categories":["automation","code","commerce","security"],"language":"en"},"observed":{"status":"unavailable","statusReason":"6 consecutive checks failed; last success 15d ago.","lastOkAt":"2026-10-14T10:28:47.205Z","lastProbedAt":"2026-10-29T14:26:32.199Z","statusComputedAt":"2026-10-29T14:31:27.941Z","reliability30d":{"probes":64,"successRate":0.9063,"p50Ms":71,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":62,"ok":56,"authBoundaryOk":0,"serviceOk":56,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-29T14:26:32.199Z","kind":"a2a_card","ok":false,"httpStatus":200,"latencyMs":105,"error":"invalid card: not JSON","detail":null},{"at":"2026-10-22T17:30:19.833Z","kind":"a2a_card","ok":false,"httpStatus":404,"latencyMs":94,"error":"http 404","detail":null},{"at":"2026-10-18T08:28:07.208Z","kind":"a2a_card","ok":false,"httpStatus":503,"latencyMs":47,"error":"http 503","detail":null},{"at":"2026-10-16T05:27:40.094Z","kind":"a2a_card","ok":false,"httpStatus":503,"latencyMs":25,"error":"http 503","detail":null},{"at":"2026-10-15T04:30:26.718Z","kind":"a2a_card","ok":false,"httpStatus":503,"latencyMs":31,"error":"http 503","detail":null},{"at":"2026-10-14T17:23:24.884Z","kind":"a2a_card","ok":false,"httpStatus":503,"latencyMs":33,"error":"http 503","detail":null},{"at":"2026-10-14T10:28:47.205Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":108,"error":null,"detail":{"name":"ahel","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":20}},{"at":"2026-10-14T03:24:52.219Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":916,"error":null,"detail":{"name":"ahel","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":20}},{"at":"2026-10-13T21:25:25.478Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"name":"ahel","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":20}},{"at":"2026-10-13T15:24:55.246Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":175,"error":null,"detail":{"name":"ahel","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":20}}],"tools":null,"package":null,"toolSurface":null,"endpointFacts":[{"id":"ep_kqaeqd45npp5","url":"https://ahel.ai","type":"a2a","factsCheckedAt":"2026-10-16T05:27:40.080Z","auth":null,"tls":{"observedAt":"2026-10-16T05:27:40.089Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"ahel.ai","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-01T11:17:47.000Z","validTo":"2026-11-30T12:16:20.000Z","daysToExpiry":31,"sanCount":2,"fingerprint256":"94:EE:CF:B3:74:8D:2E:9D:69:82:2C:48:73:D7:99:83:4B:74:C4:61:C3:C7:15:5D:AC:B1:72:30:02:5F:BD:91"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://ahel.ai/.well-known/agent-card.json","url":"https://ahel.ai/.well-known/agent-card.json","firstSeenAt":"2026-09-16T06:23:30.241Z","fetchedAt":"2026-09-16T06:23:30.241Z","normalizedAt":"2026-09-16T06:23:30.241Z"}]},"firstSeenAt":"2026-09-16T06:23:30.241Z","updatedAt":"2026-09-16T06:23:35.541Z"}