使用会话 ID 管理组件间通信
Session ID(会话 ID)是客户端 / 服务端连接的唯一标识。一次会话通常对应一个客户端与服务器之间连接持续的整个周期。
在 SkillFlaw 的 Playground 中,当前会话会显示在面板左侧。
SkillFlaw 使用会话 ID 来区分同一个流程中的不同聊天交互,因此一个流程里可以同时存在多个聊天会话。消息会带着 session ID 存储到数据库中,用它作为引用键。
这种基于会话的用户区分,不仅有助于管理客户端 / 服务端连接,也对在同一流程里维持独立对话上下文非常重要。LLM 会依赖历史交互来生成回答;如果不同对话不加区分,回答会变得不准确,甚至互相串线。
自定义会话 ID
你可以在 API 请求的 payload 中传入自定义 session ID,也可以在单个组件的高级设置中设置。API 中提供的 session ID 优先级更高。如果未指定 session ID,则默认使用 flow ID。
如果你在 payload 中设置了自定义 session ID,所有下游组件都会沿用上游组件的 session ID。
请将 SKILLFLAW_SERVER_ADDRESS、FLOW_ID 和 SKILLFLAW_API_KEY 替换为你当前部署中的实际值。
_10curl --request POST \_10 --url "http://SKILLFLAW_SERVER_ADDRESS/api/v1/run/FLOW_ID" \_10 --header "Content-Type: application/json" \_10 --header "x-api-key: $SKILLFLAW_API_KEY" \_10 --data '{_10 "input_value": "Hello",_10 "output_type": "chat",_10 "input_type": "chat",_10 "session_id": "my_custom_session_value"_10}'
my_custom_session_value 会被所有支持该字段的组件使用,并且该流程的消息会以各自的 session_id 存储到你配置的 SkillFlaw 消息存储中。
按 session ID 从记忆中读取消息
如果要从 SkillFlaw 本地记忆中读 取消息,可在流程中添加 Message History 组件。
该组件接收 sessionID 作为过滤参数,并会自动沿用上游的 session ID,从存储中读取对应会话的历史消息。
你也可以通过 SkillFlaw API 的 GET /api/v1/monitor/messages 按 session_id 获取消息。
如果你想看 session ID 的实际使用示例,可以参考 Use Session IDs in SkillFlaw。