This repository provides a quickstart guide for using the Agent Catalog with Capella Model Services and Couchbase.
- Python 3.12+
 - Poetry (Installation Guide)
 - Git (for repository management)
 - An OpenAI API Key (or other LLM provider)
 - Couchbase Capella account (or local Couchbase installation)
 
Two ways to get running fast. Choose one.
git clone --recursive https://github.com/couchbaselabs/agent-catalog-quickstart.git
cd agent-catalog-quickstart
bash scripts/setup.sh --yes               # add --skip-testing to speed up
# pick an agent and configure env
cd notebooks/hotel_search_agent_langchain
cp .env.sample .env && $EDITOR .env
# run
poetry run python main.py# from repo root
poetry -C notebooks/flight_search_agent_langraph install --no-root
cp notebooks/flight_search_agent_langraph/.env.sample notebooks/flight_search_agent_langraph/.env
$EDITOR notebooks/flight_search_agent_langraph/.env
poetry -C notebooks/flight_search_agent_langraph run python main.pyFor the cleanest installation that avoids system conflicts:
# Install pipx if not available
brew install pipx  # macOS
# or: python3 -m pip install --user pipx
# Use the proper pipx setup script
bash scripts/setup_pipx.shBenefits:
- Isolated environments prevent conflicts
 - Clean separation between CLI tools and project dependencies
 - Works with externally managed Python environments (Homebrew, system Python)
 
# Install Agent Catalog packages (add --break-system-packages if needed)
pip3 install agentc agentc-core agentc-cli agentc-langchain agentc-langgraph agentc-llamaindex
# Install Arize Phoenix and evaluation dependencies
pip3 install "arize-phoenix[evals]" arize arize-otel openinference-instrumentation-langchain openinference-instrumentation-openai openinference-instrumentation-llama-index
# Fix OpenTelemetry version conflicts (if needed)
pip3 install --upgrade opentelemetry-instrumentation-asgi opentelemetry-instrumentation-fastapi opentelemetry-util-httpThen run the per-agent commands under "2) Per-agent setup (fastest)" above.
These packages are currently installed from source during development. Once agentc packages are available on PyPI, the installation will be simplified to standard pip/pipx commands.
This repository uses git submodules to manage the Agent Catalog dependency. If you encounter issues:
# If you cloned without --recursive, initialize submodules manually:
git submodule update --init --recursive
# Update submodules to latest versions:
git submodule update --remote
# Verify submodules are properly initialized:
git submodule statusNote: The agent-catalog directory is managed as a submodule and should not be manually edited.
Each example is independent and includes code, prompts, tools, and evals.
- Framework: LangGraph
 - Install: 
poetry -C notebooks/flight_search_agent_langraph install --no-root - Run: 
poetry -C notebooks/flight_search_agent_langraph run python main.py 
- Framework: LangChain
 - Install: 
poetry -C notebooks/hotel_search_agent_langchain install --no-root - Run: 
poetry -C notebooks/hotel_search_agent_langchain run python main.py 
- Framework: LlamaIndex
 - Install: 
poetry -C notebooks/landmark_search_agent_llamaindex install --no-root - Run: 
poetry -C notebooks/landmark_search_agent_llamaindex run python main.py 
Each agent needs its own .env file with your credentials:
# Copy the sample file and edit it
cp .env.sample .env
# Edit .env with your actual credentialsRequired files:
notebooks/flight_search_agent_langraph/.envnotebooks/hotel_search_agent_langchain/.envnotebooks/landmark_search_agent_llamaindex/.env
For complete environment configuration examples (Capella vs Local), see TROUBLESHOOTING.md.
# run with a query
poetry -C notebooks/hotel_search_agent_langchain run python main.py "Find hotels in Paris with free breakfast"
# run evaluations (Arize)
poetry -C notebooks/hotel_search_agent_langchain run python evals/eval_arize.pyIf you installed the global CLI:
cd notebooks/hotel_search_agent_langchain
# Initialize Agent Catalog
agentc init
# Index your agent
agentc index .
# Publish your agent (requires clean git)
git add . && git commit -m "Your changes"
agentc publish
# Run the agent
python main.py "Find hotels in Paris with free breakfast"| Command | Description | 
|---|---|
agentc init | 
Initialize agent catalog in current directory | 
agentc index . | 
Index the current agent directory | 
agentc publish | 
Publish agent to catalog (requires clean git status) | 
agentc --help | 
Show all available commands | 
agentc env | 
Show environment configuration | 
Having issues? Check our comprehensive troubleshooting guide: TROUBLESHOOTING.md
- "No module named 'agentc'": ensure you ran 
poetry -C notebooks/<agent> install --no-rootand are executing with Poetry (poetry run ...). - Evaluation deps missing: run the agent-specific Poetry install again; eval deps are included per agent.
 - Poetry issues: delete the agentβs 
