#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 参数
| 字段 | 值 | 说明 |
|---|---|---|
planning | force | 强制生成执行计划 |
planning | auto | LLM 自行决定是否需要规划 |
planning | none | 不使用规划,直接回复 |
onStepFailure | stop | 步骤失败时停止执行 |
onStepFailure | continue | 步骤失败时继续下一步 |
onStepFailure | auto | LLM 自行决定是否继续 |
#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-url | URL 内容获取 |
通过 Agent 的 settings.toolsEnabled 和 settings.allowedToolCategories 控制。
#自定义工具
通过 settings.customToolIds 关联自定义代码工具,这些工具在沙箱环境中执行用户定义的代码。