diff --git a/internal/agent/coordinator.go b/internal/agent/coordinator.go index da9b535fcbe773ddedbbabad068ad03afd4503bc..10d108e89493aef5988abad50cd892f0aec57058 100644 --- a/internal/agent/coordinator.go +++ b/internal/agent/coordinator.go @@ -289,11 +289,26 @@ func (c *coordinator) buildAgent(ctx context.Context, prompt *prompt.Prompt, age } largeProviderCfg, _ := c.cfg.Providers.Get(large.ModelCfg.Provider) - tools, err := c.buildTools(ctx, agent) - if err != nil { - return nil, err - } - return NewSessionAgent(SessionAgentOptions{large, small, largeProviderCfg.SystemPromptPrefix, systemPrompt, c.cfg.Options.DisableAutoSummarize, c.permissions.SkipRequests(), c.sessions, c.messages, tools}), nil + result := NewSessionAgent(SessionAgentOptions{ + large, + small, + largeProviderCfg.SystemPromptPrefix, + systemPrompt, + c.cfg.Options.DisableAutoSummarize, + c.permissions.SkipRequests(), + c.sessions, + c.messages, + nil, + }) + go func() { + tools, err := c.buildTools(ctx, agent) + if err != nil { + slog.Error("could not init agent tools", "err", err) + return + } + result.SetTools(tools) + }() + return result, nil } func (c *coordinator) buildTools(ctx context.Context, agent config.Agent) ([]fantasy.AgentTool, error) { diff --git a/internal/app/app.go b/internal/app/app.go index cb715124d24294394926c275a370812a539600ec..a801f70a5feccac655209ac5c36deaae7e38592b 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -86,12 +86,12 @@ func New(ctx context.Context, conn *sql.DB, cfg *config.Config) (*App, error) { app.cleanupFuncs = append(app.cleanupFuncs, conn.Close) // TODO: remove the concept of agent config, most likely. - if cfg.IsConfigured() { - if err := app.InitCoderAgent(ctx); err != nil { - return nil, fmt.Errorf("failed to initialize coder agent: %w", err) - } - } else { + if !cfg.IsConfigured() { slog.Warn("No agent configuration found") + return app, nil + } + if err := app.InitCoderAgent(ctx); err != nil { + return nil, fmt.Errorf("failed to initialize coder agent: %w", err) } return app, nil }