Expand description
Record - 生イベントの抽象化
§設計思想
全ての Record は Event から変換されなければならない。
[External Events] [Learn Domain Records (DTO)]
ActionEvent ─────────────────────▶ ActionRecord ──────────────┐
LlmDebugEvent ───────────────────▶ LlmCallRecord ─────────────┤
LearningEvent::DependencyGraph ──▶ DependencyGraphRecord ─────├──▶ Record ──▶ Episode
LearningEvent::StrategyAdvice ───▶ StrategyAdviceRecord ──────┤
LearningEvent::LearnStatsSnapshot ▶ LearnStatsRecord ─────────┘§EventSource trait
新しい Record を追加する際は [EventSource] trait を実装すること。
これにより From<&Event> 実装が強制される。
ⓘ
// 各 record ファイルで実装
impl EventSource for MyRecord {
type Event = MyEvent;
}
impl From<&MyEvent> for MyRecord {
fn from(event: &MyEvent) -> Self { ... }
}§Checklist (新規 Record 追加時)
record/に新しいファイルを作成- Record 構造体を定義
- 対応する Event を定義(または既存 Event に variant 追加)
From<&Event> for *Recordを同ファイルに実装EventSourcetrait を実装mod.rsにRecordenum variant を追加mod.rsにFrom<&Event> for Recordのルーティングを追加FromRecordtrait を実装
Structs§
- Action
Record - アクション実行の記録
- Dependency
Graph Record - DependencyGraph 推論の記録
- Learn
Stats Record - LearnStats スナップショット記録
- LlmCall
Record - LLM呼び出しの記録
- Record
Stream - Record のストリームを操作するためのヘルパー
- Strategy
Advice Record - LLM 戦略アドバイス記録
Enums§
- Record
- 生イベントから変換された Record
Traits§
- From
Record - Record から特定の型を抽出するための Trait