Skip to content

Commit 8f452ea

Browse files
committed
fix: fallback to all tools when no category keyword matches
1 parent 6534c6d commit 8f452ea

1 file changed

Lines changed: 24 additions & 7 deletions

File tree

internal/web/chat.go

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,9 @@ func (s *ChatSession) buildToolList(userMsg string) []tools.Tool {
230230

231231
cats := matchToolCategories(userMsg)
232232

233-
// If no specific category matched but mightNeedTools was true,
234-
// include a small discovery set so the LLM can still help.
233+
// Fallback: if no category matched, send all tools so the LLM can still help.
235234
if len(cats) == 0 {
236-
list = append(list, tools.NewMarketBrowseTool(s.marketClient))
237-
list = append(list, tools.NewMarketLookupTool(s.marketClient))
238-
list = append(list, tools.NewCWBalanceTool(s.marketClient))
239-
list = append(list, tools.NewReportIssueTool(s.marketClient))
240-
return list
235+
return s.buildAllTools(list)
241236
}
242237

243238
// Market discovery — always include if any platform category matched
@@ -293,6 +288,28 @@ func (s *ChatSession) buildToolList(userMsg string) []tools.Tool {
293288
return list
294289
}
295290

291+
// buildAllTools appends every platform tool to the base list (fallback path).
292+
func (s *ChatSession) buildAllTools(list []tools.Tool) []tools.Tool {
293+
mc := s.marketClient
294+
list = append(list,
295+
tools.NewMarketBrowseTool(mc), tools.NewMarketLookupTool(mc), tools.NewGigMyTool(mc),
296+
tools.NewGigClaimTool(mc), tools.NewGigDeliverTool(mc), tools.NewGigApproveTool(mc),
297+
tools.NewGigPostTool(mc), tools.NewGigDisputeTool(mc), tools.NewGigCancelTool(mc),
298+
tools.NewGigRateTool(mc), tools.NewGigWithdrawTool(mc),
299+
tools.NewSkillMarketBrowseTool(mc), tools.NewSkillMarketDetailTool(mc), tools.NewSkillBuyTool(mc),
300+
tools.NewSkillMyPurchasesTool(mc), tools.NewSkillMySkillsTool(mc), tools.NewSkillRequestsTool(mc),
301+
tools.NewSkillRequestClaimTool(mc), tools.NewCWMarketMineTool(mc), tools.NewCWMarketBuyOrdersTool(mc),
302+
tools.NewCWMarketFillOrderTool(mc),
303+
tools.NewSocialPostTool(mc), tools.NewSocialFollowTool(mc), tools.NewSocialUnfollowTool(mc),
304+
tools.NewSocialNearbyTool(mc), tools.NewSocialDmSendTool(mc), tools.NewSocialMessagesListTool(mc),
305+
tools.NewSocialMessagesReadTool(mc), tools.NewSocialMomentsReadTool(mc), tools.NewSocialLikeMomentTool(mc),
306+
tools.NewSocialConnectionsTool(mc),
307+
tools.NewCWBalanceTool(mc), tools.NewCWTransferTool(mc), tools.NewCWHistoryTool(mc),
308+
tools.NewReportIssueTool(mc),
309+
)
310+
return list
311+
}
312+
296313
// buildMiningContext returns a short text block with the current mining status.
297314
// Used as a prefix in both the simple and tool-calling paths.
298315
func (s *ChatSession) buildMiningContext(ctx context.Context) string {

0 commit comments

Comments
 (0)