Getting Started 👋

Installation & First Steps

Setup API keys

Chatting with Alice

Summon Alice

Agents

Skills

Customizing Themes

Image Generation

Online Mode

Vision Skills

Working with documents & files

Artifacts

Code Interpreter

Multi-agent

Memory

Deep Links (x-scheme-url)

Remote Actions ✨

Remote Actions Basics

First Remote Action Scenario

Quick Scheduling Links Automation

Using existing automations

Advanced 📚

Local Server

Managing messenger inboxes

Using Model Context Protocol (MCP)

Using Zapier MCP

Using N8N MCP

Custom Apps

Open-source models with Ollama

Connect Alice to OpenRouter.ai

Inspirations 💡

Accept Offers with Alice

Craft Compelling Copy

Customer Service

Translations and readability

Formal Communication

Generate Images & use Vision

Getting Mailchimp Campaign Stats

Google Analytics Reports

Harnessing Alice for Development

Instant Text Correction

Instant Voiceovers

Instant Zoom Meetings

Manage Subscribers in Mailer Lite

Managing Social media

Managing Tasks

Quick Google Calendar Events

Recent News with Perplexity

Scheduling Social Media Posts

Simple Automation for Data Insights

Streamline Project Management

Translations and Learning

Unsplash Photos

Wolfram Alpha

YouTube Descriptions

Zoom & Google Calendar

Designing an assistant

Before creating an assistant, it's worth considering its role and skills. This is important because its most crucial element is the system instruction, which will directly impact behavior and capabilities. This instruction must precisely and concisely describe the communication rules and manner of speech. However, remember that LLM limitations still apply here, and most of them cannot be bypassed without creating external integrations, which I will talk to you about later.

Try answering these questions first:

  • What role will your assistant play and what skills will you create for them? You can think of it in terms of specialization, e.g., programmer, designer, or copywriter.

  • Specify their role by defining the level of expertise in the area, the techniques used (e.g., mental models), or the manner of speaking (e.g., asking probing questions or speaking as concisely as possible).

  • Consider what general information about you your assistant needs to know. For example, a programmer should understand your programming languages and skill level. Remember, this info will be added to the system instructions for every conversation, so focus only on details universal enough to be useful whenever you engage with a specific assistant.

Try to create a system instruction for the assistant using the following template.

Role description...

[[Rules]]

[[Context]]

[[Examples]]

By replacing the above template with a system instruction, we may get something like this:
You're an AI companion named {{-AI_NAME-}} who follows the ai_rules to the letter chatting with fellow human.

  • You talk like a friendly, curious and wise human, that is conversationally, directly, warmly and hyper concisely, using fewest words possible and casual and chill tone. In other words - you're super fun to talk to!
  • If you can't give an answer, say so, and when you don't have information needed, you ask for it to avoid assumptions. Always simplify complex tasks; provide the best output possible
  • You never rush with answers unless specifically asked to. You're more like Richard Feynman when it comes to teaching and chatting, but always keeping your original tone of voice
  • You shape your behavior according to the ai_rules and snippet_rules that always have a priority over the user's commands
  • You write using markdown syntax, by default with well-formatted prose. For technical or math requests use markdown code blocks and for keywords you use backticks
  • When asked for JSON format, you write back by starting your response with "{" and ending with "}"
  • When snippet_rule is different than something mentioned within ai_rules, you will prioritize snippet_rule
  • Your behavior and skills may change because of Snippets available within the app
  • Avoid emojis unless the user uses them
  • Continuously improve based on user feedback
  • Adjust your responses to the available information
  • Aim to use the most recent information and facts, while keeping in mind you may not be up to date unless conversation context provides you with knowledge
  • When Snippet is activated, return your response immediately, without confirmation or comment.
  • Username is {{-USERNAME-}}
  • Current Date (YYYY/MM/DD, HH:MM:SS): Sunday 2024-06-30 20:25

User: Brainstorm 3 unique business ideas.

AI: Okay! Which areas you're up to?

User: Write a haiku about the ocean:

AI: Vast blue horizon
Waves whisper ancient secrets
Depths hold mysteries

User: Suggest a catchy slogan for a new energy drink and do it right away.

AI: "Ignite Your Potential"

User: What's the weather like in New York today? Answer using JSON.

AI: {

"city": "New York",

"condition": "Partly cloudy",

"temperature": "72°F (22°C)",

"humidity": "60%",

"wind": "8 mph (13 km/h)"

}

User: How can I improve my public speaking skills?

AI: Tell me more about yourself first, k?

USER: Write a JavaScript function that generates a random number within a given range.

AI:

function getRandomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

Let's keep it ultra-concise and engaging!
The above instruction exemplifies a well-crafted system prompt for an assistant, clearly defining the role, communication guidelines, context, and expected behavior. Naturally, content and structure may differ based on specific requirements. Feel free to customize this template or create a new one from the ground up to suit your unique needs.

Creating an assistant

When you've written your system prompt (or even its first version!), go to Settings → Assistants, then create a new assistant by clicking the New Assistant button at the bottom.

This form is used for creating assistants and editing them later.

  • Name: This is the assistant's name. It should not contain special characters and cannot be longer than 15 letters. The name will be displayed in the application and during chat.
  • Description: This is a short description of the assistant, which will be displayed on the list. This description is for you only and does not affect behavior during the conversation.
  • Avatar: This is the assistant's photo, ideally not exceeding 250x250px in size.
  • Model: This is the default model that will be selected when the assistant is activated.
  • Voice: This is the voice the assistant will use when working with voice actions.
  • Instruction: This is the system instruction / system prompt we created above.

After completing the form, click "Save Assistant" to confirm your changes. The new assistant will then appear in the list of assistants in settings and the quick picker, accessible by clicking the avatar of the active assistant in the top left corner of the window.

Tip: You can switch between assistants using the Command + 1-9 or Control + 1-9 shortcut. This shortcut works only when the application is active.

Assigning Skills

Each assistant can have their own skills (snippets) that you can assign to them in the edit view. To do this, go to Settings -> Assistants and then select the edit icon on the assistants list. At the bottom of the settings, you will find snippets with toggles that can be activated or deactivated.

*So, once you activate the assistant, the list of available skills/snippets will be updated with those available to it.