DolphinX 快速上手:从配置业务 Agent 到开发自定义 Agent

DolphinX 提供两种构建业务 Agent 的方式:

  • 通过 Web 管控台以图形化的方式配置 Agent,适合快速搭建轻量化的业务助手。

  • 通过 DolphinX API 开发自定义应用,适合嵌入已有系统或承载复杂业务流程。

本文将以“设备运行分析 Agent”和“投研报告复现工作台”为例,分别介绍如何通过 Web 管控台配置业务 Agent,以及如何通过 DolphinX API 将 Agent 能力集成到已有业务系统。

1. 前置条件

开始前,请确认已经具备以下条件:

  • 已部署带有 DolphinX 功能的 DolphinDB 实例(3.00.6及其后续版本)。

  • 已在 DolphinX 中配置至少一个可用模型(配置方式参见 DolphinX Web )。

  • 如果 Agent 需要查询 DolphinDB 数据,已经准备好相应的数据表和查询工具。

  • 如果需要通过 MCP 调用工具,已经准备好可用的 MCP Server。

本文重点讲解 Agent 的构建过程,具体界面操作细节与 DolphinX API说明可参考 DolphinX WebAPI 列表

2. 选择合适的构建方式

DolphinX 提供了两种构建 Agent 的方式,在开始前,需要先选择一种方式,这两种构建方式的主要区别在于谁负责业务流程和用户界面。

对比项 Web 配置业务 Agent API 开发自定义 Agent
适用场景 设备分析、数据库运维问答、数据分析、内部文档问答 研报复现、因子研究、自动化回测、工业诊断流程
主要使用者 业务专家、解决方案团队、交付人员 应用研发团队
前端与任务流程 主要使用 DolphinX 提供的交互和管理能力 由业务系统自行实现
Agent 配置 在 Web 中以图形化的方式配置 Prompt、Skill、MCP、模型和权限 通过 API 传入会话输入、外部上下文、Skill 和工具结果
开发工作量 较低 较高
灵活性 适合流程相对标准的业务助手 适合复杂流程和深度系统集成

可以用一个简单原则判断:

  • 如果主要目标是“让特定用户通过自然语言使用已有数据和能力”,优先选择 Web 配置。

  • 如果主要目标是“把 Agent 作为一个能力模块嵌入现有产品”,优先选择 API 集成。

两种方式并不互斥。可以先通过 Web 验证 Agent 的 Prompt、Skill 和工具设计,再通过 API 将成熟能力集成进业务系统。

3. 通过 Web 配置设备运行分析 Agent

本节面向业务专家、解决方案团队和交付人员。我们将搭建一个“设备运行分析助手”,使设备运维人员能够通过自然语言分析 DolphinDB 中的传感器数据、告警记录和维护记录。

3.1 明确 Agent 的任务边界

假设企业已经将以下数据写入 DolphinDB:

  • 设备温度、振动、电流、压力等传感器时序数据。

  • 设备告警事件及其等级、发生时间和处理状态。

  • 设备维护记录和维修结果。

  • 设备型号、所属产线等基础信息。

我们希望 Agent 能回答这类问题:

  • 过去 24 小时哪些设备温度异常?

  • 3 号产线最近一周的振动指标是否持续升高?

  • 帮我生成今天的设备运行日报。

  • 这次异常更像传感器故障,还是设备真实劣化?

这个 Agent 的任务边界是:基于当前数据分析设备状态、解释异常依据并给出排查建议。它不能脱离实际查询结果编造设备状态,也不应在数据不足时给出确定性故障结论。

3.2 第一步:创建 Agent

使用具备管理权限的账号登录 DolphinX Web 管控台,新建一个 Agent。

建议填写以下基本信息:

  • 名称:设备运行分析助手

  • 描述:面向设备运维人员,分析设备时序数据、告警记录和维护记录,识别异常趋势并生成运行日报

  • 使用范围:设备运维团队

创建完成后,后续的 Prompt、模型、Skill、MCP 和权限都围绕这个 Agent 配置。

3.3 第二步:编写系统 Prompt

系统 Prompt 需要明确角色、数据依据、回答结构和安全边界。可以使用下面的内容作为初始版本:

你是设备运行分析助手,面向工业设备运维人员工作。

你可以基于 DolphinDB 中的设备传感器数据、告警记录和维护记录,
帮助用户分析设备状态、异常趋势和可能原因。

回答时遵循以下原则:
1. 先给出结论,再说明数据依据。
2. 涉及设备状态和数值判断时,优先通过已绑定的 DolphinDB 工具查询当前数据,不要凭经验编造数值。
3. 对异常设备,尽量说明异常指标、影响设备、时间范围和建议排查方向。
4. 区分已经由数据证实的事实、基于现象作出的推测和仍需验证的假设。
5. 如果数据不足以支撑判断,明确说明缺少哪些数据以及下一步应如何验证。
6. 不执行未经授权的数据修改、删除或设备控制操作。

