llmrix-rust-sdk 1.0.0

Official Rust SDK for the llmrix AI Agent Platform API
Documentation
use std::sync::Arc;
use crate::{error::Result, model::*, transport::*};

/// Operations on the Agents API (cloud mode only).
/// All methods return HTTP 503 when the server runs in native/standalone mode.
/// Obtain via [`LlmrixClient::agents`].
pub struct AgentsResource {
    pub(crate) t: Arc<Transport>,
}

impl AgentsResource {
    /// Return all agents.
    pub async fn list(&self) -> Result<Vec<Agent>> {
        self.t.get_unwrap(&path_agents(), "agents").await
    }

    /// Create a new agent.
    pub async fn create(&self, req: AgentCreateRequest) -> Result<Agent> {
        self.t.post_unwrap(&path_agents(), &req, "agent").await
    }

    /// Retrieve a single agent by numeric ID.
    pub async fn get(&self, agent_id: i64) -> Result<Agent> {
        self.t.get_unwrap(&path_agent(agent_id), "agent").await
    }

    /// Update an agent's properties. Only non-`None` fields are sent.
    pub async fn update(&self, agent_id: i64, req: AgentUpdateRequest) -> Result<Agent> {
        self.t.patch_unwrap(&path_agent(agent_id), &req, "agent").await
    }

    /// Permanently delete an agent.
    pub async fn delete(&self, agent_id: i64) -> Result<()> {
        self.t.delete(&path_agent(agent_id)).await
    }

    /// Return all mates assigned to a team agent.
    pub async fn list_mates(&self, agent_id: i64) -> Result<Vec<Mate>> {
        self.t.get_unwrap(&path_agent_mates(agent_id), "mates").await
    }

    /// Atomically replace all mates of a team agent.
    pub async fn save_mates(&self, agent_id: i64, mates: Vec<Mate>) -> Result<Vec<Mate>> {
        self.t
            .post_unwrap(&path_agent_mates(agent_id), &SaveMatesRequest { mates }, "mates")
            .await
    }
}