Backend Tool Specifications
Backend tool specs (agentspecs/backend-tools) define the tools that run on the runtime,
in Python, and their implementation bindings. An agent lists them under backend_tools.
Required Fieldsโ
idversionnamedescription
Common Fieldsโ
enabledapproval(autoormanual)runtime.languageruntime.packageruntime.methodtagsicon,emoji(iconis<package>:<name>)
Exampleโ
id: runtime-echo
version: 0.0.1
name: Runtime Echo
description: Echo text back to caller for runtime verification
enabled: true
approval: auto
runtime:
language: python
package: agent_runtimes.examples.tools
method: runtime_echo
icon: "@primer/octicons-react:comment"
emoji: "๐ฌ"
icon says its package: <package>:<kebab-case name>, the package one of
@datalayer/icons-react and @primer/octicons-react (see
MCP servers). emoji is drawn where there is no icon.
Backend tools and frontend toolsโ
Every tool here runs on the runtime, in Python (runtime.package, runtime.method) โ
decide, runtime-echo and the ag-ui examples alike, even those whose result the page
draws. A tool that runs on the page is a frontend tool: agentspecs/frontend-tools names
those, a set at a time (toolset), with the same marks.
Notesโ
- Use stable IDs and bump
versionfor breaking changes. - Use explicit tool refs (
id:version) from agentspecs when present.
Decideโ
decide asks Jev typed questions about a text and gives back the typed answers. It is
A Simple Agent's (example-simple) one tool beside runtime-echo, and any agent may
list it (backend_tools: [decide:0.0.1]).
- What it is asked. A
state(the text the questions are about) and one or more questions, each named and typed:noul(does a statement hold โ answered with its probability),choice(which of at least two named options โ with a probability per option and a confidence) orscore(which step of a rubric of at least two, lowest first โ with a probability per step and a confidence). - Where it goes.
POST /api/ai-inference/v1/decisionson datalayer-ai-inference, with modelcloudflare:wrk/typesafe/jev, and the token the runtime calls its models with. A runtime with no such token is refused in a sentence and asks nothing. - Its class is
read: it reaches nothing but ai-inference and changes nothing.
id: decide
version: 0.0.1
action: read
approval: auto
runtime:
language: python
package: agent_runtimes.tools.decisions
method: decide