poetry.lockand runpoetry -C notebooks/<agent> install --no-root. - Environment errors: copy 
.env.sampleto.envin the agent folder and fill in credentials. - CLI not found after script: restart your shell or run 
export PATH="$PATH:$HOME/.local/bin"; rerunbash scripts/setup.sh --yesif needed. - Submodule issues: run 
git submodule update --init --recursiveto initialize the agent-catalog dependency. 
For detailed solutions, environment configuration examples, and debugging commands, see TROUBLESHOOTING.md.
- Create a new directory under 
notebooks/ - Add your agent code, prompts, and tools
 - Create appropriate configuration files (
pyproject.toml,.env) - Install Agent Catalog: 
pip3 install agentc agentc-core agentc-cli agentc-langchain agentc-langgraph agentc-llamaindex - Install root dependencies: 
poetry install - Run 
poetry install --no-rootin the new directory - Run 
agentc initandagentc index . 
Run evaluations with Arize:
poetry run python evals/eval_arize.pyComprehensive guides and references for working with the Agent Catalog ecosystem:
| Document | Purpose | 
|---|---|
| PYPROJECT_GUIDE.md | Complete guide to pyproject.toml configuration | 
| AGENTC_GUIDE.md | Agent Catalog CLI and usage documentation | 
| PYTHON_LINUX.md | Linux Python setup and pip troubleshooting | 
| PYTHON_MAC.md | macOS Python environment setup guide | 
| CAPELLA_MODELS.md | Couchbase Capella model services integration | 
| EVALUATION_FRAMEWORKS_COMPARISON.md | Comparison of AI evaluation frameworks | 
Quick access:
# View documentation
ls docs/                    # List all documentation files
cat docs/PYPROJECT_GUIDE.md # Read specific guideReady-to-use templates for creating Agent Catalog components:
| Template | Purpose | Usage | 
|---|---|---|
prompt_template.yaml | 
Agent prompt templates | Create new prompts with proper structure | 
python_function_template.py | 
Python tool functions | Build custom tools and utilities | 
semantic_search_template.yaml | 
Couchbase vector search | Set up semantic search functionality | 
sqlpp_query_template.sqlpp | 
Database queries | Create SQL++ queries for Couchbase | 
http_request_template.yaml | 
HTTP/API requests | Build HTTP request tools | 
agentc_command_notes.txt | 
CLI command reference | AgentC command examples | 
Using templates:
# Copy template for new component
cp templates/prompt_template.yaml prompts/my_new_prompt.yaml
cp templates/python_function_template.py tools/my_new_tool.py
# Edit with your specific requirements
$EDITOR prompts/my_new_prompt.yamlCommon utilities and configurations used across all agents:
| File | Purpose | 
|---|---|
agent_setup.py | 
Common agent initialization and setup utilities | 
couchbase_client.py | 
Couchbase database connection and client management | 
capella_model_services_langchain.py | 
LangChain integration with Capella model services | 
capella_model_services_llamaindex.py | 
LlamaIndex integration with Capella model services | 
__init__.py | 
Package initialization for shared utilities | 
Using shared resources:
# Import shared utilities in your agent
from shared.couchbase_client import get_couchbase_client
from shared.agent_setup import initialize_agent
from shared.capella_model_services_langchain import get_langchain_llmAutomation and setup scripts for the repository:
| Script | Purpose | 
|---|---|
setup.sh | 
Full repository setup and installation | 
setup_pipx.sh | 
Clean pipx-based installation (recommended) | 
scope_copy.py | 
Utility for copying agent scopes | 
Using scripts:
# Run setup scripts
bash scripts/setup.sh --yes           # Full setup
bash scripts/setup_pipx.sh           # Clean pipx setup
python scripts/scope_copy.py         # Utility scriptEach example agent follows this structure:
notebooks/agent_name/
βββ main.py              # Main agent implementation
βββ pyproject.toml       # Poetry dependencies (requires poetry install)
βββ .env                 # Environment configuration
βββ prompts/             # Agent prompts and templates
βββ tools/               # Agent tools and functions
βββ data/                # Data loading and processing
βββ evals/               # Evaluation scripts
This is a quickstart repository. For contributing to the main Agent Catalog:
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Ensure all poetry dependencies are installed
 - Commit changes (required for publishing)
 - Submit a pull request
 
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.