精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

解決真實GitHub Issue能力登頂,字節豆包MarsCode團隊分享背后工程實踐,踩過的坑也分享了

人工智能 新聞
SWE-Bench,一個由普林斯頓大學提出的極具挑戰性的Benchmark,近期受到工業界、學術界和創業團隊的廣泛關注。

解決真實GitHub Issue的基準測試,字節家的豆包MarsCode Agent悄悄登頂了。

圖片

SWE-Bench,一個由普林斯頓大學提出的極具挑戰性的Benchmark,近期受到工業界、學術界和創業團隊的廣泛關注。

在其子集SWE-Bench Lite排行榜上,豆包MarsCode Agent近期沖上第一。

雖然這是面向所有大模型解決方案的評測,但現在排名靠前的部分已基本被AI Agent占領。

AI Agent即能夠感知外部環境、操作工具并具有一定自主決策能力的智能體,受到了越來越多的研究關注。

現在,豆包MarsCode Agent團隊分享了在軟件工程領域進行了一系列關于AI Agent應用的探索和嘗試

通過構建Agent框架并為其提供代碼檢索、調試和編輯的交互接口和工具,使得Agent有可能接管部分軟件工程開發任務。

  • 在Agent框架方面,豆包MarsCode開發了多Agent協作框架,根據所要解決軟工問題類型,分配靜態或動態求解管道,從而靈活適配多樣的軟件工程問題;
  • 在代碼檢索能力方面,豆包MarsCode結合代碼知識圖譜和語言服務,為Agent提供全面的代碼實體召回、關系召回、定義與引用跳轉等能力,從而使Agent具備人類開發者類似的代碼瀏覽、分析過程;
  • 在代碼編輯方面,豆包MarsCode采用Conflict形式的代碼編輯描述和靜態語法檢查,能夠準確生成格式正確的代碼編輯補??;
  • 在軟件動態調試方面,豆包MarsCode基于Docker的容器化沙箱環境,讓Agent具備了人類開發者的調試能力,比如缺陷復現、添加日志和運行測試框架等。

01多Agent協作框架

開發者在日常的開發工作中常常會遇到各種問題,例如:

  • 運行測試用例報錯,有錯誤或異常堆棧等,這可能是由于代碼邏輯錯誤或測試斷言失敗導致的問題;
  • 代碼輸出結果不符合預期,沒有顯式的報錯信息,但有明確的輸出結果預期;
  • 需要對現有功能進行擴展或增加新功能,有明確的開發需求及預期結果,但不知道如何實現和在哪實現;
  • 需要進行簡單的缺陷修復,有大致的修復思路,但不熟悉語言特性需要協助。

上述多樣化的程序修復和開發任務通常無法用一種固定的模式來進行處理。

例如,一些簡單的缺陷修復或功能擴展僅需對代碼進行review即可完成;而較深的異常堆?;驈碗s的邏輯錯誤僅憑閱讀代碼往往很難發現問題所在,需要通過動態執行代碼并追蹤相關變量才能暴露出相關缺陷,從而對其進行修復。

因此,團隊采用了多Agent協作的框架來適應不同的開發場景。如下圖所示,多Agent協作框架中包含以下7類角色:

  • Searcher:利用CKG、LSP等代碼檢索工具收集與當前問題相關的repo內代碼片段;
  • Manager:根據收集到的相關代碼片段對問題進行定性和分流,將問題場景分為動態調試修復和靜態修復兩類;
  • Reproducer:在動態調試修復場景下,根據相關代碼和問題描述編寫復現腳本,并在沙箱中對腳本進行動態調試以確認復現成功;
  • Programmer:根據問題描述和相關代碼進行編輯代碼,并結合Tester的測試結果進行多輪迭代修改;
  • Tester:根據問題復現腳本,對當前代碼版本進行動態驗證,檢查問題是否得到解決;
  • Planner:在靜態修復場景下,根據問題和相關代碼,制定求解計劃,規劃需要修改哪些代碼片段及其修改方式;
  • SymbolEditor:根據修改計劃,對所負責的代碼Symbol進行修改,返回修改補丁。

圖片

團隊為不同的Agent配備了相應的工具集以支撐其完成指定任務,各Agent配備的工具集如下表所示。

