NewWacht Bench is live — AI-assisted development for Wacht
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()

Default runtime tools:

Wacht injects a set of internal tools into agent execution. Availability can depend on the execution mode, assignment context, mounted filesystems, and approval policy.

  • Files and execution: read_image, read_file, write_file, append_file, edit_file, execute_command, sleep.
  • Web and evidence: web_search, url_content, search_knowledgebase.
  • Memory and tool discovery: load_memory, save_memory, update_memory, search_tools, load_tools.
  • Threads and task orchestration: list_threads, create_thread, update_thread, create_project_task, update_project_task, assign_project_task, append_task_journal.
  • Task graph planning: task_graph_add_node, task_graph_add_dependency, task_graph_mark_in_progress, task_graph_complete_node, task_graph_fail_node, task_graph_reset.
  • Human input: ask_user.

web_search searches the public web and returns URLs, excerpts, source metadata, warnings, and usage information. It accepts either an objective or search_queries, plus optional mode, max_results, domain filters, and freshness filtering.

url_content fetches focused excerpts or full markdown content for one or more URLs. Use it after web_search when the agent needs page-level evidence instead of search-result excerpts.

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(())
}