Agentic Memory Management Is the Next Frontier of Information Retrieval
Abstract: Information retrieval has long been focusing on connecting people with information they need to complete their tasks. Recently, the meaning of this has changed dramatically as more and more AI agents now consume, retain, and act on information on a user's behalf. Consequently, information management now also takes place \emph{inside} the agent in the form of memory management. In this perspective paper, we argue that \emph{agentic memory management} (AMM), which studies the structure, analysis, organization, storage, searching, retrieval, and \emph{use} of information in an intelligent agent's memory, is a natural extension of IR research and an area in which the IR community can make distinctive contributions. Specifically, we first present a system-level framework for AMM and introduce a computational taxonomy of memory objects as \emph{constants}, \emph{functions}, and \emph{operators}, each with distinct retrieval semantics. Then, we compare AMM with established IR research and identify their difference and connections. Last but not least, we outline a research agenda covering benchmarks, candidate principles of memory utility, optimization procedures that mix parametric and non-parametric updates, and more. We hope this paper could attract more people, both inside and outside the IR communities, to think more about AMM problems and research from IR perspectives.
Paper Prompts
Sign up for free to create and run prompts on this paper.
Explain it Like I'm 14
1. What is the paper about?
This paper discusses a new research area called Agentic Memory Management (AMM).
Traditional information retrieval (IR) helps people find information. For example, a search engine finds web pages when someone types a question.
However, modern AI agents can do more than answer questions. They can book trips, write computer programs, search for information, and complete tasks for people. To do this well, an agent needs its own memory. It must decide:
- What information should it remember?
- What should it forget?
- What should it search for later?
- How should memories change its future actions?
The paper argues that managing an AI agent’s memory is a natural next step for information retrieval research.
2. What questions does the paper explore?
The paper is mainly asking:
- How should an AI agent organize its memory?
- What kinds of information should an agent store?
- How should an agent find and use memories later?
- How is memory for an AI agent different from search for a human?
- How can researchers measure whether an agent’s memory is useful?
- How can an agent learn from success, failure, and user feedback?
The authors are not mainly presenting one new memory system. Instead, they are trying to organize the field and suggest important problems for future researchers.
3. How did the authors approach the topic?
This is a perspective paper. That means the authors do not report one large experiment. Instead, they:
- Review earlier work in information retrieval and AI memory.
- Compare traditional search systems with AI-agent memory systems.
- Propose a framework for understanding agent memory.
- Classify different kinds of memories.
- Suggest future research directions.
The framework has four main parts.
Memory objects: What is stored?
The paper divides an agent’s memories into three types:
| Type | Simple meaning | Example |
|---|---|---|
| Constants | Facts or pieces of information | “The user’s passport expires in March 2028.” |
| Functions | Skills or procedures for doing something | “How to change a seat on an airline website.” |
| Operators | Preferences or rules that change how a skill is used | “Never book overnight flights.” |
These can be understood with a simple example:
Suppose an AI is planning a holiday.
- A constant tells it that the user’s passport expires soon.
- A function tells it how to book a flight.
- An operator tells it that the user dislikes early-morning flights.
The agent needs to retrieve all three types correctly. Finding the right fact is not enough if it chooses the wrong booking skill or ignores the user’s preferences.
Procedures: How is memory managed?
The paper describes three broad memory activities:
- Learning: deciding what new information to save or update.
- Forgetting: deleting, combining, or shortening memories that are no longer useful.
- Utilization: searching for memories and using them to guide actions.
This is similar to how a student might manage school notes. The student takes notes, removes outdated information, searches the notes before a test, and uses them to solve problems.
Applications: What is memory used for?
Agent memory can support many tasks, including:
- Answering questions and summarizing information.
- Personal assistance, such as remembering a user’s likes and dislikes.
- Coding, web browsing, and using computer tools.
- Long-term teamwork across many conversations or projects.
Optimization: How does memory improve?
An agent can receive feedback from:
- A task succeeding or failing.
- A user correcting it.
- A tool producing an error.
- A user abandoning a conversation.
The difficult part is deciding what the feedback means. For example, if a user rejects one holiday plan, does that mean:
- The user dislikes this particular plan?
- The user dislikes that type of hotel?
- The user never wants this destination?
- Everyone should avoid this kind of plan?
This is called credit assignment: working out which memory or decision caused the final result.
4. What are the main findings?
Because this is a position paper, its “findings” are mainly arguments and conclusions rather than experimental numbers.
AI agents use information differently from people
Traditional search systems are designed around human behavior. People usually look at only a few results and may read from the top down.
AI agents work differently:
- They can process much larger amounts of text.
- They may be affected by where information appears in a long input.
- They may follow instructions hidden inside retrieved web pages.
- They may be confused by irrelevant or contradictory information.
- They can search repeatedly without getting tired.
Therefore, search methods designed for people cannot simply be copied for AI agents.
Memory is more than a list of facts
Many current systems mainly store facts or previous conversations. The paper argues that agents also need:
- Reusable skills.
- Past experiences.
- User preferences.
- Rules about how to behave.
This is important because an agent should not just remember what happened. It should also learn how to act next time.
Memory can directly change an agent’s behavior
In a normal search engine, the system gives information to a person, and the person decides what to do.
In an AI agent, retrieved memory can directly affect the next action. For example, a remembered preference could cause an agent to reject an overnight flight automatically.
This makes memory part of the agent’s intelligence, not just a storage box.
Current memory systems are incomplete
The paper argues that many existing systems are better at:
- Storing facts.
- Searching for information.
- Using simple memory retrieval.
They are generally less developed in:
- Managing reusable skills.
- Handling preferences with the correct scope.
- Forgetting outdated or incorrect memories.
- Resolving contradictions.
- Learning reliably from feedback.
- Measuring memory quality in a standard way.
Evaluating memory may be easier in some ways
Traditional search research often measures indirect signals, such as whether a document seems relevant or whether a user clicks on it. Researchers may not know whether the user actually completed their task.
With AI agents, researchers can observe more of the process. They may be able to see:
- What the agent retrieved.
- What information entered its working context.
- Whether its behavior changed.
- Whether the task was completed.
This could allow researchers to connect memory quality more directly to real task success. However, a successful task does not always prove that the memory was good. A powerful AI model might succeed even with poor memory.
5. Why are these ideas important?
A good memory system could help AI agents:
- Avoid repeating old mistakes.
- Remember a user’s preferences.
- Improve through experience.
- Complete longer and more complicated tasks.
- Reuse successful skills.
- Work consistently across many conversations.
For example, a coding agent could remember that a certain type of software error was previously fixed by changing a particular setting. A personal assistant could remember that its user avoids flights with overnight travel. A research assistant could remember which sources were already checked.
Without reliable memory, an agent may behave as if every task is completely new.
6. What future research does the paper recommend?
The authors suggest several important areas for future work.
Better benchmarks
Researchers need shared tests for comparing memory systems. These tests should measure more than whether an agent can repeat a fact. They should also test whether memory helps with coding, planning, tool use, teamwork, and long-term tasks.
A theory of memory usefulness
Researchers need to understand what makes one memory more useful than another. A memory might be recent but unimportant, or old but extremely valuable.
Combining different kinds of learning
Some learning changes the model’s internal settings. This is called parametric learning. Other learning changes external notes, databases, or memory files. This is called non-parametric learning.
The paper suggests combining both methods. Updating notes is often easier and safer than retraining the whole AI model, but some knowledge may eventually need to become part of the model itself.
Human involvement
People should be able to inspect, correct, or delete an agent’s memories. This is especially important for private information and incorrect assumptions.
For example, a user should be able to tell an assistant, “I no longer avoid overnight flights,” and the old preference should be removed or updated.
7. Overall conclusion
The paper argues that AI memory management should become a major part of information retrieval research.
Traditional information retrieval mainly asks:
“How can we find useful information for a person?”
Agentic memory management asks a broader question:
“How can we help an AI agent remember, find, and use information so that it can complete tasks better?”
This shift could make AI agents more helpful, personalized, and capable of learning over time. But it also creates risks. Incorrect, outdated, private, or overly general memories could lead to bad decisions.
The paper’s main message is that building intelligent agents is not only about making larger models. It is also about giving those models a well-organized, carefully controlled, and useful memory.
Practical Applications
Immediate Applications
The paper is a perspective and research agenda rather than a report of a validated production system. The following applications are therefore feasible using existing retrieval-augmented generation, vector databases, structured stores, agent frameworks, and workflow orchestration tools, but their reliability depends on careful evaluation.
- Persistent personal assistants for preferences and user facts (consumer software, productivity, travel)
- Store constants such as deadlines, passport expiry dates, dietary restrictions, and prior decisions, together with operators such as “avoid red-eye flights” or “prefer concise explanations.”
- Use scoped retrieval to personalize travel planning, calendar management, shopping, email drafting, and recommendation systems.
- Potential product: a user-controlled memory layer integrated into an assistant, with interfaces for reviewing, correcting, exporting, and deleting memories.
- Dependencies: explicit consent, accurate identity and scope management, protection against stale or contradictory facts, and mechanisms preventing one user's preferences from leaking into another user's sessions.
- Memory-aware retrieval-augmented generation (RAG) (software, enterprise search, customer support)
- Combine external document retrieval with internal memories of prior conversations, resolved cases, user-specific terminology, and organizational procedures.
- Retrieve and format information for the model rather than simply ranking documents for human inspection. Relevant design choices include context length, ordering, compression, provenance, and conflict resolution.
- Potential workflow: retrieve candidate memories, classify them as facts, skills, or preferences, apply recency and scope filters, compress them, and inject only task-relevant items into the agent context.
- Dependencies: resistance to prompt injection and indirect instruction attacks, reliable provenance, and testing across different foundation models because agent utilization varies by backbone.
- Conversational customer-service agents with case memory (retail, telecommunications, banking, public services)
- Retain prior customer issues, successful resolutions, escalation outcomes, and customer-specific constraints.
- Retrieve similar cases and reusable support procedures while keeping personal preferences separate from general service policies.
- Potential tool: an agent memory service connected to CRM systems, ticketing platforms, knowledge bases, and audit logs.
- Dependencies: privacy and retention regulations, correct deletion handling, human escalation for uncertain or high-impact decisions, and safeguards against propagating erroneous historical advice.
- Reusable coding and software-maintenance skills (software engineering, DevOps)
- Store functions representing successful debugging procedures, build-failure resolutions, repository-specific conventions, deployment steps, and testing workflows.
- Retrieve skills by applicability to the current repository or failure state, rather than by topical similarity alone.
- Potential workflow: after a coding agent completes a task, record the error, attempted actions, verification signal, and final fix; generalize recurring episodes into reusable skills.
- Dependencies: sandboxed execution, automated tests, version compatibility, repository permissions, and verification that a stored skill still works before reuse.
- Agent memory for web navigation and tool use (automation, e-commerce, travel, robotic process automation)
- Preserve procedures such as how to navigate a particular airline website, complete a recurring form, or interact with a changing API.
- Store tool-specific workflows as executable or semi-structured functions, with environmental assumptions and fallback steps.
- Dependencies: websites and APIs change frequently; execution must be permissioned, reversible where possible, and protected against malicious instructions embedded in retrieved pages.
- Memory dashboards and governance controls (enterprise IT, compliance, cybersecurity)
- Expose the agent's stored constants, functions, and operators for inspection, correction, versioning, deletion, and provenance tracking.
- Use separate policies for factual memory, procedural memory, and preferences because they have different update and failure dynamics.
- Potential product: an “agent memory console” showing why an item was stored, when it was last used, which actions it influenced, and what evidence supports it.
- Dependencies: interpretable memory representations, complete event logging, access controls, and compliance with data-protection requirements such as purpose limitation and the right to deletion.
- Human-in-the-loop memory correction (healthcare administration, finance, legal services, education)
- Allow users or domain experts to approve, reject, amend, or scope memories after an agent makes a recommendation or completes a task.
- Convert corrections into narrowly scoped updates—for example, a preference for one user or one project—rather than global rules.
- Dependencies: suitable review interfaces, clear uncertainty indicators, domain expertise, and policies defining when automated updates are prohibited.
- Agent-specific retrieval and utilization evaluation (academia and industrial testing)
- Instrument agents to measure which memories were retrieved, which entered the context, how they were formatted and positioned, whether behavior changed, and whether the task succeeded.
- Replace reliance on relevance or similarity alone with task-level measures such as successful bookings, fixed bugs, completed workflows, factual consistency, latency, token cost, and unnecessary retrievals.
- Potential tool: a replay-based benchmark harness comparing the same agent under different memory states and retrieval policies.
- Dependencies: reproducible model versions, controlled tasks, representative user data, and diagnostic metrics that distinguish failures in writing, retention, retrieval, and memory use.
- Memory efficiency and cost optimization (cloud infrastructure, edge AI, sustainability)
- Apply forgetting, compression, deduplication, decay, and caching to limit vector-store growth, context length, latency, and energy consumption.
- Optimize whether a memory should be retrieved at all, particularly for agents that can issue many searches or tool calls.
- Dependencies: reliable estimates of future memory value and safeguards ensuring that cost reduction does not remove safety-critical or legally required information.
Long-Term Applications
These applications require new benchmarks, stronger theories of memory utility, improved credit assignment, larger-scale deployment studies, or advances in agent reliability.
- Continual-learning agents without frequent model retraining (general-purpose AI, enterprise automation)
- Use non-parametric memory updates for user facts, experiences, and skills, while reserving parametric updates for knowledge or behaviors that should generalize broadly.
- The paper's “lifting” idea suggests a progression from episodic constants to reusable functions and eventually to higher-order operators such as preferences or reasoning policies.
- Potential system: an adaptive memory manager deciding whether feedback should update a single fact, a task-specific skill, a user-level preference, or the underlying model.
- Dependencies: robust scope assignment, avoidance of catastrophic or unwanted generalization, long-term stability, and methods for distinguishing genuine learning from noisy feedback.
- General-purpose personal agents with durable user models (consumer technology, accessibility, household automation)
- Maintain a structured model of a person's goals, routines, preferences, constraints, and past interactions across applications and years.
- Coordinate email, calendars, purchases, travel, health routines, and household devices using operators that apply across many procedures.
- Dependencies: sustained user control, portability between vendors, privacy-preserving storage, mechanisms for changing or revoking preferences, and protection against over-personalization or incorrect inferred values.
- Collaborative multi-agent memory (software teams, scientific research, robotics, logistics)
- Allow multiple agents or human-agent teams to share project facts, procedures, decisions, and responsibilities while preserving authorship and scope.
- Use shared memory for long-horizon projects such as literature reviews, product development, incident response, or coordinated robot missions.
- Potential product: a versioned knowledge and skill substrate with permissions, conflict resolution, provenance, and role-specific views.
- Dependencies: consistency across agents, access control, conflict arbitration, resistance to malicious or low-quality contributions, and clear separation between private and shared memory.
- Autonomous research and literature-review agents (academia, pharmaceuticals, R&D)
- Store previously screened papers, evidence assessments, search strategies, unresolved questions, and reusable synthesis procedures.
- Retrieve not only documents but also functions such as how to search a specialized database and operators such as evidence-quality or citation policies.
- Dependencies: citation provenance, domain-expert validation, avoidance of reinforcing earlier errors, changing scientific literature, and rigorous evaluation of synthesis quality rather than recall alone.
- Healthcare decision-support and care-coordination memory (healthcare)
- Maintain longitudinal, permissioned records of patient preferences, prior care episodes, treatment responses, and clinician-approved workflows.
- Use memory to support appointment coordination, medication reconciliation, patient education, and personalized care planning—not autonomous diagnosis or treatment without appropriate oversight.
- Dependencies: clinical validation, privacy and health-data regulation, accurate temporal reasoning, interoperability with medical records, bias monitoring, and mandatory human review for high-risk decisions.
- Robotics and embodied agents that accumulate procedural knowledge (robotics, manufacturing, logistics, domestic automation)
- Store executable skills learned from prior tasks, environmental observations, successful recovery strategies, and operator-level safety constraints.
- Retrieve and adapt skills for new but related environments, such as warehouse picking, household manipulation, or industrial maintenance.
- Dependencies: simulation-to-real transfer, reliable state estimation, safety verification, handling of distribution shifts, and mechanisms ensuring that outdated or unsafe skills are forgotten or quarantined.
- Policy and public-sector memory infrastructure (government, public administration, regulatory technology)
- Build auditable agents that remember case histories, applicable regulations, procedural requirements, and citizen-specific interactions while respecting legal boundaries.
- Use explicit scope and provenance to distinguish general policy from case-specific information.
- Dependencies: explainability, nondiscrimination, records-retention rules, appeal mechanisms, public accountability, cybersecurity, and prohibition of opaque automated decisions in legally sensitive contexts.
- A standardized AMM benchmark and evaluation ecosystem (research and standards)
- Develop reusable test collections spanning information synthesis, personal assistance, coding, web/tool use, and long-horizon collaboration.
- Evaluate constants, functions, and operators separately, then measure end-to-end task outcomes, memory utility, forgetting quality, latency, cost, privacy, and robustness.
- Potential infrastructure: replayable environments with fixed agent backbones, controlled memory interventions, counterfactual comparisons, and annotations for scope and provenance.
- Dependencies: agreement on task definitions, stable evaluation protocols, replication across model backbones, realistic longitudinal data, and methods that separate memory quality from the base agent's capabilities.
- Learned models of agent memory utilization (information retrieval, ML infrastructure)
- Develop an analogue of human click models that predicts whether a retrieved memory will actually affect an agent's behavior as a function of content, position, format, confidence, and task state.
- Use these models for retrieval ranking, context layout, memory compression, offline diagnosis, and policy optimization.
- Dependencies: behavior is model- and prompt-dependent; utilization models must be recalibrated across foundation models, tasks, context lengths, and tool environments.
- Principled memory utility and forgetting theory (academia, information science)
- Formalize the value of retaining an item using expected future task benefit, safety value, retrieval cost, privacy risk, staleness, and interference with other memories.
- Support principled deletion, merging, decay, and promotion from episodic records to generalized skills or operators.
- Dependencies: sufficiently rich long-term usage data, reliable outcome attribution, explicit definitions of utility, and trade-offs between personalization, privacy, and generalization.
- Closed-loop optimization of memory decisions (AI platforms, autonomous systems)
- Learn jointly when to write, update, retrieve, compress, delete, and apply memories based on user corrections, tool errors, task success, and downstream outcomes.
- Combine parametric, non-parametric, and structural updates, assigning credit to the particular memory decisions that contributed to success or failure.
- Dependencies: sparse and noisy feedback, delayed outcomes, confounding by the base model, safe exploration, and strong safeguards against self-reinforcing errors.
- Daily-life autonomous task management (household technology, education, finance, accessibility)
- Enable assistants to learn recurring routines such as organizing household purchases, adapting study plans, preparing tax documents, or coordinating accessibility needs.
- Functions would represent recurring workflows, constants would hold relevant facts, and operators would encode user priorities such as cost, convenience, privacy, or sustainability.
- Dependencies: reliable authorization, transparent action previews, reversible operations, protection of sensitive financial or educational data, and user control over what the system is allowed to infer or remember.
Glossary
- Agentic Memory Management (AMM): The study of how information is structured, stored, retrieved, and used within an intelligent agent’s memory. “Agentic Memory Management (AMM), which concerns with the structure, analysis, organization, storage, searching, retrieval, and use of information in the memory of an intelligent agent.”
- Anomalous-state-of-knowledge hypothesis: The idea that people search because they cannot fully specify what information they lack. “Belkin's anomalous-state-of-knowledge hypothesis”
- Backbone: The underlying pretrained model that provides an agent’s core capabilities. “an agent's behavior changes with every model version”
- BM25: A probabilistic term-weighting and ranking function used in information retrieval. “Ranking functions such as BM25”
- Cranfield paradigm: An experimental methodology that evaluates retrieval systems using shared documents, queries, and relevance judgments. “the Crandfield paradigms widely used in TREC”
- Catastrophic forgetting: The loss of previously acquired knowledge when a model learns new information. “learning continually without catastrophic forgetting”
- Cognitive implants: Systems that augment or substitute for human memory and cognition. “the ‘cognitive implants’ of human”
- Collaborative filtering: A recommendation technique that predicts user preferences from the behavior or ratings of similar users. “collaborative filtering systems began to recommend items from the ratings of similar users”
- Constants: Discrete memory objects representing individual facts or pieces of information. “Constants (facts) are discrete pieces of information”
- Credit assignment: Determining which decisions or events contributed to an observed outcome. “Credit assignment asks which memory decisions contributed to an outcome.”
- Declarative memory: Memory for facts and experiences, commonly divided into semantic and episodic memory. “declarative memory (subdivided into semantic and episodic) versus procedural memory”
- Discounted cumulative gain: A ranking metric that gives greater credit to relevant results appearing near the top. “discounted cumulative gain tries to distinguish good ranking systems from bad ones”
- Dynamic pruning: The selective elimination of retrieval candidates or processing steps to improve efficiency. “compression, caching, and dynamic pruning further reduce storage and response time.”
- Episodic memory: Memory for personally experienced events or episodes. “declarative memory (subdivided into semantic and episodic)”
- Faceted navigation: An interface technique that lets users filter results through multiple attributes or categories. “query suggestions, faceted navigation”
- Functions: Memory objects representing mappings from inputs to outputs, such as skills or workflows. “Functions (skills, workflows, experiences) are mappings from inputs to outputs”
- Generative Agents: Agents whose memory, reflections, and behavior are modeled to simulate persistent characters or autonomous activity. “It can shape the agent's personality: in Generative Agents”
- Inverse document frequency: A statistic that downweights terms occurring in many documents and emphasizes rarer terms. “inverse document frequency”
- Inverted index: A data structure mapping terms to the documents in which they occur. “an inverted index maps each term to the documents that contain it”
- Learning to rank: Machine-learning methods that optimize the ordering of search or recommendation results. “advanced methods (such as learning to rank”
- Link analysis: The analysis of connections between web pages or other entities to estimate importance or authority. “Link analysis treats a hyperlink as evidence of a page's importance”
- Memex: A proposed personal information-storage system designed for rapid consultation and associative retrieval. “the memex, a device in which an individual would store books, records, and communications for rapid consultation”
- Non-parametric update: An update that changes stored data or memory organization without modifying a model’s learned numerical parameters. “most are not: they modify text and organization.”
- Operators: Higher-order memory objects that modify functions according to preferences, values, or reasoning dispositions. “Operators (preferences, values, style, reasoning dispositions) are higher-order objects”
- Parametric update: An update that changes the learned parameters of a model. “Some of these updates can be parametric”
- Personalization spectrum: The range of scopes at which user-specific information may apply, from a session to a global population. “This is the personalization spectrum of IR --- session, individual, cohort, global”
- Position bias: The tendency for users or models to favor results because of their position in an ordered list. “clicks are informative but biased, among other factors by the position of a result in the ranking”
- Probability ranking principle: The principle that documents should be ranked by their probability of relevance to maximize retrieval effectiveness. “the probability ranking principle connects the two”
- Procedural memory: Memory for skills, procedures, or methods of carrying out tasks. “declarative memory (subdivided into semantic and episodic) versus procedural memory”
- Query expansion: The addition of related terms or information to a query to improve retrieval. “whether to apply costly steps such as query expansion”
- Query performance prediction: The estimation of how well a query is likely to be answered without using relevance judgments. “Query performance prediction estimates, without relevance judgments, whether a query is likely to be answered well”
- ReAct: An agent framework that interleaves reasoning with actions such as searching or tool use. “ReAct interleaves reasoning steps with search actions”
- Recall: The process of retrieving or recovering stored information. “the faculty that lets an organism retain and recall experiences”
- Relevance feedback: The use of judgments about retrieved results to improve subsequent retrieval. “term weighting, and relevance feedback”
- Retrieval-augmented generation (RAG): A method in which retrieved external information is supplied to a generative model to produce an answer. “retrieval-augmented generation”
- Scope: The set of users, situations, or contexts to which a memory item or preference applies. “matched by scope: whose preference, in which situations, at what strength.”
- Semantic memory: Memory for general facts, concepts, and knowledge independent of a specific personal event. “declarative memory (subdivided into semantic and episodic)”
- Statistical LLM: A model that assigns probabilities to sequences of words or tokens. “statistical LLMs”
- Structural update: An update that changes the organization or structure of a memory system. “they modify text and organization.”
- Term weighting: The assignment of numerical importance to terms for retrieval and ranking. “the vector space model, term weighting”
- Toolformer: A model trained to decide when and how to call external tools. “Toolformer learns when to call a search engine among other tools”
- Vector space model: An information-retrieval representation that models documents and queries as vectors in a term-based space. “Salton's SMART project developed the vector space model”
- Utilization model: A model predicting whether and how retrieved information will affect an agent’s behavior. “a utilization model for agents, the analogue of a click model”
- WebGPT: An agent system that answers questions by interacting with the web through a text-based browser. “WebGPT answers questions by issuing commands to a text-based web browser”