Skip to main content

Module exploration

Module exploration 

Source
Expand description

Exploration System - 探索アルゴリズム (V2)

§設計方針: Tree 探索モデル

ExplorationSpace は Tree 探索モデル を採用している。

§Agent タスクの特性

Agent のタスクは以下の2種類に大別される:

  • Look 系: 情報取得(WebSearch, Grep, ReadFile, Fetch…)
  • Check 系: 成功/失敗判定(Affection & Check)
Look(A) → Expand → Check(A', B'...)
                  ├─ Success → Done
                  └─ Fail → Look(C) → Expand → Check(C'...)

§なぜ Tree で十分か

  • Agent の Tool 呼び出しは 同じ (Action, Target, Args) を繰り返しても結果は変わらない
  • Network/Flaky は Tool 内部でリトライ処理
  • だから dedup_key による重複排除 が正しく機能する
  • 状態 = (Action, Target, Args) で十分(Position 不要)

§迷路問題との違い

迷路のような問題は Tree モデルには向かない:

  • 迷路: 同じ位置に「戻る」ことに意味がある(バックトラック)
  • Agent: 同じ状態に「戻る」ことに意味がない

迷路を解くには Position を状態に含める必要があるが、 実際の Agent タスク(DeepSearch, Coding, Security Audit 等)では不要。

§モジュール構成

  • space: 探索空間 V2(統合レイヤー)
  • map: 探索マップの抽象層(ExplorationMap trait)
  • mutation: MutationInput/MapUpdate(入力→Map操作変換)
  • node_rules: 純粋な遷移制約(ドメイン非依存)
  • types: 共通型定義(ExplorationTarget, NodeId 等)
  • dependency_planner: アクション依存グラフの計画

Re-exports§

pub use dependency_planner::DependencyEdge;
pub use dependency_planner::DependencyGraph;
pub use dependency_planner::DependencyGraphBuilder;
pub use dependency_planner::DependencyGraphError;
pub use dependency_planner::DependencyGraphProvider;
pub use dependency_planner::DependencyPlanner;
pub use dependency_planner::DependencyPromptGenerator;
pub use dependency_planner::GraphNavigator;
pub use dependency_planner::LearnedDependencyProvider;
pub use dependency_planner::LlmDependencyResponse;
pub use dependency_planner::LlmEdge;
pub use dependency_planner::StaticDependencyPlanner;
pub use llm_provider::AdaptiveLlmOperatorProvider;
pub use llm_provider::ReviewPolicy;
pub use llm_provider::StrategyAdvice;
pub use llm_provider::StrategyAdviceError;
pub use llm_provider::StrategyAdvisor;
pub use llm_provider::StrategyContext;
pub use map::AddResult;
pub use map::ExplorationMap;
pub use map::GraphExplorationMap;
pub use map::GraphMap;
pub use map::GraphMapUpdate;
pub use map::HierarchicalMap;
pub use map::MapApplyResult;
pub use map::MapEdge;
pub use map::MapEdgeId;
pub use map::MapError;
pub use map::MapNode;
pub use map::MapNodeId;
pub use map::MapNodeState;
pub use map::MapResult;
pub use mutation::ActionExtractor;
pub use mutation::ActionNodeData;
pub use mutation::ExplorationResult;
pub use mutation::MapUpdate;
pub use mutation::MapUpdateResult;
pub use mutation::MutationInput;
pub use node_rules::NodeRules;
pub use node_rules::Rules;
pub use operator::ConfigurableOperator;
pub use operator::FifoOperator;
pub use operator::MutationLogic;
pub use operator::Operator;
pub use operator::RulesBasedMutation;
pub use operator::Ucb1Operator;
pub use provider::AdaptiveOperatorProvider;
pub use provider::ConfigBasedOperatorProvider;
pub use provider::OperatorConfig;
pub use provider::OperatorProvider;
pub use provider::ProviderContext;
pub use selection::AnySelection;
pub use selection::Fifo;
pub use selection::FifoSelection;
pub use selection::Greedy;
pub use selection::GreedySelection;
pub use selection::SelectionKind;
pub use selection::SelectionLogic;
pub use selection::Thompson;
pub use selection::ThompsonSelection;
pub use selection::Ucb1;
pub use selection::Ucb1Selection;
pub use space::ConfigurableSpace;
pub use space::ExplorationSpaceV2;
pub use types::EdgeId;
pub use types::ExplorationTarget;
pub use types::NodeId;
pub use types::TrialPolicy;

Modules§

dependency_planner
Action Dependency Planner - アクション依存グラフの動的構築
llm_provider
LLM-based OperatorProvider - LLM による探索戦略の動的決定
map
Exploration Map - 探索マップの抽象層
mutation
Mutation - 入力を Map 操作に変換するための型定義
node_rules
Node Rules - Exploration 内の純粋な遷移制約
operator
Exploration Operator - Mutation と Selection のペア
provider
OperatorProvider - Operator を提供する戦略
selection
Selection - ノード選択アルゴリズム
space
Exploration Space V2 - 探索空間の統合レイヤー
types
Exploration Types - V2 探索システムで使用する共通型