Skip to content

Is there the ReAct in the Intent-Aware Retrieval Planning module? #55

@Haodong-Lei-Ray

Description

@Haodong-Lei-Ray

def _retrieve_with_planning(self, query: str, enable_reflection: Optional[bool] = None) -> List[MemoryEntry]:
"""
Execute retrieval with intelligent planning process
Args:
- query: Search query
- enable_reflection: Override reflection setting for this query
"""
print(f"\n[Planning] Analyzing information requirements for: {query}")
# Step 1: Intelligent analysis of what information is needed
information_plan = self._analyze_information_requirements(query)
print(f"[Planning] Identified {len(information_plan['required_info'])} information requirements")
# Step 2: Generate minimal necessary queries based on the plan
search_queries = self._generate_targeted_queries(query, information_plan)
print(f"[Planning] Generated {len(search_queries)} targeted queries")
# Step 3: Execute searches for all queries (parallel or sequential)
if self.enable_parallel_retrieval and len(search_queries) > 1:
all_results = self._execute_parallel_searches(search_queries)
else:
all_results = []
for i, search_query in enumerate(search_queries, 1):
print(f"[Search {i}] {search_query}")
results = self._semantic_search(search_query)
all_results.extend(results)
# Step 3.5: Execute keyword and structured searches (hybrid retrieval)
query_analysis = self._analyze_query(query)
# Keyword search (Lexical Layer)
keyword_results = self._keyword_search(query, query_analysis)
print(f"[Keyword Search] Found {len(keyword_results)} results")
all_results.extend(keyword_results)
# Structured search (Symbolic Layer)
structured_results = self._structured_search(query_analysis)
print(f"[Structured Search] Found {len(structured_results)} results")
all_results.extend(structured_results)
# Step 4: Merge and deduplicate results
merged_results = self._merge_and_deduplicate_entries(all_results)
print(f"[Planning] Found {len(merged_results)} unique results (semantic + keyword + structured)")
# Step 5: Optional reflection-based additional retrieval
# Use override parameter if provided, otherwise use global setting
should_use_reflection = enable_reflection if enable_reflection is not None else self.enable_reflection
if should_use_reflection:
merged_results = self._retrieve_with_intelligent_reflection(query, merged_results, information_plan)
return merged_results

Hi, I saw this code in your project.
I wonder if it means that the framework of ReAct is in the Intent-Aware Retrieval Planning module?

I thought SimpleMem was a one-step memory before I found this code. So it seems that the paragraph mentioned in your paper, which makes an opposition about the " iterative reasoning procedures" approach, may need some modification.

Image

And I wonder what number you set for "self.max_reflection_rounds" for the final experiment.

Thank for your reply.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions