Workflow 支持完整的会话管理和历史记录功能。
wf := workflow.New("MyWorkflow").
WithSession("session-123"). // 设置会话ID
WithDB(myDatabase). // 设置数据库
WithHistory(5) // 启用历史,保留5次运行
// 获取会话
session, err := wf.GetSession("session-123")
// 获取最后一次运行
lastRun, err := wf.GetLastRun()
// 获取特定运行
run, err := wf.GetRun("run-id-456")
input := &workflow.WorkflowInput{
SessionID: "session-123",
SessionState: map[string]interface{}{
"user_id": "user-456",
"preferences": map[string]interface{}{
"language": "zh-CN",
},
},
}
// 配置数据库
wf.WithDB(store.NewPostgres(config))
// 执行时自动保存
wf.Execute(ctx, input)
// 手动保存会话
session := wf.GetOrCreateSession("session-123", "user-456")
wf.SaveSession(session)
详见完整示例代码。