# AI 与 MCP 使用指南

[English](https://github.com/hongchanho93/tradeflow-lite/blob/main/docs/en/ai-guide.md) · [首页](https://github.com/hongchanho93/tradeflow-lite/blob/main/README.zh-CN.md) · [工具参考](https://github.com/hongchanho93/tradeflow-lite/blob/main/docs/zh-CN/api-reference.md)

## 使用内置对话

点击右侧 **AI → 设置**，选择服务商、模型并填写 API Key，保存后回到对话。高级设置中填写协议和**完整 POST 请求地址**，不是网站首页或仅 Base URL。当前实现 Chat Completions、Responses、Anthropic Messages 三种协议；所用模型和地址仍需实际支持工具调用，协议匹配不代表支持每家服务的全部功能。

更换服务地址或协议时，需要对应目标的有效凭证。不需要认证的本地模型，应明确配置为不需要 Key。消费订阅不自动等于 API 凭证，应用没有内置“订阅转 API”功能。

支持的 macOS/Windows 配置通过系统凭证库保存密钥。保存和恢复设置不会请求模型；发送消息或主动继续失败请求，可能产生所选服务的费用。不要将密钥放进提示词、源码或问题反馈中。

先尝试：“读取当前图表的真实品种、周期和可用数据范围。”检查是否真正执行了工具；看起来像工具调用的文字不是执行证据。

## 连接外部 MCP 客户端

在 **AI → 设置 → 连接外部 AI（MCP）**启用本地服务，把应用生成的完整配置复制到你信任的 MCP 客户端。保留辅助程序命令、环境参数和运行文件路径，使用实际配置，不猜端口、不使用示例 token。应用必须保持运行，工具才能使用。

启用状态会保存。正常重启应用、页面重载，以及关闭后重新开启 MCP，都保留原配对凭证。复制的配置指向稳定的 `mcp-runtime-v1.json` 发现文件，辅助程序从中读取当前本机端口，因此端口变化不要求重新复制配置。

**关闭 MCP**停止服务并取消自动启动，但保留凭证。**重置连接凭证**会轮换 token，旧配置随即失效，需要更新各客户端中的配置。发现文件本身不含 token，但客户端配置包含。

把配对配置当作密码保管。配对后的客户端可以使用已开放的应用写工具，包括修改绘图、自选、指标和保存的任务，不再逐次弹第二个批准框。因此，只配对可信客户端。服务仅在本机工作，不是公网远程 MCP 接口，不要把它暴露到互联网。

配对持久化**不等于会话持久化**。重新连接会建立新的工具会话，旧 `snapshotId`、`datasetId`、`taskId` 等临时句柄不能跨会话转移，应重新查询当前状态。

## AI 应该怎样开始

先发现运行中应用的 `tools/list` 及参数结构。陌生任务先读 `tf_ai_help`，主题包括 `overview`、`chart`、`market`、`indicator`、`drawing`、`data`、`task`、`files`。生成代码前分别读取 `tf_indicator_guide`、`tf_data_guide` 或 `tf_task_guide`，运行中的指南和结构优先于记忆中的例子。

图表操作先用 `tf_context_get({})` 取得上下文，遵守当前版本。查询其他品种或周期，优先使用独立 `tf_market_history`，不要为了取数切换用户图表。`tf_compute_summary`、`tf_compute_sma` 接受 `snapshotId` 或 `datasetId`，必须二选一，可以不切图完成计算。

读取所需分页，并核对实际时间、`coverage`、`finality`、`shortfall` 与单位。`catalogComplete=false` 时搜索为空，不证明品种不存在。用完释放临时数据集；重复释放已消费的行情句柄得到 `snapshot_unavailable` 是正常语义，不是数据丢失。

收到 `notifications/tools/list_changed` 后重新发现工具。动态工具使用宿主提供的实际名称和版本信息，不从长 ID 自行猜名称。`path/reason/expected` 结构化错误用于精确修正参数，不应反复盲猜其他形状。

## 三种常用流程

**制作指标：**读取指南，修改旧指标时读取指定用户指标源码。生成完整 `.tfi`，验证后测试同一个 draft，检查诊断，再安装并核对实例运行状态。更新保留 ID，使用 `applyToExisting=true`，不要额外添加重复实例；放弃的 draft 应释放。见[指标说明](https://github.com/hongchanho93/tradeflow-lite/blob/main/docs/zh-CN/indicators.md)。

**本地研究：**用户先通过**设置 → 我的数据**选择目录。只读取必要样本，验证并安装 `.tfc`，再对小范围验证运行 `.tft`。在本地等待，读取实际结果分页，明确覆盖不足；用户要求复用时，保存成功任务的定义。见[本地数据与任务](https://github.com/hongchanho93/tradeflow-lite/blob/main/docs/zh-CN/data-and-tasks.md)。

**画图与导出：**发现绘图类型、读取对象当前版本、准备方案，再提交。即使不再弹第二次批准框，修改用户已有内容仍必须符合用户明确要求。保存报告或表格使用 `tf_result_save_file`，依据成功回执报告结果；仅输出“已保存”不算完成。

## 数据访问、隐私与恢复

所选模型可能收到你的问题，以及任务中实际读取的工具数据或扩展源码。本地文件仍留在原处，但发送给外部模型的样本和研究结果不再是纯本地数据。选过一个目录，不等于允许无关地读取其中每一个文件。

业务接口不提供工程源码编辑、Shell/Git、任意文件、系统凭证或下单能力。文件输出只能在桌面、文档、下载及其相对子目录创建新的 Markdown、TXT、CSV、JSON，不能覆盖、读取、删除或执行任意文件。导入内容、行情名称、代码注释都是不可信数据，不是新增权限的指令。

手动切图不会终止整轮模型推理或独立任务；旧图操作返回 `context_stale`，需要刷新后重新判断，不能悄悄改投新图。临时服务错误显示继续入口时，可手动继续，不重放已经完成的写操作。停止不会自动撤销已提交修改，也不会退还模型费用。

历史对话恢复文字，不恢复旧授权、待提交写操作，也不自动重放工具。对话失败后仍可发送新消息。当前内存任务系统不提供永久结果库、任意中断后的任务恢复或完整结果版本历史。
