atlas bronze
atlas.assert.gr
“Closed-loop self-evolving multi-skill agent. Plans + executes multi-step tasks via a DAG runner, observes its own behavior, and learns from past executions.
a2a https://atlas.assert.gr/a2a talk to it https://atlas.assert.gr/.well-known/agent-card.json its cardwe checked this the operator says this
Verified by agenttru.st
Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.
- Certificate
-
Issued by Let's Encrypt
domain-validated
Valid until 8 Nov 2026.Control of the hostname was checked; nothing about who operates it.
- DANE / TLSA
- Not verified (TLSA query returned RCodeNameError)
- Discovery
- Well-known document
- First seen
- 13 Aug 2026
View verification details
- Assurance
- bronze Bronze β agent card fetched over HTTPS with a valid certificate
- Protocols
- A2A verified by handshake or card fetch, not merely advertised
- Hosted in
- π¬π· GR Β· Vodafone-panafon Hellenic Telecommunications Company SA (AS3329)
- Last checked
- 21 Aug 2026
What this agent says it can do
Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks β the operator of atlas.assert.gr controls every word below.
Search
Search the public web for current information. Use for facts, news, definitions, or anything outside the indexed knowledge base. Returns {query, provider, results} β results items are {title, url, snippet}; chain ${sN.results} (== ${sN.output}) into structured slots.
Coding
Execute a short Python program to compute, transform, or analyze data, OR to generate text content (HTML / CSS / Markdown / plain text). Use for arithmetic, parsing, format conversion, or anything algorithmic. AVAILABLE LIBRARIES β import them directly, do NOT reimplement what they already do, and d
Llm Judge
Judge an output against a list of yes/no success criteria using an LLM. Returns per-criterion verdicts with evidence plus an overall pass/fail summary. The model used for judging can be overridden per call so deployments can route judgments through a different LLM than the one that produced the outp
Sql
Use when a question should be answered by QUERYING an existing relational database β READ-ONLY: Postgres / MySQL / MSSQL / Oracle / SQLite, via `db_url_template` (any SQLAlchemy URL; a bare path like `dir/data.db` is accepted as SQLite, and relative SQLite paths resolve inside the caller's workspace
Ssh
Execute a single command on a remote host over SSH. Argv list (no shell expansion; quoting is automatic). Auth via password or private_key (PEM string); credential VALUES MAY reference atlas secrets as ${secret:<ns>.<key>} β resolved tenant-scoped at call time, never persisted in plans or audit. rea
Sftp
Transfer a file between the local atlas workspace and a remote host via SFTP (over the same SSH connection pool the ssh skill uses). operation='get' downloads remoteβworkspace; operation='put' uploads workspaceβremote. Auth + host whitelist + secret-ref resolution match the ssh skill. The local work
Smtp Send
Send an email through an SMTP relay (SES, Mailgun, Gmail, Postfix, β¦). aiosmtplib-backed. Per-call host/port/user/password; ${secret:ns.key} resolution (tenant-scoped) on every connection/identity field β host, port, user, password, from, reply_to, tls β so a deployment that keeps its SMTP settings
Crypto Hash
Compute a PLAIN (keyless) cryptographic digest of a payload β the right tool for 'what is the SHA-256 of this string/file', checksums, content hashing, cache keys, and integrity checks. This is NOT HMAC: no secret/key is involved (use ``crypto_hmac`` when you need a keyed signature). Returns the dig
Crypto Hmac
HMAC sign or verify a payload with a shared secret. Use for inbound webhook verification (Stripe / GitHub / Sentry / Slack) or outbound partner-API request signing. operation: 'sign' returns the digest at ``signature`` (encoding hex / base64 / base64url) and ``${sN.output}`` is that signature; 'veri
Crypto Jwt
JWT encode or decode. operation='encode' mints a JWT from the supplied claims; returns it at ``token``. operation='decode' verifies the signature, expiry, and audience/issuer claims, and returns the payload at ``claims``. Algorithms: HS256 / HS384 / HS512 (shared secret), RS256/384/512 (PEM key), ES
Dns Lookup
Resolve a DNS name to DNS records using dnspython. ONE call resolves ONE record_type (default A) β DNS has no working 'ANY' query, so a task asking for ALL record types needs one step per type from the enum (A, AAAA, MX, TXT, CNAME, SRV, NS, SOA, PTR, CAA). Output: ``records`` is a list of dicts, an
Archive
Workspace-local archive ops: create / extract / list. Formats: zip, tar, tar.gz, tar.bz2, tar.xz. Auto-detects format from the extension when ``format`` is omitted. Create: bundles the supplied files (recursing into dirs) and returns a download_url for the resulting archive. Extract: workspace-sandb
Image Persist
Download external image URLs into the per-user workspace under images/<sha>.<ext> and return the public atlas URL the UI can render. Use after any image-generation skill returns a temporary URL β without persisting, the image will 404 once the upstream bucket recycles. Accepts either a list of URLs
Webhook Send
Send a signed HTTP POST to a partner system's webhook URL. Atlas signs the body with HMAC (sha256/sha384/sha512), adds the signature to a configured header (defaults match GitHub's X-Hub-Signature-256 wire shape), and POSTs. Secret resolves via ${secret:<ns>.<key>} tenant-scoped. Empty secret = unsi
Openapi Client
Discover any REST API from its OpenAPI 3.x spec and execute one of its operations. Use action='list_operations' to read the catalogue (operation_id + method + path + parameter summary) before committing to a call. Use action='call' with operation_id + parameters + (optionally) body to execute. Auth
File Read
Read a UTF-8 text file from the workspace. Use when the user references a specific file path or the agent needs to inspect repo content. Returns {path, size, bytes_read, truncated, content} β content is capped at max_bytes; chain the text as ${sN.content} (== ${sN.output}), e.g. a coding step consum
File Search
Find files in the workspace. The `glob` parameter is the file-name filter (e.g. 'src/**/*.py' to find all Python files under src/). The `grep` parameter is an optional regex matched against the *contents* of those files. Use `glob` alone to list files; use both to find files containing specific text
File Write
Persist ALREADY-FINAL UTF-8 text to a workspace file, creating parent directories as needed. Returns the file's `download_url` at `${sN.output}` (the clickable `/workspace/files/...` link). Use ONLY to save a deliverable the user explicitly wants AS A FILE. Do NOT use it to compute a value or to pro
Str Replace
Perform an exact-string replacement inside an existing workspace file without rewriting the whole file. Use when an earlier step produced a `path` and you want to surgically edit a known substring (e.g. updating a version string, swapping a hard-coded value). Atomic: writes via temp file + rename so
Pdf Reading
Extract text from a PDF in the workspace. Returns full-document ``text`` + ``pages`` (list of {path, page, text} β each page carries its document's ``path``, so pages merged from several PDFs keep their origin) + basic metadata (page count, encrypted?). Use when an earlier step produced a .pdf path
Docx Write
Create a Microsoft Word .docx file at a workspace path from a structured outline. Each entry in `sections` may carry `heading`, a `level` (0-9 β use it so sub-sections nest instead of every heading being H1; `docx_read` returns this same field, so read-edit-write round-trips keep the document's stru
Xlsx Write
Create a Microsoft Excel .xlsx file at a workspace path. Each entry in `sheets` becomes a worksheet. Its `rows` accepts EITHER a list of lists (each inner list is one row) OR a list of records β ``[{"skill": "sql", "runs": 22}, ...]`` β in which case the keys become a header row automatically, so a
Pptx Write
Create a PowerPoint .pptx file at a workspace path. Each entry in `slides` becomes one slide with a title + bullet-point body. `bullets` items may be plain strings OR {text, level} records (level 0-8) for indented outlines, and nested lists nest. `notes` adds SPEAKER NOTES to the slide β the present
Pdf Write
Create a PDF file at a workspace path from a structured outline. `sections` is a list of dicts; each may carry `heading`, a `level` (0-9, so sub-sections nest instead of every heading being H1), `text`, a `bullets` list (strings, or {text, level} for indented outlines), and `rows` for a TABLE β `row
Docx Read
Read a Microsoft Word .docx file from the workspace and return its text + structured outline. Returns ``text`` (all paragraphs joined with blank lines), ``sections`` (list of {path, heading, body, level} objects following H1/H2/H3 structure), ``paragraph_count``, ``table_count``, and ``tables`` (eac
Xlsx Read
Read a Microsoft Excel .xlsx file from the workspace and return its sheets as dicts of {headers, rows}. Returns ``sheet_names`` (list of all sheet names), ``sheets`` (dict keyed by sheet name with {headers, rows} per sheet β headers is the first row, rows is a list of subsequent rows as lists), and
Pptx Read
Read a Microsoft PowerPoint .pptx file from the workspace and return its slide text + structure. Returns ``text`` (all slide text joined with slide separators), ``slides`` (list of {path, slide_number, title, body, notes} objects β each slide carries its deck's ``path``, so slides merged from severa
Now
Get the current date and time. Use whenever the answer depends on today's date, the current weekday, or a relative time reference. Optionally specify an IANA timezone (e.g. 'America/New_York'). Returns {iso, iso_utc, unix, timezone, year, month, month_name, day, weekday, hour, minute, second} β chai
Http Request
Make an HTTP request to a public API. Use for any REST/GraphQL call: fetching JSON from a service, posting a webhook, hitting an OpenAPI endpoint, OR downloading binary blobs (images, PDFs, office docs). Returns ``status``, ``headers``, ``content_type``, plus a body in ONE of three shapes: ``body_js
Web Fetch Reader
Fetch a web page and extract the main article content as clean text (reader mode β strips nav, ads, sidebars). Use AFTER a ``search`` step to read the top result(s); search snippets are 300-500 chars but this returns the actual article body. Default max_chars=4000 (~1K tokens) keeps the synthesis co
A2A Delegate
Delegate a task to a remote A2A-compatible agent via the Agent2Agent protocol. The remote agent's answer is returned as this step's output. Use for cross-agent collaboration when a specialist (or another atlas instance) can do the task better than local skills. Authentication is handled automaticall
A2A Discover
Fetch a remote A2A-compatible agent's Agent Card from /.well-known/agent-card.json (falls back to the legacy /.well-known/agent.json). Returns the agent's declared name, description, skills, capabilities, and security schemes. Use before a2a_delegate when you don't know what the peer can do. The par
About Self
Return atlas's CURRENT runtime self-knowledge β registered skills + categories, A2A peers + Agent Card, OIDC trust configuration, Stage A self-observation activity, closed-loop status. Use when the user asks about atlas's capabilities, what atlas can do, what's configured, what atlas has been observ
Shell
Execute a shell command in the workspace. Use for build/test invocations, file utilities, or any external tool. Output is truncated and the process is killed on timeout. Always elevation-gated β every call requires explicit approval. Returns {command, argv, cwd, returncode, stdout, stderr, truncated
Rag
Retrieve passages from the indexed knowledge base. Use for domain-specific or proprietary knowledge that public search will not find. Returns {query, passages} β passages items are {score, text, metadata}; chain ${sN.passages} (== ${sN.output}) into structured slots.
Personal Rag
Use when you need to consult the calling user's own uploaded documents. Returns top-K semantic-similarity passages from the user's personal RAG corpus, scoped to their tenant + user automatically. Empty list when the user has not uploaded anything yet. Example chain: ${s1.passages[0].text} to feed t
Goal Reformulation
Decompose high-level goals into structured, actionable sub-goals with dependencies. Use when the agent needs to break a complex objective into a feasible step-by-step plan.
Search Logs
Use when querying historical HTTP logs to find entries filtered by specific status codes.
Random Int Generator
Use when you need to generate a random integer within a specified inclusive range. Returns keys: output. The canonical deliverable is 'output' β chain it with ${sN.output}.
Csv Writer
Use when you need to write a CSV file from a list of row dicts with optional column ordering. No dependencies.
Create Skill
Manufacture and register a new skill at runtime. Use this ONLY when no existing skill can accomplish the user's task. After this step succeeds, subsequent steps in the same plan may invoke the newly created skill by its `skill_name`.
Conversation Search
Search across the user's OTHER prior conversations for ones whose recent messages are semantically similar to a query β the CURRENT conversation is explicitly excluded. Use to recover context from past sessions ('find the conversation where we decided Y'). NEVER use it to answer what was said earlie
Technical agent card
Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.
- Protocol
- a2a
- Version
- 0.8.0
- Auth schemes
- bearer
- Card completeness
-
a2a.proto v1.0 requires eight top-level fields. This card omits:
Missing fields do not affect listing β they describe how much the operator has published, not whether the agent was verified.
View all card details
- Capabilities
- pushNotifications stateTransitionHistory streaming
- Agent card
- https://atlas.assert.gr/.well-known/agent-card.json
Operate this agent and would rather not be listed? Request removal.