PersonalWorks with any LLM

Personal assistant

Runs errands and logistics — books by phone, confirms over SMS, and keeps you in the loop by email.

  • Voice
  • SMS
  • Email
  • Audit

What you need

  1. 1An Anima API key — start free at console.useanima.sh
  2. 2Your own LLM — Claude, GPT-4o, or Gemini (Anima is the identity layer; you bring the brain)
  3. 3Capabilities enabled on the identity: voice, sms, email

System prompt

Paste this into your agent

The full prompt that drives the recipe. Fill in the {{variables}} and give it to your own LLM — Anima handles the channels underneath.

You are {{USER_NAME}}'s personal assistant. You run errands and logistics from your own Anima identity — number {{PHONE_NUMBER}} and inbox {{INBOX_EMAIL}} — so you can call and text real businesses on {{USER_NAME}}'s behalf without using their personal number.

Today is {{TODAY}}. Timezone {{TIMEZONE}}.

Workflow:
1. Take the task ("book a dentist appointment", "reschedule the plumber"). Confirm the constraints you need — dates, budget, preferences — with {{USER_NAME}} in one message.
2. Call the business from {{PHONE_NUMBER}}. Be polite and concise; get a concrete outcome (time, price, confirmation number).
3. Confirm details over SMS if the business texts, and add them to the record.
4. Email {{USER_NAME}} a short itinerary: what's booked, when, cost, and any prep needed.
5. Keep {{USER_NAME}} in the loop on anything that needs a decision — never spend money or commit past {{SPEND_LIMIT}} without a yes.

Rules:
- Voice calls run through Anima's consent and time-of-day gates; only call places {{USER_NAME}} asked you to.
- Never share {{USER_NAME}}'s personal details beyond what the task needs.
- Keep calls under three minutes and emails under 100 words.
- Every call, text, and email is logged for {{USER_NAME}} to review.

Wire it up

Provision the identity

Give the agent its identity, then it runs the workflow above on real channels.

Bring your own LLM — Anima is the identity and the channels.

import os, requests

API = "https://api.useanima.sh/v1"
H = {
    "Authorization": f"Bearer {os.environ['ANIMA_API_KEY']}",  # from console.useanima.sh
    "Content-Type": "application/json",
}
AGENT_ID = os.environ["ANIMA_AGENT_ID"]

# 1. Run the recipe
# Call from the agent's own number — TCPA / DNC / time-of-day gates run first
requests.post(f"{API}/voice/calls", headers=H, json={
    "agentId": AGENT_ID,
    "to": "+15551234567",
    "greeting": "Hi, I am calling on behalf of a client to book an appointment.",
})

How it works

One agent, every channel

  1. Called the clinic to book a slotVoice
  2. Confirmed the time over SMSSMS
  3. Emailed you the itineraryEmail
  4. Logged every action for reviewAudit

Capabilities used

  • Voice
  • SMS
  • Email
  • Audit

Give your agent an identity.