Merge develop into main
Browse filesIncludes fix for recall and remember tool loading.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- reachy_mini_language_tutor/profiles/german_tutor/recall.py +0 -50
- reachy_mini_language_tutor/profiles/german_tutor/remember.py +0 -63
- reachy_mini_language_tutor/profiles/italian_tutor/recall.py +0 -50
- reachy_mini_language_tutor/profiles/italian_tutor/remember.py +0 -63
- reachy_mini_language_tutor/profiles/portuguese_tutor/recall.py +0 -50
- reachy_mini_language_tutor/profiles/portuguese_tutor/remember.py +0 -63
- reachy_mini_language_tutor/profiles/spanish_tutor/recall.py +0 -50
- reachy_mini_language_tutor/profiles/spanish_tutor/remember.py +0 -63
- reachy_mini_language_tutor/{profiles/french_tutor → tools}/recall.py +0 -0
- reachy_mini_language_tutor/{profiles/french_tutor → tools}/remember.py +3 -3
reachy_mini_language_tutor/profiles/german_tutor/recall.py
DELETED
|
@@ -1,50 +0,0 @@
|
|
| 1 |
-
"""Recall tool for searching learner memories."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RecallTool(Tool):
|
| 10 |
-
"""Search persistent memory for information about the learner."""
|
| 11 |
-
|
| 12 |
-
name = "recall"
|
| 13 |
-
description = (
|
| 14 |
-
"Search your memory for information about this learner from previous sessions. "
|
| 15 |
-
"Use this to check their progress, preferences, or past struggles before giving advice."
|
| 16 |
-
)
|
| 17 |
-
parameters_schema: dict[str, Any] = {
|
| 18 |
-
"type": "object",
|
| 19 |
-
"properties": {
|
| 20 |
-
"query": {
|
| 21 |
-
"type": "string",
|
| 22 |
-
"description": (
|
| 23 |
-
"What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
|
| 24 |
-
"'last session progress', 'grammar they find difficult'"
|
| 25 |
-
),
|
| 26 |
-
},
|
| 27 |
-
},
|
| 28 |
-
"required": ["query"],
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 32 |
-
"""Search memories for the given query.
|
| 33 |
-
|
| 34 |
-
Args:
|
| 35 |
-
deps: Tool dependencies including memory_manager.
|
| 36 |
-
**kwargs: Tool arguments including 'query'.
|
| 37 |
-
|
| 38 |
-
Returns:
|
| 39 |
-
Dictionary with search results or error.
|
| 40 |
-
|
| 41 |
-
"""
|
| 42 |
-
if not deps.memory_manager:
|
| 43 |
-
return {"error": "Memory not available", "memories": []}
|
| 44 |
-
|
| 45 |
-
query = kwargs.get("query", "")
|
| 46 |
-
if not query:
|
| 47 |
-
return {"error": "No query provided", "memories": []}
|
| 48 |
-
|
| 49 |
-
results = await deps.memory_manager.search(query)
|
| 50 |
-
return {"memories": results, "count": len(results)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/german_tutor/remember.py
DELETED
|
@@ -1,63 +0,0 @@
|
|
| 1 |
-
"""Remember tool for storing learner facts in persistent memory."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RememberTool(Tool):
|
| 10 |
-
"""Store important facts about the learner for future sessions."""
|
| 11 |
-
|
| 12 |
-
name = "remember"
|
| 13 |
-
description = (
|
| 14 |
-
"Store an important fact about this learner for future sessions. "
|
| 15 |
-
"Use this to record progress, struggles, preferences, successes, or personal information "
|
| 16 |
-
"so you can provide personalized tutoring next time."
|
| 17 |
-
)
|
| 18 |
-
parameters_schema: dict[str, Any] = {
|
| 19 |
-
"type": "object",
|
| 20 |
-
"properties": {
|
| 21 |
-
"fact": {
|
| 22 |
-
"type": "string",
|
| 23 |
-
"description": (
|
| 24 |
-
"The fact to remember, e.g., 'Learner struggles with passe compose', "
|
| 25 |
-
"'Prefers topics about travel', 'Successfully used subjunctive today', "
|
| 26 |
-
"'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
|
| 27 |
-
),
|
| 28 |
-
},
|
| 29 |
-
"category": {
|
| 30 |
-
"type": "string",
|
| 31 |
-
"enum": ["progress", "preference", "struggle", "success", "personal"],
|
| 32 |
-
"description": (
|
| 33 |
-
"Category of the memory: progress (general notes), preference (what they like), "
|
| 34 |
-
"struggle (what's difficult), success (what they mastered), "
|
| 35 |
-
"personal (identity, interests, background, goals)"
|
| 36 |
-
),
|
| 37 |
-
},
|
| 38 |
-
},
|
| 39 |
-
"required": ["fact", "category"],
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 43 |
-
"""Store a fact in memory.
|
| 44 |
-
|
| 45 |
-
Args:
|
| 46 |
-
deps: Tool dependencies including memory_manager.
|
| 47 |
-
**kwargs: Tool arguments including 'fact' and 'category'.
|
| 48 |
-
|
| 49 |
-
Returns:
|
| 50 |
-
Dictionary with confirmation or error.
|
| 51 |
-
|
| 52 |
-
"""
|
| 53 |
-
if not deps.memory_manager:
|
| 54 |
-
return {"error": "Memory not available", "stored": False}
|
| 55 |
-
|
| 56 |
-
fact = kwargs.get("fact", "")
|
| 57 |
-
category = kwargs.get("category", "progress")
|
| 58 |
-
|
| 59 |
-
if not fact:
|
| 60 |
-
return {"error": "No fact provided", "stored": False}
|
| 61 |
-
|
| 62 |
-
await deps.memory_manager.store(fact, category)
|
| 63 |
-
return {"stored": True, "fact": fact, "category": category}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/italian_tutor/recall.py
DELETED
|
@@ -1,50 +0,0 @@
|
|
| 1 |
-
"""Recall tool for searching learner memories."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RecallTool(Tool):
|
| 10 |
-
"""Search persistent memory for information about the learner."""
|
| 11 |
-
|
| 12 |
-
name = "recall"
|
| 13 |
-
description = (
|
| 14 |
-
"Search your memory for information about this learner from previous sessions. "
|
| 15 |
-
"Use this to check their progress, preferences, or past struggles before giving advice."
|
| 16 |
-
)
|
| 17 |
-
parameters_schema: dict[str, Any] = {
|
| 18 |
-
"type": "object",
|
| 19 |
-
"properties": {
|
| 20 |
-
"query": {
|
| 21 |
-
"type": "string",
|
| 22 |
-
"description": (
|
| 23 |
-
"What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
|
| 24 |
-
"'last session progress', 'grammar they find difficult'"
|
| 25 |
-
),
|
| 26 |
-
},
|
| 27 |
-
},
|
| 28 |
-
"required": ["query"],
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 32 |
-
"""Search memories for the given query.
|
| 33 |
-
|
| 34 |
-
Args:
|
| 35 |
-
deps: Tool dependencies including memory_manager.
|
| 36 |
-
**kwargs: Tool arguments including 'query'.
|
| 37 |
-
|
| 38 |
-
Returns:
|
| 39 |
-
Dictionary with search results or error.
|
| 40 |
-
|
| 41 |
-
"""
|
| 42 |
-
if not deps.memory_manager:
|
| 43 |
-
return {"error": "Memory not available", "memories": []}
|
| 44 |
-
|
| 45 |
-
query = kwargs.get("query", "")
|
| 46 |
-
if not query:
|
| 47 |
-
return {"error": "No query provided", "memories": []}
|
| 48 |
-
|
| 49 |
-
results = await deps.memory_manager.search(query)
|
| 50 |
-
return {"memories": results, "count": len(results)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/italian_tutor/remember.py
DELETED
|
@@ -1,63 +0,0 @@
|
|
| 1 |
-
"""Remember tool for storing learner facts in persistent memory."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RememberTool(Tool):
|
| 10 |
-
"""Store important facts about the learner for future sessions."""
|
| 11 |
-
|
| 12 |
-
name = "remember"
|
| 13 |
-
description = (
|
| 14 |
-
"Store an important fact about this learner for future sessions. "
|
| 15 |
-
"Use this to record progress, struggles, preferences, successes, or personal information "
|
| 16 |
-
"so you can provide personalized tutoring next time."
|
| 17 |
-
)
|
| 18 |
-
parameters_schema: dict[str, Any] = {
|
| 19 |
-
"type": "object",
|
| 20 |
-
"properties": {
|
| 21 |
-
"fact": {
|
| 22 |
-
"type": "string",
|
| 23 |
-
"description": (
|
| 24 |
-
"The fact to remember, e.g., 'Learner struggles with passe compose', "
|
| 25 |
-
"'Prefers topics about travel', 'Successfully used subjunctive today', "
|
| 26 |
-
"'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
|
| 27 |
-
),
|
| 28 |
-
},
|
| 29 |
-
"category": {
|
| 30 |
-
"type": "string",
|
| 31 |
-
"enum": ["progress", "preference", "struggle", "success", "personal"],
|
| 32 |
-
"description": (
|
| 33 |
-
"Category of the memory: progress (general notes), preference (what they like), "
|
| 34 |
-
"struggle (what's difficult), success (what they mastered), "
|
| 35 |
-
"personal (identity, interests, background, goals)"
|
| 36 |
-
),
|
| 37 |
-
},
|
| 38 |
-
},
|
| 39 |
-
"required": ["fact", "category"],
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 43 |
-
"""Store a fact in memory.
|
| 44 |
-
|
| 45 |
-
Args:
|
| 46 |
-
deps: Tool dependencies including memory_manager.
|
| 47 |
-
**kwargs: Tool arguments including 'fact' and 'category'.
|
| 48 |
-
|
| 49 |
-
Returns:
|
| 50 |
-
Dictionary with confirmation or error.
|
| 51 |
-
|
| 52 |
-
"""
|
| 53 |
-
if not deps.memory_manager:
|
| 54 |
-
return {"error": "Memory not available", "stored": False}
|
| 55 |
-
|
| 56 |
-
fact = kwargs.get("fact", "")
|
| 57 |
-
category = kwargs.get("category", "progress")
|
| 58 |
-
|
| 59 |
-
if not fact:
|
| 60 |
-
return {"error": "No fact provided", "stored": False}
|
| 61 |
-
|
| 62 |
-
await deps.memory_manager.store(fact, category)
|
| 63 |
-
return {"stored": True, "fact": fact, "category": category}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/portuguese_tutor/recall.py
DELETED
|
@@ -1,50 +0,0 @@
|
|
| 1 |
-
"""Recall tool for searching learner memories."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RecallTool(Tool):
|
| 10 |
-
"""Search persistent memory for information about the learner."""
|
| 11 |
-
|
| 12 |
-
name = "recall"
|
| 13 |
-
description = (
|
| 14 |
-
"Search your memory for information about this learner from previous sessions. "
|
| 15 |
-
"Use this to check their progress, preferences, or past struggles before giving advice."
|
| 16 |
-
)
|
| 17 |
-
parameters_schema: dict[str, Any] = {
|
| 18 |
-
"type": "object",
|
| 19 |
-
"properties": {
|
| 20 |
-
"query": {
|
| 21 |
-
"type": "string",
|
| 22 |
-
"description": (
|
| 23 |
-
"What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
|
| 24 |
-
"'last session progress', 'grammar they find difficult'"
|
| 25 |
-
),
|
| 26 |
-
},
|
| 27 |
-
},
|
| 28 |
-
"required": ["query"],
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 32 |
-
"""Search memories for the given query.
|
| 33 |
-
|
| 34 |
-
Args:
|
| 35 |
-
deps: Tool dependencies including memory_manager.
|
| 36 |
-
**kwargs: Tool arguments including 'query'.
|
| 37 |
-
|
| 38 |
-
Returns:
|
| 39 |
-
Dictionary with search results or error.
|
| 40 |
-
|
| 41 |
-
"""
|
| 42 |
-
if not deps.memory_manager:
|
| 43 |
-
return {"error": "Memory not available", "memories": []}
|
| 44 |
-
|
| 45 |
-
query = kwargs.get("query", "")
|
| 46 |
-
if not query:
|
| 47 |
-
return {"error": "No query provided", "memories": []}
|
| 48 |
-
|
| 49 |
-
results = await deps.memory_manager.search(query)
|
| 50 |
-
return {"memories": results, "count": len(results)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/portuguese_tutor/remember.py
DELETED
|
@@ -1,63 +0,0 @@
|
|
| 1 |
-
"""Remember tool for storing learner facts in persistent memory."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RememberTool(Tool):
|
| 10 |
-
"""Store important facts about the learner for future sessions."""
|
| 11 |
-
|
| 12 |
-
name = "remember"
|
| 13 |
-
description = (
|
| 14 |
-
"Store an important fact about this learner for future sessions. "
|
| 15 |
-
"Use this to record progress, struggles, preferences, successes, or personal information "
|
| 16 |
-
"so you can provide personalized tutoring next time."
|
| 17 |
-
)
|
| 18 |
-
parameters_schema: dict[str, Any] = {
|
| 19 |
-
"type": "object",
|
| 20 |
-
"properties": {
|
| 21 |
-
"fact": {
|
| 22 |
-
"type": "string",
|
| 23 |
-
"description": (
|
| 24 |
-
"The fact to remember, e.g., 'Learner struggles with passe compose', "
|
| 25 |
-
"'Prefers topics about travel', 'Successfully used subjunctive today', "
|
| 26 |
-
"'Learner's name is Marie', 'Lives in Toronto', 'Works as a teacher'"
|
| 27 |
-
),
|
| 28 |
-
},
|
| 29 |
-
"category": {
|
| 30 |
-
"type": "string",
|
| 31 |
-
"enum": ["progress", "preference", "struggle", "success", "personal"],
|
| 32 |
-
"description": (
|
| 33 |
-
"Category of the memory: progress (general notes), preference (what they like), "
|
| 34 |
-
"struggle (what's difficult), success (what they mastered), "
|
| 35 |
-
"personal (identity, interests, background, goals)"
|
| 36 |
-
),
|
| 37 |
-
},
|
| 38 |
-
},
|
| 39 |
-
"required": ["fact", "category"],
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 43 |
-
"""Store a fact in memory.
|
| 44 |
-
|
| 45 |
-
Args:
|
| 46 |
-
deps: Tool dependencies including memory_manager.
|
| 47 |
-
**kwargs: Tool arguments including 'fact' and 'category'.
|
| 48 |
-
|
| 49 |
-
Returns:
|
| 50 |
-
Dictionary with confirmation or error.
|
| 51 |
-
|
| 52 |
-
"""
|
| 53 |
-
if not deps.memory_manager:
|
| 54 |
-
return {"error": "Memory not available", "stored": False}
|
| 55 |
-
|
| 56 |
-
fact = kwargs.get("fact", "")
|
| 57 |
-
category = kwargs.get("category", "progress")
|
| 58 |
-
|
| 59 |
-
if not fact:
|
| 60 |
-
return {"error": "No fact provided", "stored": False}
|
| 61 |
-
|
| 62 |
-
await deps.memory_manager.store(fact, category)
|
| 63 |
-
return {"stored": True, "fact": fact, "category": category}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/spanish_tutor/recall.py
DELETED
|
@@ -1,50 +0,0 @@
|
|
| 1 |
-
"""Recall tool for searching learner memories."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RecallTool(Tool):
|
| 10 |
-
"""Search persistent memory for information about the learner."""
|
| 11 |
-
|
| 12 |
-
name = "recall"
|
| 13 |
-
description = (
|
| 14 |
-
"Search your memory for information about this learner from previous sessions. "
|
| 15 |
-
"Use this to check their progress, preferences, or past struggles before giving advice."
|
| 16 |
-
)
|
| 17 |
-
parameters_schema: dict[str, Any] = {
|
| 18 |
-
"type": "object",
|
| 19 |
-
"properties": {
|
| 20 |
-
"query": {
|
| 21 |
-
"type": "string",
|
| 22 |
-
"description": (
|
| 23 |
-
"What to search for, e.g., 'vocabulary struggles', 'preferred topics', "
|
| 24 |
-
"'last session progress', 'grammar they find difficult'"
|
| 25 |
-
),
|
| 26 |
-
},
|
| 27 |
-
},
|
| 28 |
-
"required": ["query"],
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 32 |
-
"""Search memories for the given query.
|
| 33 |
-
|
| 34 |
-
Args:
|
| 35 |
-
deps: Tool dependencies including memory_manager.
|
| 36 |
-
**kwargs: Tool arguments including 'query'.
|
| 37 |
-
|
| 38 |
-
Returns:
|
| 39 |
-
Dictionary with search results or error.
|
| 40 |
-
|
| 41 |
-
"""
|
| 42 |
-
if not deps.memory_manager:
|
| 43 |
-
return {"error": "Memory not available", "memories": []}
|
| 44 |
-
|
| 45 |
-
query = kwargs.get("query", "")
|
| 46 |
-
if not query:
|
| 47 |
-
return {"error": "No query provided", "memories": []}
|
| 48 |
-
|
| 49 |
-
results = await deps.memory_manager.search(query)
|
| 50 |
-
return {"memories": results, "count": len(results)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/profiles/spanish_tutor/remember.py
DELETED
|
@@ -1,63 +0,0 @@
|
|
| 1 |
-
"""Remember tool for storing learner facts in persistent memory."""
|
| 2 |
-
|
| 3 |
-
from __future__ import annotations
|
| 4 |
-
from typing import Any
|
| 5 |
-
|
| 6 |
-
from reachy_mini_language_tutor.tools.core_tools import Tool, ToolDependencies
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
class RememberTool(Tool):
|
| 10 |
-
"""Store important facts about the learner for future sessions."""
|
| 11 |
-
|
| 12 |
-
name = "remember"
|
| 13 |
-
description = (
|
| 14 |
-
"Store an important fact about this learner for future sessions. "
|
| 15 |
-
"Use this to record progress, struggles, preferences, successes, or personal information "
|
| 16 |
-
"so you can provide personalized tutoring next time."
|
| 17 |
-
)
|
| 18 |
-
parameters_schema: dict[str, Any] = {
|
| 19 |
-
"type": "object",
|
| 20 |
-
"properties": {
|
| 21 |
-
"fact": {
|
| 22 |
-
"type": "string",
|
| 23 |
-
"description": (
|
| 24 |
-
"The fact to remember, e.g., 'Learner struggles with subjunctive', "
|
| 25 |
-
"'Prefers topics about Mexican culture', 'Successfully used preterite vs imperfect today', "
|
| 26 |
-
"'Learner's name is Carlos', 'Lives in Austin', 'Planning trip to Mexico City'"
|
| 27 |
-
),
|
| 28 |
-
},
|
| 29 |
-
"category": {
|
| 30 |
-
"type": "string",
|
| 31 |
-
"enum": ["progress", "preference", "struggle", "success", "personal"],
|
| 32 |
-
"description": (
|
| 33 |
-
"Category of the memory: progress (general notes), preference (what they like), "
|
| 34 |
-
"struggle (what's difficult), success (what they mastered), "
|
| 35 |
-
"personal (identity, interests, background, goals)"
|
| 36 |
-
),
|
| 37 |
-
},
|
| 38 |
-
},
|
| 39 |
-
"required": ["fact", "category"],
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
async def __call__(self, deps: ToolDependencies, **kwargs: Any) -> dict[str, Any]:
|
| 43 |
-
"""Store a fact in memory.
|
| 44 |
-
|
| 45 |
-
Args:
|
| 46 |
-
deps: Tool dependencies including memory_manager.
|
| 47 |
-
**kwargs: Tool arguments including 'fact' and 'category'.
|
| 48 |
-
|
| 49 |
-
Returns:
|
| 50 |
-
Dictionary with confirmation or error.
|
| 51 |
-
|
| 52 |
-
"""
|
| 53 |
-
if not deps.memory_manager:
|
| 54 |
-
return {"error": "Memory not available", "stored": False}
|
| 55 |
-
|
| 56 |
-
fact = kwargs.get("fact", "")
|
| 57 |
-
category = kwargs.get("category", "progress")
|
| 58 |
-
|
| 59 |
-
if not fact:
|
| 60 |
-
return {"error": "No fact provided", "stored": False}
|
| 61 |
-
|
| 62 |
-
await deps.memory_manager.store(fact, category)
|
| 63 |
-
return {"stored": True, "fact": fact, "category": category}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reachy_mini_language_tutor/{profiles/french_tutor → tools}/recall.py
RENAMED
|
File without changes
|
reachy_mini_language_tutor/{profiles/french_tutor → tools}/remember.py
RENAMED
|
@@ -21,9 +21,9 @@ class RememberTool(Tool):
|
|
| 21 |
"fact": {
|
| 22 |
"type": "string",
|
| 23 |
"description": (
|
| 24 |
-
"The fact to remember, e.g., 'Learner struggles with
|
| 25 |
-
"'Prefers topics about travel', 'Successfully used
|
| 26 |
-
"'Learner's name is
|
| 27 |
),
|
| 28 |
},
|
| 29 |
"category": {
|
|
|
|
| 21 |
"fact": {
|
| 22 |
"type": "string",
|
| 23 |
"description": (
|
| 24 |
+
"The fact to remember, e.g., 'Learner struggles with verb conjugation', "
|
| 25 |
+
"'Prefers topics about travel and culture', 'Successfully used past tense today', "
|
| 26 |
+
"'Learner's name is Alex', 'Lives in Boston', 'Works as an engineer'"
|
| 27 |
),
|
| 28 |
},
|
| 29 |
"category": {
|