Skills
The instruction packs an agent can be handed
On this page(4 sections)
What is available and whether each is on, the text of one, and writing or deleting one. The list joins four separate sources into a single answer.
GET/skillsWhat the agent knows how to do
Every skill available here and whether it is switched on, joined from all four places they come from: the owner's own, the settings, plugins a connection installed, and folders inside extensions.
What you send
Nothing. Call it as it is.
What comes back
| Field | Type |
|---|---|
idIts handle, which reading and deleting… | string |
nameIts name | string |
descriptionWhat it is for, which is… | string |
originWhere it came from | "builtin" | "own" | "capability" | "extension" … (7) |
ownerWho ships it, as the row… | string |
enabledWhether the agent can reach it | boolean |
switchableWhether this surface can switch it | boolean |
editableWhether it can be rewritten here | boolean |
removable | boolean |
curl "$SANDBOX/skills" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.skills.list();POST/skillsWrite a skill
Creates or rewrites a skill by name, and switches it on, because you wrote it in order to use it. Renaming is saving under the new name and deleting the old.
What you send
| Field | Type | Where |
|---|---|---|
namerequiredWhat to call it | string | body |
descriptionrequiredWhat it is for, which is… | string | body |
bodyrequiredThe skill itself | string | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/skills" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"name":"nightly changelog","description":"Runs every night and opens a pull request when anything changed.","body":"…"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.skills.save({
"name": "nightly changelog",
"description": "Runs every night and opens a pull request when anything changed.",
"body": "…"
});GET/skills/readRead one skill
The full text of a single skill. The name travels in the query rather than the address, because a name can carry the owner it came from and that will not fit in a path.
What you send
| Field | Type | Where |
|---|---|---|
idrequiredWhich skill | string | query |
What comes back
| Field | Type |
|---|---|
idThe skill's id, which can carry… | string |
nameIts name | string |
bodyThe instructions themselves, as written | string |
curl "$SANDBOX/skills/read?id=a1b2c3d4" \
-H "x-intentic-control: $INTENTIC_TOKEN"import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.skills.read({
"id": "a1b2c3d4"
});POST/skills/removeDelete a skill
Removes the text and takes it off the enabled list in one step, so a screen never has to sequence two calls and never leaves one half done.
What you send
| Field | Type | Where |
|---|---|---|
namerequiredWhich skill to delete | string | body |
What comes back
| Field | Type |
|---|---|
okAlways true | true |
curl -X POST "$SANDBOX/skills/remove" \
-H "x-intentic-control: $INTENTIC_TOKEN" \
-H "content-type: application/json" \
-d '{"name":"nightly changelog"}'import { sandbox } from "@intentic/sandbox-client";
const result = await sandbox.skills.remove({
"name": "nightly changelog"
});