Build a local-first Java or Kotlin Google ADK agent service with explicit tools, model capability checks, evaluation fixtures, and draft-before-write promotion.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add gaelic-ghost/socket --skill build-jvm-agent-service --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Build Jvm Agent Service?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gaelic-ghost-build-jvm-agent-service-socket)More formats (shields.io, HTML) on the badges page.
---
name: build-jvm-agent-service
description: Build a local-first Java or Kotlin Google ADK agent service with explicit tools, model capability checks, evaluation fixtures, and draft-before-write promotion.
license: Apache-2.0
compatibility: Designed for Codex and compatible Agent Skills clients working with Java or Kotlin server-side JVM services on macOS or other supported JVM environments.
metadata:
owner: gaelic-ghost
repo: socket
category: jvm-agent-service
allowed-tools: Read Bash(rg:*) Bash(git:*) Bash(java:*) Bash(./gradlew:*) Bash(mvn:*) Bash(sbt:*)
---
# Build JVM Agent Service
Use this skill after `choose-service-shape` identifies a JVM service and the
application needs Google Agent Development Kit (ADK), not merely one model API
call. Keep Java/Kotlin domain behavior independent from ADK orchestration at
the application edge.
## Source Check
- Google ADK: <https://adk.dev/>
- ADK Java API: <https://google.github.io/adk-docs/api-reference/java/>
- Java: <https://docs.oracle.com/en/java/>
- Kotlin: <https://kotlinlang.org/docs/home.html>
Confirm the exact ADK language/runtime and model adapter before changing code.
ADK documents local-model adapters, but an Ollama-compatible endpoint must
still pass the exact model capability gate below.
## Workflow
1. Keep the existing Java/Kotlin language decision and build tool; do not add a
second JVM language merely for an agent library.
2. Define the non-agent baseline, typed request/result, model endpoint/exact
model, allowed tools, and no-op behavior.
3. Use one ADK agent with narrow read-only function or MCP tools. The executor
validates authorization, schema, timeout, and result shape independently of
model output.
4. Prove the exact server/model combination can make valid tool calls, return
schema-conforming structured output, decline unnecessary calls, recover from
malformed calls, and stop at a maximum-step boundary.
5. Add sessions, memory, graph workflows, A2A, or persistence only when the
product visibly needs resume, routing, or cross-agent behavior. Document
retention, restart recovery, and migrations.
6. Test fake tools first, then model-adapter integration in a read-only or
disposable environment. Report attempted and executed side effects apart.
7. Promote external writes only through `auto-with-escalation` with the exact
target, action, evidence, and approval point named.
## Validation
Use the existing build owner: `./gradlew test`, `mvn test`, or `sbt test`.
Include unit tests for domain/tool authorization, agent workflow tests with
fake tools, and an opt-in local-model capability smoke test. Do not make a
downloaded model or live endpoint a normal unit-test prerequisite.
## Guardrails
- Do not make Gemini or Google Cloud a required dependency of a local-first
service unless the product explicitly chooses it.
- Do not expose an agent API publicly or start a background runtime by default.
- Do not trust an agent instruction as an authorization boundary.
- Do not add A2A, MCP, graphs, or multi-agent delegation without a concrete
caller and a testable state/recovery need.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!