> ## Documentation Index
> Fetch the complete documentation index at: https://linkly.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用 AI 对话

> 在桌面应用里直接和 AI 对话，让它检索、阅读、串联你电脑上的文档，并给出带引用的回答。

## Chatbot 是什么

Chatbot 是 Linkly AI 桌面应用内置的 AI 对话窗口，也是应用的**默认启动窗口**——安装完打开应用，第一眼看到的就是它。

它和普通的 AI 聊天工具最大的区别是：**它自带一整套检索工具，能直接看到你已索引的文档**。你不需要上传文件、不需要复制粘贴，只要提问，它会自己去搜、去读、去交叉比对，然后给出带引用的回答。

<CardGroup cols={2}>
  <Card title="不用配置就能用" icon="bolt" iconType="duotone">
    登录 Linkly AI 账号即可使用官方模型，检索工具已经内置好
  </Card>

  <Card title="过程完全透明" icon="eye" iconType="duotone">
    它搜了什么关键词、读了哪些文件、返回了什么，全都能展开看
  </Card>
</CardGroup>

### 和搜索启动器的分工

应用里有两个入口，很容易混：

| 入口                        | 适合                   | 打开方式                         |
| ------------------------- | -------------------- | ---------------------------- |
| [搜索启动器](/docs/zh/use-launcher) | 你已经知道要找哪份文件，几秒钟定位并预览 | 全局快捷键 `⌘⇧L` / `Ctrl+Shift+L` |
| **Chatbot**（本文）           | 你有一个问题，需要跨多份文档读、比、总结 | 点托盘图标；macOS 也可点 Dock 图标      |

简单判断：**要「找一份文件」用启动器，要「问一个问题」用 Chatbot。**

<Warning>**Chatbot 没有自己的全局快捷键。**`⌘⇧L` / `Ctrl+Shift+L` 打开的始终是搜索启动器，不是 Chatbot。想开 Chatbot 请点托盘图标（macOS 上点 Dock 图标也行）。</Warning>

***

## 打开与界面

窗口默认 1200×800，可自由缩放，最小 880×640。**关闭窗口只是隐藏，应用仍在后台运行**——下次点托盘图标会立刻回到刚才的对话。

界面分三栏：

<Steps>
  <Step title="左侧栏：对话列表">
    最上方是「新建对话」，下面是**笔记**、**找文件**（打开搜索启动器）、**设置**三个入口，再往下是按日期分组的会话列表（今天 / 昨天 / 过去 7 天 / 本月 / 更早），每条会话右键或悬停可**重命名**、**删除**。

    最底部一排小按钮：**模型配额**、**索引状态**、**快捷键**、**官网**。
  </Step>

  <Step title="中栏：对话区">
    消息流 + 输入框。输入框右侧的工具栏里有**模型选择器**和**上下文用量百分比**。
  </Step>

  <Step title="右侧「工作区」：文件面板">
    两个标签页：

    * **本对话中的文件** —— 分为「引用的文件」和「读过的文件」两组，是本次对话中 AI 实际碰过的文件
    * **知识库文件** —— 一棵可搜索的文件树，右键菜单提供「添加到对话」「在 Finder / 资源管理器中显示」「立即转写」等操作

    点任意文件可以钻进去直接预览正文；工作区还能最大化，当成阅读器用。
  </Step>
</Steps>

### 窗口内快捷键

以下快捷键**只在 Chatbot 窗口处于焦点时生效**：

| 快捷键                    | 作用         |
| ---------------------- | ---------- |
| `⌘N` / `Ctrl+N`        | 新建对话       |
| `⌘⇧N` / `Ctrl+Shift+N` | 打开笔记       |
| `⌘B` / `Ctrl+B`        | 折叠 / 展开左侧栏 |
| `⌥⌘B` / `Ctrl+Alt+B`   | 折叠 / 展开工作区 |
| `⌘,` / `Ctrl+,`        | 打开设置       |

### 索引状态

左侧栏底部的索引按钮有三种状态：转圈的「正在索引…」、打勾的「索引已是最新」、红色的「索引出错」。点击会跳转到 **设置 → 索引**。

<Tip>如果 AI 说找不到某份你确信存在的文件，先看这个按钮——多半是还没索引完，或者那个目录压根没被添加进来。</Tip>

***

## 用 @ 指定范围

这是 Chatbot 最常用、也最容易被误解的功能。在输入框里打 `@`，会弹出选择器，可以挑四类对象：

