feat(agent): 上下文压缩 - 超预算时生成检查点并安全续轮 (#598)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user