动态加载工具配置

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-17 13:13:06 +08:00
co-authored by Claude
parent 249227ef0a
commit 4e4c6b32fc
13 changed files with 704 additions and 188 deletions
+3 -4
View File
@@ -6,11 +6,10 @@ import (
"strings"
"time"
searchagent "aichat/agents/search"
sqlquery "aichat/agents/sql"
"aichat/llm"
"aichat/message"
"aichat/stream"
"aichat/toolmanager"
"aichat/utils"
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model"
@@ -18,7 +17,7 @@ import (
const maxAgentToolIterations = 6
func RunAgentToolLoop(ctx context.Context, state *State, profile *llm.Profile, chatMessages []message.ChatMessage, searchState *searchagent.State, sqlState *sqlquery.State, emit stream.EmitFunc) ([]*model.ChatCompletionMessage, error) {
func RunAgentToolLoop(ctx context.Context, state *State, profile *llm.Profile, chatMessages []message.ChatMessage, manager *toolmanager.Manager, emit stream.EmitFunc) ([]*model.ChatCompletionMessage, error) {
finalMessages, err := message.BuildArkMessages(chatMessages)
if err != nil {
return nil, err
@@ -27,7 +26,7 @@ func RunAgentToolLoop(ctx context.Context, state *State, profile *llm.Profile, c
if state != nil {
routerProfile = state.RouterProfile(profile)
}
tools := availableAgentTools(state, routerProfile, searchState, sqlState, emit)
tools := availableAgentTools(state, routerProfile, manager, emit)
if len(tools) == 0 {
return finalMessages, nil
}