Skip to main content

AI Knowledge Bases API Guide

Use client.ai().knowledge_bases() for backend knowledge-base management.

List knowledge bases

use wacht::{WachtClient, WachtConfig};

let client = WachtClient::new(WachtConfig::new("wk_live_...", "https://app.wacht.dev"))?;

let kb_list = client
    .ai()
    .knowledge_bases()
    .fetch_knowledge_bases()
    .limit(50)
    .offset(0)
    .search("product")
    .send()
    .await?;

for kb in kb_list.data {
    println!("{} ({})", kb.name, kb.documents_count);
}

Get, create, update, delete

use wacht::models::{CreateAiKnowledgeBaseRequest, UpdateAiKnowledgeBaseRequest};

let kb = client
    .ai()
    .knowledge_bases()
    .fetch_knowledge_base("kb_123")
    .send()
    .await?;

let created = client
    .ai()
    .knowledge_bases()
    .create_knowledge_base(CreateAiKnowledgeBaseRequest {
        name: "Product Docs".to_string(),
        description: Some("Product documentation".to_string()),
        configuration: None,
    })
    .send()
    .await?;

let updated = client
    .ai()
    .knowledge_bases()
    .update_knowledge_base(
        "kb_123",
        UpdateAiKnowledgeBaseRequest {
            name: Some("Updated Product Docs".to_string()),
            ..Default::default()
        },
    )
    .send()
    .await?;

client
    .ai()
    .knowledge_bases()
    .delete_knowledge_base("kb_123")
    .send()
    .await?;

Documents

use std::fs;

let documents = client
    .ai()
    .knowledge_bases()
    .fetch_documents("kb_123")
    .limit(25)
    .send()
    .await?;

let file_content = fs::read("user_guide.pdf")?;

let document = client
    .ai()
    .knowledge_bases()
    .upload_document("kb_123", file_content, "user_guide.pdf")
    .title("User Guide")
    .send()
    .await?;

client
    .ai()
    .knowledge_bases()
    .delete_document("kb_123", &document.id)
    .send()
    .await?;

Agent knowledge-base attachments

client
    .ai()
    .knowledge_bases()
    .attach_agent_knowledge_base("agent_123", "kb_123")
    .send()
    .await?;

let attached = client
    .ai()
    .knowledge_bases()
    .fetch_agent_knowledge_bases("agent_123")
    .send()
    .await?;