mothermachine

Browse / Support and bookkeeping

AgentDesk

Apache-licensed AI help desk in Go and Next.js: RAG answers, answerability gate, human handoff, tickets.

AdaptableOperable Business appWeb app Hybrid GoTypeScript Screen only License: Apache-2.0

AgentDesk is a self-hosted customer support system where an AI agent answers first from a knowledge base, refuses when retrieval is weak, hands off to human agents, and opens tickets, with an embeddable widget and Telegram, WeChat, and Zalo channels. Configuration is a single config/config.yaml; models are any OpenAI-compatible provider. The backend exposes an HTTP API for conversations, messages, customers, and webhooks, and an internal MCP tool server at /api/mcp.

Use it when
  • we want an AI-first support widget that only answers from our own docs and escalates to a person when it cannot
  • we need a self-hosted help desk under a permissive license that we can point at any OpenAI-compatible model, including a local one
Gotchas
  • Documentation site returned 403/404 during analysis; README is the working reference
  • Default language zh-CN and default admin password ChangeMe123!
  • Needs Qdrant (or a LanceDB build with native libs) even for local trials
  • 222 stars and a single vendor org; verify users beyond the Reddit launch

Last activity Sep 2, 2026. Fit: adaptable 3, operable 1.

Editions

Free (self-hosted) · Free open source

  • Clonegit clone https://github.com/huabeitech/agent-desk
  • ImageContainer

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only3 things to edit

Copy config/config.example.yaml to config/config.yaml (docker/agent-desk.yaml for Compose). An SMB sets language (defaults to zh-CN), server.port and cors.allowedOrigins, db.type and dsn, auth.passwordLoginEnabled and tokenTTLHours, customerSession.secret, storage.default (local or oss), vectorDB.type (qdrant or lancedb), mcp.servers, and oidc. Model providers, embedding models, prompts, knowledge bases, and agent-to-skill bindings are configured in the dashboard, not files. Change the default admin password before exposing it.

Env vars
none
Config files
config/config.yaml config/config.example.yaml docker/agent-desk.yaml
Prompt files
none
Accounts you need
an OpenAI-compatible model provider (or a local server)Alibaba Cloud OSS (optional storage)Telegram, WeChat, or Zalo developer accounts (optional channels)

Source

Operable: what an agent can drive

Interface

GUIScreen onlypublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
github.com/huabeitech/agent-desk
Tools
Skills MCP tool servers configured under mcp.servers

Reach

None coverage. 0 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Start a support conversation and send customer messagesNot reachable/api/conversation and /api/message exist (internal/bootstrap/server.go) behind ExternalUserMiddleware customer-session tokens, but no docs describe them; docs site returns 403 and README has no API section
Register and look up customersNot reachable/api/customer/session_exchange and /api/dashboard/customer routes exist in source only; undocumented
Receive events by webhookNot reachable/api/webhooks/org-sync and dos-org-sync are org-directory sync hooks in source, not documented event webhooks
Create and move ticketsNot reachable/api/dashboard/ticket routes exist behind the dashboard Bearer token; undocumented
Manage knowledge bases and FAQsNot reachabledashboard-only routes; undocumented
Hand off to a human agentNot reachableruntime decision inside the agent flow; no documented external call
Configure AI agents, models, and skillsNot reachablemodel configuration and agent binding are dashboard screens
Connect Telegram, WeChat, ZaloNot reachableinternal/handlers/third holds inbound channel webhooks; setup is configuration
Drive AgentDesk from an external agent over MCPNot reachableapp.Any('/api/mcp') mounts mcps.NewHTTPHandler for the runtime's own tools; not documented as an inbound interface or its auth

Code stack

Languages
GoTypeScript
Frameworks
GinGORMNext.js 16React 19shadcn/ui
Package manager
go modules, pnpm
Database
SQLiteMySQLPostgreSQLQdrantLanceDB
Hosting target
Docker Composesingle Go binary
Built
Unknown (recorded, never ranked)

Model stack

Providers
any OpenAI-compatible provider
Models
none
Keys you need
none
Prompts live in
AI Agent configuration (dashboard UI)

Skills

Repo carries contributor-facing development skills (git commit, release versioning) for working on the app. [contributor tooling, not adopter-facing]

Kind
contributor
Paths
.codex/skills/*/SKILL.md

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: Docker Compose starts agent-desk on 8083 with mysql and qdrant; admin dashboard and customer chat pages90%
executionModelREADME AI Agent Workflow: fixed orchestration (retrieve, answerability gate, LLM reply, handoff)90%
operabilityinternal/services/auth_service.go: POST /api/auth/login issues an access token used as 'Authorization: Bearer <token>' (or ?accessToken=) on /api/dashboard/*; /api/conversation and /api/message use a customer-session token from session_exchange. None of this is documented: agent-desk.huabei.pro/docs returns 403, README links only Docker, widget, and model-provider pages, and no API page exists in the repo tree.80%
effortREADME: cp config/config.example.yaml config/config.yaml; example file lists server, db, auth, storage, vectorDB, mcp, oidc sections85%
editionsREADME: open-source, self-hosted; no paid edition mentioned80%
activegh api: pushed 2026-09-02, 222 stars–
reach75%

Open questions

  • If the Builder publishes API docs (login token, dashboard endpoints, /api/mcp auth), re-verify as official/api: the code surface is there
  • Public API docs (agent-desk.huabei.pro/docs) content: endpoint list and channel keys
  • Any hosted or paid edition from huabei

Sources