0.11.4: 旗舰版第五轮完善(智能体节点任务下发/个人智能体安全策略)

- 节点任务:管理端向节点池下发(Prompt/HTTP/MCP/Skill/数字员工/自定义),
  指定节点或池路由,认领 SKIP LOCKED + 15 分钟租约,认领令牌防重放上报,
  失败 30s×次数退避重入队,达上限 failed,支持取消/重试,完成与失败站内信。
- 个人智能体安全策略:auto_approve_tools 跳过个人调用审批门;
  rate_limit_multiplier 按 (tool,user) 独立窗口放宽个人限流(全局额度不受影响)。
- 修复存量缺陷:/v1/agent/nodes/ 未挂 publicMux,节点心跳/认领端点在部署
  拓扑下不可达。
- 迁移 000046;任务全链路集成测试连真实库通过,HTTP 端到端验证
  (下发→认领→伪造令牌拒绝→上报→succeeded,列表不泄露认领令牌);
  25 包测试通过,前后端构建通过。
This commit is contained in:
LLMGuardX Dev
2026-08-13 14:30:37 +08:00
parent 87c2b04174
commit d534865b33
16 changed files with 1082 additions and 15 deletions
+5
View File
@@ -323,6 +323,7 @@ func main() {
traceHandler := trace.NewAdminHTTPHandler(traceStore, identityService)
agentNodeStore := agentnode.NewStore(db)
agentNodeHandler := agentnode.NewHTTPHandler(agentNodeStore, identityService)
agentPolicyHandler := workbench.NewAgentPolicyHTTPHandler(workbench.NewAgentPolicyService(db), identityService)
applicationKeyCipher, err := cryptox.NewKeyring(
cfg.Credentials.MasterKey, cfg.Credentials.KEKVersion, cfg.Credentials.KEKKeyring, "application-runtime-key",
)
@@ -444,6 +445,8 @@ func main() {
controlMux.Handle("/api/v1/admin/agent-sessions", traceHandler)
controlMux.Handle("/api/v1/admin/agent-nodes", agentNodeHandler)
controlMux.Handle("/api/v1/admin/agent-nodes/", agentNodeHandler)
controlMux.Handle("/api/v1/admin/agent-tasks", agentNodeHandler)
controlMux.Handle("/api/v1/admin/agent-tasks/", agentNodeHandler)
controlMux.Handle("/api/v1/agent/nodes/", agentNodeHandler)
controlMux.Handle("/api/v1/admin/channels", channelHandler)
controlMux.Handle("/api/v1/admin/channels/", channelHandler)
@@ -483,6 +486,7 @@ func main() {
controlMux.Handle("/api/v1/portal/stats", portalHandler)
controlMux.Handle("/api/v1/portal/tools", portalHandler)
controlMux.Handle("/api/v1/portal/chat/", portalHandler)
controlMux.Handle("/api/v1/portal/agent-policy", agentPolicyHandler)
controlMux.Handle("/api/v1/portal/personal-channels", portalHandler)
controlMux.Handle("/api/v1/portal/personal-channels/", portalHandler)
controlMux.Handle("/api/v1/portal/digital-employees", portalHandler)
@@ -506,6 +510,7 @@ func main() {
publicMux.Handle("/v1/mcp-servers/", workbenchRuntime)
publicMux.Handle("/v1/channels/", channelInboundHandler)
publicMux.Handle("/v1/personal-channels/", portalHandler)
publicMux.Handle("/v1/agent/nodes/", agentNodeHandler)
publicMux.Handle("/v1/digital-employees/", workbenchRuntime)
publicMux.Handle("/v1/", governedGateway)
server := httpserver.New(httpserver.Dependencies{