sequify-server

module
v0.0.0-...-5ed4770 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: MIT

README ΒΆ

Sequify Logo

Sequify

Add AI assistants to your website or app with just a few lines of code.

δΈ­ζ–‡ζ–‡ζ‘£ Β· Documentation Β· Examples

Go Report Card License Go Version Release Build Status


What is Sequify?

Sequify is an AI assistant SDK that lets your website or app users control the interface with natural language. Instead of AI "looking at" your page (screenshots, DOM parsing, guessing coordinates), your website tells AI what it can do, and AI calls those capabilities directly.

The result: Deterministic execution, minimal token usage, blazing fast response times.

Traditional: AI β†’ sees page β†’ guesses β†’ clicks β†’ sees result β†’ guesses again
Sequify:     Website registers capabilities β†’ AI calls functions β†’ precise execution

✨ Key Features

Feature Description
πŸš€ Zero UI Changes Your existing UI works as-is. Just register what it can do.
🎯 Precise Execution AI calls your functions directly. No guessing, no visual parsing.
πŸ’° Low Token Cost Only send capability lists, not full page states.
πŸ”„ Auto-Recovery WebSocket reconnection with sequence-based recovery. No lost commands.
πŸ“± Multi-Platform Web SDK ready. Flutter, Android, iOS, WeChat Mini Programs coming soon.
πŸ—οΈ Production-Ready Horizontal scaling, distributed pub/sub, checkpoint recovery, observability built-in.

πŸ—οΈ Architecture

graph TB
    subgraph "User Browser"
        Page[Web Page]
        SDK[Frontend SDK]
        Page -->|Register capabilities| SDK
    end

    subgraph "Developer Backend"
        Proxy[Server SDK<br/>Auth + Proxy]
    end

    subgraph "Sequify Server - Docker"
        WS[WebSocket Server]
        Agent[Eino Agent<br/>ReAct Loop]
        Queue[Task Queue<br/>Asynq]
        WS --- Agent
        Agent --- Queue
    end

    subgraph "Shared Storage"
        DB[(Database<br/>PostgreSQL/MySQL/SQLite)]
        Redis[(Redis<br/>Pub/Sub + Cache)]
    end

    subgraph "LLM Provider"
        LLM[OpenAI / Claude<br/>or any OpenAI-compatible API]
    end

    SDK -->|WebSocket| Proxy
    Proxy -->|WebSocket| WS
    Agent -->|API calls| LLM
    WS --> DB
    WS --> Redis

πŸš€ Quick Start

Get started in 60 seconds with Docker:

# 1. Start Sequify Server
docker run -d \
  -p 8080:8080 \
  -e SEQUIFY_LLM_PROVIDER=openai \
  -e SEQUIFY_LLM_API_KEY=your-api-key \
  -e SEQUIFY_LLM_MODEL=gpt-4 \
  sequify/server:latest

# 2. Add Server SDK (Go example)
go get github.com/sequify/server-sdk-go

# 3. Add Frontend SDK
npm install @sequify/web-sdk

That's it. Now register capabilities on your frontend and start handling user intents.

Example: Register a Capability
// frontend.ts
import { SequifySDK } from '@sequify/web-sdk';

const sdk = new SequifySDK({
  wsUrl: 'wss://your-server.com/sequify',
});

// Register what your page can do
sdk.register({
  name: 'search_products',
  description: 'Search products by name, category, or price range',
  params: {
    type: 'object',
    properties: {
      query: { type: 'string', description: 'Search query' },
      minPrice: { type: 'number', description: 'Minimum price' },
      maxPrice: { type: 'number', description: 'Maximum price' },
    },
    required: ['query'],
  },
  execute: async (params) => {
    // Your existing search logic
    return await searchProducts(params.query, params.minPrice, params.maxPrice);
  },
});

User says: "Find me the cheapest phone case under $20"

AI calls: search_products({ query: "phone case", maxPrice: 20 })

Result: Precise, deterministic execution. No screenshots, no DOM parsing.


πŸ†š How It Differs

Approach Reliability Token Cost Speed Use Case
Sequify (Capability Registration) βœ… Always works (site maintains capabilities) πŸ’° Very low (only capability lists) ⚑ Fast (direct function calls) Your own website/app
Browser Automation (DOM/Screenshot) ⚠️ Breaks on UI changes πŸ’Έ High (full page state per step) 🐌 Slow (multiple LLM calls) Generic browser automation
Computer Vision ⚠️ Imprecise πŸ’Έ Very high (images per step) 🐌 Very slow General-purpose control

Sequify is for your own products. Browser automation is for scraping other people's sites.


πŸ’Ό Use Cases

Industry Use Case
SaaS Products Add AI assistant to your existing dashboard
E-commerce AI helps users search, compare, checkout
Admin Panels AI helps admins query, filter, export data
Data Platforms AI helps users query data, generate reports
Any Web App If it has a UI, AI can help users operate it

πŸ› οΈ Tech Stack

