Close Menu
    Facebook X (Twitter) Instagram
    • Privacy Policy
    • Terms Of Service
    • Social Media Disclaimer
    • DMCA Compliance
    • Anti-Spam Policy
    Facebook X (Twitter) Instagram
    Fintech Fetch
    • Home
    • Crypto News
      • Bitcoin
      • Ethereum
      • Altcoins
      • Blockchain
      • DeFi
    • AI News
    • Stock News
    • Learn
      • AI for Beginners
      • AI Tips
      • Make Money with AI
    • Reviews
    • Tools
      • Best AI Tools
      • Crypto Market Cap List
      • Stock Market Overview
      • Market Heatmap
    • Contact
    Fintech Fetch
    Home»AI News»Build a Reinforcement Learning Powered Agent that Learns to Retrieve Relevant Long-Term Memories for Accurate LLM Question Answering
    Build a Reinforcement Learning Powered Agent that Learns to Retrieve Relevant Long-Term Memories for Accurate LLM Question Answering
    AI News

    Build a Reinforcement Learning Powered Agent that Learns to Retrieve Relevant Long-Term Memories for Accurate LLM Question Answering

    April 28, 20263 Mins Read
    Share
    Facebook Twitter LinkedIn Pinterest Email
    murf
    @dataclass
    class MemoryItem:
    memory_id: int
    topic: str
    entity: str
    slot: str
    value: str
    text: str

    def build_memory_bank() -> List[MemoryItem]:
    entities = [
    {
    “entity”: “Astra”,
    “topic”: “robotics”,
    “facts”: {
    “battery”: “18 hours”,
    “sensor”: “LiDAR”,
    “country”: “Japan”,
    “release_year”: “2023”,
    “specialty”: “warehouse navigation”,
    },
    },
    {
    “entity”: “Orion”,
    “topic”: “astronomy”,
    “facts”: {
    “telescope”: “infrared array”,
    “country”: “Chile”,
    “discovery_year”: “2019”,
    “target”: “exoplanet atmospheres”,
    “aperture”: “8 meters”,
    },
    },
    {
    “entity”: “Vita”,
    “topic”: “biomedicine”,
    “facts”: {
    “compound”: “VX-17”,
    “trial_phase”: “Phase II”,
    “country”: “Canada”,
    “target”: “inflammatory markers”,
    “delivery”: “oral capsule”,
    },
    },
    {
    “entity”: “Nimbus”,
    “topic”: “climate”,
    “facts”: {
    “satellite”: “polar orbiter”,
    “country”: “Norway”,
    “launch_year”: “2022”,
    “instrument”: “microwave radiometer”,
    “mission”: “sea ice monitoring”,
    },
    },
    {
    “entity”: “Atlas”,
    “topic”: “logistics”,
    “facts”: {
    “fleet_size”: “240 trucks”,
    “hub”: “Muscat”,
    “software”: “predictive routing”,
    “fuel_policy”: “hybrid-first”,
    “region”: “GCC”,
    },
    },
    {
    “entity”: “Lumos”,
    “topic”: “materials”,
    “facts”: {
    “alloy”: “Ti-6Al-4V”,
    “process”: “laser sintering”,
    “density”: “4.43 g/cm3”,
    “country”: “Germany”,
    “use_case”: “aerospace brackets”,
    },
    },
    {
    “entity”: “Cedar”,
    “topic”: “agriculture”,
    “facts”: {
    “crop”: “wheat”,
    “irrigation”: “drip control”,
    “country”: “India”,
    “yield_gain”: “12 percent”,
    “soil_sensor”: “capacitive probe”,
    },
    },
    {
    “entity”: “Pulse”,
    “topic”: “healthcare”,
    “facts”: {
    “device”: “ECG patch”,
    “battery”: “7 days”,
    “country”: “USA”,
    “connectivity”: “Bluetooth Low Energy”,
    “use_case”: “arrhythmia screening”,
    },
    },
    ]

    phrasing_templates = [
    “{entity} in {topic} uses {value} for {slot}.”,
    “The {slot} associated with {entity} is {value}.”,
    “{entity} has {slot}: {value}.”,
    “For {entity}, the recorded {slot} is {value}.”,
    “Reference note: {entity} -> {slot} = {value}.”,
    ]

    distractor_templates = [
    “{entity} was discussed in a briefing about cross-domain innovation.”,
    “{entity} has been compared with several other projects in recent reports.”,
    “A summary note mentions {entity} among notable initiatives.”,
    “{entity} appears in a high-level update without technical details.”,
    “Stakeholders reviewed {entity} in a strategic planning session.”,
    ]

    memory_bank = []
    memory_id = 0

    frase

    for item in entities:
    entity = item[“entity”]
    topic = item[“topic”]
    for slot, value in item[“facts”].items():
    for t in phrasing_templates:
    text = t.format(entity=entity, topic=topic, slot=slot, value=value)
    memory_bank.append(MemoryItem(
    memory_id=memory_id,
    topic=topic,
    entity=entity,
    slot=slot,
    value=value,
    text=text
    ))
    memory_id += 1

    for t in distractor_templates:
    text = t.format(entity=entity)
    memory_bank.append(MemoryItem(
    memory_id=memory_id,
    topic=topic,
    entity=entity,
    slot=”distractor”,
    value=”n/a”,
    text=text
    ))
    memory_id += 1

    extra_noise = [
    “General note: system maintenance occurred on Tuesday.”,
    “A committee discussed budget timelines and operational readiness.”,
    “The archive includes summaries of projects across multiple departments.”,
    “No relevant technical value is stated in this memory.”,
    “A status update mentioned partnerships and future opportunities.”,
    “An unrelated note references shipping delays and staffing changes.”,
    “Background memo: the team reviewed dashboards and reporting cadence.”,
    “This memory contains no answer-bearing facts.”,
    ]

    for text in extra_noise:
    memory_bank.append(MemoryItem(
    memory_id=memory_id,
    topic=”noise”,
    entity=”none”,
    slot=”distractor”,
    value=”n/a”,
    text=text
    ))
    memory_id += 1

    return memory_bank

    memory_bank = build_memory_bank()
    memory_texts = [m.text for m in memory_bank]
    memory_embeddings = embed_texts(memory_texts)

    def build_queries(memory_bank: List[MemoryItem]) -> List[Dict[str, Any]]:
    patterns = [
    “What is the {slot} of {entity}?”,
    “Which {slot} does {entity} have?”,
    “Tell me the {slot} for {entity}.”,
    “Can you recall the {slot} associated with {entity}?”,
    “What was recorded as the {slot} of {entity}?”,
    ]
    queries = []
    qid = 0
    for m in memory_bank:
    if m.slot == “distractor”:
    continue
    q = random.choice(patterns).format(slot=m.slot.replace(“_”, ” “), entity=m.entity)
    queries.append({
    “query_id”: qid,
    “query”: q,
    “entity”: m.entity,
    “slot”: m.slot,
    “gold_value”: m.value,
    “gold_memory_id”: m.memory_id,
    “gold_text”: m.text,
    “topic”: m.topic,
    })
    qid += 1
    random.shuffle(queries)
    return queries

    queries = build_queries(memory_bank)
    query_texts = [q[“query”] for q in queries]
    query_embeddings = embed_texts(query_texts)

    ledger
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Fintech Fetch Editorial Team
    • Website

    Related Posts

    A new chapter for MIT Reads | MIT News

    A new chapter for MIT Reads | MIT News

    September 21, 2026
    Gartner outlines four AI tiers in warehouse automation

    Gartner outlines four AI tiers in warehouse automation

    September 20, 2026
    GGUF vs GPTQ vs AWQ vs EXL2: LLM Model Formats Explained (2026)

    GGUF vs GPTQ vs AWQ vs EXL2: LLM Model Formats Explained (2026)

    September 19, 2026
    New AI technique could make minimally invasive surgeries safer and more precise | MIT News

    New AI technique could make minimally invasive surgeries safer and more precise | MIT News

    September 18, 2026
    Add A Comment

    Comments are closed.

    Join our email newsletter and get news & updates into your inbox for free.


    Privacy Policy

    Thanks! We sent confirmation message to your inbox.

    quillbot
    Latest Posts
    A new chapter for MIT Reads | MIT News

    A new chapter for MIT Reads | MIT News

    September 21, 2026
    Cointelegraph

    Bitcoin Receives Fresh Bullish Indicator as Fisher Transform Shows Important Crossover

    September 21, 2026
    Bitcoin.com News

    A Touch More Orange: Saylor Indicates New Strategy for Purchasing Bitcoin

    September 20, 2026
    Optimism Releases Required Op Batcher V1 17 0 Upgrade

    Optimism Launches Essential Op Batcher V1.17.0 Update

    September 20, 2026

    DOGE Price Forecast: $1 Remains Possible, But DOGE Must First Overcome $0.09

    September 20, 2026
    kraken
    LEGAL INFORMATION
    • Privacy Policy
    • Terms Of Service
    • Social Media Disclaimer
    • DMCA Compliance
    • Anti-Spam Policy
    Top Insights
    Strives Buys 1,355 BTC as Bitcoin's Price Crosses $85K

    Strives Acquires 1,355 BTC as Bitcoin Surpasses $85,000 Mark

    September 21, 2026
    Bloomberg Analyst Warns Crypto Faces a Lose-Lose Scenario

    Zcash Remains Above $1,440 Following Sudden Rally Correction

    September 21, 2026
    Customgpt
    Facebook X (Twitter) Instagram Pinterest
    © 2026 FintechFetch.com - All rights reserved.

    Type above and press Enter to search. Press Esc to cancel.