A DataFrame layer that stops agents drowning in their own context
fenic offloads inference-heavy context work into a declarative DataFrame pipeline, then serves the results to any agent framework as bounded, typed tools.

What it does
fenic acts as a pre-processing layer between raw data and your agent. You feed it sources like PDFs or chat logs, then use a DataFrame-style API to apply deterministic filters alongside semantic transforms—parsing, embedding, structured extraction, summarization—to build typed tables. These tables are exposed to agents as narrow MCP tools or Python functions, so the runtime receives small, precise rows instead of raw documents or bloated conversation histories.
The interesting bit
The project treats context engineering as a data pipeline rather than a prompt-hacking exercise. By wrapping LLM-powered operations in declarative DataFrame operations, it moves token-heavy work out of the agent’s context window, letting the agent spend its limited attention on reasoning instead of data janitoring.
Key highlights
- Mixes deterministic SQL-like ops (
filter,join,unnest) with semantic primitives (semantic.extract,semantic.embed,semantic.parse_pdf) in one composable flow. - Framework-agnostic output: serves shaped context via MCP servers or direct Python functions to LangGraph, PydanticAI, CrewAI, or anything else.
- Inference offloading: LLM calls for summarization, extraction, and embedding happen outside the agent’s prompt, reducing context bloat.
- Built-in memory patterns: curated facts, profile blocks with timelines, decaying temporal resolution, and cross-agent shared tables.
- Typed, bounded tools: outputs conform to Pydantic schemas, giving agents a narrow, predictable surface instead of open-ended document access.
Caveats
- The README examples import from internal-looking modules such as
fenic.api.mcp._tool_generation_utilsandfenic.core.mcp._server, suggesting the API may still be settling. - It offloads inference from the agent’s window but does not eliminate LLM costs—you still pay for the tokens fenic consumes during extraction and embedding.
- How
save_as_tablepersists data and what backends are supported is not explained in the README.
Verdict
Worth evaluating if your agents struggle with large documents or long conversational memory and you want a structured pre-processing layer. Skip it if you need a full agent runtime—fenic is explicitly glue, not a framework.
Frequently asked
- What is typedef-ai/fenic?
- fenic offloads inference-heavy context work into a declarative DataFrame pipeline, then serves the results to any agent framework as bounded, typed tools.
- Is fenic open source?
- Yes — typedef-ai/fenic is open source, released under the Apache-2.0 license.
- What language is fenic written in?
- typedef-ai/fenic is primarily written in Python.
- How popular is fenic?
- typedef-ai/fenic has 542 stars on GitHub.
- Where can I find fenic?
- typedef-ai/fenic is on GitHub at https://github.com/typedef-ai/fenic.