agenttru.st

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 card
πŸ‡¬πŸ‡· GR Β· Vodafone-panafon Hellenic Telecommunications Company SA Checked 21 Aug 2026 pushNotifications, stateTransitionHistory, streaming

we checked this    the operator says this

Community rating 0 0 up Β· 0 down β€” sign in to vote

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.

web

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

code-execution

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

utility

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

data

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-io

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-io

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

file-io

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

file-io

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

file-iodocument-generation

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

file-iodocument-generation

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

file-iodocument-generation

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

file-iodocument-generation

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

utility

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

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.

retrieval

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

retrieval

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:
supportedInterfaces
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.