diff --git a/app/components/ConfigDrawer.tsx b/app/components/ConfigDrawer.tsx
index 73bb9aa..e78025c 100644
--- a/app/components/ConfigDrawer.tsx
+++ b/app/components/ConfigDrawer.tsx
@@ -202,7 +202,7 @@ export default function ConfigDrawer({
       ...tools,
       {
         type: 'file_search' as const,
-        vector_store_ids: [''],
+        knowledge_base_ids: [''],
         max_num_results: 20,
       },
     ];
@@ -216,7 +216,7 @@ export default function ConfigDrawer({
 
   const updateTool = (index: number, field: keyof Tool, value: any) => {
     const newTools = [...tools];
-    if (field === 'vector_store_ids') {
+    if (field === 'knowledge_base_ids') {
       newTools[index][field] = [value];
     } else {
       (newTools[index] as any)[field] = value;
@@ -639,8 +639,8 @@ export default function ConfigDrawer({
                       </label>
                       <input
                         type="text"
-                        value={tool.vector_store_ids[0] || ''}
-                        onChange={(e) => updateTool(index, 'vector_store_ids', e.target.value)}
+                        value={tool.knowledge_base_ids[0] || ''}
+                        onChange={(e) => updateTool(index, 'knowledge_base_ids', e.target.value)}
                         placeholder="vs_abc123"
                         style={{
                           width: '100%',
diff --git a/app/components/ConfigModal.tsx b/app/components/ConfigModal.tsx
index ca99271..1f6f521 100644
--- a/app/components/ConfigModal.tsx
+++ b/app/components/ConfigModal.tsx
@@ -259,7 +259,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                 ))}
               </div>
               {configVersionInfo.tools.map((tool, idx) => (
-                Array.isArray(tool.vector_store_ids) && tool.vector_store_ids.length > 0 && (
+                Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
                   <div key={`vs-${idx}`} className="mb-4">
                     <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>
                       Vector Store IDs ({tool.type})
@@ -269,7 +269,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                       borderColor: '#e5e5e5',
                       color: '#171717'
                     }}>
-                      {tool.vector_store_ids.join(', ')}
+                      {tool.knowledge_base_ids.join(', ')}
                     </div>
                   </div>
                 )
@@ -297,7 +297,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                 ))}
               </div>
               {job.config.tools.map((tool, idx) => (
-                Array.isArray(tool.vector_store_ids) && tool.vector_store_ids.length > 0 && (
+                Array.isArray(tool.knowledge_base_ids) && tool.knowledge_base_ids.length > 0 && (
                   <div key={`vs-${idx}`} className="mb-4">
                     <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>
                       Vector Store IDs ({tool.type})
@@ -307,7 +307,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                       borderColor: '#e5e5e5',
                       color: '#171717'
                     }}>
-                      {tool.vector_store_ids.join(', ')}
+                      {tool.knowledge_base_ids.join(', ')}
                     </div>
                   </div>
                 )
@@ -315,7 +315,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
             </div>
           )}
 
-          {Array.isArray(assistantConfig?.vector_store_ids) && assistantConfig.vector_store_ids.length > 0 && (
+          {Array.isArray(assistantConfig?.knowledge_base_ids) && assistantConfig.knowledge_base_ids.length > 0 && (
             <div>
               <div className="text-xs uppercase font-semibold mb-2" style={{ color: '#737373' }}>Vector Store IDs</div>
               <div className="text-sm font-mono p-3 rounded-md border" style={{
@@ -323,7 +323,7 @@ export default function ConfigModal({ isOpen, onClose, job, assistantConfig }: C
                 borderColor: '#e5e5e5',
                 color: '#171717'
               }}>
-                {assistantConfig.vector_store_ids.join(', ')}
+                {assistantConfig.knowledge_base_ids.join(', ')}
               </div>
             </div>
           )}
diff --git a/app/components/ConfigSelector.tsx b/app/components/ConfigSelector.tsx
index 0ed3e99..84f9263 100644
--- a/app/components/ConfigSelector.tsx
+++ b/app/components/ConfigSelector.tsx
@@ -294,7 +294,11 @@ export default function ConfigSelector({
                             </span>
                           </div>
                           <div className="text-xs mt-0.5" style={{ color: colors.text.secondary }}>
-                            {version.provider}/{version.modelName} • {formatRelativeTime(version.timestamp)}
+                            {version.provider}/{version.modelName} • T:{version.temperature.toFixed(2)}
+                            {version.tools && version.tools.length > 0 && (
+                              <> • {version.tools.map(t => t.knowledge_base_ids).flat().length} KB</>
+                            )}
+                            {' • '}{formatRelativeTime(version.timestamp)}
                           </div>
                         </div>
                         {selectedConfig?.id === version.id && (
@@ -316,14 +320,57 @@ export default function ConfigSelector({
               className="mt-4 rounded-md p-4"
               style={{ backgroundColor: colors.bg.secondary }}
             >
-              <div className="text-xs font-medium mb-2" style={{ color: colors.text.secondary }}>
-                Prompt Preview
+              {/* Configuration Details */}
+              <div className="grid grid-cols-2 gap-4 mb-4">
+                <div>
+                  <div className="text-xs font-medium mb-1" style={{ color: colors.text.secondary }}>
+                    Provider & Model
+                  </div>
+                  <div className="text-sm font-mono" style={{ color: colors.text.primary }}>
+                    {selectedConfig.provider}/{selectedConfig.modelName}
+                  </div>
+                </div>
+                <div>
+                  <div className="text-xs font-medium mb-1" style={{ color: colors.text.secondary }}>
+                    Temperature
+                  </div>
+                  <div className="text-sm font-mono" style={{ color: colors.text.primary }}>
+                    {selectedConfig.temperature.toFixed(2)}
+                  </div>
+                </div>
+                {selectedConfig.tools && selectedConfig.tools.length > 0 && (
+                  <>
+                    <div>
+                      <div className="text-xs font-medium mb-1" style={{ color: colors.text.secondary }}>
+                        Knowledge Base IDs
+                      </div>
+                      <div className="text-xs font-mono" style={{ color: colors.text.primary }}>
+                        {selectedConfig.tools.map(tool => tool.knowledge_base_ids).flat().join(', ') || 'None'}
+                      </div>
+                    </div>
+                    <div>
+                      <div className="text-xs font-medium mb-1" style={{ color: colors.text.secondary }}>
+                        Max Results
+                      </div>
+                      <div className="text-sm font-mono" style={{ color: colors.text.primary }}>
+                        {selectedConfig.tools[0].max_num_results}
+                      </div>
+                    </div>
+                  </>
+                )}
               </div>
-              <div
-                className="text-xs font-mono line-clamp-3"
-                style={{ color: colors.text.primary }}
-              >
-                {selectedConfig.instructions || 'No instructions set'}
+
+              {/* Prompt Preview */}
+              <div className="border-t pt-3" style={{ borderColor: colors.border }}>
+                <div className="text-xs font-medium mb-2" style={{ color: colors.text.secondary }}>
+                  Prompt Preview
+                </div>
+                <div
+                  className="text-xs font-mono line-clamp-3"
+                  style={{ color: colors.text.primary }}
+                >
+                  {selectedConfig.instructions || 'No instructions set'}
+                </div>
               </div>
             </div>
           )}
diff --git a/app/components/SimplifiedConfigEditor.tsx b/app/components/SimplifiedConfigEditor.tsx
index f9d4ef5..8e0f105 100644
--- a/app/components/SimplifiedConfigEditor.tsx
+++ b/app/components/SimplifiedConfigEditor.tsx
@@ -103,6 +103,22 @@ export default function SimplifiedConfigEditor({
     const blob = version.config_blob;
     const params = blob.completion.params;
 
+    // Backend sends flattened fields (knowledge_base_ids, max_num_results) directly on params
+    // Convert to tools array for frontend UI compatibility
+    const tools: Tool[] = params.tools || [];
+
+    // If no tools array but has flattened fields, create tools array from them
+    // Each knowledge_base_id becomes a separate tool for UI display
+    if (tools.length === 0 && params.knowledge_base_ids && params.knowledge_base_ids.length > 0) {
+      params.knowledge_base_ids.forEach((kbId: string) => {
+        tools.push({
+          type: 'file_search',
+          knowledge_base_ids: [kbId], // Each tool gets one ID for UI
+          max_num_results: params.max_num_results || 20,
+        });
+      });
+    }
+
     return {
       id: version.id,
       config_id: config.id,
@@ -113,8 +129,8 @@ export default function SimplifiedConfigEditor({
       modelName: params.model || '',
       provider: blob.completion.provider,
       temperature: params.temperature || 0.7,
-      vectorStoreIds: params.tools?.[0]?.vector_store_ids?.[0] || '',
-      tools: params.tools || [],
+      vectorStoreIds: tools[0]?.knowledge_base_ids?.[0] || '',
+      tools: tools,
       commit_message: version.commit_message,
     };
   };
@@ -228,6 +244,20 @@ export default function SimplifiedConfigEditor({
 
     try {
       // Build config blob
+      // Extract tools array and flatten to direct params fields for backend compatibility
+      // Collect ALL knowledge_base_ids from ALL tools into a single array
+      const allKnowledgeBaseIds: string[] = [];
+      let maxNumResults = 20; // default
+
+      tools.forEach((tool) => {
+        // Add all knowledge_base_ids from this tool
+        allKnowledgeBaseIds.push(...tool.knowledge_base_ids);
+        // Use max_num_results from first tool (could be made configurable)
+        if (allKnowledgeBaseIds.length === tool.knowledge_base_ids.length) {
+          maxNumResults = tool.max_num_results;
+        }
+      });
+
       const configBlob: ConfigBlob = {
         completion: {
           provider: provider as 'openai', // | 'anthropic' | 'google', // Only OpenAI supported for now
@@ -235,7 +265,11 @@ export default function SimplifiedConfigEditor({
             model: modelName,
             instructions: instructions,
             temperature: temperature,
-            ...(tools.length > 0 && { tools }),
+            // Flatten tools array to direct fields for backend - support multiple knowledge bases
+            ...(allKnowledgeBaseIds.length > 0 && {
+              knowledge_base_ids: allKnowledgeBaseIds,
+              max_num_results: maxNumResults,
+            }),
           },
         },
       };
diff --git a/app/components/prompt-editor/ConfigDiffPane.tsx b/app/components/prompt-editor/ConfigDiffPane.tsx
index fac6f44..0eae5a4 100644
--- a/app/components/prompt-editor/ConfigDiffPane.tsx
+++ b/app/components/prompt-editor/ConfigDiffPane.tsx
@@ -71,7 +71,7 @@ export default function ConfigDiffPane({
       if (value.length === 0) return '[]';
       return value.map((tool, idx) => {
         if (tool.type === 'file_search') {
-          return `File Search (${tool.vector_store_ids?.[0] || 'no store'})`;
+          return `File Search (${tool.knowledge_base_ids?.[0] || 'no store'})`;
         }
         return JSON.stringify(tool);
       }).join(', ');
diff --git a/app/components/prompt-editor/ConfigEditorPane.tsx b/app/components/prompt-editor/ConfigEditorPane.tsx
index 00db40d..9e966df 100644
--- a/app/components/prompt-editor/ConfigEditorPane.tsx
+++ b/app/components/prompt-editor/ConfigEditorPane.tsx
@@ -131,7 +131,7 @@ export default function ConfigEditorPane({
       ...tools,
       {
         type: 'file_search' as const,
-        vector_store_ids: [''],
+        knowledge_base_ids: [''],
         max_num_results: 20,
       },
     ];
@@ -157,7 +157,7 @@ export default function ConfigEditorPane({
 
   const handleUpdateTool = (index: number, field: keyof Tool, value: any) => {
     const newTools = [...tools];
-    if (field === 'vector_store_ids') {
+    if (field === 'knowledge_base_ids') {
       newTools[index][field] = [value];
     } else {
       (newTools[index] as any)[field] = value;
@@ -574,9 +574,9 @@ export default function ConfigEditorPane({
                   </label>
                   <input
                     type="text"
-                    value={tool.vector_store_ids[0] || ''}
+                    value={tool.knowledge_base_ids[0] || ''}
                     onChange={(e) =>
-                      handleUpdateTool(index, 'vector_store_ids', e.target.value)
+                      handleUpdateTool(index, 'knowledge_base_ids', e.target.value)
                     }
                     placeholder="vs_abc123"
                     className="w-full px-2 py-1 rounded text-xs focus:outline-none"
diff --git a/app/components/prompt-editor/CurrentConfigTab.tsx b/app/components/prompt-editor/CurrentConfigTab.tsx
index 99ed577..aba579b 100644
--- a/app/components/prompt-editor/CurrentConfigTab.tsx
+++ b/app/components/prompt-editor/CurrentConfigTab.tsx
@@ -52,7 +52,7 @@ export default function CurrentConfigTab({
       ...tools,
       {
         type: 'file_search',
-        vector_store_ids: [''],
+        knowledge_base_ids: [''],
         max_num_results: 20,
       },
     ]);
@@ -64,7 +64,7 @@ export default function CurrentConfigTab({
 
   const updateTool = (index: number, field: keyof Tool, value: any) => {
     const newTools = [...tools];
-    if (field === 'vector_store_ids') {
+    if (field === 'knowledge_base_ids') {
       newTools[index][field] = [value];
     } else {
       (newTools[index] as any)[field] = value;
@@ -397,8 +397,8 @@ export default function CurrentConfigTab({
               </label>
               <input
                 type="text"
-                value={tool.vector_store_ids[0] || ''}
-                onChange={(e) => updateTool(index, 'vector_store_ids', e.target.value)}
+                value={tool.knowledge_base_ids[0] || ''}
+                onChange={(e) => updateTool(index, 'knowledge_base_ids', e.target.value)}
                 placeholder="vs_abc123"
                 style={{
                   width: '100%',
diff --git a/app/components/prompt-editor/DiffView.tsx b/app/components/prompt-editor/DiffView.tsx
index bca6c07..a2bba25 100644
--- a/app/components/prompt-editor/DiffView.tsx
+++ b/app/components/prompt-editor/DiffView.tsx
@@ -213,9 +213,9 @@ export default function DiffView({
                           {selectedCommit.tools.map((tool, idx) => (
                             <div key={idx} className="p-2 rounded" style={{ backgroundColor: colors.bg.secondary }}>
                               <div className="text-xs font-semibold">{tool.type}</div>
-                              {tool.vector_store_ids && (
+                              {tool.knowledge_base_ids && (
                                 <div className="text-xs mt-1" style={{ color: colors.text.secondary }}>
-                                  Vector Store: {tool.vector_store_ids[0]}
+                                  Vector Store: {tool.knowledge_base_ids[0]}
                                 </div>
                               )}
                             </div>
diff --git a/app/components/types.ts b/app/components/types.ts
index 2db38bf..bfae124 100644
--- a/app/components/types.ts
+++ b/app/components/types.ts
@@ -90,7 +90,7 @@ export type ScoreObject = NewScoreObjectV2 | NewScoreObject | LegacyScoreObject;
 export interface AssistantConfig {
   name: string;
   model: string;
-  vector_store_ids: string[];
+  knowledge_base_ids: string[];
   project_id: number;
   organization_id: number;
   updated_at: string;
diff --git a/app/configurations/prompt-editor/page.tsx b/app/configurations/prompt-editor/page.tsx
index ded1488..da1a270 100644
--- a/app/configurations/prompt-editor/page.tsx
+++ b/app/configurations/prompt-editor/page.tsx
@@ -212,19 +212,40 @@ function PromptEditorContent() {
 
     try {
       // Build config blob (store prompt in instructions field)
+      // Extract tools array and flatten to direct params fields for backend compatibility
+      const tools = currentConfigBlob.completion.params.tools || [];
+
+      // Collect ALL knowledge_base_ids from ALL tools into a single array
+      const allKnowledgeBaseIds: string[] = [];
+      let maxNumResults = 20; // default
+
+      tools.forEach((tool) => {
+        // Add all knowledge_base_ids from this tool
+        allKnowledgeBaseIds.push(...tool.knowledge_base_ids);
+        // Use max_num_results from first tool (could be made configurable)
+        if (allKnowledgeBaseIds.length === tool.knowledge_base_ids.length) {
+          maxNumResults = tool.max_num_results;
+        }
+      });
+
       const configBlob: ConfigBlob = {
         completion: {
-          // provider: provider as 'openai' | 'anthropic' | 'google',
-          provider:provider as 'openai',
+          provider: currentConfigBlob.completion.provider,
           params: {
             model: currentConfigBlob.completion.params.model,
             instructions: currentContent, // Store prompt as instructions
-            temperature: temperature,
-            ...(tools.length > 0 && { tools }),
+            temperature: currentConfigBlob.completion.params.temperature,
+            // Flatten tools array to direct fields for backend - support multiple knowledge bases
+            ...(allKnowledgeBaseIds.length > 0 && {
+              knowledge_base_ids: allKnowledgeBaseIds,
+              max_num_results: maxNumResults,
+            }),
           },
         },
       };
 
+      console.log('[DEBUG] Config blob being sent:', JSON.stringify(configBlob, null, 2));
+
       // Check if updating existing config (same name exists)
       const existingConfig = savedConfigs.find(c => c.name === currentConfigName.trim());
 
diff --git a/app/configurations/prompt-editor/types.ts b/app/configurations/prompt-editor/types.ts
index bcc9008..e7527e4 100644
--- a/app/configurations/prompt-editor/types.ts
+++ b/app/configurations/prompt-editor/types.ts
@@ -25,7 +25,7 @@ export interface DiffStats {
 
 export interface Tool {
   type: 'file_search';
-  vector_store_ids: string[];
+  knowledge_base_ids: string[];
   max_num_results: number;
 }
 
@@ -36,7 +36,11 @@ export interface ConfigBlob {
       model: string;
       instructions: string;
       temperature: number;
-      tools: Tool[];
+      // Frontend uses tools array for UI
+      tools?: Tool[];
+      // Backend expects these as direct fields (flattened from tools array)
+      knowledge_base_ids?: string[];
+      max_num_results?: number;
     };
   };
 }
diff --git a/app/lib/configTypes.ts b/app/lib/configTypes.ts
index eabc979..56f8752 100644
--- a/app/lib/configTypes.ts
+++ b/app/lib/configTypes.ts
@@ -6,7 +6,7 @@
 // Config Blob Structure
 export interface Tool {
   type: 'file_search';
-  vector_store_ids: string[];
+  knowledge_base_ids: string[];
   max_num_results: number;
 }
 
@@ -14,7 +14,11 @@ export interface CompletionParams {
   model: string;
   instructions: string;
   temperature?: number;
+  // Frontend uses tools array for UI, but backend expects flattened fields
   tools?: Tool[];
+  // Backend expects these as direct fields (flattened from tools array)
+  knowledge_base_ids?: string[];
+  max_num_results?: number;
   [key: string]: any; // Allow additional provider-specific params
 }
 
diff --git a/app/lib/useConfigs.ts b/app/lib/useConfigs.ts
index 4fae539..900de6b 100644
--- a/app/lib/useConfigs.ts
+++ b/app/lib/useConfigs.ts
@@ -86,6 +86,22 @@ const flattenConfigVersion = (
   const blob = version.config_blob;
   const params = blob.completion.params;
 
+  // Backend sends flattened fields (knowledge_base_ids, max_num_results) directly on params
+  // Convert to tools array for frontend UI compatibility
+  const tools: Tool[] = params.tools || [];
+
+  // If no tools array but has flattened fields, create tools array from them
+  // Each knowledge_base_id becomes a separate tool for UI display
+  if (tools.length === 0 && params.knowledge_base_ids && params.knowledge_base_ids.length > 0) {
+    params.knowledge_base_ids.forEach((kbId: string) => {
+      tools.push({
+        type: 'file_search',
+        knowledge_base_ids: [kbId], // Each tool gets one ID for UI
+        max_num_results: params.max_num_results || 20,
+      });
+    });
+  }
+
   return {
     id: version.id,
     config_id: config.id,
@@ -98,8 +114,8 @@ const flattenConfigVersion = (
     modelName: params.model || '',
     provider: blob.completion.provider,
     temperature: params.temperature || 0.7,
-    vectorStoreIds: params.tools?.[0]?.vector_store_ids?.[0] || '',
-    tools: params.tools || [],
+    vectorStoreIds: tools[0]?.knowledge_base_ids?.[0] || '',
+    tools: tools,
     commit_message: version.commit_message,
   };
 };
diff --git a/instructions/CONFIG_AB.md b/instructions/CONFIG_AB.md
index 3a15d62..c3d5ec1 100644
--- a/instructions/CONFIG_AB.md
+++ b/instructions/CONFIG_AB.md
@@ -75,7 +75,7 @@ We have a React-based version control system for prompt templates (similar to Gi
         tools: [
           {
             type: 'file_search',
-            vector_store_ids: ['vs_abc123'],
+            knowledge_base_ids: ['vs_abc123'],
             max_num_results: 20
           }
         ]
diff --git a/instructions/CONFIG_API.md b/instructions/CONFIG_API.md
index 659bdc3..a8b9e06 100644
--- a/instructions/CONFIG_API.md
+++ b/instructions/CONFIG_API.md
@@ -163,7 +163,7 @@ interface APIResponse<T> {
       "tools": [
         {
           "type": "file_search",
-          "vector_store_ids": ["vs_692d71f3f5708191b1c46525f3c1e196"],
+          "knowledge_base_ids": ["vs_692d71f3f5708191b1c46525f3c1e196"],
           "max_num_results": 20
         }
       ]
