Annotating Agents and Methods (TypeScript)

SkillDocs & knowledge

Adds descriptive labels and docs to your TypeScript agent code so other AI systems can find and understand its functions.

Available today. Use it from your connected AI after setup.

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

Then ask your AI: use the Annotating Agents and Methods (TypeScript) skill

About this skill

Adding prompt and description annotations to TypeScript agents and their methods. Use when the user asks to add descriptions, prompts, or documentation metadata to agent classes or methods for AI/LLM discovery.

What this skill tells your AI

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

Overview

Golem agents can annotate the agent and its methods with human-readable metadata. This metadata drives AI/LLM tool discovery — agents with annotations can be used as tools by LLM-based systems. In the TypeScript SDK the annotations are plain fields on the defineAgent(...) spec and on each method(...).

Annotations

  • promptHint — a short instruction telling an LLM when to call this method
  • description — a longer explanation of what the agent or method does, its parameters, and return value

Agent-Level Annotations

To describe the agent itself (its overall purpose), set description (and optionally promptHint) as top-level fields on the defineAgent(...) spec:

import { z } from 'zod';
import { defineAgent, method, http } from '@golemcloud/golem-ts-sdk';

export const ProfileAgent = defineAgent({
    name: 'ProfileAgent',
    description: 'Handles user profile management and preferences',
    id: { userId: z.string() },
    http: http.mount('/api/v1/profiles/{userId}'),
    methods: { /* ... */ },
});

Method-Level Annotations

Set description and promptHint inside the method({...}) call for each method:

import { z } from 'zod';
import { defineAgent, method, http } from '@golemcloud/golem-ts-sdk';

export const InventoryAgent = defineAgent({
    name: 'InventoryAgent',
    description: 'Manages product inventory for a warehouse',
    id: { warehouseId: z.string() },
    http: http.mount('/warehouses/{warehouseId}'),
    methods: {
        checkStock: method({
            input: { sku: z.string() },
            returns: z.number(),
            promptHint: 'Look up the current stock level for a product',
            description:
                'Returns the number of units in stock for the given product SKU. Returns 0 if the product is not found.',
        }),
        restock: method({
            input: { sku: z.string(), quantity: z.number() },
            returns: z.number(),
            promptHint: 'Add units of a product to inventory',
            description:
                'Increases the stock count for the given SKU by the specified amount. Returns the new total.',
        }),
        pick: method({
            input: { sku: z.string(), quantity: z.number() },
            returns: z.number(),
            promptHint: 'Remove units of a product from inventory',
            description: 'Decreases the stock count for the given SKU. Throws if insufficient stock.',
        }),
    },
});

Guidelines

  • description on the agent spec describes the agent's overall purpose for LLM discovery
  • promptHint on a method should be a natural-language instruction an LLM can match against a user request
  • description on a method should document behavior, edge cases, and expected inputs/outputs
  • All of these fields are optional — omit them for internal methods not intended for LLM discovery
  • Annotations have no effect on runtime behavior; they are purely metadata

Signals

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