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.
read_skillreturns the body inside a nonce fence — the same construction used for the output of a credentialed provider call. The reading agent is told this is data, not instruction.- Truncation is always marked, never silent. Bodies are capped at 64 KiB stored, and 8,000 characters per prompt.
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:
| Reason | Meaning |
|---|---|
not-synced | The agent has never pushed this skill's body. |
host-fs-disabled | Reading host files is switched off on this deployment. |
not-found | No such skill. |
unreadable | The 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.
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.