---
title: "Overview"
description: "Core concepts in the Agent User Interaction Protocol SDK"
---

# ag-ui-core

The Agent User Interaction Protocol SDK uses a streaming event-based
architecture with strongly typed data structures. This package provides the
foundation for connecting to agent systems.

```xml
<dependency>
  <groupId>com.ag-ui</groupId>
  <artifactId>core</artifactId>
  <version>0.0.1</version>
</dependency>
```

## Types

Core data structures that represent the building blocks of the system:

- RunAgentInput — Input parameters for running agents
- Message — User/assistant communication and tool usage
- Context — Contextual information provided to agents
- Tool — Defines functions that agents can call
- State — Agent state management

<Card
  title="Types Reference"
  icon="cube"
  href="/sdk/java/core/types"
  color="#3B82F6"
  iconType="solid"
>
  Complete documentation of core types in the Java SDK
</Card>

## Events

Events that power communication between agents and frontends:

- Lifecycle Events — Run and step tracking
- Text Message Events — Assistant message streaming
- Tool Call Events — Function call lifecycle
- State Management Events — Agent state updates
- Special Events — Raw and custom events

<Card
  title="Events Reference"
  icon="cube"
  href="/sdk/java/core/events"
  color="#3B82F6"
  iconType="solid"
>
  Complete documentation of all events in the Java SDK
</Card>
