From b461d3b71b686d7679ecac62c0c66cc5a1df8fec Mon Sep 17 00:00:00 2001 From: Ben Houston Date: Thu, 6 Mar 2025 10:49:57 -0500 Subject: [PATCH 1/3] feat: add maxTokens and temperature config options to CLI - Add maxTokens config option with default value of 4096 - Add temperature config option with default value of 0.7 - Update the CLI to pass these options to the generateText function - Update tests to include the new configuration options Closes #118 --- packages/cli/src/commands/$default.ts | 4 ++++ packages/cli/src/options.ts | 10 ++++++++++ packages/cli/src/settings/config.ts | 2 ++ packages/cli/tests/settings/config.test.ts | 4 ++++ 4 files changed, 20 insertions(+) diff --git a/packages/cli/src/commands/$default.ts b/packages/cli/src/commands/$default.ts index 0dff70b..949a9fb 100644 --- a/packages/cli/src/commands/$default.ts +++ b/packages/cli/src/commands/$default.ts @@ -94,6 +94,8 @@ export const command: CommandModule = { const userConfig = getConfig(); const userModelProvider = argv.modelProvider || userConfig.modelProvider; const userModelName = argv.modelName || userConfig.modelName; + const userMaxTokens = argv.maxTokens || userConfig.maxTokens; + const userTemperature = argv.temperature || userConfig.temperature; // Early API key check based on model provider const providerSettings = @@ -166,6 +168,8 @@ export const command: CommandModule = { userModelName, { ollamaBaseUrl: config.ollamaBaseUrl }, ), + maxTokens: userMaxTokens, + temperature: userTemperature, }; const result = await toolAgent(prompt, tools, agentConfig, { diff --git a/packages/cli/src/options.ts b/packages/cli/src/options.ts index d03f5b3..9c8e37a 100644 --- a/packages/cli/src/options.ts +++ b/packages/cli/src/options.ts @@ -9,6 +9,8 @@ export type SharedOptions = { readonly sentryDsn?: string; readonly modelProvider?: string; readonly modelName?: string; + readonly maxTokens?: number; + readonly temperature?: number; readonly profile?: boolean; }; @@ -34,6 +36,14 @@ export const sharedOptions = { type: 'string', description: 'AI model name to use', } as const, + maxTokens: { + type: 'number', + description: 'Maximum number of tokens to generate', + } as const, + temperature: { + type: 'number', + description: 'Temperature for text generation (0.0-1.0)', + } as const, interactive: { type: 'boolean', alias: 'i', diff --git a/packages/cli/src/settings/config.ts b/packages/cli/src/settings/config.ts index 796e037..99ebd4c 100644 --- a/packages/cli/src/settings/config.ts +++ b/packages/cli/src/settings/config.ts @@ -14,6 +14,8 @@ const defaultConfig = { pageFilter: 'none' as 'simple' | 'none' | 'readability', modelProvider: 'anthropic', modelName: 'claude-3-7-sonnet-20250219', + maxTokens: 4096, + temperature: 0.7, ollamaBaseUrl: 'http://localhost:11434/api', customPrompt: '', profile: false, diff --git a/packages/cli/tests/settings/config.test.ts b/packages/cli/tests/settings/config.test.ts index 9af4894..6b691cb 100644 --- a/packages/cli/tests/settings/config.test.ts +++ b/packages/cli/tests/settings/config.test.ts @@ -43,6 +43,8 @@ describe('Config', () => { pageFilter: 'none', modelProvider: 'anthropic', modelName: 'claude-3-7-sonnet-20250219', + maxTokens: 4096, + temperature: 0.7, ollamaBaseUrl: 'http://localhost:11434/api', profile: false, customPrompt: '', @@ -77,6 +79,8 @@ describe('Config', () => { pageFilter: 'none', modelProvider: 'anthropic', modelName: 'claude-3-7-sonnet-20250219', + maxTokens: 4096, + temperature: 0.7, ollamaBaseUrl: 'http://localhost:11434/api', profile: false, customPrompt: '', From bfb9da9804d61840344e93cc5bea809e8e16f2ec Mon Sep 17 00:00:00 2001 From: Ben Houston Date: Thu, 6 Mar 2025 10:57:50 -0500 Subject: [PATCH 2/3] fix: use maxTokens in generateTextProps Ensure that the maxTokens config option is actually used in the text generation by adding it to the generateTextProps object in toolAgentCore.ts --- packages/agent/src/core/toolAgent/toolAgentCore.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/agent/src/core/toolAgent/toolAgentCore.ts b/packages/agent/src/core/toolAgent/toolAgentCore.ts index f05fdba..3cbafeb 100644 --- a/packages/agent/src/core/toolAgent/toolAgentCore.ts +++ b/packages/agent/src/core/toolAgent/toolAgentCore.ts @@ -66,6 +66,7 @@ export const toolAgent = async ( const generateTextProps = { model: config.model, temperature: config.temperature, + maxTokens: config.maxTokens, messages: messagesWithCacheControl, tools: toolSet, }; From 8ea3c38fb13a6957e230b7b7bd593cf626b57f6b Mon Sep 17 00:00:00 2001 From: Ben Houston Date: Thu, 6 Mar 2025 11:03:01 -0500 Subject: [PATCH 3/3] changeset --- .changeset/new-nails-search.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/new-nails-search.md diff --git a/.changeset/new-nails-search.md b/.changeset/new-nails-search.md new file mode 100644 index 0000000..8b9b4ff --- /dev/null +++ b/.changeset/new-nails-search.md @@ -0,0 +1,6 @@ +--- +'mycoder-agent': patch +'mycoder': patch +--- + +Add temperature and maxTokens config values