Spaces:
Running
Running
Memory for CUGA
This document explains how to enable the use of the memory feature in CUGA.
π― Overview
CUGA execution can be enhanced by enabling episodic memory, which introduces the ability to levearge previously identified insights and relevant experiences when generating the final answer. Some key features include:
1. Agentic Memory Component
- Extract and store tips in Milvus via mem0 interface.
- Endpoints to support CRUD operations for tips and namespaces.
- Memory Client for communication with endpoints.
- Database dependencies:
- Milvus (for tips)
- SQLite (for namespace lookup)
2. Integration with cuga-agent
- Adds
enable_memoryflag to control memory features. - Support Memory port configuration in
settings.toml - Uses retrieved memory in agents:
- Task analyzer
- Task decomposition
- API shortlist
- Code agent
- API Code Planner (Will expand to other agents with more experiments)
- Extracts tips at the end of a run in activity tracker: self.memory.end_run(namespace_id="memory", run_id=self.experiment_folder)
π Quick Start
- Set
enable_memory=trueinsettings.toml - Start memory API:
cuga start memoryThe API will be available at port 8888.
π Prompt Location
cuga/
βββ backend/memory/agentic_memory/llm/tips/
βββ prompts # Folder with all prompts
π§ How It Works
The use cases which motivate the need for memory for CUGA include:
- Generate insights from successful/failed trajectories
- During execution,
memory.add_stepcaptures summary of step output and any relevant information - The Activity Tracker activates
memory.end_runat the final step of the FinalAnswerAgent execution - A background process is triggered, to
analyze_runof the stored trajectory - Analysis invokes LLM with prompt tailored to
extract_cuga_tips_from_data, resulting in identification, extraction and classification of tips per Cuga sub-agent create_and_store_factis invoked for each tip, along with relevant metadata