Network configuration
These endpoints expose the deployment-wide configuration the intent layer runs on: the semantic capabilities used to classify a request, the rules that map wording to a domain and to routing signals, and the closed vocabularies a template may use.
Any signed-in user may read all three. Editing the capabilities and the intent rules changes behaviour for everyone, so it is reserved for administrators; the read responses include an editable flag telling the caller whether they may change the content. The template vocabularies are read-only and derived from the current schema.
Administrator access. Some endpoints on this page require an administrator account; each one says so under Permission.
- GET /admin/capabilities Retrieve intent capabilities
- PUT /admin/capabilities Update intent capabilities
- GET /admin/intent-rules Retrieve intent rules
- PUT /admin/intent-rules Update intent rules
- GET /admin/template-options Retrieve template vocabularies
Paths are relative to /networks-api
Retrieve intent capabilities
GET /networks-api/admin/capabilities
Returns the capability definitions the intent layer uses to classify a request, as a YAML document. Each capability has a description and example phrases. The editable flag says whether the caller may change it.
- Authentication
- Bearer token How it works
Parameters
No parameters.
Returns
Returns the capabilities YAML and whether the caller may edit it.
Errors
- 404 No capabilities configuration is available.
curl "$VDF_BASE_URL/networks-api/admin/capabilities" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" const response = await fetch(`${process.env.VDF_BASE_URL}/networks-api/admin/capabilities`, {
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
},
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.get(
f"{os.environ['VDF_BASE_URL']}/networks-api/admin/capabilities",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"content": "version: 4\ncapabilities:\n wants_artifact:\n description: The user wants the result delivered as a downloadable file.\n examples:\n - \"Export these figures to an Excel spreadsheet\"\n - \"Create a 10-slide presentation about our Q3 results\"\n negative_examples:\n - \"Summarise this in bullet points\"\n",
"editable": true
} Update intent capabilities
PUT /networks-api/admin/capabilities
Replaces the intent-classification capability definitions.
Replaces the capability definitions with the supplied YAML. The content is validated before it is stored and takes effect for the whole deployment.
- Authentication
- Bearer token How it works
- Permission
- Requires an administrator account.
Body parameters application/json
-
contentstring RequiredThe capabilities as a YAML mapping of capability name to its description and example phrases.
Returns
Returns a confirmation that the configuration was saved and reloaded.
Errors
- 403 The caller is not an administrator.
- 422 The content is not a valid capabilities document.
curl -X PUT "$VDF_BASE_URL/networks-api/admin/capabilities" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "version: 4\ncapabilities:\n wants_artifact:\n description: The user wants the result delivered as a downloadable file.\n examples:\n - \"Export these figures to an Excel spreadsheet\"\n negative_examples:\n - \"Summarise this in bullet points\"\n"
}' const response = await fetch(`${process.env.VDF_BASE_URL}/networks-api/admin/capabilities`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'version: 4\ncapabilities:\n wants_artifact:\n description: The user wants the result delivered as a downloadable file.\n examples:\n - "Export these figures to an Excel spreadsheet"\n negative_examples:\n - "Summarise this in bullet points"\n',
}),
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.put(
f"{os.environ['VDF_BASE_URL']}/networks-api/admin/capabilities",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
json={
"content": "version: 4\ncapabilities:\n wants_artifact:\n description: The user wants the result delivered as a downloadable file.\n examples:\n - \"Export these figures to an Excel spreadsheet\"\n negative_examples:\n - \"Summarise this in bullet points\"\n",
},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"status": "ok",
"reloaded": true
} Retrieve intent rules
GET /networks-api/admin/intent-rules
Returns the intent rules as a YAML document. The rules list the terms that steer a request toward a domain and toward routing signals such as document review, artifact production, or a human-approval step. The editable flag says whether the caller may change them.
- Authentication
- Bearer token How it works
Parameters
No parameters.
Returns
Returns the intent-rules YAML and whether the caller may edit it.
Errors
- 404 No intent-rules configuration is available.
curl "$VDF_BASE_URL/networks-api/admin/intent-rules" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" const response = await fetch(`${process.env.VDF_BASE_URL}/networks-api/admin/intent-rules`, {
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
},
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.get(
f"{os.environ['VDF_BASE_URL']}/networks-api/admin/intent-rules",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"content": "normalized_terms:\n document_review:\n - review\n - analyze\n artifact_request:\n - report\n - export\ndomain_inference:\n customer-support:\n - support\n - ticket\n",
"editable": true
} Update intent rules
PUT /networks-api/admin/intent-rules
Replaces the intent rules with the supplied YAML. The content is validated before it is stored and takes effect for the whole deployment.
- Authentication
- Bearer token How it works
- Permission
- Requires an administrator account.
Body parameters application/json
-
contentstring RequiredThe intent rules as a YAML mapping with
normalized_termsanddomain_inferencesections.
Returns
Returns a confirmation that the configuration was saved and reloaded.
Errors
- 403 The caller is not an administrator.
- 422 The content is not a valid intent-rules document.
curl -X PUT "$VDF_BASE_URL/networks-api/admin/intent-rules" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "normalized_terms:\n document_review:\n - review\n - analyze\n artifact_request:\n - report\n - export\ndomain_inference:\n customer-support:\n - support\n - ticket\n"
}' const response = await fetch(`${process.env.VDF_BASE_URL}/networks-api/admin/intent-rules`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: 'normalized_terms:\n document_review:\n - review\n - analyze\n artifact_request:\n - report\n - export\ndomain_inference:\n customer-support:\n - support\n - ticket\n',
}),
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.put(
f"{os.environ['VDF_BASE_URL']}/networks-api/admin/intent-rules",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
json={
"content": "normalized_terms:\n document_review:\n - review\n - analyze\n artifact_request:\n - report\n - export\ndomain_inference:\n customer-support:\n - support\n - ticket\n",
},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"status": "ok",
"reloaded": true
} Retrieve template vocabularies
GET /networks-api/admin/template-options
Returns the closed vocabularies a template may use.
Returns every fixed vocabulary a template author can choose from — renderers, node and edge types, model-routing strategies, task classes, the keys a node's render-time condition may reference, and the placeholders each renderer substitutes. The values are derived from the current schema, so they always match what a save will accept. Open-ended catalogues such as workspaces, domains, agents and models come from their own endpoints.
- Authentication
- Bearer token How it works
Parameters
No parameters.
Returns
Returns an object of vocabulary lists keyed by their purpose.
curl "$VDF_BASE_URL/networks-api/admin/template-options" \
-H "Authorization: Bearer $VDF_ACCESS_TOKEN" const response = await fetch(`${process.env.VDF_BASE_URL}/networks-api/admin/template-options`, {
headers: {
Authorization: `Bearer ${process.env.VDF_ACCESS_TOKEN}`,
},
});
if (!response.ok) throw new Error(`Request failed with status ${response.status}`);
const data = await response.json(); import os
import requests
response = requests.get(
f"{os.environ['VDF_BASE_URL']}/networks-api/admin/template-options",
headers={"Authorization": f"Bearer {os.environ['VDF_ACCESS_TOKEN']}"},
timeout=30,
)
response.raise_for_status()
data = response.json() {
"renderers": [
"static_spec",
"github_repo_dag",
"plan_mode_dag",
"dynamic_dag"
],
"node_types": [
"LLMAgent",
"ToolCall",
"Router",
"Aggregator",
"SubNetwork",
"Verification",
"HumanApproval"
],
"node_sources": [
"agent_hub",
"manual",
"auto_generated"
],
"edge_types": [
"sequential",
"parallel",
"conditional",
"subnetwork"
],
"network_modes": [
"execute",
"plan_only"
],
"model_routing_strategies": [
"auto",
"pinned",
"capability",
"energy",
"regulated"
],
"skills_modes": [
"auto",
"listing",
"inline"
],
"failure_policies": [
"soft",
"required"
],
"prompt_input_modes": [
"default",
"structured_evidence"
],
"retry_backoffs": [
"fixed",
"exponential"
],
"created_by": [
"manual",
"intent-layer",
"plan-agent"
],
"task_classes": [
"github_repo_planning",
"github_repo_understanding",
"document_review",
"web_research",
"generic"
],
"condition_keys": [
"artifact_tool_ids",
"available_tool_ids",
"company_url",
"document_text_excerpt",
"ranked_tool_ids",
"tool_categories",
"tool_relevance",
"url_a",
"url_b",
"wants_artifact",
"wants_document_review",
"wants_planning",
"wants_web_research",
"website_domain",
"website_url"
],
"edge_condition_fields": [
"approved",
"passed",
"score"
],
"edge_condition_examples": [
"$.passed == true",
"$.passed == false",
"$.approved == true",
"$.approved == false",
"$.score >= 0.75",
"$.<node_id>.passed == false"
],
"placeholders": {
"static_spec": [
"artifact_tool_ids",
"available_tool_ids",
"company_url",
"competitor_search_query",
"document_text_excerpt",
"domain_id",
"include_agentic_evidence_shell",
"internal_search_query",
"market_search_query",
"message_body",
"message_from",
"message_id",
"message_source",
"message_subject",
"mode",
"network_id",
"owner",
"plan_mode_read_only_tools",
"plan_mode_tool_schema_overrides",
"ranked_tool_ids",
"repo",
"search_query",
"task",
"tool_categories",
"tool_relevance",
"url_a",
"url_b",
"wants_artifact",
"wants_document_review",
"wants_planning",
"wants_web_research",
"website_domain",
"website_url"
],
"github_repo_dag": [
"domain_id",
"focus_path",
"index",
"network_id",
"owner",
"repo",
"search_query",
"task"
],
"plan_mode_dag": [
"domain_id",
"include_agentic_evidence_shell",
"network_id",
"owner",
"plan_mode_read_only_tools",
"plan_mode_tool_schema_overrides",
"repo",
"search_query",
"task"
],
"dynamic_dag": [
"artifact_tool_ids",
"available_tool_ids",
"domain_id",
"message_body",
"message_from",
"message_id",
"message_source",
"message_subject",
"network_id",
"ranked_tool_ids",
"task",
"tool_categories",
"tool_relevance",
"wants_artifact",
"wants_document_review",
"wants_planning",
"wants_web_research"
]
}
}