欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

LLM之Agent(六十一)|拆解 Coding Agent 的 harness:從零構(gòu)建你的第一個(gè) AI 編程助手

LLM之Agent(六十一)|拆解 Coding Agent 的 harness:從零構(gòu)建你的第一個(gè) AI 編程助手 1. 為什么你的 Coding Agent 總在第三步崩掉harness 層缺失的典型癥狀很多人第一次寫 AI 編程助手代碼大概長這樣一個(gè) while 循環(huán)把用戶輸入丟給模型模型返回 tool_call 就執(zhí)行執(zhí)行完把結(jié)果塞回 messages再循環(huán)。跑 demo 沒問題一旦讓它改一個(gè)真實(shí)倉庫里的文件問題就來了——它會(huì)在第三步或第四步開始重復(fù)讀同一個(gè)文件、忘記前面已經(jīng)改過什么、把cd之后的路徑當(dāng)成永久生效、甚至在等你確認(rèn)的時(shí)候把整個(gè)上下文燒光。這些癥狀看起來像模型不夠聰明實(shí)際上幾乎全部出在 harness 層。所謂 harness中文可以理解成挽具或編排腳夫它是包在模型外面那一圈基礎(chǔ)設(shè)施狀態(tài)機(jī)、上下文管理、權(quán)限門、執(zhí)行隔離、事件流。模型權(quán)重和核心 API 行為是固定的你能工程化的部分幾乎全在 harness 里。我拆過 Claude Code、OpenCode、Pi 這類主流 coding agent 的實(shí)現(xiàn)得出一個(gè)反直覺的結(jié)論真正讓 agent 可用的不是那個(gè) ReAct 循環(huán)而是循環(huán)外面的東西。一個(gè) bare agent loop 大概 20 行就能寫完但一個(gè)能跑真實(shí)項(xiàng)目的 harness 需要處理 phase machine、steering queue、permission gate、sandbox、context compaction、memory 注入、可觀測性這一整套。這篇文章面向想理解 Agent 如何調(diào)度工具與上下文的開發(fā)者。我會(huì)帶你把 harness 拆成可復(fù)制的配置片段最后用一個(gè)端到端請(qǐng)求驗(yàn)證整條鏈路真的通了。你不需要先讀完所有源碼跟著配置走一遍黑箱就透明了。先明確邊界。Agent 層負(fù)責(zé)想模型評(píng)估狀態(tài)、選擇 action 或 tool call、接收 observation、迭代。Harness 層負(fù)責(zé)活它驅(qū)動(dòng) turn 的執(zhí)行、管理輸入隊(duì)列、攔截危險(xiǎn)操作、隔離命令執(zhí)行、壓縮上下文、把事件流分發(fā)給界面。Interface 層負(fù)責(zé)看TUI 或 headless 遠(yuǎn)程執(zhí)行。三層分離之后你換模型、換界面、換沙箱harness 邏輯都不用重寫。下面這張對(duì)照表幫你快速定位自己卡在哪一層癥狀大概率出問題的層典型原因重復(fù)讀同一文件Harness / Context沒有 compaction歷史里全是舊 tool 結(jié)果改完文件又改回去Harness / Memory沒有把已改事實(shí)寫回上下文命令執(zhí)行后路徑丟失Harness / Sandboxfresh-exec 模式下 cd 不持久但代碼假設(shè)它持久危險(xiǎn)命令直接執(zhí)行Harness / Permission沒有 permission gate 或 gate 規(guī)則寫反等待確認(rèn)時(shí)卡死Harness / Queue單隊(duì)列阻塞沒有 steering 與 follow-up 分流長任務(wù)中途斷掉無法恢復(fù)Harness / Runtime沒有 durable checkpoint看清這張表你就知道接下來該配什么。2. TaoToken 前置給 harness 一個(gè)穩(wěn)定的模型入口harness 要跑起來第一件事是讓模型調(diào)用這條鏈路穩(wěn)定。我試過把模型入口寫死在代碼里結(jié)果每次換模型都要改源碼、重跑測試非常痛苦。正確做法是把 Base URL、Key、Model ID 三件套抽成配置harness 只讀配置不關(guān)心供應(yīng)商。TaoToken 在這里的角色是提供統(tǒng)一的模型調(diào)用入口。官網(wǎng)地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端點(diǎn)是 https://taotoken.net/api 。注意 API 地址不帶 UTM 參數(shù)配置里寫干凈的 endpoint 就行。你需要準(zhǔn)備三樣?xùn)|西缺一不可Base URLhttps://taotoken.net/api這是所有請(qǐng)求的前綴harness 里的 model client 指向它。API Key在控制臺(tái)創(chuàng)建形如sk-開頭的一串。這個(gè) Key 只放在環(huán)境變量或本地配置文件里絕對(duì)不要提交到 git。我見過有人把 Key 寫進(jìn)settings.py然后推到公開倉庫十分鐘內(nèi)就被掃走了。Model ID具體調(diào)用哪個(gè)模型。harness 的配置里要顯式聲明不要依賴默認(rèn)值否則換環(huán)境時(shí)行為會(huì)漂移。獲取 Key 的入口在控制臺(tái)的 API Keys 頁面地址是 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。創(chuàng)建之后復(fù)制一次頁面刷新就看不到了先存到本地.env。如果你只是想先驗(yàn)證模型能不能通不想寫代碼可以用模型對(duì)話頁面直接發(fā)一條消息地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。這一步能幫你排除是 Key 錯(cuò)了還是 harness 寫錯(cuò)了的干擾。對(duì)于長期跑編碼任務(wù)或 Agent 工作流的場景Coding Plan 更合適入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。它的計(jì)費(fèi)方式對(duì)高頻 tool call 更友好因?yàn)?coding agent 一個(gè) turn 可能觸發(fā)十幾次模型請(qǐng)求按次計(jì)費(fèi)會(huì)很難受。接入文檔在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各語言的調(diào)用示例。我建議你先照著文檔跑通一個(gè)最小請(qǐng)求再把它塞進(jìn) harness。這里有個(gè)容易踩的坑harness 里的 model client 通常需要兼容 OpenAI 風(fēng)格的/chat/completions或 Anthropic 風(fēng)格的/messages。TaoToken 的 API 端點(diǎn)支持標(biāo)準(zhǔn)協(xié)議你在配置里把 base_url 指對(duì)剩下的交給 SDK。不要自己手寫 HTTP 拼接容易在 header 和 body 格式上出錯(cuò)。環(huán)境變量建議這樣組織harness 啟動(dòng)時(shí)統(tǒng)一讀取# .env 本地文件不要提交 TAOTOKEN_BASE_URLhttps://taotoken.net/api TAOTOKEN_API_KEYsk-你的key TAOTOKEN_MODEL_ID你的模型ID然后在代碼里用os.environ或pydantic-settings讀取。這樣你的 harness 代碼里不會(huì)出現(xiàn)任何硬編碼的 Key換環(huán)境只改.env。3. 可復(fù)制配置把 harness 三件套寫進(jìn) settings這一節(jié)給你可以直接抄的配置片段。harness 的配置分三塊模型入口、權(quán)限門、沙箱。我按文件路徑組織你照著建目錄就行。先建項(xiàng)目結(jié)構(gòu)my-agent/ config/ settings.toml permissions.json src/ harness/ runner.py queue.py gate.py agent/ loop.py模型入口配置寫在config/settings.toml。TOML 比 JSON 更適合寫配置因?yàn)橹С肿⑨? config/settings.toml [llm] base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY # 從環(huán)境變量讀不寫明文 model_id 你的模型ID timeout_s 120 max_retries 3 [harness] # 上下文窗口預(yù)算compaction 閾值基于它計(jì)算 context_window_tokens 200000 # 保留最近多少 token 不壓縮 keep_recent_tokens 40000 # 觸發(fā) microcompaction 的預(yù)留比例 microcompaction_reserve_fraction 0.15 # 觸發(fā)完整 compaction 的預(yù)留比例 compaction_reserve_fraction 0.20 [sandbox] # none | docker | modal mode docker image python:3.12-slim exec_timeout_s 60權(quán)限門配置寫在config/permissions.json。規(guī)則順序很重要先走 deny再走 allow最后落到 mode 默認(rèn)行為{ mode: default, rules: [ { match: { tool: bash, command_regex: rm\\s-rf\\s/ }, decision: deny, reason: 禁止刪除根目錄 }, { match: { tool: bash, command_regex: git\\spush }, decision: ask, reason: 推送需要人工確認(rèn) }, { match: { tool: read }, decision: allow }, { match: { tool: glob }, decision: allow }, { match: { tool: grep }, decision: allow }, { match: { tool: write }, decision: ask }, { match: { tool: edit }, decision: ask } ] }注意mode字段。default模式下只讀工具自動(dòng)放行寫文件和 bash 需要確認(rèn)edit模式下文件編輯自動(dòng)放行bash 仍然要問bypass模式全部放行只用于 headless 自動(dòng)化絕不能在有真實(shí)憑證的環(huán)境里開。harness 讀取配置的代碼長這樣用 pydantic 做校驗(yàn)字段缺失直接報(bào)錯(cuò)而不是靜默用默認(rèn)值# src/harness/config.py from pathlib import Path import json import tomllib from pydantic import BaseModel, Field class LLMConfig(BaseModel): base_url: str api_key_env: str model_id: str timeout_s: int 120 max_retries: int 3 class HarnessConfig(BaseModel): context_window_tokens: int 200_000 keep_recent_tokens: int 40_000 microcompaction_reserve_fraction: float 0.15 compaction_reserve_fraction: float 0.20 class SandboxConfig(BaseModel): mode: str none image: str python:3.12-slim exec_timeout_s: int 60 class Settings(BaseModel): llm: LLMConfig harness: HarnessConfig sandbox: SandboxConfig def load_settings(root: Path) - Settings: with open(root / config / settings.toml, rb) as f: raw tomllib.load(f) return Settings(**raw) def load_permissions(root: Path) - dict: with open(root / config / permissions.json, r, encodingutf-8) as f: return json.load(f)如果你用的是 Claude Code 或 Cline 這類現(xiàn)成工具配置位置不一樣但三件套邏輯相同。Claude Code 的 settings 里要寫ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY、ANTHROPIC_MODELCline 的 MCP 配置里要寫baseUrl、apiKey、model。不管哪個(gè)工具Base URL、Key、Model ID 三個(gè)字段一個(gè)都不能少少一個(gè)就會(huì)在第一次請(qǐng)求時(shí)報(bào) 401 或 model not found。CC Switch 這類多配置切換工具也遵循同樣結(jié)構(gòu)。它的配置文件里每個(gè) profile 就是一組三件套切換 profile 等于換模型入口。如果你同時(shí)用多個(gè)模型做對(duì)比這個(gè)結(jié)構(gòu)能省很多事。配置寫完先別急著跑 agent。用一段最小代碼驗(yàn)證模型入口通不通# scripts/check_llm.py import os from openai import OpenAI from pathlib import Path from src.harness.config import load_settings settings load_settings(Path(.)) client OpenAI( base_urlsettings.llm.base_url, api_keyos.environ[settings.llm.api_key_env], ) resp client.chat.completions.create( modelsettings.llm.model_id, messages[{role: user, content: 只回復(fù)兩個(gè)字通了}], timeoutsettings.llm.timeout_s, ) print(resp.choices[0].message.content)跑python scripts/check_llm.py輸出通了就說明模型入口沒問題。這一步能幫你把模型問題和 harness 問題徹底分開。4. 端到端驗(yàn)證一次請(qǐng)求看清執(zhí)行鏈路配置就緒后跑一次完整的 turn觀察事件流。harness 的價(jià)值在于把黑箱變成可觀測的事件序列。我設(shè)計(jì)一個(gè)最小驗(yàn)證場景讓 agent 讀一個(gè)文件、改一個(gè)文件、跑一條命令全程打印事件。先寫事件定義。事件是 frozen 且 hashable 的這樣 TUI 和遠(yuǎn)程可觀測性可以共用同一個(gè)真實(shí)來源# src/harness/events.py from dataclasses import dataclass from typing import Union dataclass(frozenTrue) class TurnStarted: turn_id: str dataclass(frozenTrue) class AssistantTextDelta: text: str dataclass(frozenTrue) class ToolCallStarted: tool: str args: dict dataclass(frozenTrue) class ToolResult: tool: str ok: bool preview: str dataclass(frozenTrue) class PermissionRequested: tool: str reason: str dataclass(frozenTrue) class ContextCompacted: before_tokens: int after_tokens: int dataclass(frozenTrue) class TurnFinished: turn_id: str stop_reason: str Event Union[ TurnStarted, AssistantTextDelta, ToolCallStarted, ToolResult, PermissionRequested, ContextCompacted, TurnFinished, ]然后是 runner 的 phase machine。單飛single-flight是關(guān)鍵一個(gè) turn 可能包含多個(gè) legiter → deferred pause → resume → follow-upphase 在第一個(gè) await 之前同步設(shè)置保證狀態(tài)查詢不會(huì)看到中間態(tài)# src/harness/runner.py import enum from dataclasses import dataclass, field class Phase(enum.Enum): IDLE idle DISPATCHING dispatching # 第一個(gè) await 之前的同步窗口 RUNNING running class Boundary(enum.Enum): MODEL_REQUEST model_request # 下一次模型調(diào)用前 drain steering WOULD_STOP would_stop # drain follow-up空則回 idle dataclass class Runner: phase: Phase Phase.IDLE _abort_flag: bool False def dispatch(self): # 同步設(shè)置避免競態(tài) self.phase Phase.DISPATCHING self._abort_flag False def mark_running(self): self.phase Phase.RUNNING def request_abort(self): # 協(xié)作式 abort設(shè)置 flagturn 在下一個(gè) boundary 停止 self._abort_flag True def should_abort(self) - bool: return self._abort_flag雙隊(duì)列交互模型是防止 mid-turn 破壞的核心。用戶按 Enter 的消息進(jìn) steering 隊(duì)列在下一個(gè) model-request 邊界注入按 AltEnter 的消息進(jìn) follow-up 隊(duì)列只在 WOULD_STOP 邊界處理# src/harness/queue.py import asyncio from dataclasses import dataclass, field def _drain(q: asyncio.Queue) - list[str]: out [] while not q.empty(): out.append(q.get_nowait()) return out dataclass class InteractionQueues: steering: asyncio.Queue field(default_factoryasyncio.Queue) follow_up: asyncio.Queue field(default_factoryasyncio.Queue) def drain_steering(self) - list[str]: return _drain(self.steering) def drain_follow_up(self) - list[str]: return _drain(self.follow_up)現(xiàn)在寫主循環(huán)把事件打出來。這是驗(yàn)證 harness 是否工作的核心# src/harness/main.py import asyncio import os from pathlib import Path from openai import AsyncOpenAI from src.harness.config import load_settings, load_permissions from src.harness.runner import Runner, Phase, Boundary from src.harness.queue import InteractionQueues from src.harness.events import ( TurnStarted, AssistantTextDelta, ToolCallStarted, ToolResult, TurnFinished, ) async def run_turn(prompt: str, settings, queues, runner): client AsyncOpenAI( base_urlsettings.llm.base_url, api_keyos.environ[settings.llm.api_key_env], ) runner.dispatch() yield TurnStarted(turn_idt1) messages [{role: user, content: prompt}] tools [ {type: function, function: { name: read, description: 讀文件, parameters: {type: object, properties: { path: {type: string}}, required: [path]}}}, {type: function, function: { name: bash, description: 執(zhí)行命令, parameters: {type: object, properties: { command: {type: string}}, required: [command]}}}, ] for leg in range(8): # MODEL_REQUEST 邊界注入 steering for msg in queues.drain_steering(): messages.append({role: user, content: msg}) runner.mark_running() resp await client.chat.completions.create( modelsettings.llm.model_id, messagesmessages, toolstools, timeoutsettings.llm.timeout_s, ) choice resp.choices[0].message if choice.content: yield AssistantTextDelta(textchoice.content) if not choice.tool_calls: # WOULD_STOP 邊界處理 follow-up follow queues.drain_follow_up() if follow: for msg in follow: messages.append({role: user, content: msg}) continue yield TurnFinished(turn_idt1, stop_reasoncompleted) runner.phase Phase.IDLE return messages.append(choice) for call in choice.tool_calls: yield ToolCallStarted(toolcall.function.name, args{}) # 這里接真實(shí)工具執(zhí)行示例用占位 result f[{call.function.name} 執(zhí)行完成] yield ToolResult(toolcall.function.name, okTrue, previewresult[:80]) messages.append({ role: tool, tool_call_id: call.id, content: result, }) yield TurnFinished(turn_idt1, stop_reasonmax_legs) async def main(): settings load_settings(Path(.)) queues InteractionQueues() runner Runner() async for ev in run_turn(讀一下 README.md 然后告訴我項(xiàng)目是做什么的, settings, queues, runner): print(f[{type(ev).__name__}] {ev}) if __name__ __main__: asyncio.run(main())跑起來你會(huì)看到類似這樣的輸出[TurnStarted] TurnStarted(turn_idt1) [ToolCallStarted] ToolCallStarted(toolread, args{}) [ToolResult] ToolResult(toolread, okTrue, preview[read 執(zhí)行完成]) [AssistantTextDelta] AssistantTextDelta(text這個(gè)項(xiàng)目是一個(gè)...) [TurnFinished] TurnFinished(turn_idt1, stop_reasoncompleted)這條事件序列就是 harness 的心電圖。你能清楚看到turn 開始、工具被調(diào)用、結(jié)果返回、模型生成文本、turn 結(jié)束。如果中間某一步缺失問題就定位到了具體環(huán)節(jié)。驗(yàn)證成功的標(biāo)志有三個(gè)事件按順序出現(xiàn)、stop_reason是completed而不是max_legs、工具結(jié)果被正確回填到 messages。三個(gè)都滿足說明你的 harness 主鏈路通了。5. 本篇常見錯(cuò)排查401、local proxy failed、reading choices、OAuth配置和驗(yàn)證過程中報(bào)錯(cuò)幾乎都集中在這幾類。我按真實(shí)報(bào)錯(cuò)信息給你對(duì)照排查。401 Unauthorized / invalid api key最常見。原因通常是 Key 沒讀到、Key 寫錯(cuò)、或者 base_url 和 Key 不匹配。先確認(rèn)環(huán)境變量真的加載了python -c import os; print(os.environ.get(TAOTOKEN_API_KEY, NOT SET)[:8])如果輸出NOT SET說明.env沒被加載。Python 不會(huì)自動(dòng)讀.env你需要python-dotenv或手動(dòng) export。如果輸出了前 8 位但請(qǐng)求還是 401檢查 base_url 是否寫成了帶路徑的形式比如https://taotoken.net/api/v1有些 SDK 會(huì)自己拼/v1重復(fù)拼接就會(huì) 404 或 401。正確寫法是只寫到https://taotoken.net/api。local proxy failed / connection refused這個(gè)報(bào)錯(cuò)說明請(qǐng)求根本沒發(fā)出去卡在本地網(wǎng)絡(luò)層。檢查三件事base_url 是否拼錯(cuò)、本機(jī)是否有殘留的代理環(huán)境變量、DNS 是否能解析。用 curl 直接測curl -sS -o /dev/null -w %{http_code}\n https://taotoken.net/api返回 200 或 401 都說明網(wǎng)絡(luò)通返回 000 說明連接失敗。如果本機(jī)有HTTP_PROXY之類的環(huán)境變量先 unset 再試。注意不要在代碼里硬編碼任何代理地址harness 應(yīng)該直連配置的 base_url。reading choices of undefined / KeyError: choices這個(gè)報(bào)錯(cuò)幾乎都是響應(yīng)結(jié)構(gòu)不符合預(yù)期。可能原因模型 ID 寫錯(cuò)導(dǎo)致返回了錯(cuò)誤對(duì)象、SDK 版本和 API 協(xié)議不匹配、或者請(qǐng)求體格式不對(duì)。先打印完整響應(yīng)resp await client.chat.completions.create(...) print(resp.model_dump_json(indent2))如果返回體里是{error: {...}}而不是{choices: [...]}那就是請(qǐng)求本身被拒了去看 error 字段的具體信息。常見的是 model not found說明 Model ID 和賬號(hào)可用模型不匹配去控制臺(tái)確認(rèn)一下。OAuth / authentication failed / token expired如果你用的是 Claude Code 這類帶 OAuth 流程的工具報(bào)錯(cuò)可能來自它的登錄態(tài)而不是你的 API Key。這類工具通常有兩套認(rèn)證一套是工具自身的賬號(hào)登錄一套是模型 API 的 Key。兩者不能混。檢查工具的配置文件里模型入口是否指向了正確的 base_url 和 Key。Claude Code 的配置在~/.claude/settings.jsonCline 的在 VS Code 設(shè)置里Codex 的在~/.codex/auth.json。以 Codex 的auth.json為例三件套要寫全{ base_url: https://taotoken.net/api, api_key: sk-你的key, model: 你的模型ID }少任何一個(gè)字段工具都會(huì)回退到默認(rèn)認(rèn)證流程然后報(bào) OAuth 相關(guān)錯(cuò)誤。Cline 的 MCP 配置同理baseUrl、apiKey、model三個(gè)字段缺一不可。CC Switch 切換 profile 時(shí)如果某個(gè) profile 只填了兩個(gè)字段切過去就會(huì)認(rèn)證失敗。上下文超限 / context length exceeded這個(gè)不是認(rèn)證問題是 harness 的 compaction 沒生效。檢查context_window_tokens是否和實(shí)際模型窗口一致keep_recent_tokens是否設(shè)得太大。如果keep_recent_tokens接近c(diǎn)ontext_window_tokenscompaction 永遠(yuǎn)觸發(fā)不了因?yàn)楸A魠^(qū)就占滿了。經(jīng)驗(yàn)值是保留區(qū)占窗口的 20% 到 30%觸發(fā)閾值設(shè)在 80% 左右給模型響應(yīng)和后續(xù) tool output 留 headroom。工具執(zhí)行卡死 / 等待確認(rèn)無響應(yīng)這是隊(duì)列設(shè)計(jì)問題。如果你只有一個(gè)隊(duì)列等待用戶確認(rèn)時(shí)會(huì)阻塞整個(gè)循環(huán)。正確做法是 permission gate 返回 ASK 時(shí)tool 拋出 ApprovalRequired循環(huán)暫停并返回 deferred 狀態(tài)通過獨(dú)立的 decision channel 等待用戶輸入。用戶輸入 y/n/a 后 resolve future循環(huán)恢復(fù)。這樣等待期間不占用計(jì)算資源也不會(huì)死鎖。排查完這幾類你的 harness 基本就穩(wěn)了。每次遇到新報(bào)錯(cuò)先看它屬于哪一層認(rèn)證層、網(wǎng)絡(luò)層、協(xié)議層、還是 harness 邏輯層。分層之后排查范圍立刻縮小。6. 把 harness 用起來從驗(yàn)證到長期編碼主鏈路通了之后你可以按需擴(kuò)展。harness 的每個(gè)組件都是可插拔的不用一次全上。先加 memory 注入。在項(xiàng)目根目錄放AGENTS.mdharness 啟動(dòng)時(shí)讀取并注入到 system prompt。這樣 agent 每次都知道項(xiàng)目約定不用你重復(fù)交代# src/harness/memory.py from pathlib import Path def assemble_memory(cwd: Path) - str: blocks [] for path in discover_memory_files(cwd): content path.read_text(encodingutf-8, errorsignore) if path.name MEMORY.md: content \n.join(content.splitlines()[:200]) blocks.append(f# From {path}\n{content}) return \n\n.join(blocks) def discover_memory_files(cwd: Path): # 從 cwd 向上遍歷到文件系統(tǒng)根收集 AGENTS.md 和 MEMORY.md current cwd.resolve() found [] while True: for name in (AGENTS.md, MEMORY.md): candidate current / name if candidate.exists(): found.append(candidate) if current.parent current: break current current.parent return list(reversed(found))再加 context compaction。兩級(jí)級(jí)聯(lián)microcompaction 不調(diào)模型只把舊的 tool 輸出體替換成占位符完整 compaction 調(diào)一次便宜的模型把老歷史總結(jié)成固定骨架。觸發(fā)閾值基于 token 預(yù)算# src/harness/compaction.py import enum class CompactOutcome(enum.Enum): COMPACTED compacted NOTHING_TO_COMPACT nothing_to_compact SUMMARIZER_FAILED summarizer_failed def split_tail(messages, *, keep_recent_tokens: int) - int: 從尾部累積 tokensnap 到 compaction boundary 保證 tool-call/result 對(duì)不被拆開。 total 0 for i in range(len(messages) - 1, -1, -1): total estimate_tokens(messages[i]) if total keep_recent_tokens: return snap_to_boundary(messages, i) return 0 def microcompact(messages, *, keep_recent_tokens: int): 無 LLM 層把舊 tool 輸出體清空。 boundary split_tail(messages, keep_recent_tokenskeep_recent_tokens) for msg in messages[:boundary]: if msg.get(role) tool: msg[content] [已壓縮] return messages沙箱層按需開啟。本地開發(fā)用mode none跑真實(shí)命令時(shí)切docker。fresh-exec 模式下每條命令作為全新進(jìn)程運(yùn)行cd和export不會(huì)跨調(diào)用持久化。這個(gè)設(shè)計(jì)看起來反直覺但它讓本地和遠(yuǎn)程行為字節(jié)級(jí)一致避免本地能跑遠(yuǎn)程不能跑的問題# src/harness/sandbox.py class SandboxExecutor: Fresh-execcd/export 不持久。 def __init__(self, backend, workspace): self._backend backend self._workspace workspace self._created False async def run(self, command: str, *, timeout_s: float): if not self._created: await self._backend.create(self._workspace) self._created True return await self._backend.exec(bash, -lc, command, timeout_stimeout_s)如果你要跑長期任務(wù)或 Agent 工作流建議用 Coding Plan入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。高頻 tool call 場景下穩(wěn)定的計(jì)費(fèi)和額度比單次便宜更重要因?yàn)?harness 一個(gè) turn 可能觸發(fā)十幾次模型請(qǐng)求。接入文檔在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各語言和各工具的完整配置示例。API Keys 管理在 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 建議給不同項(xiàng)目建不同的 Key方便按項(xiàng)目排查和吊銷。最后說一個(gè)我踩過的坑不要一上來就把所有組件都打開。先跑通模型入口再加事件流再加權(quán)限門最后加沙箱和 compaction。每加一層就跑一次端到端驗(yàn)證確認(rèn)事件序列沒變。這樣出問題時(shí)你永遠(yuǎn)知道是哪一層引入的。harness 的復(fù)雜度是必要的但引入復(fù)雜度必須可控。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天色粽合合合合合合合| 伊人色综合网| 青青草成人网| www·五月天| 婷婷丁香五月基地| 激情综合网激情五月丁香五月俺也去| 99精品视频免费观看| 大香蕉久久青青| 5月婷婷性视频| 色婷婷情片| 色婷婷小说| 婷婷五月天论坛| 男人的天堂av俄罗斯热| 99在线精品视频| 日本免费91| 伊人综合网站| 天天色播| 这里只有精品视频99| 五月天激情小说婷婷| 久久思思精品| 日日做夜夜爱| 99精品视频在线| 亚洲爱婷婷| 思思久久99| 久久久这里有精品| 国产精品视频久久99| 亚洲成av人影院| 天天噜日日噜综合无码| 狠狠爱婷婷爱| 99色色网站| 五月天婷婷网站| 婷婷深爱五月| 99热在线精品观看| av在线观看免费| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 婷婷五亚洲| 五月天天天综合| 婷婷六月综合基地| www久久久久久| 亚洲乱码日产精品BD| 婷婷激情五月天小说校园| 日本久久网| 丁香五月婷婷在线| 91人碰| 婷婷五月天在婷| 超碰人人干| www.com亚洲网站在线免费| 久色婷婷200| 色婷婷91| 六月丁香啪啪| 丁香激情网| 丁香六月五月婷婷| 开心四月婷婷在线色播播| 激情婷婷五月天丁香| 久久伊人大香蕉| 综合五月丁香六月婷婷| 亚洲综合视频一下| 五月 婷婷 成人| 国产精品色一哟哟| 婷婷久久色| 丁香六月伊人| 丁香 亚洲 久久| 99视频在线观看欧| 婷婷五月丁香六月天亚洲综合| 激情五月天综合网| 五月丁婷香| 婷婷综合| 婷婷丁香亚洲五月天| 99热性色| 高清a片基地| 大香蕉久操| 九九热这里只有精品一| 欧美婷婷丁香五月| 欧美成人在线观看| 色444综合网| 国产精产国品一二三在观看| 国产成人+综合亚洲+天堂| 午夜婷婷久久| 丁香婷婷大香蕉| 婷婷色影院| 这里只有精彩视频| 99色在线观看视频者| 人妻久久久久久久| 色婷婷色丁香色欲av| 无码日本精品XXXXXXXXX| 大香蕉婷婷久久| 丁香六月激情综合| 亚洲成人无码专区| 99精品手机在线视频| 五月丁香综合啪啪| 日本nghangse中文字幕| 五月婷婷啪啪啪啪| 五月婷婷三级| 六月天婷婷| 99视频自拍| 国产欧美日韩综合精品一区二区| 99热亚洲| www.91热久久| 久久最新色| 色播丁香| 草综合14| 99国产精品久久久久久久久久久| 桃色成人网| 9色天堂| 综合久久五月天| 99色区| 色在线免费观看| 五月开心啪啪| 日日操夜夜操狠狠操| 99婷婷色| 六月丁香中文字幕| 那里有AV网址| 五月婷婷啪啪综合网| 深爱激情五月天色婷婷| 五月婷综合网| 婷婷在线视频| 小色小蛇伊人婷婷色香五月| 另类国产区| 久久精品性爱视频,| 婷婷六月色情| 天堂婷婷丁香六月网| 丁香婷婷九月在线| 色婷婷狠狠18禁| www.伊人天堂偷偷婷婷| 这里只有精9| 五月天婷婷激情干干| 色色色色色级无码| 亚洲综合1024| 国产美女主播vip| 99re热| 色婷婷激情| AA片在线观看视频在线播放| 激情五月天婷婷| 婷婷色色色| 婷婷五月天视| 九久9精品| www五月婷婷| 99色6爱9热| 天堂亚洲 在线| 亚洲精品操一操、噜一噜、摸一摸、爽 | 五月婷婷无码专区| 色色婷婷丁香| 这里只有精彩小视频视频网站| 成人 视频免费观看网站| 在线看av| 在线A色| 五月丁香啪啪网| 欧美精品在线观看| 综合xx网| 久久五月激情综合| 超碰93在线观看| 亚洲九九免费| 国产精品国产成人国产三级| 欧美WW在线网| 婷婷五月天在线视频网站| 亚州AV超碰人人操| 91色综合久久| 99热这里只有精品在线播放| 任你艹| 好大好粗嗯啊-一级黄色大片免费观看-成人AV | 伊人久久综合| 色婷婷的五月天| 精品久久久中文字幕大豆网推荐理由| 色天天久婷婷| 亚洲欧美在线观看| 日日爱678| 婷婷色丁香五月| 亚洲色色五月| 日本久久人| 这里只有九九精品| 五月天婷婷基地| 日韩啪啪视频| 伊人狠狠丁香婷婷综合尤物| 亚洲色婷婷网站| 国产激情综合五月久久| 女人天堂久久| 五月天综合在线| 91九色精品| 五月深爱婷婷| 九久九精品| 婷婷久久久| 大香蕉五月丁香| 99热国产精品| 91窝窝| 乱色色色| 欧美WW在线网| 无人精品在线视频| 日本高清久| 玖玖99免费视频| 99热人人操人人操| 激情网婷婷五月天| 夜色综合网| 婷婷五月天亚洲五码| 夜夜爽77777妓女免费下载| www狠狠com| 亚洲狠狠婷婷综合久久久| 九九激情视频| 久久精品五月天| 久热99热| 人人亚洲| ztEJj| 婷婷中文字幕版| 日日天天干| 成人精品一区二区三区四区五区 | sS丁香五月婷婷| 久久五月视频| 深爱婷婷网| 五月婷婷婷| 在线综合亚洲欧美65| 久久婷婷视频| 97干在线视频精品店| 激情综合5月| 开心五月网 | 99久视频| 丁香综合伊人| 伊人五月天久久| 婷婷综合五月| 91超级碰碰碰| 操操操97| 8090在线影视少妇| 无码区婷婷五月花开| 操人精品| 久8色色| 五月丁香综合久久夜夜| 丁香五月六月欧美| 影音先锋四区| 五月天激情四射| 99热这里只有精品官网| 蜜臀av 粉嫩av 懂色av| 99re这里| 天天插综合在线| 久久综合九九| 五月天激情网站| 久99热在线观看| 99热综合| 色婷婷a v| 欧日美女Va| 亚洲色图啪啪| 大陆极品少妇内射AAAAAA| 丁香六月婷婷一区| 五月天综合区| 九九re精品视频在线观看| 五月天激情网图片| 伊人网色婷婷五月天| 91呦呦呦| 婷婷无码视频| 狠狠色综合精品视频在线| 亚洲午夜AV| 婷婷六月激情| 亚洲精品性色| 人人操Av| 欧美色色色色色| 激情人妻蜜夜系列区| 九九一综合精品| 97色婷婷在线观看| 综合激情九月婷婷,激情综合婷婷中文字| 中文AV在线播放| 激情影院免费视频婷婷五月天| 黄网在线播放| 99精品视频偷拍| 婷婷五月天激情综合| 国产精品第一国产精品| 五月丁香基地| 人人色人人摸人人看| 天天色天天日| 久久99美女精彩视频| 色婷青青| 97色色色| 五月天婷婷成人网| 99激情视频| renrencaoav| 色色操| 九九九九九九综合| 国产操B| 色综合色色| 丁香激情综合| 天天摸天天日天天舔| 综合av在线| 97色碰| 热久久99热欧美国产亚洲| 综合色色综合| 一二区成人电影| 亚洲AV成人无码精品| 狠狠激情五月天| 婷婷天天插天天爱| 91热er| www.色婷婷.com| 五月天婷婷激情四射综合| 射久久丁香五月| 激婷网| WWW色色色COM| 久久97| 99久久国产宗和精品1上映| www.9797国产| 人人添人人| 激情综合网激情五月婷婷| 综合性视频99| jiujiu热在线视频| 国产超碰在线| 99久久99久久综合| WWW·天天操·视频?| 91人人爽人人操| 国产在线网| 欧美人与性动交CCOO| 狠狠狠色激情综合适合| 久久草婷婷丁香网站| 久久婷婷91| 婷婷午夜精品久久久| 丁香五月天大香蕉啪啪| 色爱综合网| 香蕉久久国产AV一区二区| 99热这里只有精品最新地址获取| 亚色网站小视频| 天天综合.com| 天天噜噜| 99热欧美| 91精品激情9| 五月天色小说| 综合www色| 婷婷综合色网| 大香av| 91九色国产熟女| 日韩av在线免费观看| 二人电影免费版在线观看| 亚洲AV第二区国产精品| 亚洲区1| 久久婷中文字幕| 国产操B视频| 九九色热| 人妻尝试久久久久久久久久久久| 第二色AⅤ| 人人综合五月人人婷婷| 丁香五月色综合色播五月| 婷婷九月激情| 久久婷婷五月综合激情国产| 婷婷八月激情| 色五开心五月五月深深爱| 婷婷丁香视频| 区美毛片子| 婷婷五月天亚洲| 国产XXXX搡XXXXX搡麻豆| 激情综合激情综合| 大香蕉综合在线| 色色色热| 亚洲一级AV在线免费播放| 偷拍九九热| 99亚洲精美视频在线观看| 色色色色色色色色色色色色色色,网站| 综合网网欲色| www.sd-xiangsu.cpm| 热的五码久久精品| 夜夜夜夜撸夜夜操| 97自拍视频在线| 无码一区二区三区四区五区91c| www超碰| 国产又色又爽又黄又免费| 伊人久久五月天| 综合激情五月丁香| 激情6月| 99ri精品视频在线观看| 996热re视频精品视频| 一区视频网站| 激情五月丁香六月| 99国产er热视频| 99自拍视频| 精品久热| 伊人久热91网| a v色婷婷| 操日视频| 婷婷亚洲在线| 亚洲色婷婷激情| 五月婷婷丁香在线视频| 色婷婷色五月色丁香| 深爱网深爱综合网| 色婷婷视频| 97操碰免费视频| 天天狠天天狠| 这里有精品| 99热在线观看| 日韩色色小视频| 夜夜操天天干| 婷婷色色欧美综合网| 琪琪狠狠干| 永久思思热在线| 免费观看的av| 欧美顶级少妇做爰HD| 超极99精品| 色欲影香| 深爱五月激情| 4399精品一区二区| 狠狠干在线视频| 99re这里只有精品免费| 五月婷婷激情视频| 久在热99| 亚洲在线综合| 婷婷中文字幕在线| 开心婷婷五月中文字幕组| 99热99热在线观看| 九九综合九九| 国产综合婷婷| 67194中文字幕| 激情伊人五月天| XX久久| 婷婷射婷婷舔| 成人无码精品1区2区3区免费看| 3p九色在线| 开心激情色婷婷五月天| 久久少妇视频| 色开心五月丁香| 人人视频色| 99热日| 大香蕉75线| 九九久热| 久草五月婷| 噜噜久| 狠狠狠狠狠狠草| 五月色婷婷AV| 婷婷五月天在线观看| 9久热在线视频| 97色色婷婷| WWW.99热| 思思热国产视频| 一级性爱视频| 亚洲VA欧美VA| 日日干天天爽| 色99视| 亚洲五月婷婷| 五月丁香六月婷婷a v| 中文在线成人| 无码人妻电影| 激情综合网激情五月天| 九九九九国产| 日良久久| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 成人做爰高潮A片免费视频| 日日操夜夜操无码免费| 另类激情五月天| 日韩ww| AV五月婷婷露脸| 丁香婷婷老熟女综合网| 激情婷婷丁香五月天小说| 久色中文| 婷婷综合偷拍| 婷婷六月五月天综合| 超碰成人免费| 婷婷五月天六月| 狠狠狠狠青草| 婷婷色婷婷| 美欧日韩国产成人在战| 日韩精品色| 影院久久久| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 久久99激情丁香婷婷小说网| 伊人九九68| 亚洲九九99精品视频在线播放| 狼人婷婷综合| 亚洲日韩人妻操逼| www网站在线观看| 另类小说激情五月天| 婷婷五月天av| 五月综合777| 江苏少妇性BBB搡BBB爽爽爽| aⅤ79成人片| 色色亚洲| 天天干电影| 色欲av伊人久久大香线蕉影院| 五月丁香淫淫婷婷婷| 天堂婷婷综合| 五月丁香六月婷婷国产视频| 第1影院之五月婷婷| 99热色在线精品| 八戒青柠影视剧在线观看| 99爱视频精品| 婷婷中文综合网| 久久婷婷色综合| 无码网| 97色碰碰公开视频| 丁香五月综合| 99热97| 狠狠五月激情在线| 9久9久| 色婷婷基地| 人人干av| 丁香六月激| 99色在线观看视频者| 色情婷婷| 亚洲AV另类| 丁香六月婷婷久久综合| 天天射天天射一道本日本社区| 日韩成人网址| 影音先锋91| 色色色色色色97| 日韩一级A片黄色| 色综合激情图区| 五月天婷婷乱论小说| 婷婷六月丁综合| 亚洲五月婷婷| 91干在线| 激情色情五月天| 五月天日日操夜夜操 | 色色国产| 久久久.COM| 岛国av电影网站| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 色婷婷色和| 天天干天天拍| 亚洲色模骚货| 思思久久96热在精品国产,| 久热99狠| 双性美人被调教到喷水A片| 五月婷婷啪啪| 亚洲熟女色| 五月婷婷精品视频| 另类丁香五月天区图| 狠狠色狠狠操| 2w在线视频| 色5在线| 欧美日韩成人h| 欧美成人精品A片免费一区99| 天天综合久久| 色色婷婷婷丁香五月天| 久久激情五月| 色婷婷精品视频| 欧美VA在线观看| 99免费视频久久| 五月丁香好婷婷A片网| 另类小说五月天| 亚洲欧美综合7777色婷婷| 中文网AV| 武则天精品久久| 精品99视频| 亚洲电影中文字幕| 97超碰9久热婷婷热| 久热伊人| 99人人精品| 国产亚洲色婷婷久久99精品9j| 亚洲天天操| 青青草成人网| 中文字幕丰满人妻无码专区| 五月丁香六月色情网欧美| 中文字幕视频色婷婷| 99ri在线观看视频| 极品另类| 丁香婷婷六月天| 9热在线观看| 丁香五月婷婷基地| 五月色丁香国产在线视频| 成人免费在线电影| 伊人碰碰婷婷| 超级碰91| 在线观看亚洲视频影院| 亚洲无码免费看| 4438亚洲欧美| 色色综合网www| 亚洲正能量欧美| 欧美色五月| 色婷婷六月| 亚洲综合色色色| 色优久久| 婷婷九月丁香中文| 4399高清无码视频| 97超碰在线观看免费| 丁香婷婷综合激情五月色| 99精品一二三四视频| 99热的无码| 五月天另类视频| 婷婷五月美女直播| AA丁香综合激情| 91久久网站| 婷婷五月丁香五月基地| 人妻精品在线| 激情五月色播五月| www.射伊蕉婷婷| 婷婷丁香五月综合激情视频| 99色婷婷| 天天色中文字幕女优AV| 日本色婷婷| www,奇米影视| 亚洲婷婷激情综合激情999精品| 玖玖色综合| 少妇高潮A片无套内谢麻豆传| 涩丁香91| 色狠狠色噜噜AV天堂五区| 色婷婷六月| 色狠狠综合网| 老师的粉嫩小又紧水又多A片视频| 色玖玖| 97碰碰在线观看视频| 色婷婷丁香香香蕉视频| 色婷婷五月婷婷五月婷婷五月| 婷婷五月天激情网址| 五月婷婷色色色| 婷婷综合五月激情| 亚洲五月天另类小说图片| 狠狠插日日干撸| 成人国产综合| 丁香花社区av| 亚洲不卡| 五月综合色播播丁香婷婷| 婷婷五月天激情小说网站| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 天天舔天天插天天干| 777.色色| 天天爽夜夜爽夜夜爽精品视频| 99热中文字幕久久| 九九色影视| 四月婷婷丁香| 熟美女麻豆| 精品99在线观看| 丁香 婷婷 亚洲 熟女| 激情五月图| 人妻操逼视频| 五月天婷婷激情| 国内久久久精品99| 色婷婷五月天天天天天天天天天| 巴基斯坦粉嫰无码视频| 天天日天天干天天插天天射| 日韩AV色色色| 深爱五月激情| 亚洲Av成人在线观看| 99er热精品视频| 99爱免费在线观看| 亚洲AV日韩无码| 99久久婷婷国产综合精品| 99人人爽| 美女五月激情| 婷婷中文无码| 99色视| 日本婷婷丁香五月| 日本99视频| OUMEIRIHANCHENGREN| 日本久久极品| 激情宗合哪里能看| 九九99九九99| 色青青电影色五月| 欧美成人无码高清一区二区三区| 五月激情基地| 无码日本精品XXXXXXXXX| 91在线97视频| 激情综合5| 久操97| 9色天堂| 婷婷精品在线| 亚洲精品无码一区二区| 激情婷婷五月综合| 色综合xx| 国产看真人毛片爱做A片| 伊人大香蕉毛片| caopeng97日韩| 中文字幕黄色片| 一区二区成人电影| 五月丁香婷婷欧美| 91精品国产色猫| 韩国三级五月天婷婷。| 丁香五月电影| 国产成人亚洲综合亚洲| 丁香五月天在线观看视频| 亚洲人成人五月天| 欧美日韩成人h| 天天综合永久| 欧美婷婷色| 欧美激情中文字幕| 99热99美国在线观看| 婷婷五月天成人| 综久久久| 久久人妻视步| 色色色色色日韩午夜激情 | 丁香五月手机在线| 玖玖婷婷婷丁香五月| 狠狠色五月激情| 五月婷婷啪啪| 26uuu国产色| 91黄址| 91精品无码| 综合色五月| 亚洲精品国产setv| 色99在线| 丁香五月综合在线| 日韩三级高清无码| 蜘蛛女侠2003满天星免费观看| AV九九| 婷婷5月天激情综合| 停停五月色宗合| 色婷婷丁香花五月天| 激情欧美婷婷| 99国产精品久久久久久久久久久 | 99热精品在线观看| 亚洲天堂AAA| 久久久99精品| 热99色| 五月丁香综合激情网| 蜜桃人妻无码AV天堂三区| 99久在线精品| 操碰97| 色婷婷丁香中文在线播放| 99亚洲视频| 天天摸天天舔天天爽| 99精品在线观看| 五月天激情综合网站| 色噜噜狠狠色综合网| 强奸幻女毛片| 91精品久久久久久| 天天日夜夜草进麻麻的子宫| 婷婷色五月激情强奸四射| 亚洲另类AV| 亚洲视频五区| 亚洲精品操一操、噜一噜、摸一摸、爽 | 亚洲欧洲美女在线观| 国产视频久色| avh片在线观看| 91九色中文| 五月天激情偷拍| 欧美日韩99| 人妻尝试久久久久久久久久久久| 婷婷五月丁香基地| 六月婷婷狠狠| 久久精品五月| 婷婷色婷婷| 六月天六月婷| 五月丁香无码| 天天插操| 97热视频| 色久综合天天做视频| 婷婷综合性爱网| 国产精品成人AV在线| 干一干xxxx| 性爱久久| 成人电影在线免费试看| 99久久婷婷国产综合| 久久精品99| 五月花丁香婷婷| 日韩九区| 婷婷五月超碰| 色一情一乱一乱一区91Av| 天天激情夜夜干| 开心六月丁香五月婷婷| 婷婷五月天伊人在线| 玖玖精品视频99| 国产精品99久久久久久久女警| 婷婷五月色| av九九| 婷婷五月天亚洲综合网| 天天做天天爱天天做| www.色色色com| 五月婷婷黄色毛片| 婷婷五月视频| 激情五月天综合网| 五月婷婷激情视频| 六月五月久久丁香| 色色狼人综合| 久久久久久久久久久久久9| 色色吧综合| 伊人婷婷福利网| 夜夜躁婷婷AV| 色综合激情| 深爱五月天 开心网| 一区无码| 亚洲成人AV高清字幕| 丁香五月婷婷88在线| 天天肏在线视频| 激情综合婷婷| 色婷婷综合久久久久| 激情五月深爱五月| 中文精品在| 亚洲啪啪自拍| 超碰免费在线| 狠狠五月天| 婷婷永久在线| 亚洲精品视频电影| 噜噜国产| 亚洲丁香五月天视频| 99色这里| 色情五月| 99热69| 美女91一起草| 九九人人看| 成人AV综合在线| 7777国产盗摄农村女人| 九九热在线视频| www.久9| 婷婷在线日韩综合| 91丨九色丨丰满人妖| 色综啪啪网| 激情六月天| 六月丁香好婷婷| 婷婷久久五月| 成人精品视频99在线观看免费| 97人妻碰碰碰久久| 五月婷婷激情网| 五月婷婷丁香| 色欲色香综合网| 99综合免费视频| 五月激情另类| 2020久久婷婷五月| 激情综合网五月天天| 五月丁小婷婷激情四射| 九九热视频精品| 120分钟婬片免费看| 一区二区三区四日本| 国产午夜精品一区二区| 婷婷五月AV| 色爱99| 婷婷丁香人妻天久久| 日韩色色小视频| 激情五月丁香五月色| 最新婷婷五月丁香| 久操大香蕉| 亚洲欧洲另类| 婷婷成人五月天一区| 色五月色情| 啪啪东京热| 色播五月天婷婷老师| 婷婷五月性感| 99热大| 91人在线观看| 久久久久久婷| 五月婷婷人人人操| 都市激情五月婷婷综合| 天天草人人摸| 婷婷激情五月天在线| 日日天天操| 中文网av| 99亚洲日韩| 亚洲综合视频在线| 久久AAAA片一区二区| 日韩在线99| 啪啪啪大香蕉| 爱狠射| 国产一级片| 国产精品蜜臀99| 大香蕉婷婷久久| av国产精品| 日韩精品电影| 色婷婷精品小视频| 99精品在线观看视频| 噜噜狠狠色综无码久久合欧美| 停停五月丁香| 天天爽夜爽| 日本在线观看aaa 99| 怡春院天天干| 丁香六月婷婷开心| 99精品小视频| 五月天丁香网| 欧美操综合| 99热20| 久久天天| 爱超碰性| 中文字幕在线观看视频www| 国产伦理精品高清在线观看网站一区二区| 五月激情基地| 日日操日日撸| 99ri视频在线观看| 婷婷六月丁香1| 大香蕉免费9| 丁香五月天婷婷久久| 天天日夜夜草进麻麻的子宫| 五月婷婷乱| 成人精品在线观看| www.婷婷五月天,com| 六月婷欧美| 五月永久激情| 天天综合在线网| 97操碰人人| 日本九九热| 色五月婷婷老师| 婷婷综合影院| 五月丁香婷婷三级| wwwss在线观看| 丁香五月手机在线| av操一操| 中文字幕无码AV| 丁香六月啪啪| 婷婷色在线播放| 色色综合网。| 九九爱看亚洲| 亚洲成人免费电影| 9l视频自拍九色9l视频自拍九色9l社区 | 丁香六月婷婷久久高清| 欧美日本综合网| 五月天色色婷婷| 日本三级片片| 久久色五月天综合网| 婷婷99视频精品| av超碰在线| 伊人久久五月天| 国产乱子轮XXX农村| 久久99jiu9| 开心五月色婷婷综合开心网| 另类精品视频在线观看| 欧美大片| 99热免费网站| 九九Av| 激情综合网址| 91狠狠色色丁香婷婷综合久久| 天天日天天色| 色色色色色色色色色色色色色色,网站| 狠狠操天天操天天操| 色五月 五月婷婷| 大香人妻| 日韩在线五月天婷婷| 国产精品电影| 久久久久9| 色狠狠色| 九九五月天| 色欲丁香| 亚洲av网站| 国产 亚洲 在线| 色色色综合色| 久久五月网| 一级性感黄色内射视频| 久久婷婷五月综合色丁香| 26uuu精品国产| 六月丁香婷| 久久丁香五月天| 99国产小视频2013| 久热婷婷| 丁香狠狠| 午夜不卡久久精品无码免费| 91欧美| 超碰99在线观看| 夜夜骑夜夜撸| 色五月无码| 99激情视频| 日韩无码人妻一区二区三区综合 | 五月丁香六月色| 婷婷五月色播网| 亚洲1区| 五月综合亚洲| 六月丁香婷婷爱| 丁香色婷婷五月天| 国产精品色婷婷99久久精品| 亚洲成人噜噜| 97在线干| 午夜成人AV在线| 久久久妻人人人| 色爽干| 久久九九视频| 99噜噜| 六月婷婷开心| 颜射 精品性爱av| 大香蕉网 久久| 日韩在线观看亚洲| www.天天色综合| 双性美人被调教到喷水A片| 综合激情五月天| 搡BBBB搡BBB搡18| 色狠狠色噜噜噜a天堂一区| 天堂成人A片永久免费网站 | 久综合网| 激情伍月 欧美| 久久久久久久久久久久久久久久久精典| www.99情趣网| 丁香六月啪啪啪| 北京熟妇搡BBBB搡BBBB| 久久最新色色色| 激情五月黄色| 欧美性爱五月天| 亚洲性受XXXX五月丁香| av狠狠操| 99热最新网址| 久久五月激情综合| 久久久国产精品黄毛片| 五月丁香啪啪激情| 97婷婷久久丁香| 操碰97| 五月天激情.com| www.五月天色色.com| 99re在线精品视频| 婷婷五月天在线观看| 天天日天天做天天舔| 日本精品99| 国产亚洲色婷婷久久99精品91| 任你爽免费视频| 婷婷五月天xxx| AV免费在线网站| 亚洲操人| 五月天精品| 人人澡天天色天天做| 天天射天天射一道本日本社区| 99原创自拍视频在线观看| 天天爱天天做天天舔| 婷婷97碰碰| 一起草日本| 婷婷六月丁香色| 五月天开心网| 天天日天天草| 丁香久久AV| av在线免费网站 | 九艹在线| 深爱激情网噜噜色| 色播婷婷大香蕉| 激情综合五月丁香六月婷婷| 99国产性感视频| 66精品国产成人| 久久久人人操A V| 99国产精品久久久久久久久久久 | 9999色色色色| 色欲久久综合| 婷婷五月丁香激情图片| 黄色成人网站在线播放| 色性综合| 午夜丁香六月婷| 亚洲欧洲另类图片| 亚洲a色| 国产欧洲欧洲精品久久| 色五月天激情| 九九超碰人人| Www.sesese丁香| 五月天精品| 色天堂在线| 五月激情网站| 激情播丁香| 99热伊人| 五月天婷婷香蕉狠狠超碰综合| 婷婷五月激情网| 超碰97干| 色婷婷久久综合中文久久一本| 欧美视频五区| 婷婷日本色| 超碰人人插| 国自产拍偷拍精品啪啪一区二区| 五月亭亭综合五码| 久久婷婷网| 黄久久久| 超碰色人妾| www.夜夜爱.com| 欧美丰满熟妇BBB久久久| 婷婷婷婷色| 色小说五月婷婷| 亚洲综合视频天天精品| 强奸幻女毛片| 90色免费视频| 超碰免费人| 成人无码精品1区2区3区免费看| 狠狠插狠狠插| 亚洲狠狠干| 五月播播| 五月天成人小说网| 色婷婷五月天天天干天天操天天爽| 欧美精产国品一二三区| 免费超碰在线观看| 麻豆WWWCOM内射软件| 五月丁香好婷婷A片网| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 丁香六月AV| 亭亭玉立国色天香| 99亚色色色| 五月六月播婷婷| 色性综合| 五月婷婷 欧美| 99爱在线| 中文字幕簧片| 热久久国产视频| 五月丁香六月综合激情网| 中文字幕,综合,91| 色婷婷成人色网| 亚洲一二三网| 五月婷婷亚洲综合在线| 色婷婷影视| 99爱视频| 99干日日干| 午夜成人av在线| 超级碰91| 99超级碰碰| 色五月激情| 久久久久98| 影音先锋91在线资源站| 狠狠人人| 久久久久98| 人妻激情久久| 久久五月天婷婷| 可以直接看的AV网站| 99热综合在线观看| 成人精品在线观看| 色五月婷婷激情| 天天综合久久| 婷婷激情综合色五月久久图片| 色五月涩涩婷婷| 婷婷六月激情啪啪| 丁香婷婷色色| 天天综合网~91| www.色婷婷| 天堂综合久| 五月婷婷六月奇米网丁香| av在线免费播放观看| 开心婷婷丁香五月| 色情丁香五月婷婷精品| 激情五月黄色| 婷婷五月综合色中文字幕| 婷婷五月天天激情| 午夜成人综合| 婷婷四月 成人 狠狠干| 色婷五月| 99碰碰| 中文字幕 久久9999| 26uuu欧美亚洲日韩| 婷婷激情蜜桃玖玖丁香| 狠狠擼综合| 日本人人xxx| 日本三级中国三级99人妇网站| 欧美婷婷日本| 99色热| 久热在线观看视频9| 亚洲乱码日产精品BD| 国产精品久久久久9999小说 | 精品人人操| 久久婷婷五月综合激情国产| 性 色 婷婷| 欧美五月丁香| 丁香五月色| 91n网站cad入口在线观看| 大香人妻| 影音先锋按摩| 思思热高清在线观看| 99热这里只有精品青草| 色五月天综合网| 内射综合网| 九九9久九9国产视频| 国产毛片操B| 欧美日本国产欧美日本韩国99| 99人人干| 丁香六月亭亭久久综合| 人。妻久久| 再次出发二| 97超碰人人操| 色综合久久88色综合天天99| 无码AV久久久久久久久| 夜夜骑夜夜操| 色综合另类| 久久综合66| 色大综合| 色哟哟精品| 97人操| 日韩一级| 麻豆五月丁香婷婷| 丁香五月先锋| 久久久人妻人伦| 丁香五月天信号| 色婷婷五月天亚洲| 九月色婷婷| 精品久久久人妻| 国产美女无遮挡裸体毛片A片| 丁香婷婷五月激情| 九九精品亚洲| 97色色色色色| 久久久com| 欧美丰满熟妇BBB久久久| 婷婷五月综合社区| 成人 在线 日韩| 五月丁香激情综合网| 婷婷情色五月天| www.久久| 婷婷丁香六月综合激情站| 欧美六月婷婷| 婷五月天六| 婷婷丁香激情综合色情| 成人片在线免费看| 超碰97免费在线| 色情五月天小说| 丁香五月天欧美| 亚洲日日日| 久草大| 国外亚洲成AV人片在线观看| 97九色| 婷婷六月色| 伊人喵咪a V| 国产亚洲99久久| 66精品国产成人| 九九九九九九九热| 日本狠狠干| 99热18| 婷婷WWW久久| 婷婷精品免费久久| 91操操操| 能看的av| 另类少妇人与禽zOZZ0性伦| 激情五月天影院| 五月丁香六月片| 日本97在线视频| 69五月天视频| 婷婷五月天六月丁香| 丁香六月情| 九九色综合九九色| 91碰免费视频| 久大香蕉| 狠狠色激情综合| 色呦呦美女| 超碰在线网站9| 久久9久| 91在线就要啪| 99在线观看免费精品视频| www.色窝| 久热在线中文字幕色999舞| 国产老熟妇亲子乱对白| 热的无码综合视频| 丁香六月婷婷缴情欧美| 亚洲综合九九| www夜夜| 成人精品一区二区三区四区五区 | 丁香五月五月婷婷欧美大香蕉| 六月婷婷啪啪| 欧美99视频| 色婷六月| 色综合色五月| 婷婷五月丁香综合| 26uuu最新地址| 丁香六月天婷婷在线| 亚洲国产色色| 丁香九色不卡aaa| 五月婷婷丁香俺日污视频| 丰满少妇乱A片无码| 亚洲综合在线伊人婷| 丁香五月激情网| 九九热99视频在线| 久久性爱视频| 婷婷五月丁香六月伊人网| 啊v视频在线观看| 国产精品久久99| 欧美性猛交99久久久久99按摩| 亭亭色色五月天| 色五月欧美| 特黄三级片| 婷婷九月色| 玖玖@三月天天丁香婷婷| 精品AV无码超碰| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 99精品视频偷拍| 激情综合色网| 狠狠香婷婷五月| 婷婷色色狠狠| www.五月婷婷| 亚洲成人另类| 激情五月天在线视频| 91碰碰视频| 婷婷五月精品中文| 日日夜夜综合| 影音先锋五月婷婷| 色欲丁香久久| 国产又粗又大又爽又黄| 熟妇高潮一区av| 久综合| www.99热这里精品| 99热在线播放精品| 99久久精品视频女神1| www婷婷| 强伦轩人妻一区二区电影| 五丁香激情综合| 日本精品久久久久中文字幕| 久久婷婷五| 综合色色色| 五月丁香A∨在线| 五月丁香龟婷婷| 香蕉99网| www.色色色色| 亚洲五月色| 99热99日天天干| 五月丁香六月激情综合在线| 婷婷色五月在线视频| 婷婷中文字幕网| 日本久草福利| 91九色中文| yellow视频在线观看91| 五月天婷a| 性爱五月婷| 色播五月网| 久久婷婷五月综合成人d啪|