<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny" -->

---
title: Jev for RAG, clearly explained! | daily.dev
description: Jev is introduced as an explicit evaluation layer inserted between retrieval and generation in RAG pipelines. After hybrid search (dense plus keyword retrieval...
canonical: https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Jev for RAG, clearly explained! | daily.dev
og:description: Jev is introduced as an explicit evaluation layer inserted between retrieval and generation in RAG pipelines. After hybrid search (dense plus keyword retrieval...
og:url: https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny
og:image: https://api.daily.dev/og/posts/7e2Hv2qnY.png
og:image:alt: Jev for RAG, clearly explained!
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Jev for RAG, clearly explained!

**[Daily Dose of Data Science \| Avi Chawla \| Substack](https://daily.dev/sources/dailydoseofds)** · 8 min read · 3 upvotes · 1 comments

## Summary

Jev is introduced as an explicit evaluation layer inserted between retrieval and generation in RAG pipelines. After hybrid search (dense plus keyword retrieval with reciprocal rank fusion) produces a broad candidate set of passages, Jev scores each candidate in a single batched request, returning typed probability judgments such as whether a passage helps answer the query or whether the retained set can support an answer at all. Application code then applies thresholds to decide which passages reach the LLM context and whether generation should run, keeping the relevance policy visible, tunable, and auditable in code rather than hidden inside a prompt. The piece also lists twelve broader agentic use cases for Jev, including browser action selection, context compaction, citation verification, semantic regression testing, code search, and memory promotion, tying into an open-source Beacon project that captures agent sessions across tools like Claude Code, Codex, and Cursor. A separate section covers Oracle's AI Agent Memory architecture, distinguishing short-term working memory from long-term semantic, episodic, and procedural memory, citing an 80-turn evaluation where managed memory kept token usage near 1,300 per request versus flat history growing past 13,900 tokens.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.dailydoseofds.com/p/jev-for-rag-clearly-explained>

## Questions this post answers

### How can I filter irrelevant passages before they reach the LLM context in a RAG pipeline?

Insert an explicit scoring stage between retrieval and generation that evaluates each candidate passage with a typed yes-or-no judgment, such as whether a passage helps answer the query, and returns a probability. The tool called Jev can score an entire candidate set, for example 20 passages, in a single request rather than one call per passage, and application code then applies a threshold, like 0.70, to decide which passages continue to generation.

_Teams refining RAG pipelines can keep up with evaluation techniques like this through daily.dev._

### How can I detect when a RAG system doesn't have enough evidence to answer a query?

Add a second judgment to the same evaluation request asking whether the query can be answered from the retained passages. If that probability falls below a configured threshold, the application can skip generation entirely and return a controlled response such as 'not in the documents,' instead of letting the model attempt an unsupported answer.

_Developers building reliable RAG systems track patterns like evidence gating on daily.dev._

### What is the difference between short-term and long-term memory in AI agents?

Short-term memory holds an agent's working state during the current session, including recent messages, retrieved documents, and tool outputs, while long-term memory persists across sessions and stores user preferences, facts, and past outcomes. Long-term memory splits further into semantic memory (facts), episodic memory (past experiences), and procedural memory (instructions and learned steps), each needing different write and retrieval policies.

_Anyone designing agent memory systems can follow architecture breakdowns like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@kartiknvj** · 0 upvotes

> Putting a typed yes/no evidence check between retrieval and generation is the step most RAG stacks skip, they treat a high similarity score as if it meant relevance. The caveat that retrieval still caps the ceiling is the honest part, it can filter the shortlist but can't recover a passage that never got retrieved. Have you measured how much the per-passage judgment adds to latency at top-20?

## Similar posts on daily.dev

- [Spring AI Modular RAG and TypeSafe Jev: Retrieve More, Keep Only What Answers](https://daily.dev/posts/spring-ai-modular-rag-and-typesafe-jev-retrieve-more-keep-only-what-answers-smyamafka) · Spring · 0 upvotes · 0 comments
- [What is Jev? How System One models could change AI agents : fireup.pro](https://daily.dev/posts/what-is-jev-how-system-one-models-could-change-ai-agents-fireup-pro-eqcqub8on) · FireUp · 1 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#ai-agents](https://daily.dev/tags/ai-agents), [#rag](https://daily.dev/tags/rag)

[View this post on daily.dev](https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Jev for RAG, clearly explained!","url":"https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny"},"datePublished":"2026-09-30T15:44:17.660Z","dateModified":"2026-10-01T07:02:27.918Z","description":"Jev is introduced as an explicit evaluation layer inserted between retrieval and generation in RAG pipelines. After hybrid search (dense plus keyword retrieval...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/254c1b91d38ffb22884d7f4050e6334a?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/254c1b91d38ffb22884d7f4050e6334a?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Daily Dose of Data Science | Avi Chawla | Substack","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Daily Dose of Data Science | Avi Chawla | Substack","logo":"https://media.daily.dev/image/upload/s--4IHQgTOw--/f_auto/v1710503712/logos/dailydoseofds","url":"https://daily.dev/sources/dailydoseofds"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"llm,ai-agents,rag","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Daily Dose of Data Science | Avi Chawla | Substack","item":"https://daily.dev/sources/dailydoseofds"},{"@type":"ListItem","position":3,"name":"Jev for RAG, clearly explained!"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny","comment":[{"@type":"Comment","text":"Putting a typed yes/no evidence check between retrieval and generation is the step most RAG stacks skip, they treat a high similarity score as if it meant relevance. The caveat that retrieval still caps the ceiling is the honest part, it can filter the shortlist but can’t recover a passage that never got retrieved. Have you measured how much the per-passage judgment adds to latency at top-20?","datePublished":"2026-09-30T18:32:04.520Z","url":"https://daily.dev/posts/7e2Hv2qnY#c-zbhl9oJOI","author":{"@type":"Person","name":"kartik-nvjk","url":"https://daily.dev/kartiknvj","image":"https://media.daily.dev/image/upload/s--3gGgsVCw--/f_auto/v1781456774/avatars/avatar_TvTVeiMdkRCqWUDullFmy?_a=BAMAMiWQ0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/jev-for-rag-clearly-explained--7e2hv2qny#faq","mainEntity":[{"@type":"Question","name":"How can I filter irrelevant passages before they reach the LLM context in a RAG pipeline?","acceptedAnswer":{"@type":"Answer","text":"Insert an explicit scoring stage between retrieval and generation that evaluates each candidate passage with a typed yes-or-no judgment, such as whether a passage helps answer the query, and returns a probability. The tool called Jev can score an entire candidate set, for example 20 passages, in a single request rather than one call per passage, and application code then applies a threshold, like 0.70, to decide which passages continue to generation. Teams refining RAG pipelines can keep up with evaluation techniques like this through daily.dev."}},{"@type":"Question","name":"How can I detect when a RAG system doesn't have enough evidence to answer a query?","acceptedAnswer":{"@type":"Answer","text":"Add a second judgment to the same evaluation request asking whether the query can be answered from the retained passages. If that probability falls below a configured threshold, the application can skip generation entirely and return a controlled response such as 'not in the documents,' instead of letting the model attempt an unsupported answer. Developers building reliable RAG systems track patterns like evidence gating on daily.dev."}},{"@type":"Question","name":"What is the difference between short-term and long-term memory in AI agents?","acceptedAnswer":{"@type":"Answer","text":"Short-term memory holds an agent's working state during the current session, including recent messages, retrieved documents, and tool outputs, while long-term memory persists across sessions and stores user preferences, facts, and past outcomes. Long-term memory splits further into semantic memory (facts), episodic memory (past experiences), and procedural memory (instructions and learned steps), each needing different write and retrieval policies. Anyone designing agent memory systems can follow architecture breakdowns like this on daily.dev."}}]}
```

