← All work
Product · 2023

Early Function-Calling Agent with LlamaIndex

Overview

An early (2023) internal build exploring function-calling agents with the LlamaIndex library, wiring an LLM to callable tools and a small toy domain to see how tool-using agents behave. A hands-on R&D spike during the first wave of LLM agent tooling.

Why It Exists

When function-calling and tool use first landed, we needed direct experience with how to define tools, route an LLM’s tool calls, and combine that with indexing/RAG. This repo (described in-repo as a llamaindex-with-functions test) is that exploration.

What We Built

A Python project pinning early-era versions of the ecosystem, llama-index 0.6.32, langchain 0.0.211, openai 0.27.8, plus Flask and Streamlit for interfaces and weaviate-client for vector storage. It includes an agent.py and an agents/ package, a cargame.py toy domain with its own cargame_tools/ (a small set of callable functions for the agent to invoke), a llama.py indexing module, a chat interface, and chat_history.jsonl. A Dockerfile packages it up.

Technologies & Approach

LlamaIndex and LangChain for agent/index orchestration, OpenAI models for reasoning, Weaviate for vectors, tiktoken for token accounting, and Flask/Streamlit for UI. This is a build against the libraries (not a fork of them), framed honestly as early-adopter learning.

Outcome / Impact

Built early, practical familiarity with function-calling agents, tool routing, and RAG at a time when the patterns were brand new, foundational experience that informed later agent work.

Capabilities Demonstrated

  • Early adoption of function-calling / tool-using LLM agents
  • Hands-on LlamaIndex + LangChain orchestration
  • RAG and vector-store (Weaviate) iterative development
  • Designing custom tool sets for an agent to call
More work See all →