Skip to content

AI 平台层 ​

面向 AI Agent 的企业运行时平台(Enterprise Agent Runtime)

让任何大模型都能安全地连接企业系统、执行企业任务、调用企业能力,而不是仅仅回答问题。

sss-run 不是 ChatGPT,不是 Dify,是企业 AI 的执行层。它不回答问题,它执行任务。

平台将所有能力自动暴露为 AI 可调用的 Tool,任意 LLM(OpenAI / Claude / DeepSeek / Qwen / Gemini / Ollama)通过 OpenAI 兼容协议或 MCP 即可调用——查询数据库、发送邮件、生成报表、调用支付,全部经过风险分级、人机审批与操作审计。

核心理念 ​

  • Tool 是一等公民:写一个接口 = 自动发布为 REST / MCP / OpenAI Tool / Dify Tool / n8n Node / LangGraph Tool
  • 平台中立:不绑定任何 AI 平台,Dify、n8n、Claude Desktop、Cursor、OpenAI SDK 均可接入
  • 零侵入:AI 层位于 internal/ai/,关闭后平台退回普通 API 平台
  • 单 EXE 零依赖:默认 SQLite + 进程内 LRU,无需 redis/Milvus,私有化一键部署
  • 安全执行:危险操作人机审批、全量审计日志、权限强制校验(企业运行时底线)

与同类产品的差异 ​

对比它们sss-run
ChatGPT聊天应用执行引擎
DifyAI 应用搭建器能力供给层
Magic-APIAPI 平台Tool 平台
n8n流程编排器能力供给方(n8n 调用我们)

快速开始 ​

1. 配置 LLM ​

在「设置 → AI 配置」中填写 API Key、Base URL、Model(默认 DeepSeek)。配置后 Gateway 自动初始化。

2. OpenAI 兼容端点 ​

直接把 https://你的域名/v1 作为 OpenAI base_url 接入任意客户端:

bash
curl -X POST http://localhost:9301/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "messages": [{"role":"user","content":"查询 test_demo 表前 5 条数据"}],
    "stream": false
  }'

请求可不带 tools 字段,Gateway 自动注入平台全部启用工具。LLM 决定调用哪个工具时,平台自动执行并回灌结果,最多循环 8 轮。

API 列表 ​

Tool Registry ​

方法路径说明
GET/ai/tools列出所有已注册工具
GET/ai/tools/:name获取工具详情
POST/ai/tools/:name/invoke调用工具,body: {"args":{...}}
POST/ai/tools/reload重新扫描加载工具
GET/ai/export/openapi导出 OpenAPI 3.0(Dify 可导入)

OpenAI 兼容 ​

方法路径说明
POST/v1/chat/completions对话(含 Tool Calling,支持 stream)
GET/v1/toolsOpenAI tools schema 导出
POST/v1/embeddings文本向量化

Plugin Marketplace ​

方法路径说明
GET/ai/marketplace/plugins列出已安装插件
GET/ai/marketplace/plugins/:name获取插件详情
POST/ai/marketplace/plugins/upload上传 .wasm + manifest 安装(multipart)
POST/ai/marketplace/plugins/installJSON 方式安装(wasm 为 base64)
DELETE/ai/marketplace/plugins/:name卸载插件
POST/ai/marketplace/plugins/:name/reload重载插件缓存
POST/ai/marketplace/plugins/:name/dispatch调用插件函数,body: {"function":"add","args":[1,2]}
GET/ai/marketplace/keys查看公钥/私钥
GET/ai/marketplace/categories列出所有插件分类(含插件数量)
POST/ai/marketplace/categories创建分类,body: {"name":"database","label":"数据库","sort":1}
PUT/ai/marketplace/categories/:name更新分类(label/sort/remark)
DELETE/ai/marketplace/categories/:name删除分类

接入各 AI 平台 ​

Dify ​

  1. 调用 GET /ai/export/openapi 获取 OpenAPI YAML
  2. 在 Dify「工具 → 自定义工具」中粘贴导入
  3. 在 Agent 应用中启用该工具集

