智能助手

Starfish 智能助手可在因子、策略和分析等方面为用户带来方便。本节将介绍智能助手的部署及相关使用示例。

部署

根据部署所述完成 Starfish 部署后,执行以下命令进入 /server/web/starfish 目录:

cd /home/dolphindb/server/web/starfish/starfish_ai_backend
为 starfish_ai_backend 赋予可执行权限
chmod +x starfish_ai_backend

启动智能助手,其中 IP 和端口请根据实际进行调整:

nohup ./starfish_ai_backend --host 192.168.100.77 --port 8669 > server.log 2>&1 &

开启对话

点击因子平台上方工具栏中的 “AI 助手” ,开启会话窗口,用户在此进行对话交互。通过右上角的窗口缩放按钮,可放大或缩小会话界面。

1. 图 10-1 工具栏 AI 助手

在对话窗口中,用户可以选择不同的模型和 Agent。Agent 能够基于对话上下文,自动或按用户指令调用知识库和 MCP 工具,从而支持复杂的业务流程执行与知识检索。

系统内置以下三类 Agent 供用户直接使用:

  • 因子 Agent:用于因子脚本编写与处理,支持量化因子开发与分析。
  • 策略 Agent:用于策略脚本和回测开发,支持多资产、多行情类型。
  • 分析 Agent:用于数据分析与业务洞察,辅助结果分析与解读。
2. 图 10-2 助手对话窗口

设置

点击左下角的“设置”入口,即可进入配置界面,在此可集中管理各类配置选项,包括模型配置、Agent 配置、MCP 配置以及知识库管理等。

模型配置

创建模型

模型配置用于统一管理系统中可用于 AI 对话的模型平台及其具体模型(如 DeepSeek、OpenAI 等)。用户可以在该配置中选择启用的模型,或新增、编辑模型参数,以满足不同业务场景的需求。

点击“模型配置”后,点击左上角“新建设置”按钮,进入配置编辑页面。填写相关参数后,点击右下角的“保存”按钮即可保存。每个用户均可保存自己的配置。

3. 图 10-3 助手配置页

配置参数说明:

字段 含义
AI Endpoint AI 服务的接口地址,如 http://api.openai.com/v1/chat/completions
AI Backend URL 部署在本地用于转发 AI 请求的后端地址,默认值为 http://localhost:3789
API Key 访问 AI 接口所需的鉴权令牌
温度 控制生成内容随机性的参数:
  • 温度较低(如 0.1 或 0.2):生成内容更确定、连贯
  • 温度较高(如 0.8 或 1.0 以上):内容更具创造性,但连贯性可能较弱
错误重试次数 当模型调用失败时,系统自动重新发起请求的次数上限
配置类型 控制模型配置的可见性可见范围和使用权限,支持私有配置与系统级配置。

系统配置与私有配置:

  • Admin 用户权限:

    Admin 用户可选择将配置类型设为“系统配置”,供所有用户使用。系统配置只能由 Admin 用户创建,且可创建多个。

  • 私有配置:

    普通用户可创建属于自己的“私有配置”,并可将任意配置设为默认。默认配置将在聊天启动时自动激活。

注意,因子平台 Agent 支持以流式传输的,且 chunk 符合以下格式的 API:

interface ChatCompletionChunk {
  id: string;
  choices: Array<{
    delta: {
      content?: string | null;
      // 推理时,推理内容必须在该字段内
      reasoning_content?: string | null;
      // 部分平台会在 reasoning 字段内,比如 OpenRouter
      reasoning?: string | null
      function_call?: {
        arguments?: string;
        name?: string;
      };
      refusal?: string | null;
      role?: 'system' | 'user' | 'assistant';

    };
    finish_reason: 'stop' | 'length' | 'tool_calls' | 'content_filter' | 'function_call' | null;
    index: number;
  }>;
  model: string;
  usage?: {
    completion_tokens: number;
    prompt_tokens: number;
    total_tokens: number;
  } | null;
}

模型列表操作说明

对于已有模型,可在模型配置页面对模型实例进行新增、修改和删除操作。通过该配置,用户可以管理系统可用的模型列表,并指定默认模型用于新建对话或自动调用。

新增模型

在模型列表下点击 “新增模型”,填写以下信息:

  • 模型 ID: 模型的唯一标识符,创建后不可修改,例如:gpt-3.5deepseek-chat
  • 模型名称: 用于页面显示的名称,可随时修改,例如:OpenAI GPT-3.5DeepSeek 中文对话模型

修改或删除模型

在模型列表中,可对已有模型进行编辑或删除操作。

设为默认

可将某个模型设为当前平台的默认模型。 当新建对话或未指定模型时,系统将自动使用该默认模型。

Agent 配置

Agent 智能体配置用于统一管理系统中所有可用于对话的智能体。用户可以对智能体进行新建、编辑、删除、导入和导出等操作,并灵活配置其角色定位、任务目标、工作流程、可用知识库以及 MCP 工具。

