# LLM 兼容接口

Source: https://openflow.run/zh-cn/docs/nodes/llm/
Language: zh-CN
Product version: 0.1.0-beta.77

查阅已有 LLM 定义的消息模板、输入覆盖和结果约束。此类型不在添加面板中提供。

添加面板没有独立的 LLM 选项。本文说明已有 LLM 定义及其 CLI/MCP 接口。新建模型任务时，可以在面板中选择“AI 智能体”，或选择应用目录实际提供的模型操作。

LLM 接口使用明确的一组消息请求模型。

## 消息与模型

配置模型和模板默认值。模板通过 `{{input}}` 等占位符插入具名输入。通过 `messages` 提供的历史消息排在模板消息之前，历史消息本身不做模板替换。

```json
{
  "op": "node.add", "as": "summary", "type": "llm", "name": "Summarize a ticket",
  "config": {
    "model": { "model": "deepseek-v4-flash" },
    "template": [{ "role": "user", "content": "Summarize in one sentence: {{input}}" }]
  },
  "inputs": { "input": { "kind": "value", "value": "The customer cannot complete checkout." } }
}
```

模型必须可通过部署端已配置的模型服务调用。只绑定本次请求需要的数据。

LLM 将开始节点的输入填入消息模板，返回一条文本输出。

**输入**
{"text":"The customer cannot complete checkout."}

**预期结果**
生成一句话摘要，具体措辞由模型决定。

**运行前准备**
运行前，在当前部署环境中配置模型服务，并选择可用模型。

[下载工作流](https://openflow.run/docs/examples/summarize-text.openflow.json)

## 默认值与覆盖

配置中的 `model`、`template` 和 `messages` 是保存的默认值。同名输入绑定优先于这些默认值。修改默认配置，不会移除已有绑定。

使用 `default` 来源恢复继承默认值，使用 `unset` 明确停用默认值。两者也都不同于 JSON 字面值 null。

## 结果

公开编排接口负责管理结果端口。默认结果为文本，`config.resultSchema` 用于要求结构化结果。服务会按该契约校验输出，通过后才提交任务结果。

schema 约束数据结构，不保证事实正确。应按实际任务检查生成内容。具体措辞取决于模型，离线预览不会生成或确认结果。

## 失败

LLM 支持普通[任务重试和错误处理](https://openflow.run/zh-cn/docs/concepts/errors-and-retries/index.md)。重试使用相同输入重新执行模型任务，可能产生不同内容，也可能增加模型用量。

## 资料来源

*   [docs/authoring/node-authoring.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/authoring/node-authoring.md)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#node-configuration-semantics)
*   [packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts)
