Annotating Effect Agents and Methods

SkillDocs & knowledge

Lets your agent add prompt hints and readable descriptions to Effect-based Golem agent methods.

Use Annotating Effect Agents and Methods in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Annotating Effect Agents and Methods and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Annotating Effect Agents and Methods skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Annotating Effect Agents and MethodsStart free
About this skill

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.

What this skill tells your AI

The instructions your AI receives, as published by golemcloud/golem in golem-skills/skills/effect/golem-annotate-agent-effect/SKILL.md and read by ahel’s review.

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(...):

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.

Signals

GitHub stars
2k
Forks
210
Last commit
Oct 2026
Advanced
Item type
skill
Key
golem-annotate-agent-effect
Source
github.com/golemcloud/golem