File size: 1,114 Bytes
6059138 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | from __future__ import annotations
from langchain_core.tools import BaseTool, tool
from memory_agent.knowledge import KnowledgeService
class KnowledgeToolFactory:
def __init__(self, service: KnowledgeService) -> None:
self._service = service
def build(self, namespace: str) -> list[BaseTool]:
@tool
def answer_from_knowledge(question: str) -> str:
"""Answer a user question using ONLY previously stored knowledge."""
return self._service.answer_from_knowledge(namespace=namespace, question=question)
@tool
def store_knowledge(
knowledge_text: str,
fact_key: str | None = None,
fact_value: str | None = None,
) -> str:
"""Store or update knowledge in FAISS memory. Use when user shares new facts."""
return self._service.store_knowledge(
namespace=namespace,
knowledge_text=knowledge_text,
fact_key=fact_key,
fact_value=fact_value,
)
return [answer_from_knowledge, store_knowledge]
|