跳转到主内容

Agentic Streaming

Creatoria Agent API 文档

#Agentic Streaming

Creatoria Agent 支持高级的 Agentic 流式功能,包括思维链(Thinking)、自动规划(Planning)、分步执行(Step Execution)和工具调用(Tool Calling)。

#概述

当使用流式模式(stream: true)对话时,系统会根据 Agent 的配置和请求中的 hint 参数自动启用以下高级功能:

用户消息 → 思维链 → 自动规划 → 分步执行(含工具调用) → 最终回复

#启用 Agentic 功能

在 Chat API 请求中通过 hint 参数控制:

json{
  "message": "帮我分析这个项目的技术架构",
  "stream": true,
  "hint": {
    "planning": "auto",
    "onStepFailure": "continue"
  }
}

#hint 参数

字段说明
planningforce强制生成执行计划
planningautoLLM 自行决定是否需要规划
planningnone不使用规划,直接回复
onStepFailurestop步骤失败时停止执行
onStepFailurecontinue步骤失败时继续下一步
onStepFailureautoLLM 自行决定是否继续

#SSE 事件类型

#思维链事件 (thinking)

展示 LLM 的推理过程:

json{
  "sessionId": "sess_xxx",
  "thinking": {
    "content": "用户在询问技术架构,我需要..."
  }
}

思维链内容会逐步流式输出,多个 thinking 事件的 content 需要拼接。

#规划事件 (plan)

当 LLM 决定需要规划时,生成执行计划:

json{
  "sessionId": "sess_xxx",
  "plan": {
    "steps": [
      {
        "id": "step_1",
        "title": "搜索相关文档",
        "description": "在知识库中搜索技术架构相关文档"
      },
      {
        "id": "step_2",
        "title": "分析架构模式",
        "description": "分析项目使用的技术栈和设计模式"
      },
      {
        "id": "step_3",
        "title": "输出分析报告",
        "description": "整理并输出完整的技术架构分析"
      }
    ]
  }
}

#步骤开始事件 (stepStart)

json{
  "sessionId": "sess_xxx",
  "stepStart": {
    "stepId": "step_1",
    "title": "搜索相关文档",
    "index": 0
  }
}

#步骤完成事件 (stepComplete)

json{
  "sessionId": "sess_xxx",
  "stepComplete": {
    "stepId": "step_1",
    "status": "completed",
    "summary": "找到 3 篇相关文档"
  }
}

#工具调用事件 (toolCall)

当 Agent 调用工具时:

json{
  "sessionId": "sess_xxx",
  "toolCall": {
    "id": "tc_xxx",
    "name": "web-search",
    "arguments": {
      "query": "NestJS 微服务架构"
    }
  }
}

#工具结果事件 (toolResult)

json{
  "sessionId": "sess_xxx",
  "toolResult": {
    "toolCallId": "tc_xxx",
    "name": "web-search",
    "success": true,
    "content": "搜索结果内容...",
    "duration": 1200
  }
}

#内容增量事件 (delta)

正常的文本内容增量:

json{
  "sessionId": "sess_xxx",
  "delta": {
    "content": "根据分析,该项目采用了"
  }
}

#用量事件 (usage)

json{
  "sessionId": "sess_xxx",
  "usage": {
    "inputTokens": 500,
    "outputTokens": 1200,
    "totalTokens": 1700
  }
}

#完成事件 (done)

json{
  "sessionId": "sess_xxx",
  "done": true,
  "sources": [
    {
      "documentId": "doc_xxx",
      "title": "架构文档",
      "score": 0.95
    }
  ],
  "usage": {
    "inputTokens": 500,
    "outputTokens": 1200,
    "totalTokens": 1700
  }
}

#错误事件 (error)

json{
  "sessionId": "sess_xxx",
  "error": "Tool execution failed: timeout"
}

#完整事件流示例

data: {"sessionId":"sess_xxx","thinking":{"content":"用户想了解..."}}

data: {"sessionId":"sess_xxx","thinking":{"content":"我需要分步处理"}}

data: {"sessionId":"sess_xxx","plan":{"steps":[{"id":"step_1","title":"搜索文档"},{"id":"step_2","title":"分析总结"}]}}

data: {"sessionId":"sess_xxx","stepStart":{"stepId":"step_1","title":"搜索文档","index":0}}

data: {"sessionId":"sess_xxx","toolCall":{"id":"tc_1","name":"web-search","arguments":{"query":"..."}}}

data: {"sessionId":"sess_xxx","toolResult":{"toolCallId":"tc_1","name":"web-search","success":true,"content":"...","duration":800}}

data: {"sessionId":"sess_xxx","stepComplete":{"stepId":"step_1","status":"completed","summary":"找到相关信息"}}

data: {"sessionId":"sess_xxx","stepStart":{"stepId":"step_2","title":"分析总结","index":1}}

data: {"sessionId":"sess_xxx","delta":{"content":"根据搜索结果,"}}

data: {"sessionId":"sess_xxx","delta":{"content":"该项目的架构..."}}

data: {"sessionId":"sess_xxx","stepComplete":{"stepId":"step_2","status":"completed"}}

data: {"sessionId":"sess_xxx","done":true,"usage":{"inputTokens":500,"outputTokens":800,"totalTokens":1300}}

data: [DONE]

#历史消息中的 Agentic 数据

重新打开会话时,历史消息的 metadata 字段包含完整的 Agentic 数据:

json{
  "role": "assistant",
  "content": "最终的回复内容...",
  "metadata": {
    "thinking": "完整的思维链内容",
    "plan": {
      "steps": [...]
    },
    "stepResults": [
      {
        "stepId": "step_1",
        "title": "搜索文档",
        "status": "completed",
        "summary": "找到相关文档",
        "toolCalls": [
          {
            "id": "tc_1",
            "name": "web-search",
            "arguments": {"query": "..."},
            "status": "success",
            "result": "搜索结果...",
            "duration": 800
          }
        ]
      }
    ]
  }
}

#工具类型

Agent 可以使用以下类型的工具:

#内置工具

工具名称说明
web-search网络搜索
code-search代码搜索
fetch-urlURL 内容获取

通过 Agent 的 settings.toolsEnabledsettings.allowedToolCategories 控制。

#自定义工具

通过 settings.customToolIds 关联自定义代码工具,这些工具在沙箱环境中执行用户定义的代码。