MCPcopy Create free account
hub / github.com/astercloud/aster / stateManagementExample

Function stateManagementExample

examples/session-postgres/main.go:142–193  ·  view source on GitHub ↗

stateManagementExample 状态管理示例

(ctx context.Context, service *postgres.Service, sessionID string)

Source from the content-addressed store, hash-verified

140
141// stateManagementExample 状态管理示例
142func stateManagementExample(ctx context.Context, service *postgres.Service, sessionID string) {
143 // 1. 添加不同作用域的状态
144 event := &session.Event{
145 ID: "evt-" + generateID(),
146 Timestamp: time.Now(),
147 InvocationID: "inv-002",
148 AgentID: "agent-customer-support",
149 Branch: "root",
150 Author: "system",
151 Content: types.Message{
152 Role: types.RoleSystem,
153 Content: "State update",
154 },
155 Actions: session.EventActions{
156 StateDelta: map[string]any{
157 // App 级状态(所有用户共享)
158 "app:version": "1.0.0",
159 "app:feature_flags": map[string]bool{
160 "enable_voice": true,
161 "enable_video": false,
162 },
163
164 // User 级状态(该用户所有会话共享)
165 "user:language": "zh-CN",
166 "user:theme": "dark",
167 "user:timezone": "Asia/Shanghai",
168
169 // Session 级状态(当前会话)
170 "session:start_time": time.Now().Unix(),
171 "session:conversation_topic": "帮助咨询",
172
173 // Temp 级状态(临时)
174 "temp:cache_key": "temp-value",
175 },
176 },
177 }
178
179 if err := service.AppendEvent(ctx, sessionID, event); err != nil {
180 log.Fatalf("Failed to update state: %v", err)
181 }
182
183 // 2. 查询状态
184 state, err := service.GetState(ctx, sessionID, "")
185 if err != nil {
186 log.Fatalf("Failed to get state: %v", err)
187 }
188
189 fmt.Printf("✅ State updated (%d keys)\n", len(state))
190 fmt.Println(" App state: version =", state["app:version"])
191 fmt.Println(" User state: language =", state["user:language"])
192 fmt.Println(" Session state: topic =", state["session:conversation_topic"])
193}
194
195// artifactVersioningExample 工件版本管理示例
196func artifactVersioningExample(ctx context.Context, service *postgres.Service, sessionID string) {

Callers 1

mainFunction · 0.85

Calls 4

PrintfMethod · 0.80
generateIDFunction · 0.70
AppendEventMethod · 0.65
GetStateMethod · 0.65

Tested by

no test coverage detected