节点手册:对话输入输出与历史检索

适用版本:ChengOS v0.1.0+ | 最后核对:2026-08-13 | 来源:crates/cheng-nodes/src/nodes/builtin/chat

chat/inputchat/output 是对话式工作流的两端:前者接收进来的消息与会话身份, 后者把回复送回同一个会话。chat/history_search 是读取侧 —— 列出会话、检索消息,或取出某条命中附近的上下文 —— 有了它,智能体不必把整段历史塞进提示词,也能回答”之前说过什么”。

对话输入 — chat/input

接收多模态输入(文本、图片、文件等),处理后发送给下游节点

输入

字段 类型 必填 默认值 说明
raw_input string (端口) 原始输入载荷(JSON 格式). 连接端口,不是表单字段。 控件:textarea
user_message_rich object (端口) null 来自上游节点的可选富用户消息. 连接端口,不是表单字段。
context object null 在此工作流执行前恢复的可选 AgentContext
conversation_id string (端口) null 对话 ID(可选),由入口生成后透传给所有下游节点. 连接端口,不是表单字段。
workspace_id string (端口) null 工作空间 ID(可选),传给 turn coordinator 以实现按工作空间隔离对话. 连接端口,不是表单字段。
document_id string (端口) null 文档 ID(可选),由文档页面注入并通过环境上下文传递给下游节点. 连接端口,不是表单字段。
stream_mode boolean false 是否启用流式发送. 控件:switch
enable_ocr boolean false 是否对图片进行 OCR 识别. 控件:switch
merge_strategy enum per_file 多输入的合并策略. 控件:select. 取值:merge_all (合并所有消息为一个包), per_file (每个文件单独一个包), per_line (每行单独一个包)
max_file_size_mb integer 50 最大文件大小(MB). 控件:number
model_override string null 模型覆盖(格式: credential_id::model_name)

输出

字段 类型 说明
context object (端口) AgentContext 封装,可直接连接到 agent/llm 的 context 端口. 连接端口,不是表单字段。
user_message string (端口) 用户消息文本. 连接端口,不是表单字段。
user_message_rich object (端口) 具有多模式部分的结构化用户消息. 连接端口,不是表单字段。
conversation_id string (端口) 对话 ID(透传给下游节点). 连接端口,不是表单字段。
workspace_id string (端口) 工作空间 ID(透传给 turn coordinator 以实现按工作空间隔离). 连接端口,不是表单字段。
document_id string (端口) 文档 ID(通过环境上下文传递给下游文档节点). 连接端口,不是表单字段。
stats object 处理统计信息
ui_event enum UI 事件
model_override string 模型覆盖(格式:credential_id::model_name)
attachments_json string (端口) 附件 JSON 数组,可直接连接 io/file_upload.files_json. 连接端口,不是表单字段。

对话输出 — chat/output

接收消息包并渲染到对话界面,支持流式显示、虚拟化和消息导出

输入

字段 类型 必填 默认值 说明
context object (端口) "" Agent 最终回复文本或 AgentContext(自动提取文本). 连接端口,不是表单字段。
artifacts object (端口) [] 要渲染为媒体附件的产物引用. 连接端口,不是表单字段。
trace string (端口) null Agent 执行轨迹(思考过程). 连接端口,不是表单字段。
theme enum system 显示主题. 控件:select. 取值:light, dark, system
autoscroll boolean true 是否自动滚动到最新消息. 控件:switch
keep_messages integer 1000 内存中保留的最大消息数量. 控件:number
virtualize_threshold integer 100 消息数量超过此值时启用虚拟化. 控件:slider
display_format enum standard 消息显示格式. 控件:select. 取值:compact (紧凑模式), standard (标准模式), detailed (详细模式)
show_timestamp boolean true 是否显示消息时间戳. 控件:switch

输出

字段 类型 说明
reply string Assistant 最终回复的文本内容
trace string Agent 执行轨迹(思考过程)
ui_events array<enum> 要发送给前端的 UI 事件
message_count integer 当前保留的消息总数
virtualized boolean 是否启用了虚拟化渲染
stats object 处理统计信息

对话历史检索 — chat/history_search

搜索工作区中过去的对话。作为 LLM/Agent 按需工具使用,不是默认上下文提供程序。不要用于文件路径或文件内容,请使用文件工具处理这些需求。

输入

字段 类型 必填 默认值 说明
action enum search_messages list_conversations \
workspace_id string null 工作区 UUID.缺失时回退到执行元数据.
target_conversation_id string null 限制搜索到特定会话.与当前会话的 conversation_id 不同,支持跨会话搜索.
query string null 关键字(不区分大小写,ILIK E风格).
time_range enum last_week 时间范围.默认 last_week. 取值:last_hour, last_day, last_week, last_month, all_time
limit integer 10 单次返回上限.
message_id string null 锚点 message_id(仅 get_message_context 使用).
context_before integer 2 锚点之前要带出多少条消息.
context_after integer 2 锚点之后要带出多少条消息.
snippet_max_chars integer 200 snippet 最大字符数(按字符截断,避免单条消息撑爆上下文).

输出

字段 类型 说明
found boolean 已找到
no_results_found boolean 未找到结果
total integer 总数
results array<object> 结果
summary string 摘要
suggestion string 建议
call_limit_reached boolean 当本次执行的搜索配额已用尽时为 true,调用方应避免再次发起.

下一步

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容