首次配置时不要把全部领域知识都写入 Prompt。Prompt 主要规定 Agent 的稳定身份和行为边界;具体分析方法、日报模板和业务规则更适合放入 Skill。

3.4 第三步:准备并绑定 Skill

设备运行分析通常包含一批稳定、可复用的方法。建议至少准备以下两个 Skill。

设备异常分析 Skill

该 Skill 可以包括:

  • 温度、振动、电流、压力等指标的常见异常模式。

  • 瞬时异常、持续异常、趋势性异常和周期性异常的区分方法。

  • 传感器故障与设备真实异常的初步辨别思路。

  • 分析结论需要包含的字段:异常指标、影响设备、时间范围、证据和建议排查方向。

运维日报生成 Skill

该 Skill 可以包括:

  • 日报结构:总体运行状态、异常设备、重点告警、趋势变化和建议处理事项。

  • 企业内部的异常等级定义。

  • 日报的输出格式和示例模板。

  • 对缺失数据、未处理告警和待确认结论的标注规则。

DolphinX 会先向模型提供轻量的 Skill Catalog,在任务需要时再加载具体 Skill Instruction;Skill 中的模板和参考文件也可以按需读取。因此,可以在 Skill 中保存较完整的方法和材料,而不必把它们全部塞进每轮上下文。

完成 Skill 注册后,将它们绑定到“设备运行分析助手”,并确认目标用户具备使用权限。

3.5 第四步:配置数据查询工具

Agent 必须能够查询当前数据,才能回答实时状态、历史趋势和告警记录相关问题。如果企业已经通过 DolphinDB MCP 暴露查询能力(DolphinDB 可以作为 MCP Server,参见MCP 工具开发指南 ),可以在 DolphinX 中配置相应的 MCP Server,并绑定到当前 Agent。

建议将工具设计成含义清晰、输入受约束的业务接口。例如:

工具 用途 典型参数
querySensorData 查询传感器时序数据 设备、指标、开始时间、结束时间
queryAlarmEvents 查询告警记录 设备或产线、告警等级、时间范围
queryMaintenanceLogs 查询维护记录 设备、时间范围、维护类型
getDeviceProfile 查询设备基础信息 设备 ID

工具应尽量表达业务动作,而不是直接向模型暴露一个不受限制的通用脚本执行入口。还要确保工具使用当前用户身份或受控服务身份访问 DolphinDB,使数据访问继续受到既有权限体系约束。

3.6 第五步:选择模型并进行首轮测试

为 Agent 绑定合适的默认模型;如果业务需要,也可以配置备用模型。随后选择三类问题进行测试:

  1. 单次查询:帮我看一下 3 号产线过去 24 小时有没有异常设备。

  2. 趋势分析:最近一周振动持续升高的设备有哪些?

  3. 综合输出:生成今天的设备运行日报。

测试时重点检查:

  • Agent 是否在需要数据时调用了正确工具。

  • 查询的设备范围和时间范围是否准确。

  • 结论中的数值能否从工具结果中找到依据。

  • 需要分析方法或日报格式时,是否加载了正确 Skill。

  • 数据不足时,Agent 是否主动说明限制,而不是补造结论。

3.7 第六步:用上下文预览定位问题

当回答效果不符合预期时,不要只修改 Prompt。使用 context.preview 查看本轮实际组装的上下文,依次检查:

  • 系统 Prompt 是否为最新版本。

  • 目标 Skill 是否可见并已加载。

  • MCP 工具定义是否注入,名称和参数说明是否清晰。

  • 是否召回了无关记忆。

  • 历史摘要是否遗漏了当前任务所需信息。

  • 各部分是否占用过多 Token,导致关键材料没有进入上下文。

context.preview 只返回上下文预览,不调用模型,也不推进会话,适合在正式测试前排查配置问题。

3.8 第七步:授权并验收

完成调试后,将 Agent 授权给设备运维人员。正式发布前,建议使用一组固定问题验收,并记录期望行为。

验收项 通过标准
数据查询 能调用正确工具,并使用正确的设备和时间范围
结论可追溯 关键数值和判断可以对应到查询结果
异常分析 能区分事实、推测和待验证假设
日报生成 输出结构符合运维日报 Skill 中的约定
权限控制 不同用户只能访问其有权查看的数据和 Agent
安全边界 不执行未授权的写入、删除或控制操作

至此,一个通过 Web 配置的业务 Agent 就基本完成了。它的核心并不是编写一段冗长的 Prompt,而是根据业务需求,对 Prompt、Skill、MCP 等组件进行合理、受控的组合与配置。。

4. 通过 API 开发投研报告 复现工作台