值得注意的是,團隊并沒有令每個Agent都擁有所有工具的使用權,而是嘗試限制各個Agent的能力和職責范圍,從而降低單個Agent解決當前環節問題的難度,以提高任務執行的穩定性和輸出結果的質量。

圖片

在動態調試修復場景下,各Agent的協作求解流程如下:

  • 由Reproducer根據描述對問題進行復現,生成與問題描述相符的復現腳本;
  • 將復現腳本提供給Tester進行驗證,將復現腳本運行得到的異常堆棧和其他輸出信息提供給Programmer進行修復;
  • Programmer完成修復后向Tester提出測試請求;
  • Tester再基于復現腳本進行驗證,并判斷問題是否解決:
  • 若問題已解決,則通過diff工具獲取當前代碼變更作為該問題的修復方案,動態調試結束;
  • 若仍未解決,則再次將復現過程中異常堆棧和其他輸出信息返回給Programmer;
  • Programmer可根據Tester的報錯信息,選擇繼續修改,或重置repo放棄過往編輯,重新進行修改。直至提交測試給Tester驗證通過為止。

在動態過程中,團隊通過在Docker容器中搭建一個運行環境沙箱,以實現動態調試的問題復現和運行驗證。

在靜態修復場景下,由于無法直接對問題進行復現和動態驗證,需要制定針對該問題的靜態修復方案。過程如下:

  • 由Planner根據檢索到的相關代碼片段,收集更多代碼上下文,制定修改方案,修改方案以代碼符號(Symbol)為單位組成,每條修改意見包含需要修改代碼所在的Symbol名(類、函數、Top-Level變量等)、修改處所在文件、該Symbol的代碼行號范圍、修改描述;
  • 在生成修改方案的過程中,團隊采用了一些軌跡采樣和搜索的策略,使生成的plan有較高的準確性;
  • 針對修改方案中的每一個Symbol,實例化出一個Symbol Editor,用于完成改Symbol的修改計劃,每個Symbol Editor完成后通過git commit提交修改;
  • 完成所有Symbol的修改后,將當前代碼狀態與Base commit進行差異對照,生成最終補丁作為該問題的修復方案

02代碼檢索

團隊為豆包MarsCode Agent提供了多種可跨語言適配的代碼檢索工具,以適應各種軟件工程開發場景下的代碼檢索需求。

代碼知識圖譜(Code Knowledge Graph)

代碼知識圖譜是將代碼元素、屬性以及元素之間的關系表示為圖結構,從而幫助Agent更好地理解和管理大規模的代碼庫。

在這種圖結構中,頂點代表代碼的實體(如函數、變量、類等),邊則代表實體之間的關系(如函數調用、變量引用、類的繼承關系等)。通過這種方式,代碼知識圖譜可以為代碼庫提供更豐富且結構化的信息。

團隊通過程序分析的技術,將倉庫中的代碼,文檔信息進行分析組織,生成一個以變量,函數,類,文件等代碼語義節點為實體,文件結構關系、函數調用關系,符號索引關系為邊的多向圖。構成一張融合了代碼,文檔,倉庫信息等多數據源的代碼知識圖譜。

在給定的代碼庫中,每個節點和邊都通過唯一標識符進行標記,確保每個代碼實體在整個代碼庫中都是唯一的。

在這種設計中,代碼知識圖譜將使用圖屬性來存儲代碼實體及其依賴關系。每個節點記錄其在代碼庫中的位置、類型和名稱。每條邊標識兩個節點之間的關系類型,以及關系在代碼中的位置。

比如對下面這樣一段代碼:

// file: main/fileA.go
package main


import (
    "ckg-prompt/main/cmd/pkg_b"
    "fmt"
)


// StructA struct
type StructA struct{}


// FunctionA method for StructA
func (a *StructA) FunctionA() pkg_b.StructB {
    x := pkg_b.NewStructB() // Instantiate StructB
    return x
}


// XFunction function
func XFunction() {
    x := pkg_b.NewStructB() // Instantiate StructB
    x.FunctionB() // Calls FunctionB
}

它的代碼知識圖譜如下圖所示:

圖片圖1代碼知識圖譜元素構成

