feat(admin): Agent 并发 - 后台可调同时对话上限并展示 Agent 服务状态
新增运行策略 agentMaxSessions(默认 30,范围 1-64),保存后同时下发到内嵌进程闸门与独立 yingce-agent 的 /v1/limit,降低上限不会中断已开始的对话。系统性能页展示 Agent 服务健康、进行中/排队数量,并可直接修改上限。
This commit is contained in:
@@ -36,6 +36,9 @@ const (
|
||||
MinRuntimeAgentStepTimeoutSeconds = 30
|
||||
MaxRuntimeAgentStepTimeoutSeconds = 3_600
|
||||
DefaultRuntimeAgentStepTimeout = 0
|
||||
MinRuntimeAgentSessions = 1
|
||||
MaxRuntimeAgentSessions = 64
|
||||
DefaultRuntimeAgentSessions = 30
|
||||
)
|
||||
|
||||
// agentStepMaxOutputTokensDefault 读取部署级覆盖并按同一套范围夹取;环境变量无法表达"不限制"(0),
|
||||
@@ -90,6 +93,8 @@ type RuntimeTaskPolicy struct {
|
||||
AgentStepMaxOutputTokens int `json:"agentStepMaxOutputTokens"`
|
||||
// AgentStepTimeoutSeconds 是画布 Agent 单步模型调用的秒级墙钟;0 表示沿用文本任务超时。
|
||||
AgentStepTimeoutSeconds int `json:"agentStepTimeoutSeconds"`
|
||||
// AgentMaxSessions 是同时进行中的画布 Agent 轮次上限。审批等待不占用名额。
|
||||
AgentMaxSessions int `json:"agentMaxSessions"`
|
||||
}
|
||||
|
||||
type RuntimeRequestPolicy struct {
|
||||
@@ -173,6 +178,7 @@ func DefaultRuntimePolicy() RuntimePolicySetting {
|
||||
DefaultTimeoutMinutes: 10,
|
||||
AgentStepMaxOutputTokens: agentStepMaxOutputTokensDefault(),
|
||||
AgentStepTimeoutSeconds: agentStepTimeoutSecondsDefault(),
|
||||
AgentMaxSessions: DefaultRuntimeAgentSessions,
|
||||
},
|
||||
Request: RuntimeRequestPolicy{
|
||||
TaskCreatePerMinute: 30,
|
||||
@@ -213,6 +219,7 @@ func selfUseRuntimePolicy() RuntimePolicySetting {
|
||||
AudioTimeoutMinutes: maxRuntimeTimeoutMinutes, VideoTimeoutMinutes: maxRuntimeTimeoutMinutes,
|
||||
StoryboardTimeoutMinutes: maxRuntimeTimeoutMinutes, DefaultTimeoutMinutes: maxRuntimeTimeoutMinutes,
|
||||
AgentStepMaxOutputTokens: MaxRuntimeAgentStepOutputTokens, AgentStepTimeoutSeconds: MaxRuntimeAgentStepTimeoutSeconds,
|
||||
AgentMaxSessions: MaxRuntimeAgentSessions,
|
||||
}
|
||||
value.Request = RuntimeRequestPolicy{
|
||||
TaskCreatePerMinute: maxRuntimeRate,
|
||||
@@ -437,6 +444,9 @@ func validateRuntimePolicy(value RuntimePolicySetting) error {
|
||||
if task.AgentStepTimeoutSeconds != 0 && (task.AgentStepTimeoutSeconds < MinRuntimeAgentStepTimeoutSeconds || task.AgentStepTimeoutSeconds > MaxRuntimeAgentStepTimeoutSeconds) {
|
||||
return kernel.BadAuthRequest(fmt.Sprintf("Agent 单步超时必须是 0 或 %d-%d 秒的整数 (0 表示沿用文本任务超时)", MinRuntimeAgentStepTimeoutSeconds, MaxRuntimeAgentStepTimeoutSeconds))
|
||||
}
|
||||
if task.AgentMaxSessions < MinRuntimeAgentSessions || task.AgentMaxSessions > MaxRuntimeAgentSessions {
|
||||
return kernel.BadAuthRequest(fmt.Sprintf("Agent 同时对话上限必须是 %d-%d 的整数", MinRuntimeAgentSessions, MaxRuntimeAgentSessions))
|
||||
}
|
||||
request := value.Request
|
||||
for label, item := range map[string]int{
|
||||
"任务创建频控": request.TaskCreatePerMinute,
|
||||
|
||||
Reference in New Issue
Block a user