References Format

Control how knowledge base references are formatted for the agent.

1"""
2References Format
3=============================
4
5Control how knowledge base references are formatted for the agent.
6
7By default, references are returned as JSON. Set references_format="yaml"
8to return them as YAML instead.
9"""
10
11from kern.agent import Agent
12from kern.knowledge.embedder.openai import OpenAIEmbedder
13from kern.knowledge.knowledge import Knowledge
14from kern.models.openai import OpenAIResponses
15from kern.vectordb.pgvector import PgVector, SearchType
16
17db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
18knowledge = Knowledge(
19 vector_db=PgVector(
20 table_name="recipes_yaml_demo",
21 db_url=db_url,
22 search_type=SearchType.hybrid,
23 embedder=OpenAIEmbedder(id="text-embedding-3-small"),
24 ),
25)
26
27# ---------------------------------------------------------------------------
28# Create Agent
29# ---------------------------------------------------------------------------
30agent = Agent(
31 model=OpenAIResponses(id="gpt-5.2"),
32 knowledge=knowledge,
33 search_knowledge=True,
34 # Format knowledge references as YAML instead of the default JSON
35 references_format="yaml",
36 markdown=True,
37)
38
39# ---------------------------------------------------------------------------
40# Run Agent
41# ---------------------------------------------------------------------------
42if __name__ == "__main__":
43 knowledge.insert(url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf")
44 agent.print_response(
45 "How do I make chicken and galangal in coconut milk soup?",
46 stream=True,
47 )

Run the Example

1# Clone and setup repo
2git clone https://github.com/kern-ai/kern.git
3cd kern/cookbook/02_agents/07_knowledge
4
5# Create and activate virtual environment
6./scripts/demo_setup.sh
7source .venvs/demo/bin/activate
8
9# Optiona: Run PgVector (needs docker)
10./cookbook/scripts/run_pgvector.sh
11
12python references_format.py