← Files vox.aiARCHIVED FILE

references/workflow-capabilities.json

9.96 KB · Nov 6, 2026 · 00:14 UTC

↓ Download file

{
  "schema_version": 1,
  "implemented_tools_snapshot": "implemented-tools.snapshot.json",
  "workflows": [
    {
      "id": "authoring",
      "implemented": {
        "required_tools": [
          "get_agent",
          "get_manual",
          "save_agent",
          "save_manual"
        ],
        "optional_tools": [
          "create_knowledge",
          "create_voice_model",
          "delete_knowledge_document",
          "get_agent_template",
          "get_organization",
          "get_schema",
          "get_tool",
          "import_knowledge_documents",
          "instantiate_agent_template",
          "list_agent_templates",
          "list_agents",
          "list_knowledge_documents",
          "list_knowledges",
          "list_manuals",
          "list_models",
          "list_organization_members",
          "list_organizations",
          "list_schemas",
          "list_tools",
          "save_tool",
          "set_organization",
          "update_organization",
          "validate_flow"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "The user or assistant supplies source material as conversation text or URLs; knowledge accepts text and URL only, so file contents are registered as text the user confirmed.",
        "Secrets for save_tool come only from the user's current request; masked values are never written back.",
        "New agents default to single_prompt with agent-owned manuals attached through save_manual (mode create); flow is chosen only when the type-selection rule in voice-agent-design applies, and the assistant tells the user the chosen type and a one-line reason before the first save_agent.",
        "새 agent 모델을 고를 때마다 list_models(kind=llm)을 호출하고 build-first-voice-agent의 모델 선택 규칙을 따른다. featured 정보가 있으면 템플릿 생성 뒤에도 선택 모델을 명시 적용한다.",
        "Built-in tools owned by a manual are referenced in its content as @tool:name, API tools as @tool:<tool_id>, and other manuals as @manual:<manual_id> (save the target manual first to get its id); otherwise they are not used in calls; a template's default prompt is rewritten to fit the new business before manuals are added.",
        "When the agent-type rule in voice-agent-design selects flow, graphs are checked with validate_flow (level all) before save_agent; api-node secrets come back masked (********) and are never sent back, so the real values are re-entered by the user when a flow with api nodes is updated.",
        "create_voice_model registers only a voice the speaker has consented to; the assistant confirms consent and the source (public HTTPS audio, up to 6MB) in the conversation first.",
        "Before set_organization the assistant confirms the target organization with the user, because the switch applies to the whole connection."
      ],
      "designed_unavailable_fallback": "Keep continuity in the current accessible conversation or a user-provided handoff."
    },
    {
      "id": "refinement",
      "implemented": {
        "required_tools": [
          "get_agent",
          "get_manual",
          "save_manual"
        ],
        "optional_tools": [
          "create_knowledge",
          "get_schema",
          "get_tool",
          "list_agent_versions",
          "list_knowledge_documents",
          "list_knowledges",
          "list_manuals",
          "list_tools",
          "save_agent",
          "save_tool"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [],
      "designed_unavailable_fallback": "Re-read current product state before editing."
    },
    {
      "id": "publish",
      "implemented": {
        "required_tools": [
          "create_agent_version",
          "get_agent",
          "list_agent_versions",
          "publish_agent_version"
        ],
        "optional_tools": [
          "get_number",
          "list_numbers"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "Before publish_agent_version the assistant summarizes the agent and version and gets the user's confirmation in the conversation."
      ],
      "designed_unavailable_fallback": "If publish tools are not exposed, report that publishing is unavailable on this connection; do not claim a version is live."
    },
    {
      "id": "connect_phone",
      "implemented": {
        "required_tools": [
          "get_number",
          "list_numbers",
          "set_number_agents"
        ],
        "optional_tools": [
          "get_call",
          "list_agent_versions",
          "list_calls",
          "update_number"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "Only numbers the organization already owns are connected; acquiring or cancelling numbers happens on the web.",
        "Before set_number_agents or update_number the assistant confirms the number and the agent/version change (null disconnects) in the conversation."
      ],
      "designed_unavailable_fallback": "If number tools are not exposed, report that number connection is unavailable on this connection; do not claim a number is connected."
    },
    {
      "id": "customer_direct_test",
      "implemented": {
        "required_tools": [],
        "optional_tools": [
          "get_agent",
          "get_call",
          "get_manual",
          "list_agent_versions",
          "list_calls"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "The customer performs the voice test in the product UI; no tool starts a voice test.",
        "The customer reports the observed result and any relevant call reference."
      ],
      "designed_unavailable_fallback": "Keep customer test feedback labeled as reported until get_call reads the call; never imply MCP launched the test."
    },
    {
      "id": "operate",
      "implemented": {
        "required_tools": [],
        "optional_tools": [
          "cancel_campaign",
          "create_sheet",
          "find_customer",
          "get_call",
          "get_campaign",
          "get_customer",
          "get_number",
          "get_sheet",
          "inject_call_context",
          "launch_campaign",
          "list_calls",
          "list_campaigns",
          "list_customers",
          "list_numbers",
          "list_sheets",
          "pause_campaign",
          "place_call",
          "resume_campaign"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": [
          "transfer_call",
          "send_sms",
          "send_sms_batch",
          "get_sms",
          "get_sms_batch"
        ]
      },
      "host_actions": [
        "Before place_call, launch_campaign, or resume_campaign the assistant confirms the target, from number, and agent/version in the conversation and creates a fresh execution_key per intended action.",
        "On EXECUTION_RESULT_UNKNOWN or EXECUTION_IN_PROGRESS the assistant never retries; it checks get_call/list_calls or get_campaign/list_campaigns.",
        "Before inject_call_context the assistant confirms the ongoing call, context text, and response mode in the conversation. It uses the required idempotency_key, not execution_key; 202 accepted proves delivery only, and application or speech results arrive through the call_context webhook matched by control_id."
      ],
      "designed_unavailable_fallback": "Call transfer and SMS tools are not part of this tool set. If place_call or campaign tools are not exposed, say live operation is unavailable on this connection and do not claim call or campaign execution."
    },
    {
      "id": "inspect_results",
      "implemented": {
        "required_tools": [
          "get_call",
          "list_calls"
        ],
        "optional_tools": [
          "find_customer",
          "get_agent",
          "get_campaign",
          "get_customer",
          "get_customer_attribute_definition",
          "list_agent_versions",
          "list_campaigns",
          "list_customer_attribute_definitions",
          "list_customers",
          "resolve_customer",
          "save_customer",
          "save_customer_attribute_definition"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "get_call omits the transcript by default; include_transcript is requested only when the user asks and quotes only the needed turns."
      ],
      "designed_unavailable_fallback": "If call tools are not exposed, rely on the customer's report labeled as reported and do not present it as read call evidence."
    },
    {
      "id": "resume",
      "implemented": {
        "required_tools": [
          "get_agent",
          "get_manual"
        ],
        "optional_tools": [
          "get_call",
          "get_campaign",
          "get_number",
          "get_organization",
          "list_agent_versions",
          "list_agents",
          "list_calls",
          "list_knowledge_documents",
          "list_manuals",
          "list_organizations",
          "set_organization"
        ]
      },
      "designed": {
        "required_tools": [],
        "optional_tools": []
      },
      "host_actions": [
        "When the host cannot access the original conversation, the user provides prior resource IDs and the latest decision."
      ],
      "designed_unavailable_fallback": "Resume from same-host history or a user-provided handoff, then verify supplied IDs and current revisions. Never infer that another thread or host was searched. After an unknown execution, look up state with the read tools instead of re-running."
    }
  ],
  "scope_note": "The bundle documents the first-release tool schema candidates. This does not prove a connected host exposes them. Inspect the live tool list and schemas."
}

SHA-256: 244dd7d4d15f0431ede90cda800a97db94ffc04f6cc9f8209a965f0cdce675e5