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

Function appendEventsExample

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

appendEventsExample 追加事件示例

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

Source from the content-addressed store, hash-verified

93
94// appendEventsExample 追加事件示例
95func appendEventsExample(ctx context.Context, service *postgres.Service, sessionID string) {
96 // 1. 用户消息事件
97 userEvent := &session.Event{
98 ID: "evt-" + generateID(),
99 Timestamp: time.Now(),
100 InvocationID: "inv-001",
101 AgentID: "agent-customer-support",
102 Branch: "root",
103 Author: "user",
104 Content: types.Message{
105 Role: types.RoleUser,
106 Content: "我需要帮助",
107 },
108 }
109
110 if err := service.AppendEvent(ctx, sessionID, userEvent); err != nil {
111 log.Fatalf("Failed to append user event: %v", err)
112 }
113
114 // 2. Agent 响应事件(带状态变更)
115 agentEvent := &session.Event{
116 ID: "evt-" + generateID(),
117 Timestamp: time.Now(),
118 InvocationID: "inv-001",
119 AgentID: "agent-customer-support",
120 Branch: "root",
121 Author: "assistant",
122 Content: types.Message{
123 Role: types.RoleAssistant,
124 Content: "我很乐意帮助您!请问有什么问题吗?",
125 },
126 Actions: session.EventActions{
127 StateDelta: map[string]any{
128 "session:last_response_time": time.Now().Unix(),
129 "session:message_count": 1,
130 },
131 },
132 }
133
134 if err := service.AppendEvent(ctx, sessionID, agentEvent); err != nil {
135 log.Fatalf("Failed to append agent event: %v", err)
136 }
137
138 fmt.Println("✅ Appended 2 events")
139}
140
141// stateManagementExample 状态管理示例
142func stateManagementExample(ctx context.Context, service *postgres.Service, sessionID string) {

Callers 1

mainFunction · 0.70

Calls 2

generateIDFunction · 0.70
AppendEventMethod · 0.65

Tested by

no test coverage detected