- When key snippets are emitted, snippet files are auto added to related files.
- Add base task to research subtask prompt. - Adjust research prompt to make sure related files are related to the base task, not just the research subtask.
This commit is contained in:
parent
ac82fb9e3d
commit
aff629e13c
|
|
@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- When key snippets are emitted, snippet files are auto added to related files.
|
||||
- Add base task to research subtask prompt.
|
||||
- Adjust research prompt to make sure related files are related to the base task, not just the research subtask.
|
||||
|
||||
## [0.6.0] - 2024-12-17
|
||||
|
||||
### Added
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ def run_research_subtasks(base_task: str, config: dict, model, expert_enabled: b
|
|||
)
|
||||
|
||||
# Run the subtask agent
|
||||
subtask_prompt = f"Research Subtask: {subtask}\n\n{RESEARCH_PROMPT}"
|
||||
subtask_prompt = f"Base Task: {base_task}\nResearch Subtask: {subtask}\n\n{RESEARCH_PROMPT}"
|
||||
run_agent_with_retry(subtask_agent, subtask_prompt, config)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -47,12 +47,12 @@ Tools and Methodology
|
|||
Reporting Findings
|
||||
|
||||
Use emit_research_notes to record detailed, fact-based observations about what currently exists.
|
||||
For each significant file or directory that is part of the codebase, use emit_related_files to list it.
|
||||
Your research notes should be strictly about what you have observed:
|
||||
Document files by their names and locations.
|
||||
Document discovered documentation files and their contents at a high level (e.g., "There is a README.md in the root directory that explains the folder structure").
|
||||
Document code files by type or apparent purpose (e.g., "There is a main.py file containing code to launch an application").
|
||||
Document configuration files, dependencies (like package.json, requirements.txt), testing files, and anything else present.
|
||||
Use emit_related_files to note all files that are relevant to the base task.
|
||||
|
||||
No Planning or Problem-Solving
|
||||
|
||||
|
|
@ -154,6 +154,8 @@ Guidelines:
|
|||
API contracts, endpoints, or protocols it requires or provides
|
||||
Testing strategies appropriate to the complexity of that sub-task
|
||||
You may include pseudocode, but not full code.
|
||||
|
||||
If you need to consult with the expert, do that *BEFORE* emitting any tasks.
|
||||
|
||||
After finalizing the overall approach:
|
||||
Use emit_plan to store the high-level implementation plan.
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ def skip_implementation(reason: str) -> str:
|
|||
@tool("emit_key_snippets")
|
||||
def emit_key_snippets(snippets: List[SnippetInfo]) -> str:
|
||||
"""Store multiple key source code snippets in global memory.
|
||||
Automatically adds the filepaths of the snippets to related files.
|
||||
|
||||
Args:
|
||||
snippets: List of snippet information dictionaries containing:
|
||||
|
|
@ -184,6 +185,9 @@ def emit_key_snippets(snippets: List[SnippetInfo]) -> str:
|
|||
Returns:
|
||||
List of stored snippet confirmation messages
|
||||
"""
|
||||
# First collect unique filepaths to add as related files
|
||||
_global_memory['related_files'].update(snippet_info['filepath'] for snippet_info in snippets)
|
||||
|
||||
results = []
|
||||
for snippet_info in snippets:
|
||||
# Get and increment snippet ID
|
||||
|
|
|
|||
|
|
@ -267,6 +267,8 @@ def test_key_snippets_integration(reset_memory):
|
|||
result = emit_key_snippets.invoke({"snippets": snippets})
|
||||
assert result == "Snippets stored."
|
||||
assert _global_memory['key_snippet_id_counter'] == 3
|
||||
# Verify related files were tracked
|
||||
assert _global_memory['related_files'] == {"file1.py", "file2.py", "file3.py"}
|
||||
|
||||
# Verify all snippets were stored correctly
|
||||
assert len(_global_memory['key_snippets']) == 3
|
||||
|
|
@ -296,6 +298,8 @@ def test_key_snippets_integration(reset_memory):
|
|||
result = emit_key_snippets.invoke({"snippets": [new_snippet]})
|
||||
assert result == "Snippets stored."
|
||||
assert _global_memory['key_snippet_id_counter'] == 4
|
||||
# Verify new file was added to related files
|
||||
assert _global_memory['related_files'] == {"file1.py", "file2.py", "file3.py", "file4.py"}
|
||||
|
||||
# Delete remaining snippets
|
||||
result = delete_key_snippets.invoke({"snippet_ids": [1, 3]})
|
||||
|
|
|
|||
Loading…
Reference in New Issue