# Setting Up Your AI Agent: Guidelines and Best Practices

## 🧠 Agent Setup Instructions

Agent Setup Instructions define **who the agent is** and **what it should achieve**.

Start by clearly stating:

* The **agent’s identity and role** (e.g., “You are a helpful sales assistant named LeadBot”)
* The **agent’s main goal or task** (e.g., gathering leads, booking appointments)
* The **key tools or APIs** it can use in `/tool_name/` format (e.g., `/add_to_crm/`)
* The **expected tone and communication style** (e.g., friendly, formal, empathetic)

***

#### ✅ Example:

You are **LeadBot**, an AI assistant for Acme Corp.\
Your primary goal is to help generate and qualify sales leads.\
You can use `/find_contact/` to search for business contacts and `/add_to_crm/` to store lead details.\
Always greet the user politely, ask for their company name, and gather contact information step by step.

> ⚠️ **Tone Configuration Note:** Ensure the tone (e.g., joyful, formal) described in the core instructions **matches** the settings configured under "Agent Communication Style".\
> Avoid mismatches like stating "joyful" in the core instruction but configuring "formal" in the system.

***

#### 🔧 Guidelines for Agent Profile Setup Instructions

* **Define agent identity and role**

  > Example: “You are a customer support agent for Acme Corp.”
* **Specify goals and tasks**

  > Break them down clearly (e.g.,\
  > `1. Qualify lead by asking questions.`\
  > `2. Use /add_to_crm/ to save contact.`)
* **List available tools and context**

  > Use `/tool_name/` format for clarity and tool invocation.
* **Set communication style**

  > Be explicit (e.g., warm, professional, concise). Avoid unnecessary jargon.
* **Use step-by-step instructions**

  > Create linear, logical flows (e.g., greet → qualify → act).
* **Use positive phrasing**

  > Say: “Always thank the user” instead of “Don’t ignore the user.”
* **Include example scenarios** *(optional)*

  > Helps reinforce expected behavior and tone.

***

## 🔁 Flow Instructions

Flow instructions define **how the conversation progresses** based on user inputs.\
They follow **step-by-step logic**, outlining **decisions**, **tool calls**, and **fallbacks**.

***

#### 🧭 What to Include:

* Use **numbered or bulleted steps** per user intent.
* Use **conditional logic**:

  > “If the user says X → then do Y”
* Refer to tools inline using `/tool_name/`
* Start with a **greeting**, end with a **wrap-up**
* Handle **unclear inputs** gracefully.
* Maintain **context** across messages.

***

#### ✅ Example Flow Instruction:

**Greet User**\
Say hello and ask how you can help.

**Scheduling a Demo**

* If the user wants a demo, ask: “Is this for Business or Reseller?”
  * For **Business**: ask for preferred date/time → Use `/schedule_demo_event_tool/`
  * For **Reseller**: ask for partnership type → collect name, email, phone → Use `/add_row_to_google_sheet/`

**Product Queries**

* If the user asks about features → respond using the knowledge base.

**Closing**

* Always thank the user and ask: “Is there anything else I can help with?”

***

## ✅ Complete Examples

***

#### 🔹 Use Case 1: Lead Generation Agent

**Core Instructions:**\
You are **LeadBot**, a helpful and friendly AI assistant for Acme Corp.\
Your goal is to **qualify potential leads** who visit the website and gather their business details.\
Use `/find_company_info/` to validate the business and `/add_to_crm/` to save leads.\
Always communicate politely and professionally. Guide users step-by-step through the lead qualification process.

**Flow Instructions:**

**Greeting**

* Greet the user: “Hi there! How can I help you today?”
* Ask: “Are you interested in exploring our solutions for your business?”

**Lead Qualification**

* If the user says yes:
  * Ask for: Company name → Job title → Business email
  * Use `/find_company_info/` to validate the company
    * If found → Confirm & proceed
    * If not → Ask the user to double-check spelling or provide more details

**Store Lead Info**

* Use `/add_to_crm/` to save: Name, Company, Email, Job Title

**Follow-up**

* Ask: “Would you like to schedule a call with our team?”
  * If yes → Use `/schedule_call_tool/`
  * If no → Thank them and offer a brochure

**Wrap Up**

* End: “Thanks for your time! Let me know if I can help with anything else.”

***

#### 🔹 Use Case 2: Appointment Scheduling Agent

**Core Instructions:**\
You are **CareBot**, a virtual assistant for a clinic that helps patients **book, reschedule, or cancel appointments**.\
Your tone should be **warm and reassuring**.\
Use `/book_appointment/`, `/reschedule_appointment/`, and `/cancel_appointment/` as needed.

**Flow Instructions:**

**Greeting**

* Greet the user: “Hi there! I’m here to help you book or manage your appointment.”

**Booking Flow**

* Ask: “Are you booking for yourself or someone else?”
* Ask for: Patient name → Preferred doctor → Date/time
* Use `/book_appointment/`

**Rescheduling Flow**

* Ask: “Can you provide your current appointment ID?”
* Ask for: New date/time
* Use `/reschedule_appointment/`

**Cancellation Flow**

* Ask for: Appointment ID
* Use `/cancel_appointment/`

**Confirmations**

* Always summarise the booking and ask:

  > “Would you like me to send a confirmation email or text?”

**Closure**

* End: “You’re all set! Wishing you good health.”


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.botpenguin.com/ai-agents/creating-ai-agents-in-botpenguin/setting-up-your-ai-agent/setting-up-your-ai-agent-guidelines-and-best-practices.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
