llm_worker/lib.rs
1//! llm-worker - LLMワーカーライブラリ
2//!
3//! LLMとの対話を管理するコンポーネントを提供します。
4//!
5//! # 主要なコンポーネント
6//!
7//! - [`Worker`] - LLMとの対話を管理する中心コンポーネント
8//! - [`tool::Tool`] - LLMから呼び出し可能なツール
9//! - [`hook::Hook`] - ターン進行への介入
10//! - [`subscriber::WorkerSubscriber`] - ストリーミングイベントの購読
11//!
12//! # Quick Start
13//!
14//! ```ignore
15//! use llm_worker::{Worker, Message};
16//!
17//! // Workerを作成
18//! let mut worker = Worker::new(client)
19//! .system_prompt("You are a helpful assistant.");
20//!
21//! // ツールを登録(オプション)
22//! // worker.register_tool(my_tool_definition)?;
23//!
24//! // 対話を実行
25//! let history = worker.run("Hello!").await?;
26//! ```
27//!
28//! # キャッシュ保護
29//!
30//! KVキャッシュのヒット率を最大化するには、[`Worker::lock()`]で
31//! ロック状態に遷移してから実行してください。
32//!
33//! ```ignore
34//! let mut locked = worker.lock();
35//! locked.run("user input").await?;
36//! ```
37
38mod handler;
39mod message;
40mod worker;
41
42pub mod event;
43pub mod hook;
44pub mod llm_client;
45pub mod state;
46pub mod subscriber;
47pub mod timeline;
48pub mod tool;
49
50pub use message::{ContentPart, Message, MessageContent, Role};
51pub use worker::{ToolRegistryError, Worker, WorkerConfig, WorkerError, WorkerResult};