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
    aistudios
    @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)

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

    Related Posts

    CopilotKit Open Sources Channels SDK: An MIT Licensed Library That Runs Any AG-UI Agent Inside Slack And Microsoft Teams

    CopilotKit Open Sources Channels SDK: An MIT Licensed Library That Runs Any AG-UI Agent Inside Slack And Microsoft Teams

    August 5, 2026
    Alexander Rakhlin named director of the MIT Statistics and Data Science Center | MIT News

    Alexander Rakhlin named director of the MIT Statistics and Data Science Center | MIT News

    August 4, 2026
    Stop graphing everything: When GraphRAG actually beats vector RAG

    Stop graphing everything: When GraphRAG actually beats vector RAG

    August 3, 2026
    OpenAI aligns safety practices with EU AI Act's GPAI Code

    OpenAI aligns safety practices with EU AI Act’s GPAI Code

    August 2, 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.

    ledger
    Latest Posts
    Liam 'Akiba' Wright

    rewrite this title in other words: The crypto project trying to replace the US banking system just pulled its 10 trillion token filing

    August 5, 2026
    Moscow Exchange Adds XRP, Solana, Tron And BNB To Crypto Index Push

    rewrite this title in other words: Backpack Exchange Lists TRX Spot And Perpetual Markets

    August 5, 2026
    Cointelegraph

    rewrite this title in other words: Ethereum Proposal to Slash Staking Rewards Sparks Backlash

    August 5, 2026
    Cotton Comes Back to Close Mixed on Tuesday

    rewrite this title in other words: Cotton Comes Back to Close Mixed on Tuesday

    August 5, 2026
    CopilotKit Open Sources Channels SDK: An MIT Licensed Library That Runs Any AG-UI Agent Inside Slack And Microsoft Teams

    CopilotKit Open Sources Channels SDK: An MIT Licensed Library That Runs Any AG-UI Agent Inside Slack And Microsoft Teams

    August 5, 2026
    notion
    LEGAL INFORMATION
    • Privacy Policy
    • Terms Of Service
    • Social Media Disclaimer
    • DMCA Compliance
    • Anti-Spam Policy
    Top Insights
    The SECRET SAUCE to Making Money with AI

    The SECRET SAUCE to Making Money with AI

    August 6, 2026
    BUY HEAVY! I Just Found the Next Nvidia

    BUY HEAVY! I Just Found the Next Nvidia

    August 6, 2026
    synthesia
    Facebook X (Twitter) Instagram Pinterest
    © 2026 FintechFetch.com - All rights reserved.

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