Authoring a skill
A skill is a chain or script you already have, given a name, a declared set of inputs and a declared set of outputs. It is the unit an agent is offered. Nothing else in your workspace is visible to one.
The reason to draw that line is that a chain is an implementation and a skill is a contract. An agent handed a chain identifier learns nothing about what will happen or what to pass. A skill says what it does, what it takes and what it gives back, which is the same shape as any other tool the agent already knows how to call.
From a chain, in one action
Section titled “From a chain, in one action”The quickest route is the one that skips authoring entirely. In the Project Explorer, open the row menu on a chain and choose Create skill from chain.
VirtuProbe reads the chain and works out its calling signature: every {{placeholder}} the chain
reads but never produces for itself has to come from outside, so those become the inputs. Variables
the chain extracts along the way become the outputs. The result opens as a new skill for you to
review.
You can do the same from inside a skill with Derive from chain, which is useful after you have changed the underlying chain and want the contract to catch up.
What comes out is a starting point, not a finished contract. VirtuProbe can see which variables a chain reads; it cannot see which of them are secrets, which outputs are worth publishing, or which environment the skill should run against. Those are yours to set, which is why the draft is offered for review rather than saved for you.
Authoring one by hand
Section titled “Authoring one by hand”Explorer → Skills → New skill, then fill in:
Implementation. The chain or script that actually runs. Nothing new executes: a skill is a contract over something you already built and already tested, so it inherits the same streaming, the same run history and the same evidence.
Inputs. Name, type and whether the input is required. An input with a default can be left out by the caller. Arguments you did not declare are ignored rather than passed through, so an agent cannot inject variables your skill never asked for.
Outputs. Only declared outputs are returned. Everything else the run produced stays internal, which keeps a skill’s surface deliberate rather than accidental.
Environment. Covered below, and the one people leave empty.
Pin an environment
Section titled “Pin an environment”Select the environment the skill runs against.
This looks optional and is not. When you run a chain yourself, its variables come from whichever
environment you have selected in the application. An agent has no selected environment and no way
to acquire one. A skill with nothing pinned therefore runs with {{baseUrl}} and everything like it
unresolved. What you get back is a message such as “not a valid URL”, which sends you looking at the
chain when the actual problem is the missing binding.
If the environment is later deleted, the skill refuses to run and says so by name. That is deliberate: falling back to no variables at all would turn a clear problem into a confusing one.
An argument you pass explicitly still wins over the environment, so a skill can be pinned to staging and still be pointed somewhere else for one call.
Secrets
Section titled “Secrets”Mark an input as secret and it stops carrying a value. It carries the name of a credential binding, and VirtuProbe resolves the real credential internally.
The distinction matters because the alternative is a documented route for pulling a stored secret into an agent’s context. There is no such route, and there is no way for a caller to point a credential at a host of its choosing either. Credentials belong to the environment, not to whoever is calling.
Running one
Section titled “Running one”Run a skill from its editor to check the contract before an agent ever sees it. The form is built from the inputs you declared, which is also a quick way to notice that an input is missing, named confusingly, or should have had a default.
The result shows the verdict, the outputs, and on failure the step that broke. A failing assertion is a result, not an error: it means the chain ran and the system under test disagreed with it.
Authoring a skill works on any tier, so you can build one and be told which tier unlocks running it. Running requires the Engineering tier or above.