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

Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
This commit is contained in:
AetherNo2332andddcat666 authored and ddcat666 committed 2026-09-24 11:15:31 +08:00
1 parent 703f4f0029
commit 1da3d373fb
13 files changed
+1505 -16

No files matched your search

@@ -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)
}
}
}