@tool(name="answer_with_context")
def answer_with_context(self, question: str) -> dict:
# 1. Search knowledge base
search_results = self.api.knowledge.search(
knowledge_base_uuid=self.kb_uuid,
query=question,
top_k=3
)
# 2. Build context from results
context = "\n\n".join([r.content for r in search_results])
# 3. Ask LLM with context
response = self.api.llm.invoke(
messages=[
{"role": "system", "content": f"Answer based on this context:\n{context}"},
{"role": "user", "content": question}
]
)
return {
"answer": response.content,
"sources": [r.metadata for r in search_results]
}