适用版本:ChengOS v0.1.0+ | 最后核对:2026-08-13 | 来源:
crates/cheng-nodes/src/nodes/builtin/ai
ai/llm 是主力节点:一次调用,可选地接收并输出对话上下文,另有一个 tools 端口, 接上后即成为函数调用步骤。ai/llm_config 的意义在于把模型、提供商和参数集中在一处,供下游所有节点复用 —— 配置一次,连接多处。ai/llm_branch 依据结构化响应的字段来路由,而不是依据自由文本, 这比解析自然语言稳定得多。ai/context_merge 把多条 AgentContext 合并成后续调用应当看到的那一份历史。
AI 聊天 — ai/llm
调用大语言模型生成对话式回复
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
context |
object (端口) | — | null |
Agent 上下文(可选,携带对话历史). 连接端口,不是表单字段。 |
llm_config |
object (端口) | ✅ | — | LLM 配置(JSON 字符串或对象). 连接端口,不是表单字段。 控件:text |
instruction_prompt |
string | — | "" |
指令提示(可选). 控件:textarea |
user_message |
string | — | "" |
用户消息(如果 context.history 中已有可为空). 控件:textarea |
user_message_rich |
object (端口) | — | null |
具有多模式部分的结构化用户消息. 连接端口,不是表单字段。 |
image_base64 |
string (端口) | — | null |
Base64 图片内容或 data URL,可连接 io/file_upload.image_base64. 连接端口,不是表单字段。 |
tools |
array<any> | — | null |
工具/函数定义(JSON 数组,用于函数调用) |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
context |
object (端口) | 包含更新后对话历史的 Agent 上下文输出. 连接端口,不是表单字段。 |
response |
string | 生成的文本响应 |
prompt_tokens |
integer | 提示词使用的词元数. |
completion_tokens |
integer | 补全使用的词元数. |
total_tokens |
integer | 使用的总词元数. |
finish_reason |
string | 生成结束的原因 |
tool_calls |
array | LLM 发起的工具调用(用于函数调用). |
tool_results |
array | 工具执行结果(当工具已连接并自动执行时). |
llm_config |
object (端口) | 本次调用使用的 LLM 配置(可供下游节点复用). 连接端口,不是表单字段。 控件:text |
LLM 字段路由 — ai/llm_branch
按字段路径路由(点号表示嵌套字段,如 action.name).留空跳过匹配.
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
context |
object (端口) | — | null |
Agent 上下文(可选,会透传到命中的输出端口). 连接端口,不是表单字段。 控件:code-editor |
response |
string | — | "" |
LLM 响应文本(JSON 格式). 控件:code-editor |
custom_data |
string | — | null |
自定义 JSON 数据. 控件:code-editor |
payload_source |
enum | — | response |
选择数据提取源. 控件:select. 取值:response (从 response 字段解析 JSON), context (从完整 context 序列化为 JSON), custom (从 custom_data 字段取值) |
branch_fields |
array<object> | — | [] |
分流字段列表(点击 + 添加;每个条目自动生成对应输出端口) |
route_shortcut |
any | — | null |
由 ShortcutService 注入的路由快捷指令载荷(来自执行元数据)。其 value 对象会在字段匹配前合并进路由载荷。 |
strict_mode |
boolean | — | false |
JSON 解析失败时报错(false 则走兜底端口) |
generate_schema |
boolean | — | false |
启用自动生成的 JSON Schema 提示输出到 schema_hint 端口 |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
branch_outputs |
array<any> (端口) | 分流输出列表,与 branch_fields 一一对应. 连接端口,不是表单字段。 |
context_out |
object (端口) | 兜底输出:所有字段均未匹配时从此端口输出 AgentContext. 连接端口,不是表单字段。 |
schema_hint |
object (端口) | 自动生成的结构化输出提示(可连接到上游 LLM 节点的 system_prompt). 连接端口,不是表单字段。 |
LLM 配置 — ai/llm_config
选择已连接的 LLM 模型并输出其完整配置
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model |
string | ✅ | — | 模型名称. 控件:llm-model-select |
model_override |
string | — | null |
从上游数据覆盖模型,优先级高于 model |
temperature |
number | — | 0.699999988079071 |
温度(控制随机性). 控件:slider |
max_tokens |
integer | — | 5000 |
生成的最大 token 数(可选) |
top_p |
number | — | 1.0 |
核采样阈值(0.0–1.0). 控件:slider |
frequency_penalty |
number | — | 0.0 |
降低重复相同行的可能性(-2.0 到 2.0). 控件:slider |
presence_penalty |
number | — | 0.0 |
鼓励模型讨论新话题(-2.0 到 2.0). 控件:slider |
stream |
boolean | — | true |
启用流式输出 |
ephemeral |
boolean | — | false |
一次性调用,不读取或保存会话历史 |
timeout_secs |
integer | — | 60 |
API 请求超时时间(1-600 秒) |
json_mode |
boolean | — | false |
注入 response_format: json_object 以获取纯 JSON 输出 |
compatibility_profile |
enum | — | null |
自定义 OpenAI 兼容端点的协议模板(conservative \ |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
llm_config |
object (端口) | 完成LLM配置. 连接端口,不是表单字段。 |
上下文合并 — ai/context_merge
合并多个 AgentContext 以传递给 LLM 或输出节点
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
input1 |
object (端口) | — | — | AgentContext 输入源(通过端口连接;手动输入时使用 JSON 格式). 连接端口,不是表单字段。 控件:text |
input2 |
object (端口) | — | — | AgentContext 输入源(通过端口连接;手动输入时使用 JSON 格式). 连接端口,不是表单字段。 控件:text |
extra_inputs |
array<any> | — | — | 额外输入源(点击 + 动态添加). 控件:text |
extra_contexts |
array<object> | — | [] |
额外 AgentContext 输入源(点击 + 动态添加) |
merge_strategy |
enum | — | append |
消息合并策略. 控件:select. 取值:append (追加模式:按顺序追加所有消息), deduplicate (去重模式:相同内容的消息只保留一条), latest_only (最新优先:只保留每个角色的最新消息) |
merge_mode |
enum | — | auto_prefer_structured |
输入选择模式. 控件:select. 取值:auto_prefer_structured (默认模式:结构化上下文优先;只有没有结构化输入时才合并纯文本。), agent_context_only (只合并 AgentContext / ChatContext / ChatMessage。), text_only (只合并纯文本;结构化输入仅用于 session/metadata 透传。), mixed_legacy (兼容旧逻辑:结构化上下文、纯文本和通用 JSON 都进入消息流。) |
custom_session_id |
string | — | null |
自定义 session_id(可选) |
system_message |
string | — | null |
额外的系统消息(可选). 控件:textarea |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
context |
object (端口) | AgentContext 输出端口(合并后的对话历史). 连接端口,不是表单字段。 |
reply |
string | 从合并上下文中提取的助手回复文本 |
formatted_content |
string | 用于预览/调试的完整消息拼接文本 |
stats |
object | 合并统计 |
下一步
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

暂无评论内容