kowalski-core 2.3.1

Core library of Kowalski, a Rust multi-agent framework: agents with MCP tools and memory, and hordes (step pipelines with triggers) over Ollama or OpenAI-compatible models
Documentation

kowalski-core

Core library of Kowalski, a Rust multi-agent framework: agents with MCP tools and memory, and hordes (step pipelines with triggers) over Ollama or OpenAI-compatible models. The kowalski server and kowalski-cli are thin surfaces over this crate.

cargo add kowalski-core
cargo add kowalski-core --features postgres   # SQL memory, pgvector, graph

What is inside

Area Modules
Agents agent (Agent trait, BaseAgent, native tool calling with a ReAct fallback), template (TemplateAgent, AgentBuilder), role
Models llm (Ollama and OpenAI-compatible providers, structured output), model
Tools tools (Tool trait; internal web_fetch, web_search, filesystem), tool_chain, mcp (MCP client and hub: stdio and Streamable HTTP)
Memory memory (working, episodic and semantic tiers), db (SQLite by default, Postgres optional; migrations ship with the crate)
Hordes horde_step, horde_stages, horde_graph (linear and fork/join), horde_trigger (cron, watch, webhook), horde_table_steps (table_profile, sql_batch, xlsx_report), markdown_pipeline, operator_input
Building and sharing rookery (horde builder primitives), manifest (portable workflow manifests and bundles), source_bundle
Federation federation (agent registry, task delegation, events), graph

Example

use kowalski_core::{Agent, Config, template::TemplateAgent};

#[tokio::main]
async fn main() -> Result<(), kowalski_core::KowalskiError> {
    let config = Config::default();
    let model = config.ollama.model.clone();
    let mut agent = TemplateAgent::new(config).await?;
    let conv = agent.start_conversation(&model);
    println!("{}", agent.chat_with_history(&conv, "Hello", None).await?);
    Ok(())
}

Documentation

License

MIT — see LICENSE.