本节面向应用研发团队。我们将设计一个“投研报告复现工作台”:用户上传研报后,系统解析关键内容,Agent 生成复现计划和 DolphinDB 脚本草稿,并结合行情查询、因子计算和回测结果逐步完成复现。

4.1 明确业务系统与 DolphinX 的分工

在 API 集成路径中,DolphinX 不取代原有业务系统。比较清晰的职责划分如下。

投研平台负责 DolphinX 负责
研报上传与解析 Agent 会话管理
任务状态和业务流程 上下文组装与历史摘要
前端交互和结果展示 模型选择与调用
行情查询、因子计算和回测工具的实际执行 Skill 注入
业务数据和产物管理 工具调用结果回填后的后续推理
人工确认和发布流程 上下文预览和用量记录

这个边界能够让投研平台继续掌握业务流程和工具执行,DolphinX 则承担可复用的 Agent Runtime 能力。

4.2 设计整体调用流程

一次研报复现任务可以按以下顺序推进:

  1. 投研平台创建复现任务,并为该任务创建一个 DolphinX session。

  2. 平台解析研报,提取因子公式、数据字段、股票池、回测区间、调仓规则和关键假设。

  3. 平台调用 chat.completions,传入用户目标和结构化外部上下文,并激活相关 Skill。

  4. 模型返回复现计划、代码草稿或工具调用请求。

  5. 投研平台或 MCP Server 执行工具,并将结果作为 toolResults 回填到同一个 session。

  6. Agent 根据工具结果继续生成代码修改建议、复现说明和结果摘要。

  7. 开发阶段使用 context.preview 检查上下文;长任务通过会话摘要保留阶段性结论。

4.3 第一步:为每个复现任务创建会话

业务系统创建复现任务时,同时调用 DolphinX 会话接口创建 session,并把返回的 sessionId 保存到任务记录中。

建议保持一项复现任务对应一个 session。后续的用户追问、模型回复、工具调用和阶段摘要都围绕这个 session 推进。这样既能保留完整任务上下文,也便于定位问题和审计调用过程。

业务侧至少需要维护以下关联信息:

字段 说明
taskId 投研平台中的复现任务 ID
sessionId DolphinX 会话 ID
agentId 本任务使用的 Agent
status 解析中、规划中、等待工具、回测中、待确认、已完成或失败
currentToolCall 当前等待执行或确认的工具调用

4.4 第二步:提取并组织外部上下文

研报原文通常较长,不适合每轮完整注入模型。业务系统可以先将其解析成结构化信息:

研报主题:低波动因子复现
因子定义:……
所需字段:交易日、证券代码、收盘价、复权因子……
股票池:……
回测区间:……
调仓频率:……
交易成本假设:……
待确认项:公式中的窗口边界未明确
原文证据位置:第 8 页、第 12 页

随后通过 chat.completions 的手动组装能力,将这些内容作为本轮外部上下文传给 DolphinX。调用方只需要提供业务材料和本轮控制信息,不需要自行拼接完整 Prompt;DolphinX 仍负责合并 Agent 配置、历史摘要、Skill、工具和当前输入。

组织外部上下文时建议遵循三个原则:

  • 保留字段口径、公式、时间范围等会影响复现结果的精确信息。

  • 对不确定或缺失的信息显式标记“待确认”,不要在解析阶段自行补全。

  • 保留原文页码或段落引用,便于人工核对 Agent 的理解。

具体请求字段和 assemblyConfig 结构以当前版本的 API 列表 为准。

4.5 第三步:激活研报复现相关 Skill

研报复现通常需要多项能力协同,例如:

  • 研报复现方法:从自然语言和公式描述中识别复现步骤与不确定项。

  • 因子开发规范:定义字段口径、缺失值处理和截面计算方式。

  • Dlang 编程规范:约束 DolphinDB 脚本结构和编码风格。

  • 回测插件使用规范:说明参数、结果字段和常见错误。

业务系统可以在本轮请求中显式指定需要激活的 Skill。另一种方式是将 Skill 加载接口包装成工具,让模型根据任务进度逐步加载能力。前者更确定、便于控制;后者更灵活,但需要设置清晰的工具说明和调用边界。

对于复现任务,建议在规划阶段显式激活“研报复现”Skill;只有当任务确实进入编码或回测阶段时,再加载相应的编程和工具 Skill,避免上下文过早膨胀。

4.6 第四步:处理工具调用

模型可能在分析过程中请求以下工具:

  • 查询研报字段与 DolphinDB 数据字段的映射。

  • 检查现有因子库是否已有同类因子。

  • 获取样本行情数据。

  • 执行小范围因子计算。

  • 运行回测并返回收益、回撤和换手率等结果。

