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 Web 和 API 列表。
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 绑定合适的默认模型;如果业务需要,也可以配置备用模型。随后选择三类问题进行测试:
-
单次查询:
帮我看一下 3 号产线过去 24 小时有没有异常设备。 -
趋势分析:
最近一周振动持续升高的设备有哪些? -
综合输出:
生成今天的设备运行日报。
测试时重点检查:
-
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 设计整体调用流程
一次研报复现任务可以按以下顺序推进:
-
投研平台创建复现任务,并为该任务创建一个 DolphinX session。
-
平台解析研报,提取因子公式、数据字段、股票池、回测区间、调仓规则和关键假设。
-
平台调用 chat.completions,传入用户目标和结构化外部上下文,并激活相关 Skill。
-
模型返回复现计划、代码草稿或工具调用请求。
-
投研平台或 MCP Server 执行工具,并将结果作为 toolResults 回填到同一个 session。
-
Agent 根据工具结果继续生成代码修改建议、复现说明和结果摘要。
-
开发阶段使用 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 集成。
