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.