Interface: Skill
Defined in: packages/core/src/skill.ts:35
A loadable, triggerable capability: instructions + the tools they use.
Pass an array of Skills to BaleybotConfig.skills. Construct them with
the skill helper, or as plain object literals.
Properties
description
description:
string
Defined in: packages/core/src/skill.ts:45
Third-person "what it does AND when to use it". This is the model-facing trigger signal and is always present in the prompt (tier-1, ~one line).
instructions
instructions:
string| ((input) =>string|Promise<string>)
Defined in: packages/core/src/skill.ts:56
The instruction body (tier-2), loaded only when the skill is triggered. A function receives the turn input for dynamic instructions.
keywords?
optionalkeywords?:string[]
Defined in: packages/core/src/skill.ts:51
Deterministic triggers — words or phrases. When any appears in the turn input (case-insensitive, on word/phrase boundaries) the skill's full instructions are spliced into the system prompt automatically.
name
name:
string
Defined in: packages/core/src/skill.ts:40
Unique handle (kebab-case recommended). Used as the load_skill enum
value, the keyword-index key, and the toolGroup suffix (skill:<name>).
tools?
optionaltools?:Record<string,ZodToolDefinition<any,any>> |ZodToolDefinition<any,any>[]
Defined in: packages/core/src/skill.ts:67
Tools this skill needs. Hoisted into the bot's tool map up front and
auto-tagged toolGroup: 'skill:<name>' (unless the tool sets its own
group). Accept an array (keyed by tool.name) or a name→tool record.
Typed with any schema generics so tools built by tool() (which carry
a narrowed input schema) assign without a cast — the same variance escape
the SDK uses elsewhere (e.g. ModelProvider<any, any>).