Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Multi-tenant agent CRM. Chat preview, leads with form fields, HITL inbox, JSON flows interpreted in-process (nudges via Inngest). WhatsApp via Zernio.
Design: docs/architecture.md (overview), AGENTS.md (for coding agents), docs/agent-runtime.md, docs/agent-flow-as-data.md.
Full walkthrough (Postgres on Mac, Inngest, ngrok / NEXT_PUBLIC_APP_URL): docs/setup.md.
npm install
npx prisma migrate deploy && npx prisma generate && npm run db:seed
npm run dev
Open http://localhost:3000/demo and talk as a customer. Pick the same lead on the left to continue that conversation.
Add to .env and restart npm run dev:
OPENAI_API_KEY=sk-...
OPENAI_CHAT_MODEL=gpt-4o-mini
Gemini/Anthropic still work if those keys are set and OpenAI is not. Without any key, classify/extract use heuristics.
Set zerino_api_key (or ZERNIO_API_KEY) and zerino_sandbox_number (or ZERNIO_SANDBOX_NUMBER). Seed / Channels binds that sandbox number to the dev tenant.
Inbound: POST /api/webhooks/zernio (message.received). The URL must be public HTTPS. Set ZERNIO_WEBHOOK_SECRET (and the same secret on the Zernio webhook) for X-Zernio-Signature - required in production; optional only for local dev.
Outbound replies use the Zernio inbox API once a WhatsApp conversation id is stored from the inbound webhook. Chat preview does not send to WhatsApp.
Inngest is only required for delayed nudges (npx inngest-cli@latest dev). Full behavior: docs/nudges.md.
Nudge timing is NUDGE_AFTER_OVERRIDE or PT1H after the lead’s last message (not after the agent reply). With a second Zernio webhook to production, nudges may run on Inngest Cloud while you watch local :8288 - use one webhook + local stack when debugging, or open the Inngest Cloud dashboard for production.
For local testing, set NUDGE_AFTER_OVERRIDE=PT5M in .env. Talk stages already include a catalog nudge; you do not need to re-seed unless the agent flow was built without one.
Register a second Zernio webhook for ngrok (production webhook can stay - you may get duplicate replies while both are active):
pnpm proxy # set NEXT_PUBLIC_APP_URL from banner, restart pnpm dev
pnpm zernio:webhook:dev
npm test covers flow validation and the interpreter.
pnpm dev # terminal 1
pnpm proxy # terminal 2 - ngrok tunnel, prints NEXT_PUBLIC_APP_URL banner
brew install ngrok/ngrok/ngrokNGROK_AUTHTOKEN=… to .env (dashboard)https://… URL from the banner into NEXT_PUBLIC_APP_URL, restart pnpm dev/admin or /channels from any deviceFor a stable URL across restarts, set NGROK_DOMAIN=your-name.ngrok.app (reserved domain on a paid ngrok plan).
pnpm proxy:stop
pnpm proxy:status
Production on a VPS with your own domain: see nginx/zapidly-ssl.example.conf.