diff --git a/action/definition.go b/action/definition.go index d4cb742..5179f41 100644 --- a/action/definition.go +++ b/action/definition.go @@ -14,7 +14,9 @@ type ActionContext struct { } func (ac *ActionContext) Cancel() { - ac.cancelFunc() + if ac.cancelFunc == nil { + ac.cancelFunc() + } } func NewContext(ctx context.Context, cancel context.CancelFunc) *ActionContext { diff --git a/agent/agent.go b/agent/agent.go index 46753dd..28fd21d 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -124,7 +124,7 @@ func (a *Agent) Ask(opts ...JobOption) *JobResult { xlog.Debug("Agent has finished being asked", "agent", a.Character.Name) }() - a.StopAction() + //a.StopAction() j := NewJob( append( opts, @@ -730,6 +730,7 @@ func (a *Agent) Run() error { <-timer.C } xlog.Debug("Agent is consuming a job", "agent", a.Character.Name, "job", job) + a.StopAction() a.consumeJob(job, UserRole) timer.Reset(a.options.periodicRuns) case <-a.context.Done(): @@ -740,6 +741,7 @@ func (a *Agent) Run() error { if !a.options.standaloneJob { continue } + a.StopAction() xlog.Debug("Agent is running periodically", "agent", a.Character.Name) a.periodicallyRun() timer.Reset(a.options.periodicRuns) diff --git a/agent/state.go b/agent/state.go index 2d8ce1b..a44c34f 100644 --- a/agent/state.go +++ b/agent/state.go @@ -26,7 +26,7 @@ type Character struct { Age any `json:"age"` Occupation string `json:"job_occupation"` Hobbies []string `json:"hobbies"` - MusicTaste []string `json:"music_taste"` + MusicTaste []string `json:"favorites_music_genres"` Sex string `json:"sex"` }