<< All versions

Skill v1.0.0

currentAutomated scan100/100
golemcloud/golem/golem-annotate-agent-effect
──Details
PublishedOctober 21, 2026 at 04:35 PM
Content Hashsha256:fae81189ec42f7f0...
Git SHA5bb18b22517c
──Files
Files (1 file, 2.8 KB)
SKILL.md2.8 KBactive
SKILL.md · 71 lines · 2.8 KB

version: "1.0.0" name: golem-annotate-agent-effect description: "Adding prompt hints and descriptions to Effect-based Golem agents and methods. Use when an @golemcloud/effect-golem agent needs AI/LLM discovery metadata or human-readable method documentation."


Annotating Effect Agents and Methods

Effect Golem agents declare AI/LLM discovery metadata as fields in their defineAgent(...) and method(...) specs. Do not translate decorator syntax from another SDK: Effect agents do not use annotation decorators.

Metadata Fields

  • Top-level description describes the agent type and its overall purpose.
  • Top-level promptHint, when needed, tells an LLM when to construct or select an agent instance.
  • Method-level promptHint tells an LLM when to invoke that method.
  • Method-level description documents the method's behavior, inputs, outputs, and edge cases.

The method name exposed by Golem is the key in the methods record, so use TypeScript camelCase there. A request for a method's “prompt” annotation maps to the Effect SDK's promptHint field.

Agent and Method Metadata

Set agent metadata directly on the defineAgent spec and method metadata directly inside method(...):

typescript
import { Effect, Schema } from "effect";
import { defineAgent, method } from "@golemcloud/effect-golem";
export const CounterAgent = defineAgent({
name: "CounterAgent",
description: "A test counter agent for tracking numeric values",
mode: "durable",
id: {
count: Schema.Number,
},
methods: {
getDouble: method({
input: {},
success: Schema.Number,
promptHint: "Get the doubled value of the counter",
description:
"Returns the current count multiplied by two. Useful for scaling operations.",
}),
},
}).implement({
init: ({ count }) => Effect.succeed(count),
methods: (count) => ({
getDouble: () => Effect.succeed(count * 2),
}),
});

When editing an existing stateful agent, preserve its snapshot and implementation structure. Add the method spec under methods, then add a matching Effect-returning handler to the object returned by methods. Metadata belongs only on the specs; it does not change handler behavior.

Key Constraints

  • Import defineAgent and method from @golemcloud/effect-golem, and Effect and Schema from

effect.

  • Use description and promptHint, not prompt, decorator syntax, or helpers from

@golemcloud/golem-ts-sdk.

  • Keep method input, success, and optional error schemas unchanged when adding metadata.
  • Both metadata fields are optional; omit them for methods that should not carry discovery hints.
  • Keep the top-level .implement({ ... }) registration and the implementation module's side-effect

import from src/main.ts.

  • Run golem build and redeploy after changing metadata so discovery reports the new values.
All versions