AgentStack · Schema
KnowledgeConfigPatch
Writable knowledge DNA fields (GET-only metadata excluded). Shared by knowledge + mentor PATCH.
Company
Properties
| Name | Type | Description |
|---|---|---|
| support_url | object | |
| contacts | object | |
| moderator_user_ids | object | |
| safety_playbooks | object | |
| safety_playbooks_write_mode | object | How to apply safety_playbooks: replace (full dict, UI default), patch (per-playbook overlay, MCP default), merge (policy-safe fill only). |
| crisis_playbooks | object | |
| min_rag_score | object | |
| grounded_first | object | |
| safety_fail_mode | object | |
| safety_term_allowlist | object | |
| retention_days | object | |
| llm_primary | object | |
| llm_fallback | object | |
| plan_history_enabled | object | |
| plan_history_max_user_messages | object | |
| slo_p95_ms | object | |
| max_concurrent_runs | object | |
| hyde_enabled | object | |
| term_aliases | object | |
| gene_pack | object | |
| context_map_enabled | object | |
| crag_enabled | object | |
| use_assistant_pipeline | object | |
| collection_ids | object | |
| context_lanes | object | |
| context_limits | object | |
| skill_subscriptions | object | |
| entitlement_sources | object | |
| getcourse_cache_ttl_sec | object | |
| product_id_map | object | |
| allowed_link_domains | object | |
| onboarding_email_prompt_ru | object | |
| require_email_for_paid | object | |
| crisis_notify_webhook_url | object | |
| default_playground_bot_uuid | object | |
| safety_reactions | object | |
| moderator_hours_msk | object | |
| handoff_sla_minutes | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/agentstack-tech/json-schema/agentstack-tech-knowledge-config-patch-schema.json",
"title": "KnowledgeConfigPatch",
"description": "Writable knowledge DNA fields (GET-only metadata excluded). Shared by knowledge + mentor PATCH.",
"x-generated": "2026-11-01",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/agentstack-tech-openapi.json#/components/schemas/KnowledgeConfigPatch",
"properties": {
"support_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Support Url"
},
"contacts": {
"anyOf": [
{
"$ref": "#/$defs/KnowledgeSupportContacts"
},
{
"type": "null"
}
]
},
"moderator_user_ids": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Moderator User Ids"
},
"safety_playbooks": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Safety Playbooks"
},
"safety_playbooks_write_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"replace",
"patch",
"merge"
]
},
{
"type": "null"
}
],
"title": "Safety Playbooks Write Mode",
"description": "How to apply safety_playbooks: replace (full dict, UI default), patch (per-playbook overlay, MCP default), merge (policy-safe fill only)."
},
"crisis_playbooks": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Crisis Playbooks"
},
"min_rag_score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Min Rag Score"
},
"grounded_first": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Grounded First"
},
"safety_fail_mode": {
"anyOf": [
{
"type": "string",
"enum": [
"fail_open",
"fail_closed_crisis"
]
},
{
"type": "null"
}
],
"title": "Safety Fail Mode"
},
"safety_term_allowlist": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Safety Term Allowlist"
},
"retention_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Retention Days"
},
"llm_primary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Llm Primary"
},
"llm_fallback": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Llm Fallback"
},
"plan_history_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Plan History Enabled"
},
"plan_history_max_user_messages": {
"anyOf": [
{
"type": "integer",
"maximum": 16.0,
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Plan History Max User Messages"
},
"slo_p95_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Slo P95 Ms"
},
"max_concurrent_runs": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Concurrent Runs"
},
"hyde_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Hyde Enabled"
},
"term_aliases": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Term Aliases"
},
"gene_pack": {
"anyOf": [
{
"$ref": "#/$defs/KnowledgeGenePack"
},
{
"type": "null"
}
]
},
"context_map_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Context Map Enabled"
},
"crag_enabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Crag Enabled"
},
"use_assistant_pipeline": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Use Assistant Pipeline"
},
"collection_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Collection Ids"
},
"context_lanes": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ContextLane"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Context Lanes"
},
"context_limits": {
"anyOf": [
{
"$ref": "#/$defs/ContextLimits"
},
{
"type": "null"
}
]
},
"skill_subscriptions": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/SkillSubscription"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Skill Subscriptions"
},
"entitlement_sources": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Entitlement Sources"
},
"getcourse_cache_ttl_sec": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Getcourse Cache Ttl Sec"
},
"product_id_map": {
"anyOf": [
{
"additionalProperties": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Product Id Map"
},
"allowed_link_domains": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Allowed Link Domains"
},
"onboarding_email_prompt_ru": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Onboarding Email Prompt Ru"
},
"require_email_for_paid": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Require Email For Paid"
},
"crisis_notify_webhook_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Crisis Notify Webhook Url"
},
"default_playground_bot_uuid": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Default Playground Bot Uuid"
},
"safety_reactions": {
"anyOf": [
{
"additionalProperties": {
"$ref": "#/$defs/SafetyReaction"
},
"type": "object"
},
{
"type": "null"
}
],
"title": "Safety Reactions"
},
"moderator_hours_msk": {
"anyOf": [
{
"$ref": "#/$defs/MentorHoursMsk"
},
{
"type": "null"
}
]
},
"handoff_sla_minutes": {
"anyOf": [
{
"type": "integer",
"maximum": 240.0,
"minimum": 1.0
},
{
"type": "null"
}
],
"title": "Handoff Sla Minutes"
}
},
"type": "object",
"$defs": {
"ContextLane": {
"properties": {
"id": {
"type": "string",
"enum": [
"faq",
"consult",
"coding",
"design",
"architecture"
],
"title": "Id"
},
"collection_ids": {
"items": {
"type": "string"
},
"type": "array",
"maxItems": 32,
"title": "Collection Ids"
},
"preamble": {
"type": "string",
"maxLength": 4000,
"title": "Preamble",
"default": ""
}
},
"type": "object",
"required": [
"id"
],
"title": "ContextLane",
"description": "One retrieval band. Empty collection_ids keep the lane default collection."
},
"ContextLimits": {
"properties": {
"prompt_tail_chars": {
"type": "integer",
"maximum": 8000.0,
"minimum": 200.0,
"title": "Prompt Tail Chars",
"default": 2000
},
"lane_preamble_chars": {
"type": "integer",
"maximum": 4000.0,
"minimum": 40.0,
"title": "Lane Preamble Chars",
"default": 800
},
"builder_snippet_chars": {
"type": "integer",
"maximum": 12000.0,
"minimum": 200.0,
"title": "Builder Snippet Chars",
"default": 2000
},
"description_chars": {
"type": "integer",
"maximum": 32000.0,
"minimum": 200.0,
"title": "Description Chars",
"default": 8000
},
"resource_text_chars": {
"type": "integer",
"maximum": 48000.0,
"minimum": 500.0,
"title": "Resource Text Chars",
"default": 12000
},
"evidence_snippet_chars": {
"type": "integer",
"maximum": 8000.0,
"minimum": 200.0,
"title": "Evidence Snippet Chars",
"default": 1200
},
"lane_collection_cap": {
"type": "integer",
"maximum": 32.0,
"minimum": 1.0,
"title": "Lane Collection Cap",
"default": 8
}
},
"type": "object",
"title": "ContextLimits",
"description": "Operating caps on ``config.knowledge``. Agents patch this; hot paths do not hardcode sizes."
},
"FaqPhenotype": {
"properties": {
"name": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"title": "Name"
},
"all_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "All Of"
},
"any_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "Any Of"
},
"none_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "None Of"
},
"retrieve": {
"type": "string",
"maxLength": 512,
"title": "Retrieve",
"default": ""
},
"boost_idents": {
"items": {
"type": "string"
},
"type": "array",
"title": "Boost Idents"
},
"penalize_idents": {
"items": {
"type": "string"
},
"type": "array",
"title": "Penalize Idents"
},
"skip_without_lock": {
"type": "boolean",
"title": "Skip Without Lock",
"default": true
},
"penalize_bg_vs": {
"type": "boolean",
"title": "Penalize Bg Vs",
"default": false
},
"penalize_noise": {
"type": "boolean",
"title": "Penalize Noise",
"default": true
},
"noise_unless_asked": {
"type": "boolean",
"title": "Noise Unless Asked",
"default": false
},
"covers_all": {
"items": {
"type": "string"
},
"type": "array",
"title": "Covers All"
},
"covers_any": {
"items": {
"type": "string"
},
"type": "array",
"title": "Covers Any"
},
"heading_needles": {
"items": {
"type": "string"
},
"type": "array",
"title": "Heading Needles"
},
"penalize_heading_needles": {
"items": {
"type": "string"
},
"type": "array",
"title": "Penalize Heading Needles"
},
"drop_sentence_stems": {
"items": {
"type": "string"
},
"type": "array",
"title": "Drop Sentence Stems"
},
"retrieve_expand": {
"type": "string",
"maxLength": 16,
"title": "Retrieve Expand",
"default": ""
}
},
"type": "object",
"required": [
"name"
],
"title": "FaqPhenotype",
"description": "One FAQ routing row: match needles, retrieve lexicon, card identity, skip-Plan covers."
},
"FixtureShapeHint": {
"properties": {
"phenotype": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"title": "Phenotype"
},
"query_any_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "Query Any Of"
},
"query_all_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "Query All Of"
}
},
"type": "object",
"required": [
"phenotype"
],
"title": "FixtureShapeHint",
"description": "Extra fixture phenotype when query needles match (compound / follow-up asks)."
},
"GeneLexiconEntry": {
"properties": {
"stems": {
"items": {
"type": "string"
},
"type": "array",
"title": "Stems"
},
"idents": {
"items": {
"type": "string"
},
"type": "array",
"title": "Idents"
},
"aliases": {
"items": {
"type": "string"
},
"type": "array",
"title": "Aliases"
}
},
"type": "object",
"title": "GeneLexiconEntry",
"description": "Named program term → stems, FAQ idents, retrieve aliases."
},
"KnowledgeGenePack": {
"properties": {
"version": {
"type": "integer",
"maximum": 16.0,
"minimum": 1.0,
"title": "Version",
"default": 1
},
"program_stems": {
"items": {
"type": "string"
},
"type": "array",
"title": "Program Stems",
"description": "Term-lock / gene-lock vocabulary (replaces hardcoded PROGRAM_FOCUS_STEMS)."
},
"aliases": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "Aliases",
"description": "Query substring → rewrite (merged with KnowledgeConfig.term_aliases)."
},
"lexicon": {
"additionalProperties": {
"$ref": "#/$defs/GeneLexiconEntry"
},
"type": "object",
"title": "Lexicon"
},
"phenotypes": {
"items": {
"$ref": "#/$defs/FaqPhenotype"
},
"type": "array",
"title": "Phenotypes"
},
"pinned_shapes": {
"items": {
"$ref": "#/$defs/PinnedShapeBinding"
},
"type": "array",
"title": "Pinned Shapes",
"description": "Phenotype → glossary stem bindings for fixture shape replies."
},
"fixture_shape_hints": {
"items": {
"$ref": "#/$defs/FixtureShapeHint"
},
"type": "array",
"title": "Fixture Shape Hints",
"description": "Query-needle hints → extra fixture phenotypes (tenant MCP tuning)."
},
"rerank_off_query_guards": {
"items": {
"$ref": "#/$defs/RerankOffQueryGuard"
},
"type": "array",
"title": "Rerank Off Query Guards",
"description": "Rerank/extractive penalties when card matches but query lacks stems."
},
"sanitize_drop": {
"items": {
"type": "string"
},
"type": "array",
"title": "Sanitize Drop",
"description": "Tenant operator-voice phrases to drop from channel replies."
},
"skip_asked_stems": {
"items": {
"type": "string"
},
"type": "array",
"title": "Skip Asked Stems",
"description": "If the query names these stems, skip-Plan extractive must contain one. Tenant SoT — not hardcoded in Core retrieve."
},
"situational_needles": {
"items": {
"type": "string"
},
"type": "array",
"title": "Situational Needles",
"description": "Applied-ask needles (union with fixture query_intent_needles_v1). Tenant SoT — not a Core regex table."
}
},
"type": "object",
"title": "KnowledgeGenePack",
"description": "Project genetic dictionary + FAQ phenotypes (8DNA blob)."
},
"KnowledgeSupportContacts": {
"properties": {
"conversation_url": {
"type": "string",
"maxLength": 2048,
"title": "Conversation Url",
"default": ""
},
"label_ru": {
"type": "string",
"maxLength": 80,
"title": "Label Ru",
"default": "Написать в поддержку"
},
"label_en": {
"type": "string",
"maxLength": 80,
"title": "Label En",
"default": "Contact support"
},
"telegram_url": {
"type": "string",
"maxLength": 2048,
"title": "Telegram Url",
"default": ""
},
"email": {
"type": "string",
"maxLength": 256,
"title": "Email",
"default": ""
}
},
"type": "object",
"title": "KnowledgeSupportContacts",
"description": "Operator-editable help targets. Primary URL is used in channel abstain."
},
"MentorHoursMsk": {
"properties": {
"start": {
"type": "integer",
"maximum": 23.0,
"minimum": 0.0,
"title": "Start",
"default": 10
},
"end": {
"type": "integer",
"maximum": 23.0,
"minimum": 0.0,
"title": "End",
"default": 18
},
"weekdays_only": {
"type": "boolean",
"title": "Weekdays Only",
"default": true
}
},
"type": "object",
"title": "MentorHoursMsk"
},
"PinnedShapeBinding": {
"properties": {
"phenotype": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"title": "Phenotype"
},
"glossary_stem": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"title": "Glossary Stem"
},
"extract_mode": {
"type": "string",
"title": "Extract Mode",
"description": "section | quote | full | lesson_link — fixture extract strategy.",
"default": "section"
},
"section_heading": {
"type": "string",
"maxLength": 128,
"title": "Section Heading",
"default": ""
},
"section_headings": {
"items": {
"type": "string"
},
"type": "array",
"title": "Section Headings",
"description": "Ordered ## heading prefixes; overrides single section_heading when set."
},
"section_body_needle": {
"type": "string",
"maxLength": 128,
"title": "Section Body Needle",
"description": "When set, extracted section body must contain this substring.",
"default": ""
},
"append_lesson_link": {
"type": "boolean",
"title": "Append Lesson Link",
"description": "After section/quote/full body, append inline lesson URL from the same card.",
"default": false
}
},
"type": "object",
"required": [
"phenotype",
"glossary_stem"
],
"title": "PinnedShapeBinding",
"description": "Phenotype → glossary fixture stem for extractive shape replies."
},
"RerankOffQueryGuard": {
"properties": {
"snippet_ident_contains": {
"type": "string",
"maxLength": 128,
"title": "Snippet Ident Contains",
"default": ""
},
"heading_any_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "Heading Any Of"
},
"require_query_any_of": {
"items": {
"type": "string"
},
"type": "array",
"title": "Require Query Any Of"
}
},
"type": "object",
"title": "RerankOffQueryGuard",
"description": "Penalize FAQ snippet/section when match fires but query lacks required stems."
},
"SafetyReaction": {
"properties": {
"playbook_id": {
"type": "string",
"maxLength": 64,
"title": "Playbook Id",
"default": ""
},
"notify_moderators": {
"type": "boolean",
"title": "Notify Moderators",
"default": true
},
"auto_handoff": {
"type": "boolean",
"title": "Auto Handoff",
"default": false
}
},
"type": "object",
"title": "SafetyReaction",
"description": "Per-category operator policy (regex rules stay in the safety organelle)."
},
"SkillSubscription": {
"properties": {
"publisher_project_id": {
"type": "integer",
"minimum": 0.0,
"title": "Publisher Project Id",
"default": 0
},
"skill_id": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"title": "Skill Id"
},
"source_doc_id": {
"type": "string",
"maxLength": 256,
"title": "Source Doc Id",
"default": ""
}
},
"type": "object",
"required": [
"skill_id"
],
"title": "SkillSubscription",
"description": "Consent to read one public skill. publisher_project_id 0 is the ecosystem fixture."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/agentstack-tech-knowledge-config-patch"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.