A minimal Java agentic AI framework for educational purposes.
- Java 21+
- Maven 3.8+
- OpenAI API key (in
.envfile or environment variable)
# Create .env file with your API key
echo "OPENAI_API_KEY=sk-..." > .env
# Run an example
mvn exec:java -Dexec.mainClass="com.myagent.examples.WeatherAgentExample"# Weather Agent - tool calling
mvn exec:java -Dexec.mainClass="com.myagent.examples.WeatherAgentExample"
# Travel Planner - multi-agent workflow
mvn exec:java -Dexec.mainClass="com.myagent.examples.TravelPlannerExample"
# Product Indexer - create vector index
mvn exec:java -Dexec.mainClass="com.myagent.examples.ProductIndexerExample"
# Product Q&A - RAG queries (run indexer first)
mvn exec:java -Dexec.mainClass="com.myagent.examples.ProductQAExample"
# Shopping Assistant - persistent memory
mvn exec:java -Dexec.mainClass="com.myagent.examples.ShoppingAssistantExample"mvn spring-boot:runVisit http://localhost:8080/admin/ to view request logs.
The dashboard displays:
- Token usage stats (prompt, completion, total)
- Request logs grouped by Run ID
- Full request/response JSON for each call
- Navigation between log entries
| Package | Description |
|---|---|
core/ |
Runnable interface, Chain composition |
llm/ |
ChatModel, ChatMessage, OpenAI integration |
prompts/ |
PromptTemplate, ChatPromptTemplate |
tools/ |
@Tool annotation, ToolExecutor |
agents/ |
ChatAgent (ReAct pattern) |
memory/ |
ConversationBufferMemory, FilePersistentMemory |
retrieval/ |
VectorStore, Retriever, TextSplitter |
// Create agent with tools
ChatAgent agent = ChatAgent.builder()
.chatModel(new OpenAIChatModel(apiKey, "gpt-4o-mini"))
.toolExecutor(toolExecutor)
.agentName("MyAgent")
.build();
String response = agent.invoke("What's the weather?");MIT