diff --git a/samples/spring-ai-agent/README.md b/samples/spring-ai-agent/README.md
index 06805ec5..fd742b5c 100644
--- a/samples/spring-ai-agent/README.md
+++ b/samples/spring-ai-agent/README.md
@@ -6,19 +6,8 @@
## Examples HTTP requests
chat-requests.http
-## Prerequisite for external memory: PostgreSQL, for application started locally without container
-```
-docker run --name my-postgres \ ✘ 125
--e POSTGRES_DB=ai-agent-db \
--e POSTGRES_USER=chatuser \
--e POSTGRES_PASSWORD=chatpass \
--p 5432:5432 \
--d pgvector/pgvector:pg16
-```
+## Run locally
+Run with test run to connect a pg-vector test containers for local dev
-## Build Docker Image with JIB plugin
-- mvn compile jib:dockerBuild
-
-## Run postgres and spring-ai-agent containers
-docker-compose up
+`mvn spring-boot:test-run`
diff --git a/samples/spring-ai-agent/pom.xml b/samples/spring-ai-agent/pom.xml
index 86ea36db..5bc84d4a 100644
--- a/samples/spring-ai-agent/pom.xml
+++ b/samples/spring-ai-agent/pom.xml
@@ -42,12 +42,20 @@
org.springframework.ai
spring-ai-starter-model-bedrock-converse
+
+ org.springframework.ai
+ spring-ai-starter-model-bedrock
+
org.springframework.ai
spring-ai-starter-vector-store-pgvector
+
+ org.springframework.ai
+ spring-ai-advisors-vector-store
+
@@ -83,11 +91,21 @@
${testcontainers.version}
test
+
+ org.springframework.boot
+ spring-boot-testcontainers
+ test
+
org.springframework.boot
spring-boot-starter-test
test
+
+ org.springframework.boot
+ spring-boot-devtools
+ test
+
diff --git a/samples/spring-ai-agent/src/test/java/com/aws/workshop/ai/agent/TestAiAgentApplication.java b/samples/spring-ai-agent/src/test/java/com/aws/workshop/ai/agent/TestAiAgentApplication.java
new file mode 100644
index 00000000..5eaf7847
--- /dev/null
+++ b/samples/spring-ai-agent/src/test/java/com/aws/workshop/ai/agent/TestAiAgentApplication.java
@@ -0,0 +1,46 @@
+
+import com.aws.workshop.ai.agent.AiAgentApplication;
+import org.springframework.ai.document.Document;
+import org.springframework.ai.vectorstore.VectorStore;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.devtools.restart.RestartScope;
+import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.testcontainers.containers.PostgreSQLContainer;
+import org.testcontainers.junit.jupiter.Testcontainers;
+import org.testcontainers.utility.DockerImageName;
+
+import java.util.List;
+import java.util.Map;
+
+public class TestAiAgentApplication {
+
+
+ public static void main(String[] args) {
+ System.out.println("!!!!!Starting test application");
+ System.setProperty("spring.sql.init.mode", "always");
+ SpringApplication.from(AiAgentApplication::main)
+ .with(TestContainersConfiguration.class)
+ .run(args);
+ }
+}
+
+
+@Configuration
+@Testcontainers
+class TestContainersConfiguration {
+
+ @Bean
+ @ServiceConnection
+ @RestartScope
+ PostgreSQLContainer> postgreSQLContainer() {
+ System.out.println("Starting postgreSQL container");
+ var image = DockerImageName.parse("pgvector/pgvector:pg16")
+ .asCompatibleSubstituteFor("postgres");
+ return new PostgreSQLContainer<>(image);
+ }
+}
+
+
diff --git a/samples/spring-ai-agent/src/test/resources/application-test.yaml b/samples/spring-ai-agent/src/test/resources/application-test.yaml
new file mode 100644
index 00000000..f37fdbe1
--- /dev/null
+++ b/samples/spring-ai-agent/src/test/resources/application-test.yaml
@@ -0,0 +1,14 @@
+spring:
+ sql:
+ init:
+ mode: always
+ jpa:
+ hibernate:
+ ddl-auto: none
+ datasource:
+ driver-class-name: org.postgresql.Driver
+ ai:
+ vectorstore:
+ pgvector:
+ dimensions: 1024
+ initialize-schema: true