mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-04 00:03:59 +00:00
fix: async knowledge writeIndex + 60s tool execution timeout
This commit is contained in:
@ -1027,6 +1027,22 @@ func (a *Agent) executeToolCall(tc agentAPI.ToolCall) (ret string) {
|
|||||||
ret = fmt.Sprintf("工具 %s 执行崩溃: %v", tc.Name, r)
|
ret = fmt.Sprintf("工具 %s 执行崩溃: %v", tc.Name, r)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
done := make(chan string, 1)
|
||||||
|
go func() {
|
||||||
|
done <- a.executeToolCallInner(tc)
|
||||||
|
}()
|
||||||
|
|
||||||
|
select {
|
||||||
|
case result := <-done:
|
||||||
|
return result
|
||||||
|
case <-time.After(60 * time.Second):
|
||||||
|
log.Printf("[agent] tool %s timed out after 60s", tc.Name)
|
||||||
|
return fmt.Sprintf("工具 %s 执行超时(60秒),已取消", tc.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Agent) executeToolCallInner(tc agentAPI.ToolCall) string {
|
||||||
switch {
|
switch {
|
||||||
case strings.HasPrefix(tc.Name, "memory_"):
|
case strings.HasPrefix(tc.Name, "memory_"):
|
||||||
return a.executeMemoryTool(tc)
|
return a.executeMemoryTool(tc)
|
||||||
|
|||||||
@ -177,9 +177,11 @@ func (s *Store) Add(name, content string) error {
|
|||||||
})
|
})
|
||||||
s.summaries = append(s.summaries, name+" "+content)
|
s.summaries = append(s.summaries, name+" "+content)
|
||||||
|
|
||||||
if err := s.writeIndex(); err != nil {
|
go func() {
|
||||||
log.Printf("[knowledge] write index error after adding %s: %v", name, err)
|
if err := s.writeIndex(); err != nil {
|
||||||
}
|
log.Printf("[knowledge] write index error after adding %s: %v", name, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
log.Printf("[knowledge] added: %s (%d bytes)", name, len(content))
|
log.Printf("[knowledge] added: %s (%d bytes)", name, len(content))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user