diff --git a/neo/assistant/api.go b/neo/assistant/api.go index a2883121..ed0e9266 100644 --- a/neo/assistant/api.go +++ b/neo/assistant/api.go @@ -95,7 +95,7 @@ func (ast *Assistant) execute(c *gin.Context, ctx chatctx.Context, input []chatM // } // Switch to the new assistant if necessary - if res != nil && res.AssistantID != ctx.AssistantID { + if res != nil && res.AssistantID != "" && res.AssistantID != ctx.AssistantID { newAst, err := Get(res.AssistantID) if err != nil { chatMessage.New(). @@ -244,6 +244,8 @@ func (next *NextAction) Execute(c *gin.Context, ctx chatctx.Context, contents *c msg.Write(c.Writer) newContents := chatMessage.NewContents() + // Update the context id + ctx.AssistantID = assistant.ID return assistant.execute(c, ctx, messages, options, newContents) case "exit": diff --git a/widgets/app/app.go b/widgets/app/app.go index 2d8a0ec0..98115beb 100644 --- a/widgets/app/app.go +++ b/widgets/app/app.go @@ -568,8 +568,7 @@ func processXgen(process *process.Process) interface{} { // The default assistant agent := map[string]interface{}{} if neo.Neo != nil { - ast := neo.Neo.Assistant.(*assistant.Assistant) - if ast != nil { + if ast, ok := neo.Neo.Assistant.(*assistant.Assistant); ok { agent["default"] = map[string]interface{}{ "assistant_id": ast.ID, "assistant_name": ast.Name,