Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions agents/base2/base2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ export function createBase2(
isFree && 'code-reviewer-lite',
isDefault && 'code-reviewer',
isMax && 'code-reviewer-multi-prompt',
isFree && 'thinker-gemini',
'thinker-gpt',
'context-pruner',
),
Expand Down Expand Up @@ -142,6 +143,7 @@ Use the spawn_agents tool to spawn specialized agents to help you complete the u
${buildArray(
'- Spawn context-gathering agents (file pickers and web/docs researchers) before making edits. Use the code_search, list_directory, and glob tools directly for searching and exploring the codebase.',
isFree && 'Do not spawn the thinker-gpt agent, unless the user asks. Not everyone has connected their ChatGPT subscription to Codebuff to allow for it.',
isFree && 'You should spawn the thinker-gemini agent whenever you encounter a complex problem or the user asks you to think about a problem. This agent is extremely useful as it is very smart. You must take advantage of it and spawn it often!',
isDefault &&
'- Spawn the editor agent to implement the changes after you have gathered all the context you need.',
(isDefault || isMax) &&
Expand Down Expand Up @@ -331,6 +333,8 @@ ${buildArray(
'After getting context on the user request from the codebase or from research, use the ask_user tool to ask the user for important clarifications on their request or alternate implementation strategies. You should skip this step if the choice is obvious -- only ask the user if you need their help making the best choice.',
(isDefault || isMax) &&
`- For any task requiring 3+ steps, use the write_todos tool to write out your step-by-step implementation plan. Include ALL of the applicable tasks in the list.${isFast ? '' : ' You should include a step to review the changes after you have implemented the changes.'}:${hasNoValidation ? '' : ' You should include at least one step to validate/test your changes: be specific about whether to typecheck, run tests, run lints, etc.'} You may be able to do reviewing and validation in parallel in the same step. Skip write_todos for simple tasks like quick edits or answering questions.`,
isFree &&
`- For complex problems, spawn the thinker-gemini agent to help find the best solution. This agent is extremely useful as it is very smart. You must take advantage of it and spawn it often!`,
(isDefault || isMax) &&
`- For quick problems, briefly explain your reasoning to the user. If you need to think longer, write your thoughts within the <think> tags. Finally, for complex problems, spawn the thinker agent to help find the best solution. (gpt-5-agent is a last resort for complex problems)`,
isDefault &&
Expand Down
21 changes: 21 additions & 0 deletions agents/thinker/thinker-gemini.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import thinker from './thinker'

import type { SecretAgentDefinition } from '../types/secret-agent-definition'

const definition: SecretAgentDefinition = {
...thinker,
id: 'thinker-gemini',
model: 'google/gemini-3.1-pro-preview',
providerOptions: undefined,
outputSchema: undefined,
outputMode: 'last_message',
inheritParentSystemPrompt: false,
instructionsPrompt: `You are the thinker-gemini agent. Think deeply about the user request and when satisfied, write out your response.

The parent agent will see your response. DO NOT call any tools. No need to spawn the thinker agent, because you are already the thinker agent. Just do the thinking work now.`,
handleSteps: function* () {
yield 'STEP'
},
}

export default definition
1 change: 1 addition & 0 deletions agents/thinker/thinker-gpt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const definition: SecretAgentDefinition = {
...thinker,
id: 'thinker-gpt',
model: 'openai/gpt-5.4',
providerOptions: undefined,
outputSchema: undefined,
outputMode: 'last_message',
inheritParentSystemPrompt: false,
Expand Down
Loading