n8n ​

把 /v1/chat/completions 作为 OpenAI 节点的 base_url,API Key 用平台认证 token。

LangChain / LangGraph ​

python
from openai import OpenAI
client = OpenAI(base_url="http://localhost:9301/v1", api_key="<token>")
# tools 自动注入,无需手动传 tools 参数

Claude Desktop / Cursor(MCP) ​

在客户端 MCP 配置中添加:

json
{
  "mcpServers": {
    "sss-run": {
      "url": "http://localhost:9301/mcp"
    }
  }
}

MCP 工具从 Tool Registry 动态生成,与 OpenAI 端点共享同一来源。

Tool 自动注册 ​

平台启动时自动扫描 s_sss_sss 表中启用的 api/function 脚本,注册为 Tool(命名 api_<key>)。开发者无需任何额外配置,写完脚本即自动成为 AI Tool。

支持的 Tool 来源:

来源说明
scripts_sss_sss 表 JS/Go 脚本(自动扫描)
builtinGo 内建函数(registry.RegisterBuiltin)
wasmWASM 插件
rest外部 REST 接口

部署形态 ​

单 EXE + sss-run.db + config.yaml,零安装零外部依赖。默认 SQLite,无需 redis/Milvus。

Agent Runtime ​

Agent 是带 system prompt + 工具子集 + 记忆策略的执行单元。平台预置 4 个模板,开箱即用。

预置 Agent ​

名称用途
data-analyst数据分析师:查询数据库、分析数据
ops-assistant运维助手:系统巡检、日志排查
general-assistant通用助手(含长期记忆)
finance-assistant财务助手:对账、报表

运行 Agent ​

bash
curl -X POST http://localhost:9301/ai/agents/data-analyst/run \
  -H "Content-Type: application/json" \
  -d '{"input":"查询 test_demo 表前 5 条数据并总结"}'

返回结果含 run_id、session_id、output、trace。传入相同 session_id 可延续上下文。

三层记忆 ​

  • 短期:进程内 LRU,保留最近 20 条对话
  • 工作:Session 状态(跨请求保持任务变量)
  • 长期:向量化持久(general-assistant 启用),Agent 跨会话记住事实

自定义 Agent ​

bash
curl -X POST http://localhost:9301/ai/agents \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-agent",
    "description": "我的助手",
    "system_prompt": "你是一名...",
    "model": "deepseek-chat",
    "memory_policy": "short",
    "max_steps": 8
  }'

tools 留空表示使用全部启用工具;指定数组则限定工具子集。

RAG 知识库 ​

零依赖向量检索:文档向量化后存 SQLite BLOB,纯 Go 余弦相似度检索。

创建知识库 + 上传文档 ​

bash
# 创建知识库
curl -X POST http://localhost:9301/ai/knowledge \
  -d '{"name":"产品手册","embedding_model":"bge-large-zh"}'

# 上传文档(自动切片+向量化)
curl -X POST http://localhost:9301/ai/knowledge/<id>/documents \
  -F "file=@manual.txt"

检索 ​

bash
curl -X POST http://localhost:9301/ai/knowledge/<id>/search \
  -d '{"query":"如何配置数据源","top_k":5}'

Agent 自动调用 ​

knowledge_search 自动注册为 Tool,Agent 回答需要文档支持的问题时会自动检索知识库。

Embedding 模型:默认 bge-large-zh,需在 LLM 配置中支持。本地部署可用 Ollama 运行 bge-large / nomic-embed-text。

插件市场(WASM Marketplace) ​

平台内置 WASM 插件市场,支持上传、签名、安装、卸载、调用 WASM 插件。所有插件使用 Ed25519 算法签名,确保插件完整性与来源可信。

密钥管理 ​

首次启动时自动在 plugins/keys/ 目录生成 Ed25519 密钥对:

  • ed25519.pub:公钥(hex 编码,可分发给客户端校验)
  • ed25519.priv:私钥(hex 编码,用于签名上传的 .wasm 文件)
bash
# 查看当前密钥对
curl http://localhost:9301/ai/marketplace/keys

