feat: add custom_context field to research context #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds an optional
custom_contextfield to theResearchContextclass to enable projects extendingsgr_deep_researchto store project-specific data without modifying the core codebase.Changes
custom_context: dict | BaseModel | Nonefield toResearchContextclass incore/models.pydefault=Nonefor full backward compatibilityMotivation
This change allows downstream projects to extend
ResearchContextwith custom data structures (e.g., Pydantic models) stored incustom_context, enabling project-specific functionality while keeping the core codebase clean and minimal.Backward Compatibility
✅ Fully backward compatible - the field is optional with
default=None, so existing code will continue to work without any changes. No breaking changes.Use Case Example
from pydantic import BaseModel
class MyProjectContext(BaseModel):
custom_field: str
context = ResearchContext()
context.custom_context = MyProjectContext(custom_field="value")
Testing
None,dict, or anyBaseModelinstance