File tree Expand file tree Collapse file tree 3 files changed +44
-10
lines changed Expand file tree Collapse file tree 3 files changed +44
-10
lines changed Original file line number Diff line number Diff line change @@ -7,11 +7,13 @@ dependencies {
77 implementation(libs.koin.core)
88 implementation(" ai.koog:koog-agents:0.2.1" )
99 // implementation("org.slf4j:slf4j-simple:2.0.17")
10- implementation(" com.google.adk:google-adk:0.1.0" )
11- implementation(" com.google.adk:google-adk-dev:0.1.0" )
10+ implementation(" com.google.adk:google-adk:0.2.0" )
11+ implementation(" com.google.adk:google-adk-dev:0.2.0" )
12+
13+ implementation (" org.jetbrains.kotlinx:kotlinx-coroutines-rx3:1.10.2" )
1214
1315 // following needed for AdkWebServer (dev UI)
14- implementation(" org.apache.httpcomponents.client5:httpclient5:5.4.3 " )
16+ implementation(" org.apache.httpcomponents.client5:httpclient5:5.5 " )
1517
1618 implementation(projects.composeApp)
1719}
Original file line number Diff line number Diff line change 1+ package adk
2+
3+ import ai.koog.agents.core.tools.annotations.LLMDescription
4+ import dev.johnoreilly.climatetrace.data.ClimateTraceRepository
5+ import io.reactivex.rxjava3.core.Single
6+ import koin
7+ import kotlinx.coroutines.rx3.rxSingle
8+
9+ class ClimateTraceTool {
10+
11+ companion object {
12+ val climateTraceRepository = koin.get<ClimateTraceRepository >()
13+
14+ @JvmStatic
15+ fun getCountries (): Single <Map <String , String >> {
16+ return rxSingle {
17+ mapOf (" countries" to climateTraceRepository.fetchCountries().toString())
18+ }
19+ }
20+
21+ @JvmStatic
22+ fun getEmissions (countryCode : String , year : String ): Single <Map <String , String >> {
23+ return rxSingle {
24+ mapOf (" emissions" to climateTraceRepository.fetchCountryEmissionsInfo(countryCode, year).toString())
25+ }
26+ }
27+ }
28+ }
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import com.google.adk.agents.LlmAgent
66import com.google.adk.events.Event
77import com.google.adk.models.Gemini
88import com.google.adk.runner.InMemoryRunner
9+ import com.google.adk.tools.LongRunningFunctionTool
910import com.google.adk.tools.mcp.McpToolset
1011import com.google.genai.Client
1112import com.google.genai.types.Content
@@ -25,12 +26,16 @@ class ClimateTraceAgent {
2526 fun initAgent (): BaseAgent {
2627 val apiKeyGoogle = " "
2728
28- val mcpTools = McpToolset (
29- ServerParameters
30- .builder(" java" )
31- .args(" -jar" , " /Users/joreilly/dev/github/ClimateTraceKMP/mcp-server/build/libs/serverAll.jar" , " --stdio" )
32- .build()
33- ).loadTools().join()
29+ // val mcpTools = McpToolset(
30+ // ServerParameters
31+ // .builder("java")
32+ // .args("-jar", "/Users/joreilly/dev/github/ClimateTraceKMP/mcp-server/build/libs/serverAll.jar", "--stdio")
33+ // .build()
34+ // ).loadTools().join()
35+
36+ val getCountriesTool = LongRunningFunctionTool .create(ClimateTraceTool ::class .java, " getCountries" )
37+ val getEmissionsTool = LongRunningFunctionTool .create(ClimateTraceTool ::class .java, " getEmissions" )
38+ val mcpTools = listOf (getCountriesTool, getEmissionsTool)
3439
3540 val model = Gemini (
3641 " gemini-1.5-pro" ,
@@ -47,7 +52,6 @@ class ClimateTraceAgent {
4752 .tools(mcpTools)
4853 .build()
4954 }
50-
5155 }
5256}
5357
You can’t perform that action at this time.
0 commit comments