Documentation
Learn how to build with Karp.
Everything you need to deploy, configure, and manage your Hermes agents.
Quick links
Getting Started
Karp makes it easy to deploy a private Hermes AI agent to the cloud. Follow these steps to get your first agent running.
Create an account
Sign up at karpdo.ai — no credit card required for the free tier.
Click "New Agent"
From the dashboard, click the New Agent button to open the creation wizard.
Configure SOUL.md
Define your agent's personality, goals, and behavior in SOUL.md format.
Choose your LLM
Enter your API key for OpenAI, Anthropic, Google, or any compatible provider.
Connect channels
Optionally link Telegram, Discord, or other platforms for messaging.
Click Deploy
Your agent will be live in about 30 seconds.
Once deployed, visit the agent's detail page in your dashboard to view real-time logs, memory entries, and created skills.
SOUL.md Configuration
SOUL.md is a Markdown file that defines your agent's personality, capabilities, tone, and operating principles. It is injected as a system prompt at the beginning of every session.
You can think of it as a combination of a job description, a personality profile, and a rules document — all in one.
# Agent Identity
You are a personal assistant named Aria, deployed via Karp.
You are proactive, concise, and genuinely helpful.
# Core Goals
- Help the user with research, writing, and task management
- Learn from every interaction to serve them better
- Create skills when you encounter repeatable tasks
# Constraints
- Always confirm before sending emails on the user's behalf
- Do not access external URLs unless explicitly asked
- Respond in the user's language
# Communication Style
- Be direct and efficient — avoid filler phrases
- Use bullet points for lists, prose for explanations
- Occasionally use light humour when appropriateSOUL.md is editable at any time from the agent Settings page. Changes take effect on the next session start.
Tip: The more specific your SOUL.md, the better your agent performs. Include example interactions, known preferences, and recurring tasks.
Channel Setup
Your Hermes agent can receive and send messages across multiple platforms using a single unified memory. Each channel requires a token or webhook URL.
| Channel | How to get token | Notes |
|---|---|---|
Telegram | Message @BotFather → /newbot | Supports commands, inline keyboards, and file uploads |
Discord | discord.com/developers → New App → Bot | Requires MESSAGE_CONTENT intent enabled |
Slack | api.slack.com → Create an App → OAuth | Uses Socket Mode or event subscriptions |
WhatsApp | Meta Business API (WABA) | Pro plan only — requires Meta approval |
WeChat 公眾號 | mp.weixin.qq.com → 服務號 | Dedicated WeChat card in Settings — copy webhook URL + Token to MP backend |
After entering your token in the agent settings, the channel will be listed as Connected with a green indicator. WeChat uses a separate configuration card below the channel list. The agent will begin responding within seconds of receiving its first message.
Memory System
Hermes uses a multi-tier memory architecture that persists across all sessions and channels.
Working Memory
Current session context. Cleared on session end.
Episodic Memory
Summaries of past conversations, searchable by topic.
Semantic Memory
Extracted facts, preferences, and user profile.
Memory entries are visible in the Memory tab of each agent. You can view, search, and delete individual entries. On the Free plan, episodic and semantic memory is retained for 7 days. Paid plans retain memory indefinitely.
Memory consolidation runs automatically after each session — the agent extracts key facts and preferences and stores them as semantic memories for future reference.
Skills & Automation
One of Hermes's most powerful features is autonomous skill creation. When the agent encounters a task it performs repeatedly, it writes a reusable Python function (a "skill") and saves it to its skill library.
The skill lifecycle has three phases:
Agent identifies a repeatable pattern and writes an initial skill implementation.
Skill is run against the current task. If it fails, the agent revises it.
Once verified, the skill is saved and used automatically for future similar tasks.
All created skills are visible in the Skills tab of your agent. You can view the source code, rename, disable, or delete individual skills. Skills are sandboxed and run in an isolated environment.
API Reference
The Karp REST API lets you manage agents, trigger actions, and query state programmatically. All endpoints require a Bearer token from your account settings.
Authorization: Bearer karp_live_xxxxxxxxxxxxxxxxxxxx| Method | Endpoint | Description |
|---|---|---|
GET | /api/agents | List all agents for the authenticated user |
POST | /api/agents | Create a new agent |
GET | /api/agents/:id | Get agent details and status |
PATCH | /api/agents/:id | Update agent configuration |
DELETE | /api/agents/:id | Delete an agent |
POST | /api/agents/:id/start | Start a stopped agent |
POST | /api/agents/:id/stop | Stop a running agent |
GET | /api/agents/:id/logs | Stream recent agent logs |
GET | /api/agents/:id/memory | List memory entries |
GET | /api/agents/:id/skills | List created skills |
curl -X POST https://karpdo.ai/api/agents \
-H "Authorization: Bearer karp_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "My Assistant",
"llm_provider": "openai",
"llm_api_key": "sk-...",
"soul_md": "# Identity\nYou are a helpful assistant."
}'Note: API access is available on the Pro plan only. Full OpenAPI spec available at /api/openapi.json.