Skip to content

Commit 0cdad18

Browse files
authored
Merge pull request #155 from joreilly/adk_update
ADK Java 0.2.0 + add FunctionTool
2 parents ca9f633 + 66cc12a commit 0cdad18

File tree

3 files changed

+44
-10
lines changed

3 files changed

+44
-10
lines changed

agents/build.gradle.kts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff 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
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}

agents/src/main/kotlin/adk/adk_agent.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.google.adk.agents.LlmAgent
66
import com.google.adk.events.Event
77
import com.google.adk.models.Gemini
88
import com.google.adk.runner.InMemoryRunner
9+
import com.google.adk.tools.LongRunningFunctionTool
910
import com.google.adk.tools.mcp.McpToolset
1011
import com.google.genai.Client
1112
import 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

0 commit comments

Comments
 (0)