Component Technology
Language Go 1.26+
WebSocket coder/websocket
AI Framework CloudWeGo Eino
ORM GORM (PostgreSQL/MySQL/SQLite)
Cache & Pub/Sub go-redis
Task Queue Asynq (Redis-based)
HTTP Router chi
Observability OpenTelemetry + Prometheus + slog

πŸ“š Documentation


🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Current status: Single-developer mode. Full PR review process will be enabled when collaboration begins.


πŸ“„ License

MIT License


🌟 Show Your Support

If Sequify helps you, consider giving it a star! It motivates continued development.

⭐ Star on GitHub

Made with ❀️ by the Sequify team

Directories ΒΆ

Path Synopsis
cmd
mock-saas command
AllScenariosRunner: sequential execution of all 4 scenarios with reporter integration.
AllScenariosRunner: sequential execution of all 4 scenarios with reporter integration.
server command
Package main is the entry point for the Sequify server.
Package main is the entry point for the Sequify server.
internal
agent
Package agent provides the AI agent implementation for Sequify, including system prompt loading, ChatModel creation, and tool definitions.
Package agent provides the AI agent implementation for Sequify, including system prompt loading, ChatModel creation, and tool definitions.
agent/mocks
Package mocks provides test doubles for the agent package.
Package mocks provides test doubles for the agent package.
cache
Package cache defines the caching and pub/sub layer for sequence numbers, connection counts, and real-time message distribution.
Package cache defines the caching and pub/sub layer for sequence numbers, connection counts, and real-time message distribution.
cache/memory
Package memory provides an in-memory implementation of the cache.Cache interface for development and testing environments.
Package memory provides an in-memory implementation of the cache.Cache interface for development and testing environments.
cache/redis
Package redis provides a Redis-backed implementation of the cache.Cache interface.
Package redis provides a Redis-backed implementation of the cache.Cache interface.
config
Package config provides configuration loading and validation for the Sequify server.
Package config provides configuration loading and validation for the Sequify server.
errcode
Package errcode provides structured error codes with HTTP status mapping.
Package errcode provides structured error codes with HTTP status mapping.
idgen
Package idgen provides UUIDv7-based ID generation.
Package idgen provides UUIDv7-based ID generation.
log
Package log provides context-aware structured logging built on log/slog.
Package log provides context-aware structured logging built on log/slog.
middleware
Package middleware provides HTTP middleware for the Sequify server.
Package middleware provides HTTP middleware for the Sequify server.
mockstate
Package mockstate provides an in-memory state machine for the Mock SaaS CLI.
Package mockstate provides an in-memory state machine for the Mock SaaS CLI.
model
Package model provides shared domain types used across multiple internal packages, breaking circular dependencies between layers (e.g.
Package model provides shared domain types used across multiple internal packages, breaking circular dependencies between layers (e.g.
protocol
Package protocol provides envelope structs and SDK functions for the Sequify WebSocket protocol.
Package protocol provides envelope structs and SDK functions for the Sequify WebSocket protocol.
queue/asynq
Package asynq provides an Asynq-backed implementation of the task.TaskQueue interface.
Package asynq provides an Asynq-backed implementation of the task.TaskQueue interface.
response
Package response provides one-liner constructors for HTTP/WebSocket standard responses.
Package response provides one-liner constructors for HTTP/WebSocket standard responses.
server
Package server provides the HTTP server with dependency injection for all application services.
Package server provides the HTTP server with dependency injection for all application services.
session
Package session provides the session layer handler that routes WebSocket protocol messages to domain-specific handlers (conversation, intent, etc.).
Package session provides the session layer handler that routes WebSocket protocol messages to domain-specific handlers (conversation, intent, etc.).
store
Package store provides data access interfaces and implementations.
Package store provides data access interfaces and implementations.
store/gorm
Package gorm provides a GORM-based implementation of the store.Store interface.
Package gorm provides a GORM-based implementation of the store.Store interface.
task
Package task defines the shared task queue contract: interface, options, constants, error sentinels, and dead-letter manager.
Package task defines the shared task queue contract: interface, options, constants, error sentinels, and dead-letter manager.
telemetry
Package telemetry provides Prometheus metrics and OpenTelemetry tracing infrastructure for the Sequify server.
Package telemetry provides Prometheus metrics and OpenTelemetry tracing infrastructure for the Sequify server.
toolresult
Package toolresult defines the ToolResult type used for client tool execution results.
Package toolresult defines the ToolResult type used for client tool execution results.
util
Package util provides common utility functions shared across the codebase.
Package util provides common utility functions shared across the codebase.
webhook
Package webhook provides webhook delivery, dead letter management, and REST API.
Package webhook provides webhook delivery, dead letter management, and REST API.
websocket
Package websocket provides WebSocket connection management.
Package websocket provides WebSocket connection management.
pkg
protocol
Package protocol provides exported constants for the Sequify WebSocket protocol.
Package protocol provides exported constants for the Sequify WebSocket protocol.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL