Expand description
Environment - アクション実行環境の抽象化
すべてのアクション実行を Environment 経由で行うことで、 Actions/Env の組み合わせを外部から注入可能にする。
§設計
GenericWorker.execute_action()
│
└── Extensions.get::<EnvironmentBox>()
│
└── env.step(worker_id, action) → WorkResult§重要
step()が唯一のアクション実行メソッドWorkResult::Doneで終了を通知- 観察が必要な場合は
Action("Look")を送り、step()で処理する
§使用例
ⓘ
// デフォルト環境(Bash/Read/Write/Grep/Glob)
let orchestrator = OrchestratorBuilder::new()
.environment(Box::new(DefaultEnvironment::new()))
.build();
// カスタム環境(迷路)
let orchestrator = OrchestratorBuilder::new()
.environment(Box::new(MazeEnvironment::from_map(map)))
.build();Structs§
- Default
Environment - デフォルト環境 - ファイル操作・シェルコマンド
Traits§
- Environment
- アクション実行環境トレイト
Type Aliases§
- Environment
Box - Environment の Box 型エイリアス