Skip to content

Commit 7deda70

Browse files
committed
feat(ai-markmap-agent): simplify writer prompt, fix resume and debug output
Writer prompt simplification: - Remove URL format instructions from writer_behavior.md - Compress problem data to ID list only (reduces tokens) - Add _convert_plain_leetcode_to_links() to post_processing.py Resume functionality fixes: - Fix load_expert_responses_from_run to scan correct file categories - Add parse_suggestions_from_response() and parse_adoption_list_from_response() - Fix run_expert_review/run_full_discussion resume to load data into state Debug output fixes: - Add save_expert_review() for Phase 1 outputs - Add save_discussion() for Phase 2 outputs - Update graph.py to use new debug save methods
1 parent 9d9f434 commit 7deda70

File tree

6 files changed

+479
-432
lines changed

6 files changed

+479
-432
lines changed

docs/pages/mindmaps/neetcode_ontology_agent_evolved_en.html

Lines changed: 71 additions & 71 deletions
Large diffs are not rendered by default.

docs/pages/mindmaps/neetcode_ontology_agent_evolved_zh-TW.html

Lines changed: 118 additions & 118 deletions
Large diffs are not rendered by default.

tools/ai-markmap-agent/outputs/versions/v1/neetcode_ontology_agent_evolved_zh-TW.html

Lines changed: 118 additions & 118 deletions
Large diffs are not rendered by default.

tools/ai-markmap-agent/outputs/versions/v1/neetcode_ontology_agent_evolved_zh-TW.md

Lines changed: 118 additions & 118 deletions
Large diffs are not rendered by default.

tools/ai-markmap-agent/src/debug_output.py

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ def save_optimizer_suggestion(
175175
round_num: int,
176176
output_key: str,
177177
) -> Path | None:
178-
"""Save individual optimizer suggestion."""
178+
"""Save individual optimizer suggestion (legacy method)."""
179179
config = self.phases_config.get("optimization", {})
180180
if not config.get("save_optimizer_suggestions", False):
181181
return None
@@ -187,6 +187,55 @@ def save_optimizer_suggestion(
187187
f"round{round_num}",
188188
)
189189

190+
def save_expert_review(
191+
self,
192+
response: str,
193+
expert_name: str,
194+
suggestions: list | None = None,
195+
) -> Path | None:
196+
"""Save Phase 1 expert review output."""
197+
config = self.phases_config.get("expert_review", {})
198+
if not config.get("save_each_expert", False):
199+
return None
200+
201+
expert_key = expert_name.lower().replace(" ", "_")
202+
203+
# Save raw response
204+
self.save(1, "expert_review", response, expert_key)
205+
206+
# Save suggestions as JSON if provided
207+
if suggestions and config.get("save_all_suggestions", False):
208+
suggestions_data = [s.to_dict() if hasattr(s, 'to_dict') else s for s in suggestions]
209+
return self.save(1, "expert_suggestions", suggestions_data, expert_key, extension="json")
210+
211+
return None
212+
213+
def save_discussion(
214+
self,
215+
response: str,
216+
expert_name: str,
217+
adoption_list: list | None = None,
218+
) -> Path | None:
219+
"""Save Phase 2 discussion output."""
220+
config = self.phases_config.get("discussion", {})
221+
if not config.get("save_votes", False):
222+
return None
223+
224+
expert_key = expert_name.lower().replace(" ", "_")
225+
226+
# Save raw response
227+
self.save(2, "discussion", response, expert_key)
228+
229+
# Save adoption list if provided
230+
if adoption_list is not None and config.get("save_adoption_lists", False):
231+
adoption_data = {
232+
"expert": expert_name,
233+
"adopted_ids": adoption_list if isinstance(adoption_list, list) else adoption_list.adopted_ids if hasattr(adoption_list, 'adopted_ids') else [],
234+
}
235+
return self.save(2, "adoption_list", adoption_data, expert_key, extension="json")
236+
237+
return None
238+
190239
def save_summarizer_output(
191240
self,
192241
content: str,

tools/ai-markmap-agent/src/graph.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -415,11 +415,10 @@ def run_expert_review(state: WorkflowState) -> WorkflowState:
415415

416416
# Save debug output
417417
if debug.enabled and expert.agent_id in state.get("expert_raw_responses", {}):
418-
debug.save_optimizer_suggestion(
418+
debug.save_expert_review(
419419
state["expert_raw_responses"][expert.agent_id],
420420
expert.name,
421-
1,
422-
"review"
421+
suggestions,
423422
)
424423
except Exception as e:
425424
error_msg = f"Error in {expert.name}: {e}"
@@ -509,11 +508,10 @@ def run_full_discussion(state: WorkflowState) -> WorkflowState:
509508

510509
# Save debug output
511510
if debug.enabled and expert.agent_id in state.get("discussion_raw_responses", {}):
512-
debug.save_optimizer_suggestion(
511+
debug.save_discussion(
513512
state["discussion_raw_responses"][expert.agent_id],
514513
expert.name,
515-
2,
516-
"discussion"
514+
adoption_list,
517515
)
518516
except Exception as e:
519517
error_msg = f"Error in {expert.name} discussion: {e}"

0 commit comments

Comments
 (0)