* **本地知识库**（[了解知识库](/docs/zh/use-libraries)）
* **云端知识库**（[了解云端知识库](/docs/zh/use-cloud-library)）
* **文件夹**
* **单个文件**

选中后，输入框上方会出现一排标签。一次 @ 几个没有硬性上限，**超出一行的部分会折叠成 `+N`**，悬停可以看到完整列表。

<Warning>
  **`@` 是给 AI 的范围建议，不是硬过滤器。**

  选中的对象会以引用的形式（路径、库标识、文档 id）写在你这条消息的开头，同时系统提示词里有一段固定说明，告诉模型该怎么解读它们。应用**不会预读任何文档正文**，正文仍然由模型自己调用检索工具去取。

  也就是说：你是在**告诉 AI 优先在这里找**，而不是在**限定它只能在这里搜**。绝大多数情况它会照做，但模型有可能不完全遵守，尤其在这个范围内确实找不到答案时。
</Warning>

<Note>**`@` 逐条消息生效，不是设置一次管一整个会话。** 这条消息里 @ 了某个库，下一条消息不 @ 就恢复成全局范围。需要连续多轮限定在同一个范围，就每条都 @ 一次。</Note>

### 选择器的两组行为不一样

弹出的选择器分成两组，行为有明显区别：

| 分组         | 行为                         |
| ---------- | -------------------------- |
| **知识库**    | 打开就全部列出来，可以直接挑             |
| **文件和文件夹** | **必须先输入关键词**才会出候选，默认最多 8 条 |

而且「文件和文件夹」这一组**只匹配文件名（basename），不匹配路径**。想 @ `~/Projects/2026/年度总结.docx`，输 `年度` 或 `总结` 都能命中，但输 `Projects` 匹配不到这个文件（只会匹配到名为 `Projects` 的文件夹本身）。

### 云端知识库要能被 @，需要满足四个条件

如果你在选择器里找不到某个云端知识库，逐条对照检查：

1. 已登录 Linkly AI 账号（或已配置 Cloud API 密钥）
2. 该库已经在**网页端**点过「连接」
3. **设置 → 知识库 → 已连接的云端知识库** 里，这个库的开关是打开的
4. 该云端库**没有绑定到某个本地知识库**

<Note>第 4 条是有意设计：已绑定的云端库只通过对应的本地条目出现，避免同一份内容在选择器里列两遍。想 @ 它，选那个本地库即可。</Note>

### 没有文件上传

Chatbot **不支持上传文件或添加附件**。`@` 引用的对象必须是**已经被索引的**文件。想让 AI 读一份新文件，先把它所在的目录加进 **设置 → 文件夹**，或者直接放进 `~/LinklyAI` 目录（该目录默认被监视），等索引完成后再 @ 它。

***

## 选择模型与查看额度

### 两类模型来源

| 来源                 | 怎么配                                               |
| ------------------ | ------------------------------------------------- |
| **Linkly AI 官方模型** | **设置 → 账户** 登录账号即可，无需填任何密钥                        |
| **任意 OpenAI 兼容端点** | **设置 → AI → 模型提供商 → 自定义提供商**，填 Base URL 和 API Key |

第二类既包括第三方云端 API，也包括你机器上跑的 **Ollama**、**LM Studio**（本地服务通常可以不填密钥）。添加时提供 12 个预设可快速填入：OpenAI、DeepSeek、Mistral、Groq、OpenRouter、Qwen、MiniMax、Moonshot、Zhipu、SiliconFlow、Ollama、LM Studio。

<Note>预设**只预填地址**，不包含模型列表。填完地址后，下一步可以从提供商的 `/v1/models` 端点自动发现模型，也可以手动输入模型 id。</Note>

切换模型的入口在**输入框右侧的工具栏**里，按提供商分组。**设置 → AI** 里可以设置新建对话时使用的默认模型，以及固定的回复语言。

<Warning>\*\*对话模型必须支持工具调用（Function Calling）。\*\*不支持的模型根本不会出现在列表里——Chatbot 的全部能力都建立在调用检索工具之上，没有工具调用就只是一个不认识你文件的普通聊天框。</Warning>

### 额度怎么算

Linkly AI 官方模型的额度**不是按 token 数、也不是按请求次数**单独计算的，而是一个**共享的额度池**：每个模型有自己的**倍率**，在模型选择器里以徽章形式标出，倍率越低的模型越省额度。

额度有**三个并行的时间窗口，各自独立计算**：

