Build memory-aware AI agents with Oracle AI Database, LangChain, and Tavily
A Research Paper Assistant — an AI agent that searches, retrieves, and reasons over arxiv papers stored as vectors in Oracle AI Database. Along the way you’ll implement a MemoryManager with six memory types, context engineering techniques that prevent context window overflow, and a turn-level agent harness — finishing with a before/after comparison that makes the impact of memory engineering visible.
| Part | Topic | Guide |
|---|---|---|
| 1 | Oracle AI Database setup and connection | Part 1 Guide |
| 2 | Vector search with LangChain OracleVS | Part 2 Guide |
| 3 | Memory engineering: 6 memory types in Oracle | Part 3 Guide |
| 4 | Context engineering: summarisation and offloading | Part 4 Guide |
| 5 | Web access with Tavily | Part 5 Guide |
| 6 | Agent execution and memory vs no-memory comparison | Part 6 Guide |
TODO Checklist — all 16 tasks at a glance with links to their guide sections.
This workshop lives inside the oracle-ai-developer-hub repository. Use git sparse-checkout to pull just this workshop without cloning the rest of the hub:
# Clone the hub with no files and no blobs
git clone --filter=blob:none --no-checkout https://github.com/oracle-devrel/oracle-ai-developer-hub.git
cd oracle-ai-developer-hub
# Enable sparse-checkout and select only this workshop
git sparse-checkout init --cone
git sparse-checkout set workshops/agent_memory_workshop
# Materialise the files and move into the workshop
git checkout main
cd workshops/agent_memory_workshop
# Start Oracle AI Database
docker compose -f .devcontainer/docker-compose.yml up -d oracle
# Install dependencies
pip install -r requirements.txt
# Launch Jupyter
jupyter lab workshop/notebook_student.ipynb
Wait approximately 2 minutes for Oracle to initialise before running notebook cells.
Updating later:
git pullfrom insideoracle-ai-developer-hubrefreshes only the paths you’ve selected with sparse-checkout.
agent-memory-workshop/
├── .devcontainer/
│ ├── devcontainer.json Codespaces configuration
│ ├── docker-compose.yml Oracle AI Database + workshop container
│ ├── setup_build.sh Build-time dependency installation
│ ├── setup_runtime.sh Runtime Oracle health check and setup
│ ├── start_oracle.sh Oracle startup script
│ └── oracle-init/
│ └── 01_vector_memory.sql Vector memory schema init
├── workshop/
│ ├── notebook_student.ipynb Your working notebook (contains TODO gaps)
│ └── notebook_complete.ipynb Complete reference (do not open until done)
├── docs/
│ ├── part-1-oracle-setup.md
│ ├── part-2-vector-search.md
│ ├── part-3-memory-engineering.md
│ ├── part-4-context-engineering.md
│ ├── part-5-web-search.md
│ ├── part-6-agent-execution.md
│ ├── TODO-checklist.md All 16 tasks at a glance
│ └── troubleshooting.md Common issues and solutions
├── images/ Screenshots and architecture diagrams
└── README.md
gvenzl/oracle-freelangchain-oracledb — LangChain integration for Oracle vector storesentence-transformers — local embedding model, no API key neededopenai — OCI GenAI (xAI Grok 3 Fast) via OpenAI-compatible endpointtavily-python — web search for agentsoracledb — Python Oracle driverBuilt for the Oracle AI Developer Experience team.