在構建完成代碼知識圖譜后,Agent的代碼檢索請求將通過下圖中的管道進行處理并實現召回。

  • 將Agent的問題與代碼語句(如有),通過模型進行實體識別,得到實體mention+類型,然后在知識圖譜中進行SQL搜索查詢,查詢結果標記為候選實體列表1;
  • 將Agent的問題與代碼語句(如有),進行embedding,在知識圖譜中進行embedding相似度匹配,取相似度最高的一批實體,為候選實體列表2;
  • 將Agent的問題直接通過關鍵詞識別構造查詢語句,在知識圖譜中進行SQL搜索查詢,查詢結果標記為候選實體列表3。

最后將候選實體列表1 & 2 & 3進行合并,通過精排模型,得到最終實體列表X,返回給Agent,完成代碼檢索。

圖片圖2代碼知識圖譜召回流程

在豆包MarsCode Agent中,代碼知識圖譜工具能夠實現廣泛、全面的代碼檢索,為Agent提供了repo內知識問答的能力。目前,代碼知識圖譜支持包含C、C#、CPP、Java、Kotlin、Javascript、Typescript、TSX、Rust、Golang、Python、Lua在內的12種常用編程語言。

語言服務器協議(LanguageServerProtocol)

代碼知識圖譜能夠應對大部分目標工程下的類、函數定義與引用的檢索需求,但仍存在以下盲區:

  • 代碼知識圖譜是對目標工程進行構建,而目標工程外(如標準庫、第三方庫等)的類、函數、變量的定義和引用是無法通過代碼知識圖譜被準確召回的;
  • 對于庫中存在多個重名實體的情況,LSP相比代碼知識圖譜能夠更準確地跳轉到相關類或函數定義,避免召回和Rerank過程帶來的遺漏或冗余;

為解決上述問題,豆包MarsCode Agent利用通用的語言服務協議(Language Server Protocol)實現用戶機器上全局、精確的代碼召回。

語言服務器協議是一種由Microsoft開發的協議,廣泛適配包含編程語言、標記語言、多種工具和框架在內的語法體系,在IDE場景下具有很好的通用性。豆包MarsCode Agent調用語言服務器協議實現代碼召回的過程如下圖所示:

圖片圖3語言服務的召回流程

Agent調用語言服務器進行代碼召回的過程與開發者在IDE中使用“Ctrl+左鍵”點擊某個標識符進行代碼跳轉的過程是一致的,但由于Agent的數字定位和計算能力較弱,團隊增加了模糊定位功能以進一步強化Agent使用LSP工具的能力:

  • 根據Agent的提供的文件名和行號,在該行內尋找標識符并計算列號,構成LSP請求;
  • 根據Agent的提供的文件名和行號,在該行附近尋找標識符并計算列號,構成LSP請求;
  • 根據Agent的提供的標識符和行號,在Agent打開和瀏覽過的文件中尋找標識符,并構成LSP請求;

這三個服務的優先級自上而下由高到低,使用第一個成功得到響應的LSP請求結果作為工具的輸出。

其他通用檢索能力

除LSP和CKG外,團隊將通用的項目內文件檢索(find file)、項目或文件內標識符檢索(grep)等能力在豆包MarsCode Agent框架下進行統一的封裝,從而為Agent提供調用風格一致的代碼檢索工具庫。

03代碼編輯

代碼編輯描述

