Rust

AI Runtime and Configuration

Agents, tools, knowledge bases, MCP servers, projects, and threads.

Validated route domains:

  • /ai/agents*
  • /ai/tools*
  • /ai/knowledge-bases*
  • /ai/mcp-servers*
  • /ai/settings
  • /ai/actor-projects*
  • /ai/actor-project-threads*
  • /ai/actor-mcp-servers*

Rust API surfaces:

  • client.ai().agents().list_agents()
  • client.ai().agents().create_agent(request)
  • client.ai().tools().list_tools()
  • client.ai().knowledge_bases().fetch_knowledge_bases()
  • client.ai().mcp_servers().list_mcp_servers()
  • client.ai_settings().fetch_ai_settings()
  • client.ai_settings().update_ai_settings(request)
  • client.ai().actor_projects().list_actor_projects(actor_id)
  • client.ai().actor_projects().fetch_threads(project_id)
  • client.ai().actor_project_threads().run_thread(thread_id, request)
  • client.ai().actor_mcp_servers().list_actor_mcp_servers()

Rust example:

use wacht_rs::{Result, WachtClient};

pub async fn ai_runtime_example(client: &WachtClient) -> Result<()> {
    let _settings = client.ai_settings().fetch_ai_settings().send().await?;

    let _run = client
        .ai()
        .actor_project_threads()
        .run_thread(
            "thread_id",
            wacht_rs::models::ExecuteAgentRequest {
                agent_id: None,
                execution_type: wacht_rs::models::ExecuteAgentRequestType {
                    new_message: Some(wacht_rs::models::NewMessageRequest {
                        message: "Summarize current incident impact".to_string(),
                        files: None,
                    }),
                    approval_response: None,
                    cancel: None,
                },
            },
        )
        .send()
        .await?;

    Ok(())
}