What problem does it solve?
Coordinating work between agents in a Golem application requires calling remote agents and awaiting their results, but doing this incorrectly can cause deadlocks or misuse of the generated client APIs. This Skill provides the exact patterns for agent-to-agent RPC in Scala Golem projects.
Core Features & Use Cases
- Awaited RPC Calls: Obtain a generated client via
CounterAgentClient.get(...) and call methods that return genuinely async Future results while the calling agent suspends.
- Multiple Call Modes: Use cancelable calls returning a
(Future, CancellationToken) pair, fire-and-forget .trigger() calls, and scheduled invocations with scheduleAt.
- Cross-Component RPC: Call agents defined in other components using bridge SDK code generated by
golem build from dependencies declared in golem.yaml.
- Use Case: An orchestrator agent needs to increment a counter agent and read its state. Use this Skill to get the client, await
increment() and getCount() concurrently, and avoid RPC cycles that deadlock both agents.
Quick Start
Show me how to call another Golem agent from my Scala agent and await the result without deadlocking.