在團隊對研發域AI Agent的長期探索過程中,嘗試了各種使用LLM進行代碼編輯描述的方式,發現目前LLM的代碼修改能力普遍較弱。如下是團隊曾經探索(失?。┻^的代碼編輯方案:

  • 要求Agent生成Unified diff格式的代碼變更描述;

Unified diff格式的變更是將原始文件和修改后文件以一種統一的方式展示出來,比如:

Unified diff的代碼編輯描述有著非常嚴格的格式要求,而且LLM很難正確計算變更的代碼行號增量,從而導致生成的Unified diff無法成功apply。

  • 要求Agent提供代碼變更的起始行號、終止行號和替換的代碼片段;

團隊在所有的代碼檢索的結果中都對代碼添加了行號,希望Agent能正確填寫修改范圍并完成修改,然而即便是GPT-4,也不能完全正確地提供需要修改的代碼范圍,時常會出現1~2行的偏移,從而導致修改后出現重復行或誤刪;

-對整個文件進行重寫;

為LLM提供整個文件的內容和修改描述,要求LLM輸出修改后的完整文件內容。這種方式能夠避免LLM進行行號的計算,但顯然每次代碼編輯都使用閉源模型生成整個文件是非常不經濟的,且在一些長文件中幾乎不可用。團隊也正在嘗試通過SFT獲取一個專門的代碼編輯模型實現全文重寫的能力,但這是一個長期計劃。

經過大量的探索和嘗試,團隊認為LLM的代碼編輯描述需要具備以下特點:

  • 不需要嚴格的格式校驗,編輯描述在經過處理和解析后能夠穩定apply;
  • 不需要提供行號范圍,或進行行號計算,LLM在這方面的能力很不穩定;
  • 出于token成本和時間成本的考慮,編輯描述要簡明,不包含冗余信息。

基于此,團隊注意到Aider的代碼變更方式,受此啟發并開發了團隊目前認為相對穩定的代碼編輯:豆包MarsCode AutoDiff。

(https://aider.chat/docs/benchmarks.html#the-benchmark)

AutoDiff的代碼編輯描述與git沖突的表現方式是類似的,Agent需要在Conflict標識柵欄中提供需要編輯的文件路徑、代碼原文、替換代碼。

AutoDiff會對該代碼編輯塊進行解析,嘗試在給定文件中匹配與LLM提供代碼原文片段相似度最高的片段,并用LLM提供的替換代碼進行替換操作,隨后結合修改文件的上下文對替換代碼的縮進進行自動調整。

最后修改前后的文件進行差異對照從而獲取Unified diff格式的變更文件。上述修改是模擬進行的,并未實際在用戶設備上落盤,只是為了獲取Unified diff格式的變更文件,最終代碼修改需要經過后續的靜態代碼診斷。

```diffs
/playground/swe_ws/testbed/matplotlib__matplotlib__3.6/lib/matplotlib/figure.py
<<<<<<< SEARCH
        elif constrained_layout is not None:
=======
        elif constrained_layout in [None, False]:
>>>>>>> REPLACE


<<<<<<< SEARCH
        else:
=======
        elif constrained_layout in [None, False]:
            self.set_layout_engine(layout='none')
>>>>>>> REPLACE

靜態代碼診斷

盡管AutoDiff能夠正確完成大部分的代碼編輯請求,但仍然會存在諸如類型錯誤、變量未定義、縮進調整錯誤、括號沒有正確閉合等LLM常見的代碼編輯語法問題,針對這些問題,團隊使用語言服務器協議對AutoDiff修改前后的文件進行靜態代碼診斷,過程如下:

圖片

△圖4代碼編輯過程中的靜態代碼診斷

  • 對AutoDiff生成的Unified diff格式的代碼編輯補丁在原文件上進行apply,得到修改后的文件內容;
  • 對原文件內容進行LSP靜態代碼診斷,保存診斷結果;
  • 對修改后文件內容進行LSP靜態代碼診斷,保存診斷結果;
  • 對兩次代碼診斷結果進行對照,檢查Agent的診斷結果是否引入新的靜態錯誤(只關注Fatal和Error級別的診斷結果);
  • 如果未引入新錯誤,則完成修改并向Agent返回修改成功的消息和相應的Unified diff描述;
  • 如果引入了新錯誤,則將相關診斷信息返回給Agent進行修改和調整。

04 實驗結果分析

團隊在SWE-bench Lite數據集上對豆包MarsCode Agent的性能進行了詳細評測。

SWE-bench是由普林斯頓大學提出了一個極具挑戰性的針對LLM解決程序邏輯bug的benchmark。該數據集整理了真實的來自Github的12個工業級Python代碼大倉中的2294個issue問題。

給定一個代碼庫以及對要解決issue問題描述,Agent需要從代碼倉中檢索并編輯代碼,最終提交能解決相關問題的代碼補丁。

在SWE-bench中解決問題通常需要同時理解和協調多個函數、類甚至文件之間的更改,要求模型與執行環境交互,處理極長的上下文并執行比傳統代碼生成更復雜的推理。作者評估表明,Claude 2和GPT-4僅能解決其中4.8%和1.7%的實例。

圖片

SWE-bench中測試實例在各repo中的分布

圖片不同代碼倉樣本的求解難度也參差不齊

由于SWE-bench的難度很大,在后續的研究中,開發者們發現在SWE-bench的2294個實例上進行評測是一個時間與Token投入巨大且令人沮喪的過程,無法驗證短期內的進展。

所以SWE-bench作者從原本的數據集中抽取了300個Issue描述完整、求解邏輯清晰、相對易于解決的300個實例,組成SWE-bench Lite數據集。目前,SWE-bench Lite數據集已經成為Agent解決軟件工程問題水平的評測標桿,已有20多家企業與研究組織參與了SWE-bench Lite評測和提交中。

豆包MarsCode Agent在最新的SWE-bench Lite評測實驗中,成功求解了其中的118個實例,求解率達到39.33%。

下表展示了評測實驗結果的詳細分析:

圖片

豆包MarsCode Agent的錯誤定位能力

團隊對目前SWE-bench Lite排行榜上排名前三的工具(CodeStory Aide,Honeycomb和AbanteAI MentaBot)進行了錯誤定位能力評估。對于一個patch,如果它修改的文件和gold patch所修改的文件相同,則認為錯誤定位正確,否則錯誤。分析結果如圖6所示:

豆包MarsCode Agent通過代碼知識圖譜、語言服務等代碼檢索工具,在300個實例中成功定位到了245個實例的待修改文件(成功率81.7%),而CodeStory Aide為221(成功率73.7%),Honeycomb為213(成功率71%),AbanteAIMentatBot為211(成功率70.3%)。從代碼檢索和錯誤定位能力看,豆包MarsCode Agent處于領先地位。

圖片

△圖6各方案在成功解決數量、成功定位上的對比

豆包MarsCode Agent動態靜態求解的實例分布

團隊分析了實驗中靜態和動態求解的實例分布,如下圖所示,在所有實例中,有104/300=34.67%的實例被PlannerAgent認為適合動態求解,196/300=65.3%的實例被認為適合進行靜態求解,通過動態方式成功求解53個實例,求解率為51%,靜態方式成功求解65個實例,求解率為33%。由于動態調試有缺陷復現和和驗證的過程,表現在求解率上略高于靜態修復。在被求解的118個實例中,有44.9%的實例是由動態方式修復,55.1%的實例由靜態方式修復。

圖片

△圖8豆包MarsCode Agent實驗中靜態與動態求解分布

05未來展望

豆包MarsCode Agent團隊致力于AI Agent方法在軟件工程領域的落地和應用。在未來將持續關注以下優化方向:

-降低大語言模型調用成本,推廣豆包MarsCode Agent在更多場景的落地,為更多用戶提供高質量智能軟件開發服務;
-加強用戶與Agent的協作和交互,提升用戶對Agent作業過程的掌控感;
-支持Agent對用戶工作區的動態調試,同時避免用戶環境污染等問題;
-進一步提升文件錯誤定位準確率和代碼修改正確率。

歡迎大家通過論文了解更多信息:
https://arxiv.org/abs/2409.00899

責任編輯:張燕妮 來源: 量子位
相關推薦

2024-12-12 09:02:35

2024-12-02 09:49:00

AI 編程助手AI CodingMarsCode

2024-04-01 08:05:27

Go開發Java

2022-09-17 23:46:47

vue前端

2017-07-17 15:46:20

Oracle并行機制

2022-02-28 14:54:48

openHarmon鴻蒙操作系統

2015-08-12 16:41:25

運維服務公共化

2018-12-19 13:45:56

Hive實踐存儲

2015-09-07 10:15:53

移動端開發

2018-01-10 13:40:03

數據庫MySQL表設計

2021-12-28 08:17:41

循環 forgo

2009-12-31 10:15:12

Silverlight

2020-12-22 09:34:20

JavaScript開發技術

2009-10-20 09:14:45

Windows 7中國

2023-04-10 09:31:00

路由技術廠商

2024-05-06 00:00:00

緩存高并發數據

2015-03-24 16:29:55

默認線程池java

2010-08-30 09:58:20

虛擬化整合案例

2010-08-26 09:49:57

虛擬化整合案例

2018-10-29 15:50:23

深度學習工程實踐技術
點贊
收藏

51CTO技術棧公眾號

欧美性视频在线播放| 国产精品三级久久久久久电影| 中文字幕第三区| 欧美xxxbbb| 99国内精品久久| 国产精品久久久久久久久久新婚| 我要看黄色一级片| 鲁大师精品99久久久| 一本到不卡免费一区二区| 亚洲人成网站在线播放2019| 精品国产无码一区二区| 国产精品久久久久久模特| 色哟哟亚洲精品一区二区| 亚洲这里只有精品| 理论不卡电影大全神| 亚洲欧洲99久久| 欧美日韩一区二区三| 一级黄色短视频| 亚洲欧美日本视频在线观看| 久久色精品视频| 人人妻人人澡人人爽人人精品| 久久亚洲国产精品尤物| 欧美日韩日本国产| 青青在线免费视频| 国产原创av在线| 成人精品国产福利| 成人在线中文字幕| 亚洲欧美一二三区| 亚洲精品极品| 北条麻妃99精品青青久久| 婷婷五月精品中文字幕| 91久久青草| 在线欧美小视频| 国产午夜福利在线播放| 丝袜国产在线| 亚洲视频一区二区在线| 视频一区亚洲| 嫩草在线播放| 99精品欧美一区二区三区小说 | 蜜桃视频在线一区| 国内伊人久久久久久网站视频 | 亚洲黄页一区| 久久69精品久久久久久国产越南| 日韩av毛片在线观看| 免费一区二区三区视频导航| 亚洲精品动漫100p| 天天躁日日躁狠狠躁av麻豆男男| 国产乱码精品一区二区三区亚洲人| 欧美午夜片在线观看| 最近免费中文字幕中文高清百度| 超级白嫩亚洲国产第一| 亚洲va国产va欧美va观看| 久久亚洲国产成人精品无码区| 成人高清免费在线| 亚洲欧美国产三级| japanese在线视频| 黄色片网站在线| 亚洲同性gay激情无套| 伊人久久av导航| 麻豆tv免费在线观看| 最新国产精品久久精品| 亚洲成人动漫在线| 日本h片在线| 亚洲大片免费看| 国产3p露脸普通话对白| 手机在线观看av| 色综合天天性综合| 99999精品视频| 色综合一本到久久亚洲91| 在线亚洲+欧美+日本专区| 国产xxxxx视频| 日韩黄色三级| 日韩一区二区在线看片| 国产精品99久久久精品无码| 电影一区二区在线观看| 精品在线欧美视频| 在线免费看视频| 91精品国偷自产在线电影| 九九久久综合网站| 日韩精品视频播放| 玖玖玖国产精品| 国产中文字幕亚洲| 亚洲第一黄色片| 91色在线porny| 翔田千里亚洲一二三区| caoporm免费视频在线| 亚洲成人自拍偷拍| 999精彩视频| 一区二区网站| 亚洲午夜色婷婷在线| 亚洲色偷偷综合亚洲av伊人| 亚洲国产91| 国产精品99久久久久久白浆小说 | 污软件在线观看| 91久久在线| 国产精品扒开腿做| www.国产三级| 国产日韩欧美综合一区| 神马午夜伦理影院| 中文字幕人成乱码在线观看| 欧美电影一区二区| 大黑人交xxx极品hd| 欧美成人milf| 欧美亚洲成人精品| 国产美女无遮挡永久免费| 99在线精品观看| 中文字幕一区二区三区四区五区| 蜜桃麻豆影像在线观看| 4hu四虎永久在线影院成人| 中文字幕av观看| 亚洲蜜桃视频| 国产精品久久久久久av福利软件 | 色yeye香蕉凹凸一区二区av| 精品深夜av无码一区二区老年| 热久久一区二区| 精品伦精品一区二区三区视频| 久操视频在线观看| 在线视频中文字幕一区二区| 一本加勒比波多野结衣| 牛牛国产精品| 国产日韩欧美在线看| 暖暖视频在线免费观看| 亚洲成在人线免费| 亚洲综合123| 日本久久精品| 欧美在线视频一区二区| 亚洲精品视频91| 亚洲欧美日韩国产综合| 亚洲免费av一区二区三区| 偷窥自拍亚洲色图精选| 久久久中精品2020中文| 国产丝袜视频在线观看| 国产精品成人免费| 免费涩涩18网站入口| 欧美激情在线免费| 2018日韩中文字幕| 视频二区在线观看| 亚洲国产美女搞黄色| 亚洲热在线视频| 91成人观看| 91免费版网站入口| 麻豆视频网站在线观看| 欧美精品亚洲二区| av片在线免费看| 久久精品国产精品亚洲红杏| 香蕉久久夜色| 午夜精品久久久久久毛片| 最新国产精品拍自在线播放 | 黄色片在线观看网站| 精品午夜一区二区三区在线观看| 亚洲国内在线| 日韩亚洲国产免费| 久久中国妇女中文字幕| 国产特级aaaaaa大片| 一区二区三区免费网站| 国模大尺度视频| 影音先锋亚洲精品| 国产伦精品一区二区| 国产粉嫩在线观看| 日韩高清av在线| 中文字幕手机在线视频| 欧美国产激情一区二区三区蜜月| 啊啊啊国产视频| 香蕉综合视频| 高清一区二区三区视频| 超级白嫩亚洲国产第一| 亚洲视频国产视频| 中文字幕人成人乱码亚洲电影| 国产精品久久久久久久浪潮网站| mm131亚洲精品| 午夜久久美女| 精品乱码一区| 国外成人福利视频| 精品中文字幕在线| 外国精品视频在线观看 | 人妻一区二区三区| 日韩欧美国产一区二区| 手机看片日韩av| 国产真实乱子伦精品视频| 欧美一区二区视频在线播放| 亚洲第一论坛sis| 国产一区二区丝袜| heyzo一区| 在线激情影院一区| 亚洲不卡免费视频| 色综合天天视频在线观看| 日本午夜精品视频| 成人视屏免费看| 国产熟人av一二三区| 亚洲精品在线观看91| 精品日韩电影| 成年永久一区二区三区免费视频| 欧美激情网友自拍| 福利在线观看| 亚洲成人1234| 国产精品久久久久毛片| 欧美日韩日本国产| 老湿机69福利| 国产欧美中文在线| 99免费观看视频| 人禽交欧美网站| 欧美视频在线观看网站| 五月婷婷亚洲| 欧美日韩一区二区三| 伊人精品综合| 国产精品你懂得| 狠狠操一区二区三区| 久久久精品日本| gogogo高清在线观看免费完整版| 亚洲福利在线看| 国产视频在线免费观看| 欧美中文字幕一区二区三区| 香蕉视频一区二区| 亚洲女同ⅹxx女同tv| 亚洲女优在线观看| 北条麻妃国产九九精品视频| 激情成人在线观看| 美女网站色91| 欧美在线观看视频网站| 最新日韩av| 超碰人人爱人人| 9999国产精品| 色爱区成人综合网| 亚洲精华一区二区三区| 国产精品久久久久久久免费大片| 四虎国产精品成人免费影视| 国产91色在线播放| 一本大道色婷婷在线| 久久久亚洲国产| 香蕉久久aⅴ一区二区三区| 精品国产美女在线| 欧美新色视频| 亚洲美女性视频| 五月天婷婷在线播放| 精品国产一区久久| 亚洲第一黄色片| 精品美女在线播放| 亚洲精品一区二区三区四区| 日韩一区二区在线观看视频| 97人妻精品一区二区三区动漫| 欧美日韩一区在线| 一区二区三区在线免费观看视频| 色婷婷av一区二区三区软件| 99精品人妻国产毛片| 色综合一个色综合| 国产成人自拍视频在线| 午夜久久电影网| 国产免费av一区二区| 精品福利樱桃av导航| 久久久久久久久久免费视频| 欧美日韩一区二区精品| 亚洲天堂视频网站| 日本乱人伦aⅴ精品| 波多野结衣黄色网址| 欧美性欧美巨大黑白大战| 中文字幕av久久爽| 欧美日韩一区二区三区在线看| 亚洲怡红院av| 欧美一区二区精品在线| 亚洲国产精品欧美久久| 亚洲电影av在线| 亚洲 欧美 激情 小说 另类| 亚洲欧美精品suv| av在线天堂| 伦理中文字幕亚洲| 欧美24videosex性欧美| 欧美性视频精品| 亚洲国产尤物| 亚洲一区二区三区在线视频| 永久免费精品视频| 久久综合久久综合这里只有精品| 国产成人精品三级高清久久91| 日韩国产美国| 亚洲一级淫片| 91成人在线观看喷潮教学| 视频精品一区二区| 91日韩精品视频| 波多野结衣中文字幕一区 | 国产精品激情偷乱一区二区∴| 欧美第一页在线观看| 亚洲高清视频在线| 欧美性猛交xxxx乱大交hd| 欧美日韩五月天| 成人午夜免费在线观看| 亚洲人成电影网站色www| 国产在线观看免费麻豆| 91精品成人久久| 玖玖精品在线| 国产一区二区精品免费| 日韩在线观看电影完整版高清免费悬疑悬疑| 日本一区二区三区四区五区六区| 亚洲精品看片| 岛国av免费在线| 91性感美女视频| 久草手机视频在线观看| 精品久久久视频| 国产乱子伦精品无码码专区| 亚洲黄色av女优在线观看| 欧美a在线看| 欧美有码在线观看| 国产精品一区免费在线| 欧美理论一区二区| 欧美婷婷在线| 欧美成年人视频在线观看| 9人人澡人人爽人人精品| 波多野结衣久久久久| 欧美午夜激情视频| 性生活黄色大片| 日韩中文字幕网站| 最新日韩精品| 国产精品夜夜夜一区二区三区尤| 色综合天天综合网中文字幕| 男人天堂网视频| 成人app下载| 免费在线观看国产精品| 欧美日韩国产精选| 国产无套粉嫩白浆在线2022年| 久久免费视频在线| 日本一区二区三区视频在线看| 日韩免费一区二区三区| 国产91精品久久久久久| 中文字幕av久久爽| 亚洲精品国精品久久99热| v天堂福利视频在线观看| 国产精品最新在线观看| 视频一区欧美| 国产乱子夫妻xx黑人xyx真爽 | 国产精品视频导航| 亚洲精品播放| 国产乱子伦农村叉叉叉| 国产成人av福利| 69xx绿帽三人行| 91.com在线观看| 麻豆视频网站在线观看| 成人国产精品日本在线| 成人3d动漫在线观看| 黄色一级一级片| 久久精品亚洲国产奇米99| 日韩三级视频在线播放| 精品国精品国产尤物美女| 亚洲综合图区| 成人免费视频视频在| 欧美日本一区二区高清播放视频| 中文字幕色网站| 一区二区三区四区乱视频| av网站免费大全| 九九热精品在线| 97久久亚洲| 久久精品国产sm调教网站演员| 成人av综合在线| 黄色大片网站在线观看| 日韩精品极品在线观看播放免费视频 | 久久综合久久网| 不卡视频一二三| 精品在线播放视频| 亚洲美女在线视频| 欧美aaa视频| 亚洲一卡二卡三卡四卡无卡网站在线看| 男人操女人的视频在线观看欧美| 五月天精品在线| 91精品黄色片免费大全| 深夜国产在线播放| 国语精品中文字幕| 久久经典综合| 中国美女黄色一级片| 欧美一区二区视频在线观看2022 | 日韩精品二区| 亚洲网中文字幕| 亚洲高清免费在线| 嫩草研究院在线观看| 国产综合久久久久| 黄色成人在线网站| 日韩人妻一区二区三区| 欧美日韩情趣电影| 久久av色综合| 欧美日韩三区四区| 国内精品在线播放| 国产无遮挡又黄又爽在线观看| 亚洲精品在线91| 人人精品久久| 丝袜人妻一区二区三区| 国产三级精品三级在线专区| 国产wwwxxx| 欧洲成人在线视频| 国产高清欧美| 亚洲图片综合网| 欧美亚洲自拍偷拍| 欧美人与禽性xxxxx杂性| 欧美精品久久久| 国内成人精品2018免费看| 九九热在线视频播放| 日韩网站在线观看| 欧美日韩一区二区三区在线电影| 在线免费视频一区| 午夜成人在线视频| 国产传媒在线播放| 欧美一级日本a级v片| 国产成人精品亚洲日本在线桃色 | 九一久久久久久| 日日夜夜综合网|