| 窗口   | 说明         |
| ---- | ---------- |
| 5 小时 | 防止短时间内集中消耗 |
| 7 天  | 周度用量       |
| 30 天 | 月度用量       |

任意一个窗口打满，就会被限流——即使另外两个还有余量。查看方式：点左侧栏底部的**配额按钮**，弹出三个环形进度条和各自的重置时间。

<Note>额度用完时，输入框上方会出现一条**琥珀色横幅**提示已达上限和恢复时间，横幅可以关掉，但真正的拦截在服务端——关掉横幅不会让你多发一条。 免费账户在模型列表里看不到 Pro 专享的模型（服务端已经过滤掉了）；但如果你的 Pro 订阅到期、而默认模型还停在其中一个上，发送时会收到另一种提示升级的横幅。</Note>

第三方和本地模型不占用 Linkly AI 的额度，按你和对应服务商的计费方式结算。

***

## 会话与上下文压缩

### 会话

所有会话都存在**本机的 SQLite 数据库**里。**没有数量上限、没有自动清理、没有保留期**——不手动删就一直留着。工具调用的入参、返回、状态、报错以及模型的推理内容都会一并持久化，所以隔几天回来展开旧对话，细节仍然是完整的。

标题是自动生成的：先截取你的第一条消息做一个临时标题，随后在后台用同一个模型生成正式标题。**手动重命名过的会话不会被覆盖**。

### 上下文压缩

对话变长以后，全部消息塞不进模型的上下文窗口。Linkly AI 的处理方式是**压缩**（compaction）：

* **自动触发阈值是模型上下文窗口的 80%**
* **手动触发**：在输入框里输入 `/compact`

<Warning>
  **如果模型的上下文窗口大小未知，永远不会自动压缩。**

  窗口大小来自提供商 `/v1/models` 返回的 `context_length` 字段。自定义提供商、本地 Ollama / LM Studio 经常不提供这个字段，此时用量百分比显示不出来，自动压缩也不会发生——对话只会一路变长，直到模型自己报错。这类模型请自己留意长度，适时手动 `/compact` 或新建对话。
</Warning>

压缩的做法是 **append-only 的**，这一点很重要：

* 只把**最旧的一段消息**折叠成一段摘要，**原始消息永远不会被删除**
* 折叠掉的消息在界面上**仍然看得到**，只是不再进入发给模型的上下文
* **最近的一段消息逐字保留**，不做任何摘要

摘要本身是结构化的六段：用户目标 / 每一条用户消息 / 关键结论 / 读过的文档 / 工具与检索结果（含负面结果）/ 未决问题。模型的推理内容会在压缩时被丢弃。

你在界面上看到的，是消息流中间多出一条可展开的分隔线：**「已压缩较早的消息（N）」**。点开就是那段摘要，再点原始消息依然可读。

<Warning>
  **80% 的自动压缩没有事前提示**，它会安静地发生。只有当上下文真的被占满（100%）时，才会出现「本对话已占满上下文窗口」的警告横幅，并提供一个「压缩」按钮。

  想提前知道进度，看输入框工具栏里的**上下文用量百分比**。
</Warning>

<Tip>换个话题时新建对话（`⌘N` / `Ctrl+N`）几乎总是比压缩更划算：压缩要额外调一次模型，还会损失细节，而新对话干净、便宜、更快。</Tip>

***

## 看懂 AI 在做什么

Chatbot 刻意把过程摊开给你看，这是判断答案可不可信的关键。

### 工具调用

AI 每次检索、读文件都是一次工具调用。连续的多次调用会**折叠成一个分组**：运行中自动展开让你看到进度，结束后自动收起，保持消息流干净。

**展开分组可以看到完整的入参和返回结果**——它到底搜了什么关键词、限定了什么范围、返回了几条、哪条失败了，一目了然。答案不对时，这里通常直接暴露原因（比如关键词选偏了，或者某个目录根本没索引）。

### 引用

回答中来自文档的事实，句尾会带一个可点击的**引用标记**，点击可跳到来源。被引用和被读过的文件会自动汇总到右侧工作区的「本对话中的文件」里，方便你逐一核对。

***

## 导出

Chatbot 支持**单条导出**，产物落在系统的下载目录：

| 导出对象     | 可选格式            | 入口          |
| -------- | --------------- | ----------- |
| 单条 AI 回复 | Markdown / HTML | 回复下方的「下载回复」 |
| 消息里的单个表格 | CSV / Markdown  | 表格上方的「下载表格」 |

