跳到主要内容

数据流

本文档介绍 OpenHuman 的数据处理流程。

请求生命周期

1. 用户输入 → 2. 上下文组装 → 3. Agent 推理 → 4. 工具执行 → 5. 响应返回

6. 记忆存储(如果重要)

详细流程

1. 用户输入

支持多种输入形式:

  • 文本消息
  • 语音(STT 转换)
  • 文件上传
  • 图像

2. 上下文组装

当前消息
+ 历史对话(压缩后)
+ 检索到的记忆
+ 相关工具描述
+ 用户偏好
= 组装后的上下文

3. Agent 推理

Agent 分析上下文并决定:

  • 是否需要调用工具
  • 调用哪个工具
  • 如何组织响应

4. 工具执行

工具执行可能涉及:

  • 本地操作(文件、shell)
  • API 调用(搜索、网页抓取)
  • 第三方服务(邮件、日历)

5. 响应返回

响应流式返回:

for await (const chunk of stream) {
process.stdout.write(chunk.delta);
}

6. 记忆存储

Agent 判断是否值得存储:

await client.memory.store({
content: '用户提到了他的生日是 12 月 25 日',
importance: 0.8,
tags: ['personal', 'birthday'],
});

异步事件流

第三方服务 → Webhook → 触发器分类 → Agent 响应

记忆存储

下一步