1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Automaton agents — the reasoning brain layer.
//!
//! An agent is a goal-directed entity that uses infrastructure (LLM, tools, memory)
//! to accomplish objectives. Two agents are provided:
//!
//! ## [`zebtune::ZebtuneAgent`]
//!
//! Full autonomous agent on par with Perplexity, Claude Code, or Cursor.
//! Phases: strategic planning → execution loop → validation → replanning → synthesis.
//!
//! - Uses `crate::automaton::planning` for goal decomposition
//! - Uses `crate::automaton::memory` for context persistence (M8)
//! - Exposed via pipeline node `n.ai.agent.zebtune`
//!
//! ## [`tool_caller::ToolCallerAgent`]
//!
//! Simple single-pass tool sequence executor.
//! Receives goal + tool definitions → LLM generates structured tool calls →
//! executes them → feeds results back → final answer.
//!
//! - Uses native OpenAI function calling API (no text parsing)
//! - No planning or replanning phase
//! - Exposed via pipeline node `n.ai.agent.tool_caller`
//!
//! ## [`engines`]
//!
//! Implementations of the `AutomatonEngine` trait (plan/execute contract).
//! `NoopAutomatonEngine` is the reference implementation used in tests.
pub use NoopAutomatonEngine;
pub use ToolCallerAgent;
pub use ZebtuneAgent;