Keenable Team
Keenable Team
cognee's agent memory now reads the web through Keenable
cognee's agent memory now reads the web through Keenable
cognee's agent memory now reads the web through Keenable
cognee is an open-source agent memory platform. It chunks whatever a fetch returns, embeds it and keeps it in a knowledge graph your agent queries later: the navigation, the cookie banner and the footer links along with the content.
You pay for that junk twice, at ingest and at every recall that returns it, and removing it later means editing the graph by hand.
Keenable is web search infrastructure for agents. From 1.5 onward, cognee reads the web through us: hand cognee a URL and Keenable returns it as markdown, from our index or from a live read. We put two controls on that request: what part of the page it returns, and how fresh that page is.
cognee is an open-source agent memory platform. It chunks whatever a fetch returns, embeds it and keeps it in a knowledge graph your agent queries later: the navigation, the cookie banner and the footer links along with the content.
You pay for that junk twice, at ingest and at every recall that returns it, and removing it later means editing the graph by hand.
Keenable is web search infrastructure for agents. From 1.5 onward, cognee reads the web through us: hand cognee a URL and Keenable returns it as markdown, from our index or from a live read. We put two controls on that request: what part of the page it returns, and how fresh that page is.
Choose what content goes into the knowledge graph
Name it in the fetch call. It takes an instruction of up to 2000 characters and returns only what you named. Hand that result to cognee.add() and run chunking and entity extraction on it instead of the full page:
import cognee
from cognee.tasks.web_scraper import fetch_page_content
from cognee.tasks.web_scraper.config import KeenableConfig
url = "https://docs.example.com/pricing"
cfg = KeenableConfig(
live=True, # read the page now instead of serving our indexed copy
prompt="Extract the pricing table and plan limits only.",
)
pages = await fetch_page_content(
url,
preferred_tool="keenable",
keenable_config=cfg
)
await cognee.add(pages[url])
await cognee.cognify()The extraction prompt has no environment variable, so you narrow on a direct call like the one above, not on the cognee.remember() path.
Control content freshness
Set the flag: live=True on the job, or KEENABLE_LIVE_FETCH in the environment. Either one tells us to read the page live instead of serving our indexed copy.
For a page you re-read on a schedule, every run overwrites that page’s node with a fresh SHA-256 of the content it fetched, so a change on the page gives a different hash. Without the live read, the hash tracks our indexed copy rather than the page.
Start with Keenable in cognee
Setup is two lines: pip install cognee, then KEENABLE_API_KEY in your environment.
cognee picks the backend from the keys it finds in your environment: keep KEENABLE_API_KEY the only fetch key there and we run. Pass preferred_tool="keenable" to the fetch layer to settle it in code instead. Nothing else to install: cognee calls us through the HTTP client it already ships with.
Both controls, with every parameter and its default, are documented at docs.keenable.ai/integrations/cognee.
Choose what content goes into the knowledge graph
Name it in the fetch call. It takes an instruction of up to 2000 characters and returns only what you named. Hand that result to cognee.add() and run chunking and entity extraction on it instead of the full page:
import cognee
from cognee.tasks.web_scraper import fetch_page_content
from cognee.tasks.web_scraper.config import KeenableConfig
url = "https://docs.example.com/pricing"
cfg = KeenableConfig(
live=True, # read the page now instead of serving our indexed copy
prompt="Extract the pricing table and plan limits only.",
)
pages = await fetch_page_content(
url,
preferred_tool="keenable",
keenable_config=cfg
)
await cognee.add(pages[url])
await cognee.cognify()The extraction prompt has no environment variable, so you narrow on a direct call like the one above, not on the cognee.remember() path.
Control content freshness
Set the flag: live=True on the job, or KEENABLE_LIVE_FETCH in the environment. Either one tells us to read the page live instead of serving our indexed copy.
For a page you re-read on a schedule, every run overwrites that page’s node with a fresh SHA-256 of the content it fetched, so a change on the page gives a different hash. Without the live read, the hash tracks our indexed copy rather than the page.
Start with Keenable in cognee
Setup is two lines: pip install cognee, then KEENABLE_API_KEY in your environment.
cognee picks the backend from the keys it finds in your environment: keep KEENABLE_API_KEY the only fetch key there and we run. Pass preferred_tool="keenable" to the fetch layer to settle it in code instead. Nothing else to install: cognee calls us through the HTTP client it already ships with.
Both controls, with every parameter and its default, are documented at docs.keenable.ai/integrations/cognee.
