diff --git a/evals/subagents.eval.ts b/evals/subagents.eval.ts index 777811179a..2a35575312 100644 --- a/evals/subagents.eval.ts +++ b/evals/subagents.eval.ts @@ -55,15 +55,6 @@ describe('subagent eval test cases', () => { name: 'should fix linter errors in multiple projects using implicit parallelism', prompt: 'Fix all linter errors.', timeout: 600000, - params: { - settings: { - agents: { - overrides: { - generalist: { enabled: true }, - }, - }, - }, - }, files: { 'project-a/eslint.config.js': ` module.exports = [ diff --git a/packages/core/src/agents/generalist-agent.ts b/packages/core/src/agents/generalist-agent.ts index db2c56f61d..0e9bf62a85 100644 --- a/packages/core/src/agents/generalist-agent.ts +++ b/packages/core/src/agents/generalist-agent.ts @@ -27,7 +27,6 @@ export const GeneralistAgent = ( description: `A general-purpose AI agent with access to all tools. - ALWAYS use it to break up and parallelize independent pieces of a larger task, when possible. `, - experimental: true, inputConfig: { inputSchema: { type: 'object', diff --git a/packages/core/src/agents/registry.test.ts b/packages/core/src/agents/registry.test.ts index 2068968428..b92c24e5b3 100644 --- a/packages/core/src/agents/registry.test.ts +++ b/packages/core/src/agents/registry.test.ts @@ -44,6 +44,7 @@ function makeMockedConfig(params?: Partial): Config { const config = makeFakeConfig(params); vi.spyOn(config, 'getToolRegistry').mockReturnValue({ getAllToolNames: () => ['tool1', 'tool2'], + getAllTools: () => [{ name: 'tool1' }, { name: 'tool2' }], } as unknown as ToolRegistry); vi.spyOn(config, 'getAgentRegistry').mockReturnValue({ getDirectoryContext: () => 'mock directory context', @@ -259,6 +260,7 @@ describe('AgentRegistry', () => { overrides: { codebase_investigator: { enabled: false }, cli_help: { enabled: false }, + generalist: { enabled: false }, }, }, }); @@ -296,20 +298,20 @@ describe('AgentRegistry', () => { expect(registry.getDefinition('cli_help')).toBeUndefined(); }); - it('should NOT register generalist agent by default (because it is experimental)', async () => { + it('should register generalist agent by default', async () => { const config = makeMockedConfig(); const registry = new TestableAgentRegistry(config); await registry.initialize(); - expect(registry.getDefinition('generalist')).toBeUndefined(); + expect(registry.getDefinition('generalist')).toBeDefined(); }); - it('should register generalist agent if explicitly enabled via override', async () => { + it('should NOT register generalist agent if explicitly disabled via override', async () => { const config = makeMockedConfig({ agents: { overrides: { - generalist: { enabled: true }, + generalist: { enabled: false }, }, }, }); @@ -317,7 +319,7 @@ describe('AgentRegistry', () => { await registry.initialize(); - expect(registry.getDefinition('generalist')).toBeDefined(); + expect(registry.getDefinition('generalist')).toBeUndefined(); }); it('should NOT register a non-experimental agent if enabled is false', async () => { diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index 4a732bbedb..94de68d2ee 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -1081,6 +1081,7 @@ describe('Server Config (config.ts)', () => { overrides: { codebase_investigator: { enabled: false }, cli_help: { enabled: false }, + generalist: { enabled: false }, }, }, }; diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 6dfc62f322..6242082d68 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -2468,7 +2468,8 @@ export class Config { if ( this.isAgentsEnabled() || agentsOverrides['codebase_investigator']?.enabled !== false || - agentsOverrides['cli_help']?.enabled !== false + agentsOverrides['cli_help']?.enabled !== false || + agentsOverrides['generalist']?.enabled !== false ) { const definitions = this.agentRegistry.getAllDefinitions();