查看智能体

点击配置中的 “Agent 配置”,进入智能体管理页面。页面左侧展示系统中已创建的所有智能体,包括系统智能体和私有智能体。

智能体配置管理

新增 Agent

点击左上角“添加”按钮,填写相关参数并保存,即可创建新的 Agent;点击取消,退出配置页面,返回对话界面。

参数说明

字段 含义
Agent 名称 自定义唯一显示名称。
Agent 描述 选填,用于说明职责或适用场景。
配置类型 选择私有或系统(仅管理员可设置系统类型)。
角色与任务 选填,定义智能体的身份和主要任务。
允许使用的 MCP 配置 选填,选择可调用的 MCP 服务器(多选)。
允许使用的知识库 选填,控制模型配置的可见性可见范围和使用权限,支持私有配置与系统级配置。
工作流程 选填,设置智能体的多步执行流程。
发送库表信息 是否允许向智能体提供数据库与表结构信息,默认关闭。
启用函数调用 是否允许调用函数,包括用户自定义函数及内置的 coldefsexecute,默认不允许。

注:对于用户自定义函数,需先在 DolphinDB 中将其注册为 function view,然后在此处配置为可调用函数。

编辑和删除 Agent

在 Agent 列表中,点击任意智能体进入配置界面进行修改,保存后立即生效。

在 Agent 列表中,将鼠标悬停在要删除的 Agent 上,点击“删除”按钮即可移除该智能体。注意: 删除操作不可恢复,请谨慎执行。

MCP 管理

MCP(Model Context Protocol)是一种标准协议,用于解耦 会话端(AI 助手) 与 工具端(MCP Server 等后端工具库)。

通过 MCP,Agent 可在对话中灵活调用外部工具,实现数据分析、脚本执行和业务处理能力的扩展。

该模块对所有用户公开,可统一管理 MCP 服务器及其工具,为 Agent 提供统一的外部能力支撑。

查看 MCP 服务器列表

在 “设置”中点击 “MCP 管理” ,进入 MCP 服务器管理页面,可在此查看 MCP 服务器管理列表,包括:

  • 服务器:列出当前所有 MCP 服务器及其状态
  • 资源:与 MCP 服务器相关的资源信息
  • 工具:显示 MCP 服务器中的所有可用工具(含描述和参数配置)

MCP 服务器操作

可对 MCP 服务器进行 新增、修改、删除、启用、禁用及刷新 操作,支持与 AI 助手协同使用。

新增 MCP 服务器

点击“添加 MCP 服务器”按钮,填写相关参数并保存,即可创建新的 MCP;点击取消,退出添加页面,返回 MCP 服务器管理界面。

参数说明

