feat: LLM可自主操作提醒 — reminder_create/list/delete 工具

- 新增 GatewayClient HTTP 客户端,调用 Gateway /api/v1/reminders API
- 新增 3 个提醒工具:reminder_create / reminder_list / reminder_delete
- main.go 注册提醒工具,需 GATEWAY_URL + INTERNAL_SERVICE_TOKEN 环境变量
- AutonomousToolPolicy 白名单加入提醒工具,允许自主思考中创建提醒

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-06-22 20:37:27 +08:00
parent 7e475bdfa6
commit 485d845f3e
4 changed files with 290 additions and 0 deletions
+14
View File
@@ -158,6 +158,12 @@ func main() {
log.Println("IoT 客户端未配置 (IOT_SERVICE_URL 和 IOT_DEBUG_SERVICE_URL 均为空)")
}
// 初始化 Gateway HTTP 客户端(提醒/日程等工具用)
gwBaseURL := getEnv("GATEWAY_URL", "http://localhost:8080")
gwToken := os.Getenv("INTERNAL_SERVICE_TOKEN")
gwClient := tools.NewGatewayClient(gwBaseURL, gwToken)
log.Printf("Gateway 客户端已就绪: %s", gwBaseURL)
// 初始化主机操控管理器 (沙箱执行 + 文件系统隔离)
hostSandbox := host.NewSandbox(host.DefaultSandboxConfig())
directBackend := host.NewDirectBackend(hostSandbox)
@@ -224,6 +230,14 @@ func main() {
toolRegistry.Register(wrapTool(tools.NewOSSystemTool(osManager), "os_system", "OS System Info", "system"))
}
// 提醒/日程工具(需要 Gateway 客户端)
if gwClient != nil && gwToken != "" {
toolRegistry.Register(wrapTool(tools.NewReminderCreateTool(gwClient, adminUserID), "reminder_create", "Create Reminder", "reminder"))
toolRegistry.Register(wrapTool(tools.NewReminderListTool(gwClient, adminUserID), "reminder_list", "List Reminders", "reminder"))
toolRegistry.Register(wrapTool(tools.NewReminderDeleteTool(gwClient, adminUserID), "reminder_delete", "Delete Reminder", "reminder"))
log.Println("[工具] 提醒工具已注册 (reminder_create, reminder_list, reminder_delete)")
}
visionProvider = nil
if configLoader != nil && configLoader.HasConfig() {
cfg := configLoader.GetConfig()