@@ -67,12 +67,39 @@ spring.ai.mcp.client.enabled=true
6767spring.ai.mcp.client.type =SYNC
6868spring.ai.mcp.client.request-timeout =60s
6969spring.ai.mcp.client.root-change-notification =false
70- # STDIO Connect: Brave Search
70+ # Brave Search
7171spring.ai.mcp.client.stdio.connections.brave.command =server-brave-search
7272spring.ai.mcp.client.stdio.connections.brave.args[0] =--transport
7373spring.ai.mcp.client.stdio.connections.brave.args[1] =stdio
7474spring.ai.mcp.client.stdio.connections.brave.env.BRAVE_API_KEY =${BRAVE_API_KEY}
7575spring.autoconfigure.exclude =org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration
76+ # CircuitBreaker
77+ resilience4j.circuitbreaker.configs.default.slidingWindowType =COUNT_BASED
78+ resilience4j.circuitbreaker.configs.default.slidingWindowSize =10
79+ resilience4j.circuitbreaker.configs.default.failureRateThreshold =50
80+ resilience4j.circuitbreaker.configs.default.slowCallDurationThreshold =5s
81+ resilience4j.circuitbreaker.configs.default.slowCallRateThreshold =70
82+ resilience4j.circuitbreaker.configs.default.minimumNumberOfCalls =6
83+ resilience4j.circuitbreaker.configs.default.waitDurationInOpenState =30m
84+ resilience4j.circuitbreaker.configs.default.permittedNumberOfCallsInHalfOpenState =1
85+ resilience4j.circuitbreaker.configs.default.automaticTransitionFromOpenToHalfOpenEnabled =true
86+ resilience4j.circuitbreaker.instances.openai.baseConfig =default
87+ resilience4j.circuitbreaker.instances.claude.baseConfig =default
88+ resilience4j.circuitbreaker.configs.default.ignoreExceptions[0] =org.springframework.web.reactive.function.client.WebClientResponseException.BadRequest
89+ resilience4j.circuitbreaker.configs.default.ignoreExceptions[1] =org.springframework.web.reactive.function.client.WebClientResponseException.Unauthorized
90+ resilience4j.circuitbreaker.configs.default.ignoreExceptions[2] =org.springframework.web.reactive.function.client.WebClientResponseException.Forbidden
91+ resilience4j.circuitbreaker.configs.default.ignoreExceptions[3] =org.springframework.web.reactive.function.client.WebClientResponseException.NotFound
92+ # Retry
93+ resilience4j.retry.configs.default.maxAttempts =2
94+ resilience4j.retry.configs.default.waitDuration =200ms
95+ resilience4j.retry.configs.default.enableExponentialBackoff =true
96+ resilience4j.retry.configs.default.exponentialBackoffMultiplier =2
97+ resilience4j.retry.instances.openai.baseConfig =default
98+ resilience4j.retry.instances.claude.baseConfig =default
99+ resilience4j.retry.configs.default.ignoreExceptions[0] =org.springframework.web.reactive.function.client.WebClientResponseException.BadRequest
100+ resilience4j.retry.configs.default.ignoreExceptions[1] =org.springframework.web.reactive.function.client.WebClientResponseException.Unauthorized
101+ resilience4j.retry.configs.default.ignoreExceptions[2] =org.springframework.web.reactive.function.client.WebClientResponseException.Forbidden
102+ resilience4j.retry.configs.default.ignoreExceptions[3] =org.springframework.web.reactive.function.client.WebClientResponseException.NotFound
76103# MAIL
77104spring.mail.host =smtp.gmail.com
78105spring.mail.port =587
0 commit comments