feat: Serper Web Search als Agent-Tool
- ToolService: serper_web_search Tool-Definition + ExecuteSerperWebSearch() Google-Suche via Serper.dev API mit Titel, Link, Snippet Knowledge Graph + Answer Box + organische Ergebnisse - AgentRecord: UseSerperSearch Property (Default: false) - DB-Migration: use_serper_search Spalte - AnthropicService + ChatService: useSerperSearch Parameter durchreichen - ChatEndpoint + AgentEndpoint: useSerperSearch in API - Frontend: Checkbox, Badge (Serper Search), laden/speichern - Aktivierung: Agent-Checkbox + SerperApiKey in Server-Einstellungen
This commit is contained in:
1 parent
558ded1ed5
commit
192f41e91e
11 files changed
+150
-12
No files matched your search
@@ -245,6 +245,10 @@
|
||||
<input type="checkbox" id="agentUseGitHubSearch">
|
||||
GitHub Code Search <span class="checkbox-hint">(Öffentlichen Code auf GitHub durchsuchen)</span>
|
||||
</label>
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="agentUseSerperSearch">
|
||||
Serper Web Search <span class="checkbox-hint">(Google-Suche via Serper.dev API)</span>
|
||||
</label>
|
||||
<label>Web-Suche</label>
|
||||
<select id="agentWebSearchVersion">
|
||||
<option value="">Deaktiviert</option>
|
||||
|
||||
@@ -109,6 +109,7 @@ function buildAgentCard(agent, skills) {
|
||||
if (agent.useMemory) badges.push('<span class="badge badge-feature" title="Zugriff auf Erinnerungen (Memory-Tools)"><i class="fa fa-database"></i> Erinnerungen</span>');
|
||||
if (agent.useAutoContext) badges.push('<span class="badge badge-feature" title="Relevante Erinnerungen werden automatisch abgerufen"><i class="fa fa-magic"></i> Auto-Kontext</span>');
|
||||
if (agent.useGitHubSearch) badges.push('<span class="badge badge-feature" title="Öffentlichen Code auf GitHub durchsuchen"><i class="fa fa-github"></i> GitHub Search</span>');
|
||||
if (agent.useSerperSearch) badges.push('<span class="badge badge-feature" title="Google-Suche via Serper.dev API"><i class="fa fa-google"></i> Serper Search</span>');
|
||||
if (agent.webSearchVersion) {
|
||||
const wsYear = agent.webSearchVersion.includes('2025') ? 'Version 2025' : 'v2026';
|
||||
badges.push(`<span class="badge badge-feature" title="Web-Suche - ${wsYear}"><i class="fa fa-search"></i> Web-Suche</span>`);
|
||||
|
||||
@@ -54,6 +54,7 @@ registerPage('agent', {
|
||||
const useMemoryEl = document.getElementById('agentUseMemory');
|
||||
const useAutoContextEl = document.getElementById('agentUseAutoContext');
|
||||
const useGitHubSearchEl = document.getElementById('agentUseGitHubSearch');
|
||||
const useSerperSearchEl = document.getElementById('agentUseSerperSearch');
|
||||
const webSearchVersionEl = document.getElementById('agentWebSearchVersion');
|
||||
const avatarPreview = document.getElementById('avatarPreview');
|
||||
const saveBtn = document.getElementById('agentSaveBtn');
|
||||
@@ -96,6 +97,7 @@ registerPage('agent', {
|
||||
useMemoryEl.checked = agent.useMemory !== false;
|
||||
useAutoContextEl.checked = agent.useAutoContext !== false;
|
||||
useGitHubSearchEl.checked = agent.useGitHubSearch || false;
|
||||
useSerperSearchEl.checked = agent.useSerperSearch || false;
|
||||
webSearchVersionEl.value = agent.webSearchVersion || '';
|
||||
isPublicEl.checked = agent.isPublic || false;
|
||||
deleteBtn.hidden = false;
|
||||
@@ -139,6 +141,7 @@ registerPage('agent', {
|
||||
useMemory: useMemoryEl.checked,
|
||||
useAutoContext: useAutoContextEl.checked,
|
||||
useGitHubSearch: useGitHubSearchEl.checked,
|
||||
useSerperSearch: useSerperSearchEl.checked,
|
||||
webSearchVersion: webSearchVersionEl.value,
|
||||
avatar: _agentAvatarEditor.getImage(),
|
||||
avatarScale: _agentAvatarEditor.getScale(),
|
||||
|
||||
Reference in new issue
Block a user