Skip to content

Agentic Development

PAIS provides the AI backbone for agentic research software — systems where an LLM plans, reasons, and takes actions rather than just answering a single question.

Because PAIS exposes an OpenAI-compatible API, every major agentic framework works with it immediately.

What is an agentic harness?

An agentic harness is a framework that connects an LLM to:

  • Tools — functions the model can call (search, run code, read files, query databases)
  • Memory — conversation history, vector stores, or structured state
  • Planning — chains of reasoning steps, reflection, or multi-agent coordination
flowchart LR
    U[Researcher\nor script] --> A[Agent loop]
    A --> LLM[PAIS LLM\nLlama 3.1 8B]
    A --> T1[Search arXiv]
    A --> T2[Run Python code]
    A --> T3[Query vector store\nover VAST data]
    LLM --> A
    T1 & T2 & T3 --> A

Supported frameworks

Framework Best for Guide
OpenAI SDK Direct API calls, simple chains, structured output OpenAI SDK
LangChain RAG, agents with tools, complex chains LangChain
LlamaIndex Document indexing, RAG, knowledge graphs LlamaIndex
Claude Code Writing and testing research code with an AI assistant Claude Code
MCP Servers Connecting PAIS to external tools and data sources MCP Servers

Choosing a framework

flowchart TD
    Q1{Do you need\nto index documents?}
    Q1 -->|Yes| Q2{Complex retrieval\nor multi-index?}
    Q1 -->|No| Q3{Need tool use\nor agents?}
    Q2 -->|Yes| LI[LlamaIndex]
    Q2 -->|No| LC[LangChain]
    Q3 -->|Yes| LC
    Q3 -->|No| OAI[OpenAI SDK]
    Q0{Writing/debugging\nresearch code?} --> CC[Claude Code]

Start with the OpenAI SDK if you're writing a simple pipeline or script — it has the least overhead and the most direct control. Move to LangChain or LlamaIndex when you need document retrieval, complex chains, or multi-step agents.

Environment setup (all frameworks)

All frameworks need the same two environment variables:

export PAIS_API_KEY="pais-sk-..."
export PAIS_API_BASE="https://api.pais.auckland.ac.nz/v1"

Add these to your shell profile or a .env file at the root of your project. Never commit the key.