2eae25dc34
Added a bit of enhanced context for better agentic coding, based on this [Discord conversation](https://discord.com/channels/1130383047699738754/1130383048173682821/1501538550301331477). --------- Co-authored-by: Félix Malfait <felix@twenty.com> Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
70 lines
2.6 KiB
Plaintext
70 lines
2.6 KiB
Plaintext
---
|
|
title: Skills & Agents
|
|
description: Define AI skills and agents for your app.
|
|
icon: "robot"
|
|
---
|
|
|
|
<Warning>
|
|
Skills and agents are currently in alpha. The feature works but is still evolving.
|
|
</Warning>
|
|
|
|
Apps can define AI capabilities that live inside the workspace — reusable skill instructions and agents with custom system prompts.
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="defineSkill" description="Define AI agent skills">
|
|
|
|
Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation:
|
|
|
|
```ts src/skills/example-skill.ts
|
|
import { defineSkill } from 'twenty-sdk/define';
|
|
|
|
export default defineSkill({
|
|
universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
|
|
name: 'sales-outreach',
|
|
label: 'Sales Outreach',
|
|
description: 'Guides the AI agent through a structured sales outreach process',
|
|
icon: 'IconBrain',
|
|
content: `You are a sales outreach assistant. When reaching out to a prospect:
|
|
1. Research the company and recent news
|
|
2. Identify the prospect's role and likely pain points
|
|
3. Draft a personalized message referencing specific details
|
|
4. Keep the tone professional but conversational`,
|
|
});
|
|
```
|
|
|
|
Key points:
|
|
- `name` is a unique identifier string for the skill (kebab-case recommended).
|
|
- `label` is the human-readable display name shown in the UI.
|
|
- `content` contains the skill instructions — this is the text the AI agent uses.
|
|
- `icon` (optional) sets the icon displayed in the UI.
|
|
- `description` (optional) provides additional context about the skill's purpose.
|
|
|
|
</Accordion>
|
|
<Accordion title="defineAgent" description="Define AI agents with custom prompts">
|
|
|
|
Agents are AI assistants that live inside your workspace. Use `defineAgent()` to create agents with a custom system prompt:
|
|
|
|
```ts src/agents/example-agent.ts
|
|
import { defineAgent } from 'twenty-sdk/define';
|
|
|
|
export default defineAgent({
|
|
universalIdentifier: 'b3c4d5e6-f7a8-9012-bcde-f34567890123',
|
|
name: 'sales-assistant',
|
|
label: 'Sales Assistant',
|
|
description: 'Helps the sales team draft outreach emails and research prospects',
|
|
icon: 'IconRobot',
|
|
prompt: 'You are a helpful sales assistant. Help users with their questions and tasks.',
|
|
});
|
|
```
|
|
|
|
Key points:
|
|
- `name` is the unique identifier string for the agent (kebab-case recommended).
|
|
- `label` is the display name shown in the UI.
|
|
- `prompt` is the system prompt that defines the agent's behavior.
|
|
- `description` (optional) provides context about what the agent does.
|
|
- `icon` (optional) sets the icon displayed in the UI.
|
|
- `modelId` (optional) overrides the default AI model used by the agent.
|
|
|
|
</Accordion>
|
|
</AccordionGroup>
|