Skip to content

Knowledge System

Knowledge providers ground the LLM's reasoning in external data sources.

Built-in Providers

Provider Source
MemoryRetrievalKnowledgeProvider Internal memory
MemoryKnowledgeProvider Memory search
WebProvider Web search
FilesystemKnowledgeProvider Local filesystem

Using Knowledge

from xyberos.knowledge import KnowledgeManager

manager = KnowledgeManager()
manager.register_defaults()

# Register a custom provider
from xyberos.knowledge import KnowledgeProvider


class MyKnowledgeProvider(KnowledgeProvider):
    @property
    def name(self) -> str:
        return "my_knowledge"

    def retrieve(self, query: str, limit: int = 5) -> list[str]:
        return [f"Result for: {query}"]


manager.register_provider("my", MyKnowledgeProvider())

# Query across all providers
results = manager.query("What is XYBEROS?")
for r in results:
    print(r)

Grounding

The GroundingEngine grounds responses in retrieved knowledge:

from xyberos.knowledge import GroundingEngine

engine = GroundingEngine(manager)
grounded = engine.ground("Tell me about XYBEROS")
print(grounded.response)
print(grounded.sources)  # Citation list