# 对话

> 请用户做选择，以及联网搜索。

Source: https://kcq.nebutra.com/zh/docs/agent/tools/conversation


<Callout>
  由固定提交的图表源码生成（

  [`1aa5e22`](https://github.com/TsekaLuk/KLineChartQuant/blob/1aa5e22c61313a34d08878ad895e604e0d4a85e9/packages/core/src/foundation/agent/chartToolRegistry.ts)

  ）。工具说明保留模型实际收到的英文原文，不做翻译。
</Callout>

web_search [#web_search]

<ToolMeta label="Web search" safety="read-only" safetyLabel="只读" mode="可并行" origin="Agent 运行时" source="https://github.com/TsekaLuk/KLineChartQuant/blob/1aa5e22c61313a34d08878ad895e604e0d4a85e9/packages/agent-runtime/src/search/impl/web-search-tool.ts#L8" sourceLabel="源码" />

Search the public web for current information. Results include titles, URLs, and snippets; cite the returned URLs when using them. If Web search is not configured, tell the user to add an Exa API key in Agent settings and do not invent search results.

**参数**

| 字段                 | 类型                   | 必填 | 约束                                                     | 说明 |
| ------------------ | -------------------- | -- | ------------------------------------------------------ | -- |
| <code>query</code> | <code>string</code>  | 是  | min length <code>1</code>; max length <code>500</code> |    |
| <code>limit</code> | <code>integer</code> | —  | ≥ <code>1</code>; ≤ <code>10</code>                    |    |

**最小输入** · 仅含必填字段，占位值由 schema 推导。

```json
{
  "query": "<query>"
}
```

<ToolSchema name="web_search" label="JSON Schema" />

ask_user [#ask_user]

<ToolMeta label="Ask question" safety="read-only" safetyLabel="只读" mode="按序执行" origin="Agent 运行时" source="https://github.com/TsekaLuk/KLineChartQuant/blob/1aa5e22c61313a34d08878ad895e604e0d4a85e9/packages/agent-runtime/src/tools/ask-user-tool.ts#L7" sourceLabel="源码" />

Ask the user a clarifying question in the Agent panel and wait for the answer before continuing. This is required whenever a tool result reports status "ambiguous": turn every candidate into one option, where value is the candidate's unique routing identifier (for example its id, or source + exchange + assetClass), label is its display name, and description explains its source, exchange, and assetClass routing fields. Every value must be unique; labels may repeat. Never answer on the user's behalf and never retry with a guessed candidate.

**参数**

| 字段                                  | 类型                     | 必填 | 约束                                                      | 说明 |
| ----------------------------------- | ---------------------- | -- | ------------------------------------------------------- | -- |
| <code>question</code>               | <code>string</code>    | 是  | min length <code>1</code>; max length <code>2000</code> |    |
| <code>multiSelect</code>            | <code>boolean</code>   | —  | —                                                       |    |
| <code>options</code>                | <code>object\[]</code> | 是  | min items <code>1</code>; max items <code>8</code>      |    |
| <code>options\[].value</code>       | <code>string</code>    | 是  | min length <code>1</code>; max length <code>200</code>  |    |
| <code>options\[].label</code>       | <code>string</code>    | 是  | min length <code>1</code>; max length <code>200</code>  |    |
| <code>options\[].description</code> | <code>string</code>    | —  | min length <code>1</code>; max length <code>500</code>  |    |

**最小输入** · 仅含必填字段，占位值由 schema 推导。

```json
{
  "question": "<question>",
  "options": [
    {
      "value": "<value>",
      "label": "<label>"
    }
  ]
}
```

<ToolSchema name="ask_user" label="JSON Schema" />
