pub trait WorkerAgent: Send + Sync {
// Required methods
fn think_and_act(
&self,
state: &SwarmState,
guidance: Option<&Guidance>,
) -> WorkResult;
fn id(&self) -> WorkerId;
fn name(&self) -> &str;
}Expand description
毎 Tick 実行する Agent
RuleBased・LLMBased 両方のパターンを想定した汎用的な Worker trait です。 SwarmApp は登録された全 WorkerAgent を毎 Tick 並列実行します。
§設計方針
この trait は LLMRouter 等の使用を強制しません。 システムの要件に応じて、以下のいずれかのパターンで実装できます:
- RuleBased: 固定ロジックで高速実行(< 1ms)
- LLMBased: ActionRouter/LLM を内部で使用し自律判断
§ライフサイクル
SwarmApp.run()
└─ loop {
for worker in workers {
worker.think_and_act(state, guidance) // ← 毎 Tick 呼ばれる
}
}Required Methods§
Sourcefn think_and_act(
&self,
state: &SwarmState,
guidance: Option<&Guidance>,
) -> WorkResult
fn think_and_act( &self, state: &SwarmState, guidance: Option<&Guidance>, ) -> WorkResult
自律的に判断して行動(毎 Tick 呼ばれる)
§並列実行のための設計
&self で実行し、状態変更は WorkResult で返す。
これにより par_iter() での並列実行が可能。
§Arguments
state- 現在の Swarm 状態(ReadOnly)guidance- Manager からの方針・ヒント(オプション)
§Returns
WorkResult::Acted- Action を実行したWorkResult::Continuing- 処理継続中(次 Tick も続ける)WorkResult::NeedsGuidance- Manager の判断を仰ぎたいWorkResult::Idle- やることがない