<Warning>**没有整会话导出功能**，也不支持 PNG 或 XLSX。需要留存整段对话，目前只能逐条导出，或者用选中复制。</Warning>

***

## 常见问题

<AccordionGroup>
  <Accordion title="为什么按 ⌘⇧L 打开的不是 Chatbot？">
    这是设计如此。全局快捷键 `⌘⇧L` / `Ctrl+Shift+L` 绑定的是[搜索启动器](/docs/zh/use-launcher)，Chatbot 没有独立的全局快捷键，请点托盘图标打开（macOS 上也可以点 Dock 图标）。窗口内的 `⌘N`、`⌘B` 等快捷键必须先让 Chatbot 窗口获得焦点才生效。
  </Accordion>

  <Accordion title="我 @ 了一个知识库，为什么 AI 还是搜到了别的地方的内容？">
    因为 `@` 是**范围建议**而不是硬过滤。被选中的对象以引用形式附在消息开头，由模型自己决定怎么用——它通常会优先在这个范围内检索，但在范围内找不到时可能会扩大搜索。

    如果需要严格限定，最可靠的做法是在消息里把话说死，例如「只在 ml-papers 这个知识库里找，找不到就直接说找不到」。
  </Accordion>

  <Accordion title="@ 的时候搜不到我的文件？">
    按顺序排查：

    1. **有没有输关键词**——「文件和文件夹」这一组必须先输入关键词才出候选，默认最多显示 8 条，太宽泛的词会被别的文件挤掉。
    2. **输的是不是文件名**——匹配只看文件名本身，不看路径。用路径中间的目录名搜不到文件。
    3. **文件索引了吗**——看左侧栏底部的索引状态按钮，或去 **设置 → 文件夹** 确认那个目录已被添加。
  </Accordion>

  <Accordion title="对话记录会不会自动删除？占空间吗？">不会自动删除。会话存在本机数据库里，**没有数量上限、没有保留期**，包括每次工具调用的完整入参和返回。不需要的会话在左侧列表里手动删除即可。</Accordion>

  <Accordion title="对话内容会上传到服务器吗？">
    取决于你选的模型。用 Linkly AI 官方模型或任何第三方云端 API 时，消息内容会发给对应的模型服务——**包括 AI 检索到的文档片段**。

    如果不希望内容离开本机，在 **设置 → AI** 里添加本地的 Ollama 或 LM Studio 提供商并选用它的模型，这样对话全程不出本机（但本地模型必须支持工具调用）。
  </Accordion>

  <Accordion title="Chatbot 和把 Linkly AI 接进 Claude / Cursor 有什么区别？">
    检索能力是同一套。区别在于**在哪里用**：

    * **Chatbot** —— 开箱即用，不用配置 MCP，附带文件树、引用面板、文档预览这些围绕「读资料」设计的界面。
    * **[MCP](/docs/zh/use-mcp) / [CLI](/docs/zh/use-cli)** —— 把 Linkly AI 的检索工具接进你已经在用的 AI 工具，适合写代码、跑 Agent 等需要和其他工具链一起工作的场景。

    两者可以同时用，互不影响。
  </Accordion>

  <Accordion title="压缩之后，之前说过的内容还找得回来吗？">
    找得回来。压缩是 append-only 的——**原始消息永远不会被删除**，只是不再进入发给模型的上下文。在消息流里点开「已压缩较早的消息（N）」这条分隔线就能看到全部原文。

    但要注意：模型此后**只能看到摘要**，不再看到那些原文。如果它「忘了」某个细节，把关键信息在新消息里再说一遍即可。
  </Accordion>
</AccordionGroup>

***

## 延伸阅读

* [使用搜索启动器](/docs/zh/use-launcher) —— 快速定位单份文件
* [使用知识库](/docs/zh/use-libraries) —— 把文档按主题分组，让 `@` 更好用
* [使用云端知识库](/docs/zh/use-cloud-library) —— 让知识库脱离本机 24 小时在线
* [工具介绍](/docs/zh/tools-intro) —— Chatbot 背后那套检索工具的完整说明
* [常见问题](/docs/zh/faq) —— 安装、索引、连接相关的通用问题
* [使用笔记](/docs/zh/use-notes) —— 同一个窗口里的卡片笔记
* [模型服务](/docs/zh/model-service) —— 官方模型服务的完整说明与额度机制
* [账号](/docs/zh/linkly-account) —— 登录能解锁什么、免费与 Pro 的区别
