Lightweight customer-support gateway for private AI assistants, with memory, tickets, and owner-aware escalation.
Wasila is an MVP-focused CLI kit for putting a safe customer frontdesk in front of private AI assistants such as Hermes, OpenClaw, or any other agent runtime. It helps small teams connect customer messages to a lightweight support workflow, keep long-term customer memory, trace tickets, and delegate sanitized work to private assistants when needed.
The first goal is not to build a universal AI platform. The first goal is to make one useful customer workflow easy to run locally, easy to inspect, and safe to connect to private assistants.
Wasila is intended to be open-source friendly: clear docs, small extension points, local-first defaults, no hidden cloud dependency for the MVP, and a roadmap that separates what is implemented from what is planned.
Customer conversations usually fail when context is lost: prior promises, special handling, recurring issues, unresolved tickets, or owner-level decisions. Wasila treats memory and operational trace as first-class parts of the agent system.
Each customer can have:
- A human-readable
customer.mdmemory file for long-term context. - Shared business knowledge so every agent understands the company, product, policies, tone, and escalation rules.
- A SQLite record for structured customer data.
- Tickets and ticket events for traceable work.
- Agent run logs for debugging orchestration decisions.
- Owner summaries when a conversation needs business attention.
- Sanitized private-assistant jobs when work should be delegated to Hermes, OpenClaw, or another AI agent.
The MVP starts with one profile and a simple gateway model:
- Profile:
startup_saas - Customer gateway: generic HTTP webhook first, with WhatsApp via
wacliplanned as the first platform adapter - Private assistant gateway: CLI job adapter first, so Hermes, OpenClaw, or another agent can process sanitized work without seeing the raw customer channel
- Owner gateway: generic HTTP webhook first, with OpenClaw and Hermes planned as owner notification gateways
- Orchestration: Wasila workflow with CrewAI as the default in-process runner; private assistants are external workers behind a job contract
- Storage: SQLite as operational source of truth plus one
customer.mdper customer for relationship memory - Knowledge: local business knowledge base for company and product context
- Runtime: local CLI daemon plus CLI sandbox
- Agents: front office, ticket manager, technical support, owner
The MVP should prove this flow:
- Receive an inbound customer message through a webhook.
- Resolve or create the customer identity.
- Load
customer.mdand SQLite context. - Load the business knowledge base for shared company context.
- Answer directly when the frontdesk can safely handle it.
- Delegate a sanitized
PrivateAgentJobto Hermes, OpenClaw, or another assistant when deeper work is needed. - Receive a
PrivateAgentResultand filter it before customer delivery. - Create or update a ticket when needed.
- Update customer memory when the interaction adds durable context.
- Return a response through the customer gateway.
- Produce an owner summary for important escalations.
These commands describe the intended developer experience. They are design targets for the first implementation slice.
wasila init startup_saas
wasila kb init
wasila provider set openai-compatible --base-url https://api.openai.com/v1 --model openai/gpt-4.1-mini --api-key-env OPENAI_API_KEY
wasila gateway add customer webhook
wasila gateway add owner webhook
# Planned: wasila assistant add cli --name hermes --command "hermes -p private-assistant"
wasila daemon start
wasila sandbox customer
wasila sandbox owner
wasila customer inspect cust_123
wasila ticket listThe current scaffold can run locally without installing external runtime dependencies:
PYTHONPATH=src python3 -m wasila --help
PYTHONPATH=src python3 -m wasila init startup_saas
PYTHONPATH=src python3 -m wasila kb init
PYTHONPATH=src python3 -m unittest discover -s testsCrewAI is the default orchestration core for the MVP runner and is declared as an optional dependency group for the upcoming adapter:
pip install -e ".[crewai]"Wasila should stay modular even while the MVP is small:
- Profiles define frontdesk behavior, prompts, escalation rules, and safe delegation policy.
- Customer gateways receive customer conversations.
- Private assistant gateways send sanitized jobs to Hermes, OpenClaw, or any other worker agent and receive structured results.
- Owner gateways send owner summaries, alerts, and approval requests.
- Providers wrap OpenAI-compatible LLM API configuration, including
base_url,model, and API key environment variable. - Storage keeps memory and operational state inspectable.
- Skills let agents execute controlled, traceable actions.
- The orchestration layer uses CrewAI by default for local workflow while keeping Wasila's private-assistant job contract stable.
See the documentation in docs/ for the MVP architecture and product decisions. Start with docs/README.md.
Useful starting points:
docs/01-product-brief.mddocs/02-mvp-scope.mddocs/03-architecture.mddocs/22-architecture-boundaries.mddocs/05-data-model.mddocs/09-sandbox.mddocs/10-mvp-implementation-plan.mddocs/12-event-contracts.mddocs/14-knowledge-base.mddocs/15-provider-configuration.mddocs/16-operational-policies.mddocs/17-profile-template.mddocs/18-smoke-scenarios.mddocs/21-skills-and-execution.mddocs/23-crewai-alignment.mddocs/24-private-agent-gateway.md
After the local CLI daemon becomes stable, Wasila can grow into:
- An HTTP API for external systems.
- A web-based daemon console for inspecting customers, tickets, runs, and owner summaries.
- Additional customer gateways such as Telegram and WhatsApp.
- Private assistant adapters for Hermes, OpenClaw, and other agents.
- Owner gateways such as OpenClaw and Hermes.
- More profiles for agencies, e-commerce, education, and appointment-based businesses.
See docs/07-roadmap.md for the staged roadmap.
Wasila is now in Stage 1: Local CLI MVP (implemented and runnable).
What already works:
wasila init,wasila kb init, provider and gateway config commands.- SQLite bootstrap and schema migrations.
- Customer memory directory and knowledge file bootstrap.
- Webhook daemon + idempotent customer message handling.
- Customer and owner CLI sandbox.
- Customer inspect and ticket list commands.
- CrewAI-first orchestration runner with SQLite-backed workflow, policy checks, and skill trace persistence.
Backlog:
- Issues: https://github.com/pendig/wasila/issues
- Milestones: https://github.com/pendig/wasila/milestones