agent-kernel 0.1.0

Minimal Agent orchestration kernel for multi-agent discussion
Documentation
use crate::agent::Agent;
use crate::message::Message;
use crate::BoxFuture;

/// Single-agent response primitive.
///
/// Extreme minimalism principle: exactly one method.
/// The kernel provides no convergence logic, no memory injection, no streaming —
/// all policy decisions belong to the caller.
///
/// `BoxFuture` is used instead of `async_trait` to keep the kernel dependency-free
/// (no `async_trait` macro dep).
pub trait AgentRuntime: Send + Sync {
    /// Invoke the agent with the full conversation history and return its response.
    fn respond<'a>(
        &'a self,
        agent: &'a Agent,
        history: &'a [Message],
    ) -> BoxFuture<'a, anyhow::Result<String>>;
}