Advanced

会话管理

Workflow 会话和历史记录管理

会话管理

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)

示例

详见完整示例代码。