Export & Import Functionality

Overview

The Export & Import feature in the Toka framework provides a straightforward way to persist AI agents by saving them in a structured format (e.g., JSON) and then reloading them at a later time. This approach is invaluable for sharing agents, debugging, or resuming agent operations after a restart.

Why Use Export & Import?

  1. Persistence: Save the agent’s entire state, including conversation history and model parameters, for later use or backup.
  2. Collaboration: Share AI agents between different environments or team members without needing to rebuild them from scratch.
  3. Versioning: Maintain multiple versions of an agent, allowing you to roll back to a previous state if needed.
  4. Scalability: Move agents across machines, containers, or cloud services easily by transferring a single file.

Implementation Details

1. Exporting Agents

The following Rust code snippet demonstrates how to export an agent

use agents::gpt4free::GPT4FreeAgent;
use std::error::Error;
use agents::agent_trait::AgentTrait;

/// Assume that the `Agent` struct implements `Serialize` from Serde.
pub fn export_agent(agent: &Agent, file_path: &str) -> Result<(), Box<dyn Error>> {
    // create a custom GPT4FreeAgent
    let mut agent = GPT4FreeAgent::new("dummy");

    // Export the agent to a file
    agent.export_to_file(file_path)?;
    println!("Agent exported to {}", file_path);

    Ok(())
}

The following Rust code snippet demonstrates how to import an agent

use agents::gpt4free::GPT4FreeAgent;
use std::error::Error;
use agents::agent_trait::AgentTrait;

/// Assume that the `Agent` struct implements `Deserialize` from Serde.
pub fn import_agent(file_path: &str) -> Result<Agent, Box<dyn Error>> {
    // Import the agent again from the file
    let imported_agent = GPT4FreeAgent::import_from_file(file_path)?;
    println!("Agent imported from {}", file_path);

    Ok(imported_agent)
}

results matching ""

    No results matching ""