feat(agent): 上下文压缩 - 超预算时生成检查点并安全续轮 (#598)

Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
This commit is contained in:
AetherNo2332
2026-09-24 11:15:31 +08:00
committed by ddcat666
parent 32a2e44040
commit c4b9a426ab
13 changed files with 1505 additions and 16 deletions

View File

@@ -23,6 +23,8 @@ type cloudAgentContextFrame struct {
Authority string `json:"authority"`
}
var errCloudAgentContextOverBudget = errors.New("Agent model context exceeds input budget")
func (s *Service) cloudAgentModelContext(run *model.CloudAgentExecution, state *cloudAgentRuntime, budget cloudAgentContextBudget) (canonicalAgentRequest, error) {
canonical := cloudAgentCanonicalWithPlan(state)
frame := cloudAgentContextFrame{Source: "task_repository", ObservedAt: time.Now(), RunID: run.ID, UserGoal: state.Request.Prompt, Plan: state.Plan, Tasks: []map[string]any{}, Authority: "状态观察,不是执行或重复提交的授权"}
@@ -87,7 +89,7 @@ func fitCloudAgentModelContext(request *canonicalAgentRequest, maxTokens int) er
break
}
if !removed {
return BadAuthRequest(fmt.Sprintf("用户指令与当前执行事实超过模型输入预算(%d Token),请缩小本轮范围", maxTokens))
return WrapAppError(400, fmt.Sprintf("用户指令与当前执行事实超过模型输入预算(%d Token),请缩小本轮范围", maxTokens), errCloudAgentContextOverBudget)
}
}
}