kowalski

Crates.iokowalski
lib.rskowalski
version0.5.0
created_at2025-03-07 11:35:35.78424+00
updated_at2025-06-28 22:27:02.631228+00
descriptionKowalski: A Rust-based agent for interacting with Ollama models
homepagehttps://github.com/yarenty/kowalski
repositoryhttps://github.com/yarenty/kowalski
max_upload_size
id1582799
size102,028
Jaroslaw Nowosad (yarenty)

documentation

README

Kowalski

A comprehensive Rust-based agent framework for interacting with Ollama models and building AI-powered applications.

Overview

Kowalski is a modular framework that provides everything you need to build sophisticated AI agents. The framework is organized into specialized crates that can be used independently or together.

Architecture

Core Components

  • kowalski-core: Basic agent infrastructure, types, and utilities
  • kowalski-agent-template: Templates and builders for creating custom agents
  • kowalski-tools: Collection of tools for web scraping, data processing, and more
  • kowalski-federation: Multi-agent coordination and communication

Specialized Agents

  • kowalski-academic-agent: Research and academic paper analysis
  • kowalski-code-agent: Code analysis, refactoring, and generation
  • kowalski-data-agent: Data analysis and processing (optional feature)
  • kowalski-web-agent: Web research and information gathering

Installation

Add to your Cargo.toml:

[dependencies]
kowalski = "0.5.0"

# Optional: Enable data analysis capabilities
kowalski = { version = "0.5.0", features = ["data"] }

Quick Start

use kowalski::{Agent, AgentBuilder, Result};

#[tokio::main]
async fn main() -> Result<()> {
    // Create a basic agent
    let agent = AgentBuilder::new()
        .with_model("llama2")
        .with_system_prompt("You are a helpful AI assistant.")
        .build()?;

    // Send a message
    let response = agent.send_message("Hello, how are you?").await?;
    println!("Response: {}", response.content);

    Ok(())
}

Using Specialized Agents

Academic Research

use kowalski::academic_agent::AcademicAgent;

let agent = AcademicAgent::new("llama2")?;
let analysis = agent.analyze_paper("path/to/paper.pdf").await?;

Code Analysis

use kowalski::code_agent::CodeAgent;

let agent = CodeAgent::new("codellama")?;
let refactored = agent.refactor_code("src/main.rs").await?;

Web Research

use kowalski::web_agent::WebAgent;

let agent = WebAgent::new("llama2")?;
let research = agent.research_topic("Rust async programming").await?;

Features

  • Modular Design: Use only the components you need
  • Async/Await: Built on Tokio for high-performance async operations
  • Tool Integration: Rich ecosystem of tools for various tasks
  • Multi-Agent Coordination: Build complex systems with multiple agents
  • Extensible: Easy to add custom tools and agents

Documentation

License

MIT License - see LICENSE file for details.

Commit count: 57

cargo fmt