后端: 1.收口阶段 6 agent 结构迁移,将 newAgent 内核与 agentsvc 编排层迁入 services/agent - 切换 Agent 启动装配与 HTTP handler 直连 agent sv,移除旧 service agent bridge - 补齐 Agent 对 memory、task、task-class、schedule 的 RPC 适配与契约字段 - 扩展 schedule、task、task-class RPC/contract 支撑 Agent 查询、写入与 provider 切流 - 更新迁移文档、README 与相关注释,明确 agent 当前切流点和剩余 memory 迁移面
38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package agenttools
|
|
|
|
import "strings"
|
|
|
|
var activeOptimizeAllowedTools = map[string]struct{}{
|
|
ToolNameContextToolsAdd: {},
|
|
ToolNameContextToolsRemove: {},
|
|
"analyze_health": {},
|
|
"move": {},
|
|
"swap": {},
|
|
}
|
|
|
|
// IsToolAllowedInActiveOptimize 判定工具是否允许出现在“粗排后主动优化专用模式”里。
|
|
//
|
|
// 职责边界:
|
|
// 1. 这里只做场景级白名单裁剪,不参与工具是否已注册、是否被临时禁用、是否需要 confirm 的判断;
|
|
// 2. 该白名单只服务于“首次粗排后自动微调”链路,避免 LLM 在主动优化时重新暴露大量读工具;
|
|
// 3. context_tools_add/remove 仍保留,是为了兼容系统级动态区协议,但不代表会重新放开其它业务工具。
|
|
func IsToolAllowedInActiveOptimize(name string) bool {
|
|
_, ok := activeOptimizeAllowedTools[strings.TrimSpace(name)]
|
|
return ok
|
|
}
|
|
|
|
// FilterSchemasForActiveOptimize 过滤出主动优化专用模式允许暴露给 LLM 的工具 schema。
|
|
func FilterSchemasForActiveOptimize(schemas []ToolSchemaEntry) []ToolSchemaEntry {
|
|
if len(schemas) == 0 {
|
|
return nil
|
|
}
|
|
filtered := make([]ToolSchemaEntry, 0, len(schemas))
|
|
for _, item := range schemas {
|
|
if !IsToolAllowedInActiveOptimize(item.Name) {
|
|
continue
|
|
}
|
|
filtered = append(filtered, item)
|
|
}
|
|
return filtered
|
|
}
|