Feat/Gemini Built In Tools (#5215)

* feat: add Gemini built-in tools URL Context and Google Search for enhanced functionality

* add ui for gemini built in tools
This commit is contained in:
Henry Heng
2025-09-15 19:25:43 +01:00
committed by GitHub
parent c4322ce70b
commit f560768133
2 changed files with 158 additions and 45 deletions
@@ -24,7 +24,8 @@ import {
IconAlertCircleFilled,
IconCode,
IconWorldWww,
IconPhoto
IconPhoto,
IconBrandGoogle
} from '@tabler/icons-react'
import StopCircleIcon from '@mui/icons-material/StopCircle'
import CancelIcon from '@mui/icons-material/Cancel'
@@ -142,6 +143,17 @@ const AgentFlowNode = ({ data }) => {
}
}
const getBuiltInGeminiToolIcon = (toolName) => {
switch (toolName) {
case 'urlContext':
return <IconWorldWww size={14} color={'white'} />
case 'googleSearch':
return <IconBrandGoogle size={14} color={'white'} />
default:
return null
}
}
useEffect(() => {
if (ref.current) {
setTimeout(() => {
@@ -433,6 +445,16 @@ const AgentFlowNode = ({ data }) => {
: [],
toolProperty: 'builtInTool',
isBuiltInOpenAI: true
},
{
tools: data.inputs?.agentToolsBuiltInGemini
? (typeof data.inputs.agentToolsBuiltInGemini === 'string'
? JSON.parse(data.inputs.agentToolsBuiltInGemini)
: data.inputs.agentToolsBuiltInGemini
).map((tool) => ({ builtInTool: tool }))
: [],
toolProperty: 'builtInTool',
isBuiltInGemini: true
}
]
@@ -493,6 +515,32 @@ const AgentFlowNode = ({ data }) => {
]
}
// Handle built-in Gemini tools with icons
if (config.isBuiltInGemini) {
const icon = getBuiltInGeminiToolIcon(toolName)
if (!icon) return []
return [
<Box
key={`tool-${configIndex}-${toolIndex}`}
sx={{
width: 20,
height: 20,
borderRadius: '50%',
backgroundColor: customization.isDarkMode
? darken(data.color, 0.5)
: darken(data.color, 0.2),
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
padding: 0.2
}}
>
{icon}
</Box>
]
}
return [
<Box
key={`tool-${configIndex}-${toolIndex}`}