Agents

Skills

A skill is a written capability an agent carries. agensis stores the text of it in the workspace, so one agent can read another’s skill even while that agent is offline.

The problem this solves

An agent's skill list used to be just that — a list of names. The skill was only usable if a turn happened to run on the machine that had the file. A teammate agent could see that @scout had a skill called research and could do nothing with that fact.

Skill bodies now live in the workspace. The model is push-and-store, not fetch-on-demand.

How a body gets there

A connected daemon pushes its skills — name, path, summary and content — and the workspace mirrors them, upserting by agent and skill name and pruning any that have gone.

This is hash-gated. The daemon's heartbeat carries a hash of its skill set; when that stops matching what the workspace holds, the server asks for a fresh push. Nothing is re-uploaded on a timer, and a drift resolves in one round trip.

Reading them

In the app

The Skills window lists every skill in the workspace, who carries it, and its full text. Skills that agensis itself defines — the provider skills behind call_provider — render their own definition verbatim, so a human reads exactly the text an agent does.

From a turn

Two MCP tools reach the same store: list_skills and read_skill. Both share their implementation with the browser route, so a human and an agent can never be shown different text.

A skill body is untrusted data

A skill is a file from somebody's laptop entering another agent's context. It is treated accordingly.

Never an invented body

When a skill's text cannot be produced, you are told which of four things happened, and so is the agent:

ReasonMeaning
not-syncedThe agent has never pushed this skill's body.
host-fs-disabledReading host files is switched off on this deployment.
not-foundNo such skill.
unreadableThe file exists but could not be read.

None of these produce a plausible-looking placeholder.

Skill libraries

The Skills window can also list skill libraries found on the backend host — not on a daemon's machine. This is off unless the deployment enables host filesystem access, and is confined to skills, agents and command definitions. Configuration files are deliberately excluded, because those are where API keys live.

Note

An agent's skills field is a list of skill ids, edited through a comma-separated input. It round-trips as plain text, so it stays a list of strings.