亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

OpenMontage:面向AI Agent協(xié)同工作的開源編排框架

OpenMontage:面向AI Agent協(xié)同工作的開源編排框架 1. 項(xiàng)目概述OpenMontage不是視頻剪輯軟件而是一套面向AI Agent協(xié)同工作的開源編排框架OpenMontage這個(gè)名字容易讓人第一反應(yīng)聯(lián)想到“蒙太奇”Montage——電影里那種通過鏡頭拼接制造意義的敘事手法。但實(shí)際接觸過代碼倉庫、讀過README、跑過demo之后我才意識(shí)到它根本不是給影視從業(yè)者用的剪輯工具而是給AI Agent開發(fā)者準(zhǔn)備的一套“導(dǎo)演系統(tǒng)”。它的核心價(jià)值在于解決當(dāng)前Agent開發(fā)中最棘手的問題多個(gè)Agent如何像劇組一樣分工明確、信息同步、節(jié)奏可控地完成一個(gè)復(fù)雜任務(wù)。你可能已經(jīng)用過LangChain寫過鏈?zhǔn)秸{(diào)用也試過CrewAI配置過角色分工但一旦任務(wù)鏈條變長、外部工具調(diào)用變多、中間狀態(tài)需要持久化、失敗后要能回溯重試——這些場景下現(xiàn)有框架要么配置爆炸要么調(diào)試黑洞要么干脆卡死在某個(gè)環(huán)節(jié)動(dòng)彈不得。OpenMontage就是沖著這個(gè)痛點(diǎn)來的。它不試圖替代底層Agent比如你用Llama3還是Claude做推理也不封裝具體工具調(diào)用邏輯比如你是調(diào)用Slack API還是本地Python腳本而是專注在“編排層”做減法用極簡的YAML定義工作流用內(nèi)置的輕量級(jí)狀態(tài)機(jī)管理執(zhí)行上下文用可插拔的日志與存儲(chǔ)后端實(shí)現(xiàn)可觀測性。我第一次把它跑起來只用了不到20行YAML就串起了“從GitHub拉PR列表→用Agent判斷是否含安全漏洞→自動(dòng)發(fā)郵件通知負(fù)責(zé)人”這個(gè)三步流程整個(gè)過程沒有寫一行Python膠水代碼所有錯(cuò)誤都自動(dòng)記錄到本地SQLite里點(diǎn)開就能看到哪一步卡住了、輸入輸出是什么、耗時(shí)多少。這才是真正讓Agent從玩具走向可用的關(guān)鍵一躍。2. 核心設(shè)計(jì)思路拆解為什么是“編排優(yōu)先”而不是“Agent優(yōu)先”2.1 拒絕“Agent中心主義”的陷阱當(dāng)前很多Agent框架比如早期的LangChain或某些基于React模式的實(shí)現(xiàn)本質(zhì)上是把Agent當(dāng)成一個(gè)黑盒函數(shù)來調(diào)用輸入Prompt輸出Response中間過程全靠日志猜。這種思路在單步任務(wù)中尚可但一旦進(jìn)入真實(shí)業(yè)務(wù)場景問題立刻暴露。舉個(gè)典型例子你讓Agent去分析一份PDF合同提取甲方義務(wù)條款。它第一步調(diào)用PDF解析工具第二步把文本喂給大模型第三步格式化輸出JSON。表面看三步很清晰但實(shí)際運(yùn)行中PDF解析可能超時(shí)返回空內(nèi)容大模型可能因token限制截?cái)嚓P(guān)鍵段落JSON格式化又可能因特殊字符報(bào)錯(cuò)。這時(shí)候你是希望框架告訴你“第2步的輸入只有前500字”還是只看到最終JSON解析失敗前者能立刻定位問題后者只能重啟整個(gè)流程重跑三步浪費(fèi)算力還掩蓋了真實(shí)瓶頸。OpenMontage的設(shè)計(jì)哲學(xué)就是把“步驟”本身作為頭等公民。它強(qiáng)制你把每個(gè)動(dòng)作Action明確定義為獨(dú)立單元每個(gè)單元必須聲明輸入Schema、輸出Schema、超時(shí)時(shí)間、重試策略。這看起來增加了初期配置成本但換來的是整個(gè)工作流的“可診斷性”。就像汽車維修手冊(cè)不會(huì)只說“發(fā)動(dòng)機(jī)壞了”而是會(huì)分章節(jié)講燃油系統(tǒng)、點(diǎn)火系統(tǒng)、進(jìn)氣系統(tǒng)——OpenMontage就是給你的Agent工作流配了一本維修手冊(cè)。2.2 “狀態(tài)即一切”為什么內(nèi)置狀態(tài)機(jī)比手動(dòng)維護(hù)變量更可靠幾乎所有Agent項(xiàng)目都會(huì)遇到“狀態(tài)丟失”問題。比如你讓Agent寫一封郵件它先查了用戶郵箱再查了會(huì)議日程最后生成正文。如果生成正文這一步失敗了前面查到的郵箱和日程數(shù)據(jù)怎么辦是重新查一遍還是想辦法存到某個(gè)全局變量里前者低效后者脆弱——變量名拼錯(cuò)、作用域搞混、并發(fā)時(shí)互相覆蓋都是踩過的坑。OpenMontage直接繞過了這個(gè)問題它內(nèi)置了一個(gè)輕量級(jí)、內(nèi)存磁盤雙備份的狀態(tài)機(jī)。每次Action執(zhí)行前框架自動(dòng)把當(dāng)前狀態(tài)快照存入SQLite執(zhí)行后再把新狀態(tài)包括該Action的輸出合并進(jìn)去。這個(gè)狀態(tài)不是扁平的key-value而是支持嵌套結(jié)構(gòu)的JSON Schema。你可以定義user_profile: { email: string, calendar_events: array }然后在后續(xù)Action里直接引用state.user_profile.email。更重要的是這個(gè)狀態(tài)是版本化的。你隨時(shí)可以回滾到上一個(gè)成功節(jié)點(diǎn)的狀態(tài)跳過失敗步驟從斷點(diǎn)續(xù)跑。我在測試一個(gè)跨時(shí)區(qū)會(huì)議協(xié)調(diào)Agent時(shí)故意讓時(shí)區(qū)轉(zhuǎn)換模塊隨機(jī)拋錯(cuò)結(jié)果OpenMontage自動(dòng)回退到“獲取原始會(huì)議時(shí)間”這一步重新用正確時(shí)區(qū)計(jì)算整個(gè)流程沒中斷日志里清清楚楚標(biāo)出了“Recovery from step parse_time to fetch_event”。這種能力不是靠加幾行try-catch能實(shí)現(xiàn)的它需要從架構(gòu)層面把狀態(tài)管理變成基礎(chǔ)設(shè)施。2.3 “YAML即契約”為什么選擇聲明式而非命令式配置OpenMontage的工作流定義全部用YAML寫這點(diǎn)常被新手吐槽“不夠靈活”。但深入用過就知道這恰恰是它最鋒利的刀。YAML不是為了省代碼而是為了建立人與機(jī)器、人與人之間的清晰契約。當(dāng)你用Python寫一個(gè)Agent鏈邏輯藏在if-else和函數(shù)調(diào)用里別人想改一個(gè)步驟的超時(shí)時(shí)間得先讀懂幾十行代碼再找到那個(gè).with_timeout(30)的地方。而在OpenMontage里超時(shí)時(shí)間就明晃晃寫在YAML里steps: - name: fetch_github_prs action: http_get config: url: https://api.github.com/repos/{{ state.repo }} /pulls timeout: 15 # 這里一眼就看到改完立刻生效更關(guān)鍵的是YAML天然支持模板語法如{{ state.repo }}這讓工作流具備了“參數(shù)化”能力。同一個(gè)YAML文件傳入不同的state.repo值就能跑不同倉庫的PR檢查。這比寫一堆if-else分支或者硬編碼URL要干凈得多。而且YAML文件本身就是一個(gè)文檔。新同事入職不用看源碼直接打開pr_security_check.yaml就能明白整個(gè)流程有幾步、每步做什么、依賴什么數(shù)據(jù)、失敗怎么處理。我團(tuán)隊(duì)里有個(gè)實(shí)習(xí)生第一天就靠讀YAML文件自己加了一個(gè)“發(fā)送Slack通知”的步驟全程沒碰Python只改了三行YAML和兩行配置。這種可讀性、可維護(hù)性、可協(xié)作性是命令式代碼永遠(yuǎn)無法比擬的。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)從零搭建一個(gè)可調(diào)試的Agent工作流3.1 環(huán)境準(zhǔn)備Rust生態(tài)下的極簡依賴OpenMontage是用Rust寫的這決定了它啟動(dòng)快、內(nèi)存省、二進(jìn)制小。但Rust環(huán)境對(duì)很多Python背景的AI開發(fā)者是個(gè)門檻。別擔(dān)心它提供了兩種最友好的安裝方式一是用cargo install openmontage前提是你裝了rustup二是直接下載預(yù)編譯的二進(jìn)制文件Linux/macOS/Windows都有。我推薦后者因?yàn)槭∪チ司幾g時(shí)間而且自帶所有依賴。下載后把它放到PATH里運(yùn)行openmontage --version看到版本號(hào)就說明裝好了。這里有個(gè)重要提示OpenMontage本身不包含任何大模型推理能力它只是一個(gè)調(diào)度器。你需要另外準(zhǔn)備一個(gè)LLM服務(wù)比如本地跑Ollama的llama3或者用OpenAI的API。它的設(shè)計(jì)原則是“不綁定任何供應(yīng)商”所以配置里只寫llm_provider: openai或llm_provider: ollama具體密鑰和地址全在單獨(dú)的.env文件里管理。這樣做的好處是你在開發(fā)環(huán)境用免費(fèi)的Ollama上線時(shí)無縫切換到付費(fèi)但穩(wěn)定的OpenAI只需改一行配置工作流YAML完全不用動(dòng)。我見過太多項(xiàng)目因?yàn)橛簿幋a了API Key或模型名導(dǎo)致測試環(huán)境和生產(chǎn)環(huán)境配置打架OpenMontage用這種分離設(shè)計(jì)從根子上杜絕了這類問題。3.2 工作流YAML詳解不只是語法更是工程規(guī)范一個(gè)標(biāo)準(zhǔn)的OpenMontage工作流YAML結(jié)構(gòu)非常固定分為四個(gè)區(qū)塊metadata、inputs、steps、outputs。很多人只關(guān)注steps其實(shí)前三個(gè)才是保證工作流健壯的關(guān)鍵。metadata區(qū)塊里name和description不是擺設(shè)。它們會(huì)被自動(dòng)注入到日志和監(jiān)控系統(tǒng)里。當(dāng)你在Kibana里查“為什么PR檢查慢”直接搜name: pr_security_check就能過濾出所有相關(guān)日志不用在海量日志里大海撈針。inputs區(qū)塊強(qiáng)制你聲明所有外部輸入的Schema。比如你要求用戶必須提供repo: string和threshold: number那么框架在啟動(dòng)前就會(huì)校驗(yàn)如果threshold傳了個(gè)字符串5它會(huì)直接報(bào)錯(cuò)退出而不是等到大模型那里才因?yàn)轭愋湾e(cuò)誤崩潰。這叫“Fail Fast”是工程化的重要標(biāo)志。steps區(qū)塊里的每個(gè)step除了name和action還有兩個(gè)隱藏高手depends_on和on_failure。depends_on讓你顯式聲明依賴關(guān)系比如send_email步驟必須等generate_report完成后才能執(zhí)行避免了隱式順序帶來的競態(tài)。on_failure則定義了兜底策略是重試三次還是跳過還是轉(zhuǎn)交給人工審核我在線上環(huán)境對(duì)所有HTTP調(diào)用步驟都設(shè)置了on_failure: retry對(duì)大模型生成步驟則設(shè)為on_failure: fallback_to_human把不確定的決策權(quán)交給人既保證了流程不卡死又守住了質(zhì)量底線。3.3 Action插件機(jī)制如何讓OpenMontage調(diào)用你自己的Python腳本OpenMontage內(nèi)置了http_get、shell_exec、json_parse等常用Action但肯定不夠用。比如你想調(diào)用自己訓(xùn)練的風(fēng)控模型或者連接公司內(nèi)部的ERP系統(tǒng)。它的解決方案是“外部Action”你寫一個(gè)符合約定的Python腳本OpenMontage負(fù)責(zé)調(diào)用它并傳遞state和config。腳本的輸入是一個(gè)JSON字符串從stdin讀輸出也是一個(gè)JSON字符串寫到stdout。約定很簡單但威力巨大。我寫過一個(gè)check_safety_vuln.py腳本它接收PR diff文本調(diào)用本地部署的CodeQL引擎返回一個(gè){ is_vulnerable: true, cve_id: CVE-2024-12345 }對(duì)象。在YAML里我只需要這樣聲明- name: check_vuln action: external config: script: ./scripts/check_safety_vuln.py timeout: 60OpenMontage會(huì)自動(dòng)處理進(jìn)程啟動(dòng)、超時(shí)殺掉、標(biāo)準(zhǔn)流捕獲、JSON解析。你完全不用關(guān)心它是怎么調(diào)用的只管寫好你的業(yè)務(wù)邏輯。這種設(shè)計(jì)讓OpenMontage成了一個(gè)真正的“膠水層”能把任何已有資產(chǎn)Shell腳本、Python庫、Java微服務(wù)無縫接入Agent工作流。我們團(tuán)隊(duì)就把十年前寫的Java風(fēng)控規(guī)則引擎用一個(gè)簡單的curlwrapper包裝成Action現(xiàn)在和全新的LLM Agent跑在同一個(gè)工作流里老系統(tǒng)不用改一行代碼。4. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)手把手復(fù)現(xiàn)一個(gè)“自動(dòng)安全審計(jì)”工作流4.1 場景設(shè)定與目標(biāo)拆解我們來做一個(gè)真實(shí)的、有業(yè)務(wù)價(jià)值的案例自動(dòng)審計(jì)GitHub倉庫的Pull Request檢測其中是否引入了已知的安全漏洞比如硬編碼的API Key、危險(xiǎn)的eval()調(diào)用、過期的SSL證書。目標(biāo)不是簡單地跑個(gè)掃描而是形成一個(gè)閉環(huán)發(fā)現(xiàn)問題→生成報(bào)告→通知負(fù)責(zé)人→記錄歸檔。整個(gè)流程要能穩(wěn)定運(yùn)行失敗可追溯結(jié)果可審計(jì)。這正是OpenMontage最擅長的領(lǐng)域。4.2 步驟一初始化項(xiàng)目與配置LLM首先創(chuàng)建一個(gè)項(xiàng)目目錄mkdir pr-security-audit cd pr-security-audit然后創(chuàng)建.env文件填入你的LLM密鑰OPENAI_API_KEYsk-... OPENAI_MODELgpt-4-turbo接著初始化OpenMontage配置。它會(huì)自動(dòng)生成一個(gè)openmontage.yaml里面是全局設(shè)置比如默認(rèn)超時(shí)、日志級(jí)別、存儲(chǔ)路徑。我們重點(diǎn)修改storage部分讓它用SQLite存狀態(tài)storage: type: sqlite config: path: ./data/state.db這一步看似簡單但決定了后續(xù)所有調(diào)試和審計(jì)的基礎(chǔ)。SQLite文件會(huì)自動(dòng)創(chuàng)建所有工作流的狀態(tài)變更都會(huì)被原子性地記錄下來這是你排查問題的唯一真相來源。4.3 步驟二編寫核心工作流YAML創(chuàng)建workflow.yaml開始定義我們的審計(jì)流程。記住我們不是在寫代碼而是在畫一張精確的“作戰(zhàn)地圖”。# workflow.yaml metadata: name: pr_security_audit description: Automated security audit for GitHub Pull Requests inputs: repo: string pr_number: integer threshold_score: number # 安全評(píng)分閾值低于此值觸發(fā)告警 steps: # 第一步從GitHub API拉取PR詳情和diff - name: fetch_pr_data action: http_get config: url: https://api.github.com/repos/{{ state.inputs.repo }}/pulls/{{ state.inputs.pr_number }} headers: Authorization: Bearer {{ env.GITHUB_TOKEN }} timeout: 30 on_failure: retry # 第二步提取diff文本為后續(xù)分析做準(zhǔn)備 - name: extract_diff action: json_parse config: path: $.diff_url # 從上一步響應(yīng)里取diff_url depends_on: [fetch_pr_data] # 第三步調(diào)用外部Python腳本執(zhí)行深度安全掃描 - name: run_security_scan action: external config: script: ./scripts/scan_pr_diff.py timeout: 120 depends_on: [extract_diff] on_failure: fallback_to_human # 第四步讓LLM綜合所有信息生成人類可讀的報(bào)告 - name: generate_report action: llm_invoke config: prompt: | 你是一個(gè)資深安全工程師。請(qǐng)根據(jù)以下信息生成一份簡潔、專業(yè)的安全審計(jì)報(bào)告 - PR標(biāo)題: {{ state.steps.fetch_pr_data.output.title }} - 掃描結(jié)果: {{ state.steps.run_security_scan.output }} - 請(qǐng)用中文分點(diǎn)列出高危風(fēng)險(xiǎn)并給出修復(fù)建議。 model: gpt-4-turbo depends_on: [fetch_pr_data, run_security_scan] # 第五步將報(bào)告發(fā)送給PR作者和安全團(tuán)隊(duì) - name: send_notification action: http_post config: url: https://hooks.slack.com/services/... body: | { text: 安全審計(jì)報(bào)告{{ state.steps.fetch_pr_data.output.title }}\n\n{{ state.steps.generate_report.output }} } timeout: 10 depends_on: [generate_report] outputs: report: {{ state.steps.generate_report.output }} is_critical: {{ state.steps.run_security_scan.output.critical_count 0 }}這個(gè)YAML文件就是我們整個(gè)工作的“憲法”。它沒有一行Python卻定義了數(shù)據(jù)流向、錯(cuò)誤策略、依賴關(guān)系、輸出契約。每一個(gè)depends_on都像一條鋼索把步驟牢牢捆在一起每一個(gè)on_failure都像一個(gè)保險(xiǎn)絲在故障時(shí)自動(dòng)熔斷保護(hù)整體流程。4.4 步驟三實(shí)現(xiàn)外部掃描腳本scan_pr_diff.py這個(gè)腳本是業(yè)務(wù)邏輯的核心。我們用Python實(shí)現(xiàn)因?yàn)樗鷳B(tài)豐富安全掃描庫多。關(guān)鍵是要遵守OpenMontage的輸入輸出約定。#!/usr/bin/env python3 import sys import json import subprocess import re def scan_diff(diff_text): 模擬一個(gè)簡單的安全掃描邏輯 issues [] # 檢查硬編碼密鑰 if re.search(r(?i)(api[_-]?key|secret[_-]?key)\s*[:]\s*[\]\w{20,}[\], diff_text): issues.append({type: hardcoded_key, severity: high, line: found in diff}) # 檢查危險(xiǎn)函數(shù) if re.search(r(?i)\beval\s*\(|\bexec\s*\(|\bos\.system\s*\(, diff_text): issues.append({type: dangerous_function, severity: critical, line: found in diff}) # 模擬調(diào)用外部工具比如truffleHog try: result subprocess.run( [trufflehog, --json, --max-depth, 10], inputdiff_text, textTrue, capture_outputTrue, timeout60 ) if result.returncode 0 and result.stdout.strip(): for line in result.stdout.strip().split(\n): try: vuln json.loads(line) issues.append({ type: credential_leak, severity: critical, details: vuln.get(DetectorName, unknown) }) except json.JSONDecodeError: pass except (subprocess.TimeoutExpired, FileNotFoundError): pass return {issues: issues, critical_count: len([i for i in issues if i[severity] critical])} if __name__ __main__: # 從stdin讀取OpenMontage傳入的JSON input_json json.load(sys.stdin) state input_json.get(state, {}) config input_json.get(config, {}) # 提取diff文本這里簡化實(shí)際應(yīng)從GitHub API下載 diff_text state.get(steps, {}).get(extract_diff, {}).get(output, ) # 執(zhí)行掃描 result scan_diff(diff_text) # 將結(jié)果以JSON格式輸出到stdoutOpenMontage會(huì)自動(dòng)捕獲 print(json.dumps(result))把這個(gè)腳本保存為./scripts/scan_pr_diff.py并賦予執(zhí)行權(quán)限chmod x ./scripts/scan_pr_diff.py。注意這個(gè)腳本里沒有任何OpenMontage的SDK導(dǎo)入它就是一個(gè)純粹的、符合Unix哲學(xué)的“輸入-處理-輸出”程序。OpenMontage只負(fù)責(zé)把它當(dāng)做一個(gè)黑盒進(jìn)程來調(diào)用這極大降低了學(xué)習(xí)和集成成本。4.5 步驟四啟動(dòng)與調(diào)試如何像看監(jiān)控一樣看Agent執(zhí)行一切就緒啟動(dòng)工作流openmontage run --workflow workflow.yaml --input {repo: myorg/myapp, pr_number: 123, threshold_score: 7}OpenMontage會(huì)立即開始執(zhí)行并在終端實(shí)時(shí)打印進(jìn)度[INFO] Starting workflow pr_security_audit [INFO] Step fetch_pr_data: Running... [INFO] Step fetch_pr_data: Success (2.1s) [INFO] Step extract_diff: Running... [INFO] Step extract_diff: Success (0.3s) [INFO] Step run_security_scan: Running... [INFO] Step run_security_scan: Success (8.7s) ...但這只是表象。真正的調(diào)試?yán)魇撬臓顟B(tài)數(shù)據(jù)庫。打開./data/state.db用任何SQLite瀏覽器比如DB Browser for SQLite你就能看到一張workflow_states表。每一行就是一個(gè)工作流實(shí)例的完整快照。點(diǎn)開state_json字段你會(huì)看到一個(gè)巨大的JSON里面詳細(xì)記錄了每個(gè)step的輸入?yún)?shù)config每個(gè)step的原始輸出output每個(gè)step的執(zhí)行耗時(shí)duration_ms每個(gè)step的開始/結(jié)束時(shí)間戳started_at,finished_at整個(gè)工作流的輸入inputs和最終輸出outputs這比任何日志都直觀。如果你發(fā)現(xiàn)send_notification失敗了不用翻幾十行日志直接在這里看state.steps.send_notification.output就能知道是Slack webhook返回了403還是429。更妙的是你可以把這個(gè)JSON復(fù)制出來粘貼到Postman里用同樣的參數(shù)重放一次HTTP請(qǐng)求快速驗(yàn)證是網(wǎng)絡(luò)問題還是數(shù)據(jù)問題。這種“所見即所得”的調(diào)試體驗(yàn)是其他框架給不了的。5. 常見問題與排查技巧實(shí)錄那些官方文檔里不會(huì)寫的坑5.1 問題速查表高頻故障與一鍵修復(fù)現(xiàn)象可能原因快速診斷命令修復(fù)方案openmontage run報(bào)錯(cuò)command not foundRust二進(jìn)制未加入PATHecho $PATH將OpenMontage二進(jìn)制所在目錄添加到~/.bashrc或~/.zshrc的PATH中然后source工作流卡在fetch_pr_data日志顯示timeoutGitHub API限流或Token無效curl -H Authorization: Bearer YOUR_TOKEN https://api.github.com/rate_limit檢查GITHUB_TOKEN是否過期或在.env中增加GITHUB_RATE_LIMIT_WAITtrue啟用自動(dòng)等待run_security_scan步驟輸出為空J(rèn)SON{}外部Python腳本未正確輸出JSONcat ./data/state.db | sqlite3 -line SELECT state_json FROM workflow_states ORDER BY id DESC LIMIT 1;檢查腳本是否在print(json.dumps(result))前有未捕獲的異常加try/except并print錯(cuò)誤到stderrgenerate_report步驟報(bào)llm_invoke failed: context length exceededPR diff過大超出LLM token限制wc -w ./temp_diff.txt在extract_diff步驟后加一個(gè)truncate_textAction用config: { max_words: 2000 }截?cái)噍斎隨lack通知發(fā)出去了但內(nèi)容是NoneLLM輸出未被正確引用SELECT state_json FROM workflow_states WHERE id LAST_ID;查看generate_report.output字段檢查YAML中{{ state.steps.generate_report.output }}的路徑是否正確注意大小寫和嵌套層級(jí)5.2 實(shí)操心得三個(gè)讓我少熬三天夜的技巧技巧一用--dry-run模式做YAML語法醫(yī)生在真正運(yùn)行前永遠(yuǎn)先執(zhí)行openmontage run --workflow workflow.yaml --input {...} --dry-run。這個(gè)模式不會(huì)調(diào)用任何外部服務(wù)只做三件事1) 解析YAML語法2) 校驗(yàn)所有depends_on的步驟名是否存在3) 靜態(tài)分析所有{{ state.xxx }}模板變量是否能在當(dāng)前步驟被訪問到。它會(huì)像一個(gè)嚴(yán)厲的編譯器一樣把所有潛在的配置錯(cuò)誤在運(yùn)行前就揪出來。我曾經(jīng)因?yàn)橐粋€(gè)state.steps.fetch_data.output寫成了state.steps.fetch_pr_data.output在--dry-run階段就被攔下避免了線上環(huán)境里無休止的調(diào)試。技巧二給每個(gè)Action加debug: true開啟上帝視角在任意step的config里加上debug: trueOpenMontage就會(huì)在該步驟執(zhí)行前后把完整的stateJSON打印到控制臺(tái)。這不是日志而是快照。你可以清晰地看到執(zhí)行前state.inputs.repo是什么執(zhí)行后state.steps.xxx.output新增了哪些字段。這比在代碼里加print(state)要干凈一萬倍而且不會(huì)污染生產(chǎn)日志。我習(xí)慣在開發(fā)新Action時(shí)給它前后兩個(gè)步驟都加debug: true就像給手術(shù)過程拍X光片哪里沒對(duì)齊一眼就看出來。技巧三用openmontage list和openmontage get管理歷史工作流跑多了./data/state.db里會(huì)積累大量記錄。不要手動(dòng)刪庫。用openmontage list --limit 10可以列出最近10次執(zhí)行的ID、狀態(tài)、耗時(shí)。找到你想深挖的那個(gè)ID比如om-abc123然后用openmontage get om-abc123它會(huì)把這次執(zhí)行的完整狀態(tài)JSON格式化輸出到終端。這個(gè)命令還能加--step fetch_pr_data參數(shù)只輸出指定步驟的詳情。這相當(dāng)于一個(gè)CLI版的“工作流Debugger”比翻數(shù)據(jù)庫直觀多了。5.3 那些年踩過的坑關(guān)于Agent安全與合規(guī)的血淚教訓(xùn)雖然OpenMontage本身不處理敏感數(shù)據(jù)但它調(diào)度的Agent會(huì)。我們?cè)谡鎸?shí)項(xiàng)目中因?yàn)楹鲆暳藥讉€(gè)細(xì)節(jié)差點(diǎn)引發(fā)合規(guī)事故坑一LLM Prompt里硬編碼了內(nèi)部系統(tǒng)URL最初為了讓Agent能調(diào)用內(nèi)部API我們?cè)趃enerate_report的prompt里直接寫了請(qǐng)調(diào)用 https://internal-api.myorg.com/v1/audit ...。結(jié)果這個(gè)prompt連同它的輸出被OpenMontage默認(rèn)記錄到了SQLite里。而SQLite文件是明文的任何有服務(wù)器權(quán)限的人都能直接cat出來。修復(fù)方案把所有敏感URL、端點(diǎn)、參數(shù)都移到config里用{{ config.internal_api_url }}引用這樣它們就不會(huì)出現(xiàn)在state_json的prompt字段里??佣獠磕_本scan_pr_diff.py把原始diff全量寫入了臨時(shí)文件為了調(diào)試腳本里有一行with open(/tmp/debug_diff.txt, w) as f: f.write(diff_text)。結(jié)果這個(gè)文件里包含了客戶PR的所有代碼變更包括可能的密鑰和數(shù)據(jù)庫連接串。修復(fù)方案徹底刪除所有臨時(shí)文件寫入改用內(nèi)存處理如果必須寫文件用tempfile.mkstemp()創(chuàng)建隨機(jī)名并在腳本退出前os.unlink()??尤齭end_notification步驟把整個(gè)state_json都發(fā)給了Slack為了“全面”我們把{{ state }}整個(gè)對(duì)象塞進(jìn)了Slack消息體。結(jié)果Slack歷史里留下了所有步驟的輸入輸出包括GitHub Token雖然被mask了但依然存在風(fēng)險(xiǎn)。修復(fù)方案嚴(yán)格遵循最小權(quán)限原則Slack消息體里只放state.steps.generate_report.output其他一概不傳。這些教訓(xùn)告訴我們Agent框架的安全不是框架本身的事而是整個(gè)工作流設(shè)計(jì)的責(zé)任。OpenMontage提供了storage和logging的可配置性但如何用好它取決于你對(duì)數(shù)據(jù)邊界的敬畏之心。6. 后續(xù)演進(jìn)與個(gè)人體會(huì)當(dāng)Agent不再是個(gè)體英雄而是一支紀(jì)律部隊(duì)我第一次把OpenMontage部署到團(tuán)隊(duì)CI/CD流水線里讓它自動(dòng)審計(jì)每一個(gè)合并到main分支的PR時(shí)那種感覺就像看著一群訓(xùn)練有素的士兵代替了過去那個(gè)需要我半夜爬起來手動(dòng)檢查的疲憊身影。它不會(huì)抱怨不會(huì)遺漏不會(huì)因?yàn)榭Х群榷嗔司褪侄饵c(diǎn)錯(cuò)按鈕。它只是安靜地、準(zhǔn)確地、一遍又一遍地執(zhí)行著我們寫在YAML里的“作戰(zhàn)條例”。這讓我深刻體會(huì)到Agent開發(fā)的終極形態(tài)或許不是追求單個(gè)Agent有多聰明而是讓一群各司其職的Agent能在一套堅(jiān)實(shí)、透明、可審計(jì)的編排框架下組成一支紀(jì)律嚴(yán)明的部隊(duì)。OpenMontage的價(jià)值正在于此——它不教你如何寫Prompt不幫你選模型它只做一件事給你一張清晰的地圖、一套可靠的通訊協(xié)議、一個(gè)永不疲倦的指揮中心。至于在這張地圖上你要派偵察兵掃描Agent、炮兵分析Agent、工兵修復(fù)Agent去執(zhí)行什么任務(wù)那完全是你的戰(zhàn)略。我現(xiàn)在的日常已經(jīng)從“調(diào)試Agent為什么沒回復(fù)”變成了“優(yōu)化YAML里的depends_on依賴圖”從“抓包看API返回了什么”變成了“在SQLite里查state.steps.xxx.duration_ms看哪個(gè)環(huán)節(jié)是瓶頸”。這種轉(zhuǎn)變不是技術(shù)的退化而是工程的進(jìn)化。它意味著我們終于可以把注意力從“能不能跑起來”真正聚焦到“怎么跑得更好、更穩(wěn)、更安全”上。這大概就是Agent從實(shí)驗(yàn)室玩具走向工業(yè)級(jí)應(yīng)用的第一道門坎。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
www.av在线视频| 日本人妻最新在线中| 免费伦费视频在线观看| 欧美视频第二页| 国产三区免费在线观看| 性性欧美| 农村妇女一级二级三级视频| 日韩有码 一区二区三区| 欧亚乱色熟女一区二区| 久久久影院| 免费啪啪av| 欧美性综合| 国产精品欧美日韩久久| 久操| 91国精产品| 五月天综合在线| 99久久亚洲精品无码毛片潘甜甜| 91中文精品日韩欧美在线| 入口操逼网站| 国产大学生口爆吞精合集| 中文字幕在线免费观看| 久久婷婷欧美| 日本不卡码黄色| 婷婷大香蕉| 日韩免费中文字幕视频| 欧美第一页| 亚洲性高潮| 精品少妇后入一区二区三区四区人妻巨乳| 东京热男人的天堂精品| 亚洲熟女乱色一区二区三区| 97日韩欧美亚洲| 在线视频一区二区传媒| 91精品电影18| av天堂影视中文在字幕在线中文| 欧美视频在线视频免费va| 麻豆视频国产一区二区| 亚洲av综合伊人久久| 精品久久97| 大香蕉性欧美| 校园春色综合网| 天天夜夜rb| 久久久久女教师免费一区| 怡红院视频在线| 91久久18禁| 麻豆福利视频导航| 五月丁香社区婷婷日韩欧美精品影院| 国产一区二区精品久久99| 一区操逼| 五月婷婷深深爱| 国产AV久久野战精品| 尤物一级在线免费观看| 国产精品久久久亚洲一区| 无码粉嫩白虎一线天b区| 极品欧美一区二区三区| 黑人精品XXX一区一二区| 久久久久免费看少妇A片特黄| 色综合加勒比| 人人操人人色网| 精品国产乱码久久久A| 亚洲码专区| 欧美后入式| 亚洲另类电影| 人人干人人操人人爱| 91精品国久久久久久无码| 欧美视频一区二区在线| 高清孕妇孕交 交| 蜜桃久久久久久久| 一本久道在线综合视频| 91五十路| 中文字幕亚洲欧美在线不卡| 日本操BAV| 99热日| 丁香婷婷久久| 又大又长又粗又爽又黄| 超碰碰97资源站| 99久久精品无码一区二区毛片免费| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 精品久久久久久久久久久久| 日韩99精品视频综合区| 中文人妻av高清一区| 九九国产| 台欧久久精品视频| 一区二区三区四区免费视频| 草草草视频| 青青草精品| 手机看片1025| 亚洲一区二区三区中文字幕| 秋霞 色色| 91狠狠狠| 欧美激情内射| 国产9熟妇视频网站| 加勒比在线视频| 久久亚洲AV成人精品无码| 夜夜操夜夜爽夜夜高潮| 日本在线一二 | 亚洲永久AV无码精品秋霞| 美女露胸露尿口| 日韩图区 偷拍| 97在线观看免费视频| 青青欧洲黑| 国产版a级片直播在线| 96久久久| 色图综合| 久久精品店| 好爽免费视频,| 色性荡荡荡荡视频| 天美av在线观看| 717影院理论午夜伦八戒| 欧美福利视频啊啊啊啊| 激情综合网亚洲| 大香蕉人妻久久| 精品久| 在线播放成人高清免费视频| 国产欧美在线观看免费观看| 婷婷九月| 亚洲成人ab| 亚熟在线| 激情五月天网站| 亚洲最大AV网| 97超碰色色| 丝袜美腿91| 97超碰总站| 东北老女人的激情视频| 骚乳在线| 操曰本熟女| 熟女AV一区| 中文字幕亚洲欧美在线不卡| 久久久久久久久久久999| 蘋果手機免費看成人Av| 日本顶级天天操狠狠操夜夜操中文字幕| 超碰社区97| 九九九不卡| 久艹日日日| 欧美色综合影院| 婷婷AV一区二区三区| 人人看人人爰人人操| 亚洲av成人精品一区| 夜夜欧美| 色姑娘综合网| 国产1769在线| 看黑人AV不卡| 久久偷偷色综合蜜桃| 国内成人圈中文字幕无码视频| 亚州图片第一页| 欧美特黄视频网站| 国产精品久久泡妞网站| 日本狂喷奶水在线播放212| 天天综合网久久ww| 国产一级作爱毛片| 超碰性爱97| 一区二区无码视频| 免费黄色视频网址| 搡老女人老熟女91| 色网站导航大全| 老外又粗又长一晚做五次| 99超碰网| 国产欧美精选自拍一区| 黄色大片一区二区密桃丝袜| 手机av亚洲丝袜美腿日韩第一页二页| 亚洲色婷婷综合久久一区二区三区| 中韩中文字幕在线观看| 亚洲日本激情| 激情五月婷婷综合| 蜜臀av一区二区三区免费观看| 婷婷综合伊人一区| 亚洲精品欧洲精品| 日小BB小视频| 天操老女人| 青草地一本线一区二区三区| 日韩欧美亚洲自拍偷拍| 国产精品自在自拍视频| 日本护士高潮| 亚洲无套久久嗯嗯| 后入式福利| 亚洲无码超碰免费| 五月丁香激情综合网| 久久av色| k频道色撸撸| 99色网| 美国aaaaa一级黄片| 116美女午夜| 干美女人妻| 激情六月天| J?P?NESEHD熟女熟妇伦| 日本亚洲嫩草影院啪啪| 男人天堂综合| 亚洲国产成人精品无码专区| 亚洲天堂中文字幕无码男同| 岛园激情| 精品9区| 天天爽爽爽爽| #NAME?| 久欲AV| 97超碰9| 久久一二三四五六七八九区区区| 91N综合在线| 色悠悠伊人网五月天| 第四色色综合91| 国产suv精品一区| 99国产精品视频尤物| 亚州国产精品乱| 亚洲日韩欧美一区二区| 一起草三级AV电影在线观看| 蜜乳av首页| 在线中文字幕极品av| 国产亚洲欧洲在线观看| 老司机福利社视频在线观看| 黑人操一区二区| 国产农村妇女精品一| 青草一区二区| 色五月亚洲| 亚洲欧美激情小说| 最新日韩黄片| 夜夜黄| 啊啊啊啊好多水| 懂色av一区二区三区天美传媒| 高清不卡国产| 色五月婷婷在线| 亚洲高清无码AAA久久久精品| 伊人九九| 丁香五月激情综合| 狼人狠干| 青青操97| 国产v片在线免费观看| 天天看少妇| 亚洲精品久久久久久久蜜桃臀| 超碰精品在线| 夜夜高潮夜夜爽夜夜爱爱一区| 综合五月婷婷亚洲一区| 亚洲少妇自拍中文字幕懂色| 操婷婷逼| 丁香婷婷色五月| 国产精品经典一卡久久久 | 操逼无码操逼| 亚洲 欧美 日韩另类 麻豆| 麻豆伊人网| 九九九九精品九九九九| 一区二区三区四区色图| 欧美日韩国产色五月综合在线| 国产精品无码在线| 无遮挡又黄又刺激的视频| 97超碰色五月| 欧美一区二区一级岛国大片| 精品国产国产AV| 隔壁邻居波多野结衣中文字幕| 亚洲欧美日韩电影网站一区| 国产11页| 亚洲国产一区二区日韩专区| 日韩精品怡红院| 中文字幕精品一区欧美| 综合操逼| 成人情色一区二区| 成人毛片免费| 日韩黄片视频试看| 国产精品久久久久9999小说| 性色高清在线| 操逼啊啊啊91| 91 丝袜在线播放| 99青青草国产视频| 中文字幕在线日亚州9| 亚洲综合在线第一页| 无码heyzo高清一区| 久久精品国产AV一区二区三区| 国产白嫩精品久久| 99精品欧美一区二区三区桃色| 青青草好吊| 性色av网站| 色女网日韩| 天天综合网1| 天天干人人乐| 国产精品人妻熟女aⅴ| 天天躁日日躁AAA片李宗瑞| 国产免费小视频| 97色97好| 嫩草影院性色| 天天干人人看综合| 天天92av| 亚洲国产精品久久久久婷婷老年| 丰满人妻一区二区三区在线| 亚洲春色一区二区三区| 国产超碰欧美| 色爽——AV| 欧美日韩高潮喷水91| 精品九九国产无码| 日韩一级欧美一级国产一级台湾 | 风月影院十八禁| 国产在线综合网| 婷婷色在线| 97资源欧美| 青草成人免费视频一COm| 97国产天堂岛| 暖暖精品二区三区观看| 99久久99九九99九九九| 国产树林里野战在线看| 17c嫩草51久久91嫩草| 91 亚洲情侣偷拍 久久| 女人爽到高潮潮喷18禁网站| 日本欧美一区二区三区免费| 1级午夜影院费免区| 一起草在线视频| 激情小说激情视频| 97狠狠| 日本一区二区三区欧美日韩中文字幕| 婷婷久久网| 秋霞一区二区三区四区五区六区七区| 日韩精品在线观看网站| 亚洲精品精品一区二区| 97超碰在线资源网站| 殴美性色a级欧美| 色色色色网站| 静品嫩模一区二区| 亚洲天堂无码| 亚洲成人综合在线| 99热精品在线观看| 九九aV| 亚洲色图亚洲无码强奸乱伦| 91精品人| 伊人麻豆传媒| 啪啪啪综合网| 中文字幕99999| 欧美中日韩XXXX| 国产AB视频| 超碰视97中文| 91痴汉| 女生看匆91网站| 日韩15p| 青青操少妇| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 高清无码网址| 欧美中文字幕男人天堂久久精品 | 青青草玖玖爱| 亚洲情色无码一区二区三区| 亚洲图片91| 97欧美在线| 国产美女高潮| 370p日韩欧美亚洲精品| 熟女突然公开看18禁影片| 精品国产精品一区二区| 91视频国品一二三区| 丁香五月偷拍| 人人澡人人弄| 亚洲深夜福利| 久久亚洲AV无码专区首页| 欧美亚洲日本视频久久久| 国产一级αv免费看片| 极品极品色影院| 五月丁香成人网| 91女在线观看| 日日干夜夜欢| 91老熟女| 尤物一级在线免费观看| 人夜夜精品网站香蕉嫩草| 日日夜夜国产综合| 91天堂丝袜美腿| a级免费在线观看| 欧美一区二区三区四区综合| 亚洲激情久久| 久久r精品| 国产嫩草精品A88AV| 曰韩中文人妻视频| 亚洲中文字幕av| 麻豆婷婷成人一二三| 久久久久久99999国产精品| 干少妇视频| 午夜男女爽爽爽影院视频| 国产精品香蕉热久久新品| 久久久无码视频| 强奸乱伦 亚洲一区| 777AV电影| 最新精品久久蜜桃| 久久大陆| 亚洲色图久久成人| 狠狠图片青青草| 全免费a敌肛交毛片免费| 欧美日日操| 97欧美超碰| 白丝少妇一区二区| 人人澡人人干| 欧美日韩性爱无码| 丰满人妻一区二区三区免费,| 国产精品欧美激在线| 久久久久久十| 国产在线观看91精品一区| 国产高清吃奶免费视频网站| 天天综合香 ld视频| 亚洲骚男同com| 亚洲色图欧美色18直播在线| 96久久科窝| 亚洲综合骚逼| 玖玖草久草99蜜月一区二区三区| 久久在线观看免费视频| 欧美丝袜制服久久| yazhouzaixian| 人人色人人射人人妻| 亚洲日韩一区电影| 一级特黄aaa大片在线观看成人一级片在线观看| 91美女国产在线| 精品亚洲国产成人av网站| 东北少妇高潮zzzz| 亚洲最新a在线观看| 黄色高清久久无码依人| 久久这里只| 情色大香蕉| 夜夜夜久久| 青青草色情网站视频| 69视频入口| 五月天大香蕉| 日韩人妻一区二区精品| 99精品丰满人妻无| 麻豆黄色五月天| 亚欧Av| 欧美v亚洲v综合v国产v妖精| 婷婷伊人五月| 天天日天天看| 98超碰日本| 成人老鸭窝人人在线视频| 色婷婷成人综合| 色欧美天天| 99精品丰满人妻无| 91欧美综合在线| 中文字幕成人理论在线| 国产精品爽爽v| 国产精品直播在线观看直播| 久久精品国产亚洲AV先锋| 一牛一区二区三区久久| 欧美天天影院| 久久人| 欧美日韩1234| 欧美一区二区福利在线| 八戒午夜福利理论片| 亚洲成人免费中文字幕| 99免费在线视频| 青娱乐 成人娱乐在线| 欧美精品偷拍| 蜜屁Av| 少妇人妻精品| 成人黄页| 色噜噜狠狠色综无码久久合欧美| 福利视频香蕉免费一区二区在线| 欧美一区二区一级岛国大片| 激情五月综合网| 中国和日本人色哪个不下载能放| 天天综合网1| 狂操嫩妻视频一区二区三区| 精品久久久无码| 天天综合欧美综合| 日本久久天堂| 日产中文字幕2020| 精品人妻一区春色| 我想要啊 啊 啊| 在线视频97| 91成人久久| 日本精品无码三级网站| 久久久精品一区二区| 久久一区无码| 精品成人久久久人人亚洲| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 中文字幕成人理论在线| 日韩人妻制服丝袜av| 天天超级碰碰碰| 欧美久久九九| 国模精品娜娜一二三区| 亚洲精品免费中文字幕| 欧美色图校园春色| 国产精品熟女九九九| 亚洲综合图色在线| 青青草公开在线免费不卡视频| 欧美特大AA级黄片| 综合一区中亚洲国产成人综合精品 | 五十路熟女在线不卡观看一区二区| 超碰97久久| 91欧洲入口| 美女91网| 超碰97伊人| 综合操逼| 国产精品视频播放| 欧美少妇高潮视频| 亚洲h片在线免费观看| 在线观看十八禁| 精品成人女人久久| 亚洲无码偷拍| 中字一区| 久久精品国产AV一区二区三区| 日韩综合成人免费视频| av在线一区二区三区| 日本三级黄页| yazhousetuoumei| 欧美91久久久久| 78m成人视线| 日韩免费看黄片| www被窝色com| 人人干黄色| 少妇久久久| 欧洲精品欧洲精品| 色网1| 夜夜嗷嗷一区二区| 少妇被玩视频二三区| 97五月天| 啊啊啊好爽快点啊啊啊嗯嗯| 激情婷婷黑人91| 搡老女人老熟女91老熟女综合网| 色婷婷丁香| 久久久久久久9| 久久一二三四五六七八九区区| 无码不卡亚洲成?人片| 亚洲欧洲中文日韩女优乱码| 国产人人干| 婷婷激情四射| 黄页网站免费高清在线观看| 亚洲一级特黄大片在线播放91| 殴洲老熟女| 午夜视频好爽啊| 蜜臀人妻少妇久久在线观看| 老汉网| 久久久91福利姬| 久久91| 高清在线偷拍自拍视频| 色盈盈影院| 国产亚洲日本| 啪啪综合网| 色网站导航大全| 亚洲中文字幕一区二区| WWW4虎| 五月天久久人妻| a男人的天堂| 国产成人99久久亚洲综合| 国产性刺激| 无码一区二区精品视频久久久春药 | 丁香五月偷拍| 久久原创中文| 国产一区二区三区精品观看啪| 国产又粗又长又大的视频| 大香蕉在线视频15| 中日韩熟女| 最新国产亚洲精品精品国产亚洲综合| 在线免费观看日韩一区| 激情接吻视频久久久久久| 97操在线| 久久大线蕉一区| 鲁鲁色综合网| 亚州欧美一区| 少妇久久久久久久久| 中文字幕久久婷婷丁香五月天| 美欧老女人97| 欧美伦乱| 国产亚洲精品A在线观看下载| 国产精品免费1区2区视频| 激情视屏国产乱伦强奸| 嗯嗯啊啊视频在线看| 伊人国产视频| 青青草视频久久久久| 欧美亚洲高清晰| 白丝AV| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产大陆天天艹| 岛国在线一区二区三区| 久久五月份| 久久精品国产久精国产| 久久久久久九九九九| 国模不卡| 国产嫩草精品A88AV在线| 精品久久久久成人码免| 日韩操啪| 99热精品在线播放| 偷拍综合亚洲| 四虎国产精品永久在线囯在线| 亚洲精品日韩国产欧美| 9久久美女首页| 啊啊啊操死我| 中国国国产一级特黄毛片| 69AV女优男人的天堂| 蜜臀av中文字幕| 亚洲丝袜诱惑| 五月天黄色av| 国产一级操B视频| 国产精品网址| 熟妇女伦乱视频视频| 青青草手机在线免费观看| 成年人黄色视频免费| 99视频这有这里有精品| 日韩亚洲美女一区久久| 风间由美日韩欧美久久| 无码精品蜜桃一区二区三区ww| 麻豆久久久久久久久丝袜| 国产精品日本无码A片| 性欧美精| 国产97av| 2019天天干| 日韩一卡二卡三卡| 欧美狠狠干| 久久久久久99AV无码免费网站| 熟女少妇视频| 少妇久久久久久| 色综合 加勒比| 一区二区偷拍拍视频| 日韩97P| 日韩无码极品| 亚洲国内精品成人不卡| 我要色综合网| 超碰亚洲欧美日韩无| 欧美日本不卡在线| 婷婷99狠狠躁天天躁| 婷婷性网| 色哟哟的毛片| 在线免费观看高清无码视频| 先锋色眉乱伦资源| 最近2018中文字幕在线高清第一页| 欧美 亚洲精品首页| 一级性爱网| ji熟女.com| 国产树林里野战在线看| 性色一线| 亚洲 综合 第一页| 啊啊啊啊好疼视频| 好爽视频在线观看视频| 麻豆啪啪啪视频| 蜜臀99久久精品久久久久| 清纯唯美第一页| 超碰97色| 黄网色一区二区三区四区精品| 99视频只有精品| 淫骚熟女一区二区三区| 97鸡把在线视频| 人人操 欧美| 中文字幕免费看大片| 日本有码影片下载 | 色姑娘综合网| 亚洲最大的综合性av| 亚洲五月丁香花狠狠干一区二区三区 | 青娱乐欧美激情一区二区| 丁香婷婷啪啪| 夜精品久无码| 无码精品久久久久久亚洲| 精品国产三级av韩国在线| 亚洲AV无码黄色强奸| 欧插网站| 校园春色AV天堂| 影音先锋视频在线| 暖暖精品二区三区观看| 少妇人妻在线| 多毛小伙内射老太婆| 久久久久无码| 欧美96在线|欧| 日韩人妻中文视频| av一区二区三区四区五区久草臀| 99re这里只有精品9| 丁香五月天激情网站| 综合网亚| 九九九精品美女| 入口操逼网站| 91丝袜美腿片| 激情黄色片在线观看| 色欧美天天| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 激情婷婷丁香| 婷婷10月天青娱乐| 性爱乱伦一区| 另类专区加勒比| www.大香| 国产丸一视频| 日美免费黄片| 中文久久一区| 欧美v亚洲v综合v国产v妖精| 久久久久久久少妇| 亚洲国产精品无码AV久久| 久久女人一区二区三区| 91性网| 91一区二区| 久久啊啊啊| 中文无码一二三区| 一区二区三区看视频| 2024人人操人人摸| 亚洲干B| 国产精品久久久鸭无码的功能| 人妻少妇久久| 逼逼逼逼操操操操操操操操操午夜剧场| 久草综合京东| 欧美精品久久久久久久丰满| 99啪啪| 韩国三级一线观看久| 嗯阿好爽好紧| 福利社区午夜一区二区| 啊啊啊啊啊啊啊啊要喷了| 日本性爱网址| 東南亚性呦成人伦理资源在线视频| 人人操,操人人| 熟妇人妻一区二区三在线| 欧美,日韩综合久久| 伊人青青一区成人视频在线观看区| 日本孕妇一区二区视频操逼免费看| 求求你操操我| 日本欧美亚洲高清在线看| 久久超碰天天| 欧美极品少妇交| 100啪啪视频大全| 亚洲熟女一区| 欧美成人一区二区三区在线播放| 亚洲中文字幕一区二区| 夜夜高潮夜夜爽高清视频一| 久久九九视频九九视频| 亚洲 欧美 日本 国内 首页| 国产一区二区三区中文字幕| av天堂电影网| 精品999日本| 久久这里只精品99re66图| 精品午夜福利| 亚洲无限观看| 日本欧美韩国日产片片在线看免| 亚洲熟女精品| 亚洲男人天堂网站| 超AV色女| 92性色国产午夜福利在线661 | 熟妇高潮精品一区二区三区下载| 一区二区娱乐网站| 9色国产精品一区粉嫩| 久久精品中文字幕女同| 久久伊人五月天| 天天视频网站黄| 91模特在线观看| 国产大片精久久久久久| 亚洲一区二区三区AV无码 | 男人的天堂kva| 曰本熟女视频| 亚洲欧美精品一区天堂久久 | 国产一区麻豆免费观看| 自偷自拍的亚洲视频| 翔田千里Av在线| 亚洲无码一区成人免费午夜 | 成人精品一区二区91毛片不卡| 久久精品99久久久久久| 免費人妻夜夜爽天天爽爽一区| 亚洲操人| 在线综合色| 欧美激情 亚洲色图| 国产suv精品一区二区四区999| 国产激情av女片自拍| 少妇熟女1区2区3区| 后入日本1234| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 欧美色图成人网一区二区| 五月婷婷激情综合| 高清无码国产亚洲| 不卡在线观看视频| 日韩BBN| 久欲AV| 土豪酒店各种姿势玩弄极品幼稚| 亚洲欧洲无码97久久精品| 亚洲色图91欧美日韩| 亚洲图片偷拍视频区| 中国国产精品一区视频| 亚洲天堂在线怕怕视频| 久久久四区| 老鸭窝在线视频播放| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 天天舔日美女视频| 亚洲日产专区婷婷| 国产欧美一区二区| 熟妇女人妻呻吟久久AV| 搡老熟女老女人老熟妇免费视频| 国产三区免费在线观看| 麻豆国产97在线| 少妇被c 黄 免费观看| 国产剧情在线| 精品视频一二三中文| 精品黄色电影| 婷婷久久五月综合激情| 日韩无码一级黄色av片| 26uuu久久| 九九视频黄色片| 黄色电影在线播放综合网站| 色吧5亚洲| 久久草草亚洲蜜桃臀| 四虎精品一区二区| 久久久久久久久久久久色网| 欧美激情在线观看视频| 裸体美女久久久| 亚洲日韩XXX| 日本国产二线女色| 亚洲Av诱惑| 亚州黄站| 国产午夜精品在线观看| av爱爱爱| av资源在线观看少妇| 婷婷精品| 亚洲色9| 欧美啪啪天堂| 九九久久国产精品怡红院| 亚洲 欧美综合| 91在线免费精品视频| 国内毛片无遮挡国产| 成人无码影片视频在线| 色9999日韩国产| 在线观看视频91| 九九九九国产| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 黄色香蕉视频网站一区| AA级电影三区| 视频在线观看免费一区二区三区| 日韩簧片免费看| 日韩免费高清大片在线| 欧美国产欧美在线观看| 精品超碰国产| 天天日日本| 天天躁夜夜躁狠狠躁AV| 精品国产乱码久久久久久网站入口| 澳门黄片一香蕉视频| 全免费a敌肛交毛片免费| 欧美夜夜草视频| 欧美东京热精品A∨| 日韩三级久久久| 国产第二页| 色欲av国内精品久久久久久| 操逼操逼逼操操逼91| 亚洲老熟妇xxx| 欧美视频激情久久久久久| 青青草色插素人| 九九九精品美女| 亚洲 日韩 丝袜 熟女 变态| 欧美日韩超碰在线| 99这里都是精品| 久热精品在线国产| 色哟哟511老熟女| 伊人五月天青青草婷婷| 日韩精品人妻中文字幕不卡乱码| 亚洲h片在线免费观看| 成人夜夜爽| 日韩精彩视频| 高清一区AV无码| 久久国色天香香蕉| 国产午夜福利合集| 超碰九7免费| av在线观看不卡网站| 九九热免费国产视频婷婷伊人五月| 欧美一二级| 99老司机精品视频在线观看| 久热69九色熟妇97| 91色插| 91人妻Pr| 久久久久密臀视频| 国产真乱mangent| 极品色www影院| 欧美传媒一区| 秋霞久久亚洲精品成人| 麻豆性爱视频在线播放| 久久产精品一区二区三区电影| 五月天激情婷婷| 97 九色| 97香蕉网| 欧美日韩丝袜| 97精品免费| 蜜臀久久99精品久久久久久久久| 欧美男人的天堂| 日本3级一区二区免费| 美女网站黄页| 欧美东京热精品A∨| 人妻社区男人天堂| 天天视频黄| 亚洲日韩肥臀视频在线观看| 啊啊啊无码| 丁香五月电影| 久久精品28| 亚洲人妻一区二区三区| 爱妻综合网| 国产精品永久免费10000| 亚洲黄日韩无码专区| 免费看黄片现成| 操b网站亚洲无码| 亚洲囯产精品女人久久久| 欧美亚洲涩涩| 婷婷中文网| 日韩欧美中文字幕搭讪巨乳美人妻视频| 狠狠操夜夜| 91处女在线视频| 久久婷婷色| 色欧洲| 91伊人影视综合| 国产精品点击进入在线影院| 中文字幕久久亚州无码| 国内自拍 日韩激情 99| 狠狠97| 五月黑AⅤ| 不卡中文字幕aⅴ在线| 精品无码人妻一区二区免费蜜桃| 可以在线观看AV的网站| 美女好片色日本| 韩国黄色片精品久久久 | 91精品91久久久中77777| 亚洲中文字幕在线视频一区二区| 13小男生GAY自慰脱裤子| 99久久亚洲精品无码毛片潘甜甜| 日韩中文字墓| 国产精品秘 福利姬在线观看| 亚洲欧美日韩中文播放| 日韩激情毛片一级久久久| 国产精品香蕉热久久新品| 人人色97| 国产久久一区二区三区野外在线| 97电影院超碰| 园内精品自拍视频在线播放| 亚洲av综合色区无码一| 2020中文在线一区二区三区| 自拍丝袜美腿人妻| 亚洲欧美日韩不卡人妻| 女人被男人桶爽视频网站| 少妇二级| 亚洲棕合电彰| 欧美性五月| 91精品微拍福利| 91色女| 2020中文在线一区二区三区| 久久久涩| 熟女网站最新| 日韩乱插| 免费观看性欧美一级| 深喉吞精| 青青伊人加勒比海| 一区二区久久天天干狠狠| 91快色色色色色| 欧美日韩久久精品爱爱| 婷婷亚洲综合| 亚欧无码在线| 超碰97人人cao| 国产美女91| 日韩不卡网操逼中文字幕日韩| 韩国三级理论在线| 黄色免费一级在线毛片| 91激情国产| 日逼五月天| 成人青青草原伊人| 人妻中文字幕日韩电影| 亚洲另类久操网| 91操操操操| 男人天堂.AB| 欧美少妇色图| 久久国产乱子伦精品免费女人| 久久夜夜夜夜| 一二区在线观看视频| 欧美综合色站| 亚洲av综合色区图片亚洲| 任你干在线视频| 96精品久久| 色网亚洲人| 日日AAvv| 天天舔九色婷婷| 在线视频一区二区传媒| 97人妻色| 久久精品性| 色噜噜婷婷| 大香蕉碰| 99热色这里只有精品| 超碰亚洲欧美日韩无| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 久久这里是精品| 日韩少妇无码| 欧美激情在线观看视频| 中文字幕av片| 蜜臀中文无码午夜| 91综合天天看| 人妻蜜桃臀| 欧美 亚洲 91| 日韩八十路老熟女| 少妇内射视频| 九99久久| 97色妞| 国产白丝在线| 99热日| 尤物AV免费网站| 97久久久网站| 免费视频一二三区| 日本一区二区中文字幕久久| 91在线免费精品视频| 日韩成人高清一区二区| 亚洲精品一区二区精品| 久久久亚洲高清不打码| 精品性爱一二三区| 美女极品一区二区三区| 免费av大片| 亚洲欧美国产日本一区二区三区| 日产狠狠干| 无码人妻一区二区一牛影视| 日韩熟女精品无码专区一区二区 | 91在线观看,天天综合| 久久久久久裸体| 欧美啪啪啪91| 亚洲天堂精品日韩电影| 国产黄色影片在线观看| 日韩免费三级黄片电影| 女人 A一级| 超碰av在线| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 中文字幕一区 二 区 三 四 五 区日 日 骚 | 60秒免费小视频| 日韩欧美久久婷婷网站| 97国产精品视频| 日本日逼高清| 国产精品一区二区三区在线密挑| 久久熟妇五十路一区| 97av,com| 国产精品久久久久9999小说| 亚洲春色欧美激情自拍| 国产树林里野战在线看| 国产日本熟女顶级一区二区三区视频 | 欧美日韩在线国产在线| 丝袜AV一二三区| 五月开心久久AV官网| 丰满人妻-区二区三区免费看| 国产成人无码a| 色色婷婷丁香| 国产二区三区粉嫩在线| 欧美碰碰综合色| av无码精品久久久久| 九九热免费国产视频婷婷伊人五月 | 日韩激情电影中文字幕| 黄片www.| 久久久穴999| 欧美性夜| 无色无码| 久久天天躁日日躁狠狠躁 | 亚洲综合草草| 一级岛国大片| 好吊妞转入那个网| 91N综合网在线| 97无码视频在线播放| 久9视频| 97网址97| 综合国产影视三级| 国产精品视频一区二区三区八戒| 亚洲瓯美色图| 麻豆91熟妇人妻中文字幕茄子| 欧美日韩免费性爱| 亚洲熟妇无码一区二区三区| 欧美传媒一区| 中文操逼字幕| 色99色| 东京热,男人的天堂| 国产精品 久久久精品一牛| 国产日本熟女顶级一区二区三区视频| 果冻传媒一区二区三区| 五月丁香色色网| 日本阿v天堂在线观看| 欧洲综合视频| 国产久久免费精品视频| 欧美大色交| 美女尤物福利视频| 精品成人无码| 精品九九| 欧美亚洲美少妇一区二区| 国产精品96久久久久久| 美女写真| 九九九999久久久网站| 97色插| 淫乱图区| 欧美懂色综合网| 亚洲精品97| 中文字幕日产av人| 亚洲欧美一区二区网址| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 超碰在线国产| 亚洲诱惑天堂| 九九热超碰| 欧美拳交在线播放| 操操操操网黑人| 91精品91久久久久77777| 国产久久久久久| 韩国成人精品久久久免费看| 亚洲色欲天天人妻无码系列专区| 成年女人一区| 欧美激情亚洲情色| 2017av无码免费无线播| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲成人免费在线| 一区二区视频你懂的| 野狼福利社区| 久久‘黄片视频| 9999亚洲电影| 日本国产亚洲一区在线观看| 一类av片在线看| 十八禁视频一区二区| 妇女一区二区三区| 欧美亚洲激情| 欧美色图亚洲色,麻豆| 欧美夜夜骑视频| 日韩综合97p| 日本亚洲熟女视频| 熟女91网| 亚洲天堂性爱| 欧美熟女操屄| 91天天| 色男人色天堂东京热| 丁香六月婷| 尤物黄色在线观看网站| 亚洲无码日韩电影| 最新av在线| 嗯嗯啊操我| 天堂中文日本在线观看| 中文字幕欧美丝袜07资源| 欧美亚洲涩涩| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 台湾佬激情综合| 综合免费无码中文| 啪啪综合网| 久久久久九九九九九| 久久久穴999| 99免费在线视频| 大香网站| 亚洲欧洲自拍图片专区满春格| 黄页网站成人免费| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 看全色黄大色大片免费视频| 久久天堂网| 亚洲视频二区 | 亚洲日精品| 伊人色综合欧美| 中美日韩毛片| 婷婷日韩一区二区三区中文字幕在线| 无码日韩人妻av一| 免费家庭乱伦视频| 酒色综合网| 超碰色美女| 久久骚| 高潮综合网| 九九热五区| 91超碰人人| 久久综合99| 九久9精品| 欧美v亚洲v日韩v最新在线二区| 91深夜夜| 影音先锋少妇| 100啪啪视频大全| 91久久青青草原精品| 青青草好吊色| 欧美 亚洲精品首页| 97超碰伊人| 青青草一本道福利视频| 欧美在线干| 加勒比综合a∨| 91 国产丝袜在线播放-百度| baiduhicn.com。| 热久久99999| 最新精品久久蜜桃 | 免费精品无码一级毛片牛牛影视 | 91碰碰碰| 丁香五月天堂网| 欧美在线视频99| 91综合在线| 亚洲老熟妇xxx| 香蕉在线一区二区三区| 日韩有码免费视频| 屌逼麻豆| 日韩丝袜人妻AV| 在线人妻熟女一区二区三区四区五区| 91在线欧色| 欧美在线色图| 日韩啪啪啪视频| 龙兴卡官方查询| 久射吧| 九九久久久| 欧州一区二区三区四区| 夜夜操美女| 久久毛卡|