字段 含义
服务器名称 自定义唯一显示名称。
服务器地址 MCP Server 的访问 URL(默认 http://localhost:8848/,可根据实际环境修改)
认证类型 选择认证方式,支持以下两种类型:
  • 用户名 + 密码:通过账户名和密码进行身份验证
  • Token:通过访问令牌(Token)进行身份验证,无需用户名和密码
注:
选择认证类型后,请确保填写的信息与服务器端配置一致,否则 Agent 将无法访问 MCP 工具。
用户名 用于访问 MCP Server 的账户名称。
密码 与用户名配套的密码。
Token 由 MCP Server 生成并分发的访问令牌。
传输类型 指定 Agent 与 MCP Server 之间的数据传输方式。支持 HTTP 和 SSE 两种方式。
启用 控制该服务器或工具是否可用。

编辑和删除 MCP 服务器

在服务器列表中,点击“编辑”可修改已有服务器信息;点击“删除”可移除不再使用的服务器(删除操作不可恢复,请谨慎执行);可通过开关控件启用或停用该 MCP 服务器()。

知识库管理

知识库配置用于统一管理可供 AI 助手调用的知识库资源。

所有用户均可在此创建、维护知识库,并上传或管理文档,实现企业知识的集中存储与智能检索。

进入“设置”中的“知识库配置”,可查看当前系统中已创建的所有知识库。

知识库操作

新增知识库

点击 “添加知识库”,输入知识库名称,即可创建新的知识库条目。

配置知识库参数

在知识库列表中点击 “配置”,进入该知识库的详细设置页面。

需填写以下参数:

  • DolphinDB 服务器 URL:知识库数据存储服务器地址
  • 用户名 / 密码:访问服务器的认证信息
  • 数据库名 / 表名:指定知识库存储的数据库与表
  • 检索数量:每次问答检索返回的结果条数(1–10,默认 3)
  • 向量模型路径:用于文档向量化的模型文件路径
  • 词表路径:用于分词或向量化的词表文件路径
配置的 DolphinDB 数据库和表需遵循以下字段规范(字段名和类型都要保持一致):
字段名 类型 说明
id STRING 文档唯一标识
updateTime TIMESTAMP 更新时间
content STRING 文档内容
embedding FLOAT[] 文档向量
metadata STRING 文档元信息

如需创建标准表结构,可参考下方示例脚本(管理员使用):

db1 = database(, HASH, [STRING, 10])
db2 = database(, VALUE, 2017.08M..2017.09M)
db = database(directory = 'dfs://DocsVecDB2', partitionType = COMPO, partitionScheme = [db1,db2], engine= `PKEY, atomic = `TRANS)
db.createPartitionedTable(table = table(1:0, ["id","updateTime","content","embedding","metadata"],["STRING","TIMESTAMP","BLOB","FLOAT[]","BLOB"]),tableName = 'data',partitionColumns =`id`updateTime,primaryKey = `id`updateTime,indexes = {"embedding": "vectorindex(type=hnsw, dim=1024)"})

填写完成后,点击 “保存”,系统将保存该知识库配置。

配置知识库文档

知识库参数保存成功后,即可通过文档管理页面上传和管理文档。

点击 “添加文档”,上传 PDF 文件(最大 10MB)。系统会自动解析内容并生成向量,用户可手动修改文档标题和内容。

在文档管理页面下可查看该知识库已上传的所有文档及其基本信息。当前版本仅支持查看文档,不支持删除或修改列表中的文档。

删除或刷新知识库

在知识库配置页面,点击“刷新”按钮即可刷新知识库列表。若需删除某个知识库,点击其右侧的 “删除” 按钮即可将其移除(删除后不可恢复,请谨慎操作)。

因子生成

因子开发

输入因子描述:

点击对话框右上角的下拉菜单,切换为因子模式。然后在对话栏中输入因子的自然语言描述。例如:

“我要用DolphinDB计算world quant因子中的alpha41,怎么算?公式按照这个:(((high * low)^0.5) - vwap)。”

生成因子函数代码:

发送后,等待 AI 思考完成,将返回包含因子函数代码的完整回答。该代码即为因子脚本。

4. 图 10-4 生成因子代码

首次筛选与试运行:

浏览返回的因子函数,选取符合要求的因子,点击下一步。

5. 图 10-5 选择因子代码

执行试运行,即执行函数定义。

6. 图 10-6 试运行

创建因子模块:

试运行成功后,点击“基于该脚本创建因子”,即可创建新的因子模块,模块将包含已选的因子函数。

7. 图 10-7 创建因子模块

模块编辑与计算评价设置:

系统自动跳转至因子模块编辑页,同时在对话框中展示可选的计算与评价模板。

8. 图 10-8 因子模块配置

运行与结果查看:

设置完成后点击“执行”,系统将启动因子的计算与评价任务。右上角弹窗可查看任务状态,点击“查看”即可查看运行详情与因子评价,内容包括因子表现、计算数据和可视化结果。

进阶用法

你可以:

  • 一次性生成多个因子;
  • 或者在已有因子基础上提出新指令,例如:“请基于这个因子,衍生出 4 个其他的因子。”

AI 将返回 4 个新因子函数,可对其进行多选、筛选与进一步使用。

策略生成

输入策略描述:

点击对话框右上角的下拉菜单,切换为策略模式。然后在对话框中描述你的策略内容。需包含品种类型和行情频率。目前支持的品种包括:股票、期货、期权、通用、数字货币、上交所债券、cfets x_Bond 行情债券、融资融券;行情频率支持:日频、分钟频、快照频。

示例输入:“用 DolphinDB 创建一个策略,基于股票快照行情数据,实现当委托买量大于委托卖量的 2 倍时买入 200 股,当委托卖量大于委托买量的 2 倍时卖出 200 股,不需要考虑复杂的持仓情况,也不需要订阅任何指标”

生成策略代码:

发送描述后,AI 开始生成策略代码。输出内容通常包含:

  • 策略类型
  • 行情类型
  • 回调函数代码
9. 图 10-9 生成策略代码

确认策略逻辑:

确认返回的策略代码逻辑无误后,点击“创建策略”,系统会根据品种和行情频率创建对应的策略,并且将自动跳转至策略的编辑页面,并更新代码内容。

策略试运行与回测:

策略创建后,将出现预设选择与“运行”按钮。点击“运行”后,系统将进入回测运行页面,任务完成后可查看回测报告,包含交易详情、绩效表现及可视化结果。

10. 图 10-10 运行策略

数据分析

点击对话框右上角的下拉菜单,切换为分析模式。然后在对话栏中输入因子的自然语言描述。例如:

“基于 1 分钟行情数据,计算每只股票每分钟成交量的标准差。”

系统将会寻找所有的库表信息,返回对应的数据脚本,并且尝试执行:

  • 若执行成功,返回结果;
  • 若执行失败,系统会收集错误信息,并提交给大模型修正,直至脚本无误。