节点手册:AI 聊天 ai/llm 与字段路由

适用版本: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
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容