diff --git a/agentscope-core/src/main/java/io/agentscope/core/tool/Toolkit.java b/agentscope-core/src/main/java/io/agentscope/core/tool/Toolkit.java index 65db80509..d1c4d3fc6 100644 --- a/agentscope-core/src/main/java/io/agentscope/core/tool/Toolkit.java +++ b/agentscope-core/src/main/java/io/agentscope/core/tool/Toolkit.java @@ -555,6 +555,16 @@ public void createToolGroup(String groupName, String description) { groupManager.createToolGroup(groupName, description); } + /** + * Add a tool to a group. + * + * @param toolName Tool name + * @param groupName Group name + */ + public void addToolToGroup(String toolName, String groupName) { + groupManager.addToolToGroup(toolName, groupName); + } + /** * Update the activation status of tool groups. * diff --git a/agentscope-examples/agui/src/main/resources/static/index.html b/agentscope-examples/agui/src/main/resources/static/index.html index 97c72c425..e97e5fc47 100644 --- a/agentscope-examples/agui/src/main/resources/static/index.html +++ b/agentscope-examples/agui/src/main/resources/static/index.html @@ -278,6 +278,173 @@ .status-dot.disconnected { background: var(--accent-red); } + + /* Frontend Tools Panel Styles */ + .tools-panel { + background: var(--bg-secondary); + border: 1px solid var(--border-color); + border-radius: 12px; + margin-bottom: 20px; + overflow: hidden; + } + + .tools-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px 16px; + background: rgba(122, 162, 247, 0.1); + cursor: pointer; + user-select: none; + } + + .tools-header h3 { + font-size: 0.95rem; + font-weight: 600; + color: var(--accent-blue); + margin: 0; + } + + .icon-btn { + background: none; + border: none; + color: var(--text-secondary); + font-size: 1.2rem; + cursor: pointer; + padding: 4px 8px; + transition: transform 0.2s; + } + + .icon-btn:hover { + color: var(--text-primary); + } + + .icon-btn.collapsed { + transform: rotate(-90deg); + } + + .tools-content { + padding: 16px; + border-top: 1px solid var(--border-color); + } + + .tools-content.collapsed { + display: none; + } + + .preset-tools { + margin-bottom: 16px; + } + + .preset-tools label { + display: block; + font-size: 0.8rem; + color: var(--text-secondary); + margin-bottom: 8px; + } + + .preset-btn { + background: var(--bg-tertiary); + border: 1px solid var(--border-color); + color: var(--text-primary); + padding: 6px 12px; + border-radius: 6px; + margin-right: 8px; + margin-bottom: 8px; + font-size: 0.8rem; + cursor: pointer; + transition: all 0.2s; + } + + .preset-btn:hover { + background: var(--accent-blue); + border-color: var(--accent-blue); + } + + .tools-list { + margin-bottom: 12px; + } + + .tool-item { + background: var(--bg-primary); + border: 1px solid var(--border-color); + border-radius: 8px; + padding: 12px; + margin-bottom: 8px; + position: relative; + } + + .tool-item-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; + } + + .tool-name { + font-weight: 600; + color: var(--accent-green); + font-size: 0.9rem; + } + + .remove-tool-btn { + background: none; + border: none; + color: var(--accent-red); + cursor: pointer; + font-size: 1.1rem; + padding: 2px 6px; + } + + .tool-description { + font-size: 0.8rem; + color: var(--text-secondary); + margin-bottom: 8px; + } + + .tool-params-preview { + font-size: 0.75rem; + color: var(--text-secondary); + background: var(--bg-secondary); + padding: 6px 8px; + border-radius: 4px; + font-family: monospace; + overflow-x: auto; + } + + .secondary-btn { + background: var(--bg-tertiary); + border: 1px solid var(--border-color); + color: var(--text-primary); + padding: 8px 16px; + border-radius: 6px; + cursor: pointer; + font-size: 0.85rem; + transition: all 0.2s; + } + + .secondary-btn:hover { + background: var(--border-color); + } + + .no-tools { + color: var(--text-secondary); + font-size: 0.85rem; + font-style: italic; + padding: 12px; + text-align: center; + } + + .tool-result { + background: rgba(158, 206, 106, 0.1); + border-left: 3px solid var(--accent-green); + padding: 8px 12px; + margin: 8px 0; + border-radius: 4px; + font-family: monospace; + font-size: 0.8rem; + white-space: pre-wrap; + }
@@ -292,6 +459,29 @@