| Crates.io | kowalski |
| lib.rs | kowalski |
| version | 0.5.0 |
| created_at | 2025-03-07 11:35:35.78424+00 |
| updated_at | 2025-06-28 22:27:02.631228+00 |
| description | Kowalski: A Rust-based agent for interacting with Ollama models |
| homepage | https://github.com/yarenty/kowalski |
| repository | https://github.com/yarenty/kowalski |
| max_upload_size | |
| id | 1582799 |
| size | 102,028 |
A comprehensive Rust-based agent framework for interacting with Ollama models and building AI-powered applications.
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.
kowalski-core: Basic agent infrastructure, types, and utilitieskowalski-agent-template: Templates and builders for creating custom agentskowalski-tools: Collection of tools for web scraping, data processing, and morekowalski-federation: Multi-agent coordination and communicationkowalski-academic-agent: Research and academic paper analysiskowalski-code-agent: Code analysis, refactoring, and generationkowalski-data-agent: Data analysis and processing (optional feature)kowalski-web-agent: Web research and information gatheringAdd to your Cargo.toml:
[dependencies]
kowalski = "0.5.0"
# Optional: Enable data analysis capabilities
kowalski = { version = "0.5.0", features = ["data"] }
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(())
}
use kowalski::academic_agent::AcademicAgent;
let agent = AcademicAgent::new("llama2")?;
let analysis = agent.analyze_paper("path/to/paper.pdf").await?;
use kowalski::code_agent::CodeAgent;
let agent = CodeAgent::new("codellama")?;
let refactored = agent.refactor_code("src/main.rs").await?;
use kowalski::web_agent::WebAgent;
let agent = WebAgent::new("llama2")?;
let research = agent.research_topic("Rust async programming").await?;
MIT License - see LICENSE file for details.