上传安装插件 ​

通过 multipart 上传 .wasm 文件 + manifest JSON:

bash
curl -X POST http://localhost:9301/ai/marketplace/plugins/upload \
  -F "file=@math-util.wasm" \
  -F 'manifest={
    "name": "math-util",
    "version": "1.0.0",
    "display_name": "数学工具集",
    "author": "dev",
    "description": "提供加减乘除等数学运算",
    "category": "util",
    "functions": ["add", "sub", "mul", "div"],
    "permissions": []
  }'

若 manifest 中 signature 留空,服务端会自动用私钥签名;若填写,则校验签名是否匹配。

列出已安装插件 ​

bash
curl http://localhost:9301/ai/marketplace/plugins

调用插件函数 ​

bash
curl -X POST http://localhost:9301/ai/marketplace/plugins/math-util/dispatch \
  -d '{"function":"add","args":[1,2]}'
# 返回 {"result":3}

卸载插件 ​

bash
curl -X DELETE http://localhost:9301/ai/marketplace/plugins/math-util

前端使用 ​

左侧导航栏点击「插件」图标进入插件市场,分为左右两栏:

左边栏:分类管理

  • 顶部「全部插件」节点显示所有插件总数
  • 分类列表(数据库/文件/HTTP/工具等),每项显示分类名 + 插件数量徽标
  • 点击工具栏「+」按钮添加分类
  • 右键分类节点弹出菜单:修改分类 / 删除分类
  • 点击分类节点 → 右侧主面板过滤显示该分类下的插件

右侧主面板:插件列表

  • 卡片式插件展示(名称、版本、作者、函数列表、签名状态)
  • 上传安装对话框(填写 manifest + 选择 .wasm 文件,分类从已管理分类中选择)
  • 在线调用任意插件函数
  • 一键重载 / 卸载
  • 查看公钥/私钥

分类管理 ​

分类作为独立的一等公民管理(表 s_ai_plugin_categories),首次启动自动种子 7 个默认分类:数据库、文件、HTTP、工具、AI、安全、邮件。

bash
# 列出所有分类
curl http://localhost:9301/ai/marketplace/categories

# 创建分类
curl -X POST http://localhost:9301/ai/marketplace/categories \
  -d '{"name":"excel","label":"Excel","sort":8,"remark":"Excel 处理插件"}'

# 更新分类
curl -X PUT http://localhost:9301/ai/marketplace/categories/excel \
  -d '{"label":"Excel 工具","sort":9,"remark":"更新备注"}'

# 删除分类
curl -X DELETE http://localhost:9301/ai/marketplace/categories/excel

WASM 插件开发约定 ​

插件需导出以下函数:

  • alloc(size i32) -> i32:分配内存
  • dealloc(ptr i32):释放内存(可选)
  • __dispatch(fn_ptr i32, fn_len i32, args_ptr i32, args_len i32) -> i64:统一调度入口,返回 (ptr << 32) | len
  • __functions() -> i64:返回函数列表 JSON

AI Chat 三种模式 ​

工作台左侧 AI 面板支持三种工作模式,可通过顶部切换:

模式用途端点特性
聊天自由对话,问答解惑/sss/sss/ai/chat不注入编辑器上下文,不显示代码插入按钮
编码生成脚本代码/sss/sss/ai/chat注入当前编辑器内容,支持插入/替换代码到编辑器
Agent自动调用工具执行任务/v1/chat/completions自动注入 Registry 全部工具,服务端执行 Tool Calling 循环(最多 8 轮),可执行任意脚本

Agent 模式工作流 ​

  1. 用户描述任务(如"查询用户表前 10 条数据")
  2. LLM 分析需求,返回 tool_calls(如调用 db_query 工具)
  3. 服务端 gateway.ChatWithTools 自动执行工具,结果回灌给 LLM
  4. LLM 根据结果继续推理或生成最终回答
  5. 前端实时展示工具调用过程与最终结果

Agent 模式下所有工具调用都会真实执行,请谨慎操作危险动作(如删除数据)。

版权所有.