跳转到主要内容

概述

Artifacts 是一种结构化的工具返回格式,用于在 Trajectory 区域渲染丰富的内容(HTML、代码、图表等),而不是显示原始文本。

问题背景

当前工具返回的结果存在以下问题:
  1. 格式不统一:不同工具返回格式各异
  2. 前端解析困难:依赖正则表达式检测内容类型
  3. 渲染受限:无法区分可渲染内容和普通文本
  4. 扩展性差:每新增一种类型都需要修改前端检测逻辑

数据结构设计

ToolResultContent

工具返回内容的结构化表示,包含以下字段:
字段类型说明
typestring内容类型(见下表)
datastring内容数据
languagestring (可选)编程语言标识
titlestring (可选)标题
metaobject (可选)额外元数据

ToolResult

标准工具返回格式:
字段类型说明
successboolean是否成功
messagestring结果消息
contentToolResultContent (可选)结构化内容
file_pathstring (可选)关联文件路径

内容类型说明

type说明渲染方式
text纯文本<pre><p>
htmlHTML 内容<iframe> 沙盒渲染
markdownMarkdownMarkdown 渲染器
code代码语法高亮 CodeBlock
jsonJSON 数据JSON Viewer
image图片<img>
error错误信息红色错误样式

前端渲染

前端根据 content.type 字段选择对应的渲染组件:HTML 内容使用沙盒 iframe 预览,Markdown 使用渲染器,代码使用语法高亮,JSON 使用树形查看器,图片直接显示,错误使用红色样式。

向后兼容

  • 前端同时支持新旧格式
  • 旧格式(纯文本)会被包装为 type: "text" 的 content
  • 渐进式迁移,不影响现有功能