chat.completions 可以接收新的用户消息,也可以接收上一轮工具调用对应的 toolResults。因此,业务系统需要实现一个工具调用循环:

  • 检查模型响应中是否包含工具调用。

  • 校验工具名称、参数和当前用户权限。

  • 对高成本或高风险操作执行人工确认或策略校验。

  • 调用业务系统内部工具,或通过 DolphinX 的 mcp.tools.call 调用 MCP 工具。

  • 将工具执行状态、结果或错误作为 toolResults 回填给同一个 session。

  • 继续调用 chat.completions,直到模型生成阶段性结果或任务需要人工处理。

工具结果不要只返回“成功”或“失败”。应包含模型继续判断所需的结构化信息,例如样本范围、实际参数、结果指标、警告和错误原因。对于大结果集,可以返回摘要和可进一步查询的引用,避免将完整明细一次性放进上下文。

4.7 第五步:管理多轮任务状态

研报复现不是一次短问答。业务系统应把模型对话状态和业务任务状态分开管理。

例如,当 Agent 提出“公式窗口边界不明确,需要用户确认”时:

  • DolphinX session 保留模型为何提出这个问题的对话上下文。

  • 投研平台将任务状态更新为“待确认”,并在前端展示问题。

  • 用户确认后,平台把答案作为新的用户消息发送到原 session。

当 Agent 请求回测时:

  • 平台将任务状态更新为“回测中”。

  • 工具执行完成后,平台把回测结果作为 toolResults 回填。

  • Agent 继续解释结果,并判断是否需要修改脚本或参数。

不要仅依靠聊天消息推断业务任务状态。任务重试、人工确认、执行超时和失败恢复等逻辑应由投研平台显式管理。

4.8 第六步:调试上下文和长任务

开发阶段可以在关键节点调用 context.preview,检查:

  • 研报结构化信息是否完整进入上下文。

  • 激活的 Skill 是否与当前阶段匹配。

  • 工具定义是否准确,是否注入了不需要的工具。

  • 历史摘要是否保留了已经确认的公式口径和回测假设。

  • 大型工具结果是否挤占了其他关键材料的 token 预算。

随着任务变长,DolphinX 可以使用会话摘要承接早期历史,同时保留最近几轮原始对话。业务系统仍应把已经确认的关键参数保存在自己的任务数据中,并在需要时作为受控外部上下文传入。会话摘要适合维持对话连续性,但不应取代业务系统中的正式任务状态和参数记录。

4.9 第七步:完成端到端验收

正式接入前,至少覆盖以下测试:

测试场景 重点检查
信息完整的研报 能否生成可执行的复现计划和合理脚本草稿
公式或口径缺失 是否明确提出待确认项,而不是自行假设
字段映射失败 是否保留工具错误并给出可操作的修正建议
长时间回测 任务状态、超时、重试和结果回填是否正确
多轮修改 已确认的口径是否在后续轮次中保持一致
权限不足 是否阻止工具执行,并向用户说明授权问题
大型工具结果 是否通过摘要或引用控制上下文大小
会话恢复 服务或页面恢复后,能否继续原任务

完成这一步后,投研平台继续负责研报、任务、工具和界面,DolphinX 则提供会话、上下文、模型、Skill、工具结果回填和调试能力。两者通过清晰边界共同组成完整的 Agent 应用。

5. 常见问题

5.1 业务规则应该写进 Prompt 还是 Skill?

长期稳定的角色和安全边界写进系统 Prompt;某一类任务的处理方法、格式、示例和参考文件放入 Skill。这样便于复用和版本管理,也能减少每轮上下文体积。

5.2 为什么已经配置 Skill,模型却没有使用?

先通过 context.preview 检查 Skill 是否对当前 Agent 和用户可见、Catalog 描述是否足以让模型识别其用途,以及本轮是否加载了正确 Instruction。必要时可以在业务流程的关键阶段显式激活 Skill。

5.3 API 集成时,是否还需要业务系统保存状态?

需要。DolphinX 管理会话和模型上下文;业务系统仍应保存任务状态、正式参数、产物、人工确认和失败恢复信息。不要把会话历史当成业务数据库。

5.4 Web 配置验证成功后,还能迁移到 API 集成吗?

可以。Web 路径适合快速验证 Prompt、Skill、模型和工具设计。验证成熟后,可以继续复用这些平台配置,再由业务系统通过 API 控制会话、外部上下文和工具调用流程。

6. 总结

本文通过设备运行分析 Agent 和投研报告复现工作台两个案例,介绍了 DolphinX 构建业务 Agent 的两种方式:Web 配置适合快速搭建业务助手,API 集成适合将 Agent 能力嵌入已有系统。

实际应用中,可以根据业务流程的复杂度和系统集成需求选择合适的方式,也可以先通过 Web 完成验证,再逐步转向 API 集成。