欧美成人午夜精品久久久,国产?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
返回資訊列表
六月婷欧美| 99干在线视频| 九九视频这里只有精品| 色播五月天天| 日韩欧美一区二区三区四区| 六月婷婷综合激情| 亚洲婷婷丁香五月| 婷婷丁香无码专区| 日日影院 | 五月天六月色| 天天日综合| 狠狠色丁婷婷日日,伊人激情综合网| 婷婷成人av| 天天日天天爽夜夜爽| 这里只有精彩视| 婷婷五月天综合激情| 九97免费视频| 九一九九黄色| 中文字幕av网站| 久久久噜噜噜久久人妻| 婷婷狠狠操| 狠狠操狠狠插| 99热成人精品网站| 色哟哟www| 激情综合色| 亚洲日本激情| 欧美噜噜免费观看| 色七色九九| 久久超级碰碰| 五月婷婷无码| 五月激情婷婷开心五月| 五月婷婷免费视频| 激情五月综合网最新 | 精品网站99| 金品在线视频99| 伊大人久久| 色五月大香蕉| 亚洲激情四射色| 五月婷婷三级| 91久久久久久| aaaaaa片| 激情五月婷在线精品| 深爱激情四射| 丁香五月六月婷婷殴美综合| 日韩啊啊啊| 五月婷婷激情综合视频| www.色婷婷.com| 色噜噜五月天| 天天色播| 五月丁香六月婷| 99操碰| 五月丁香六月激情欧美综合| 91狠狠综合久久久久久| 2025超碰| 久婷婷色| 婷婷六月丁香综合| 五月丁香六月综合基地| 久综合| AV在线免费网站| 色五月婷婷色| 丁香色婷婷色手机免费在线| 婷婷色六月| 激情婷婷视频在线| 99色视| 深爱五月激情网| 亚洲V国产V欧美V久久久久久| 丁香五月自拍| 久热天堂| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | WWW嗯嗯啊啊啊啊| 国产高清av黄色看片| 九九色网专区| 中文字幕综合网| 五月婷婷av| 永久的网站AAAA| 婷婷狠狠久久| www.婷婷| 北京熟妇搡BBBB搡BBBB| 久久精品系列| 激情综合亚洲色婷婷五月| 激情五月丁香综合网站| 六月丁香五月婷婷| 激情图片婷婷丁香五月| 天天日夜夜操五月| 婷婷金品综合视频| 夫妻超碰在线| 森林影视大全,最好看的2019年视频| 乱色色色| 婷婷综合五月天| 国产精品热搜丁香五月婷婷| 五月开心久久| 欧美伊人9| 9色在线| 五月天婷婷影院影院| 日韩色色视频| 色就色94欧美setu| 人人亚洲| 九九黄色网| 日本三级第一页| 丁香五月激情网| 妻久久久久| 激情五月综合网最新| 激情床戏| 97碰免费精采视频| www色婷婷com| 操91综合网| 人妻22p| 狠色狠色综合久久| 白人荫道BBWBBB大荫道| 在线国产精品色| 丁香五月天堂| 久久综合九色综合88i| 俺也去婷婷五月天第五色| 欧美va欧美va差| 九色婷婷| 精品牛仔裤超碰| 色婷婷AV五月天| 久久免费操| 激情九月丁香婷婷| 五月婷婷精品视频| 成人免费120分钟啪啪| 色五月偷偷| 色天天综合| 在线观看中文字幕亚洲| 午夜色色色极品视频| 五月天网站亭亭| 久久人妻视频| 99干日本| A1片久久久| 亚洲第精品| 五月停停999| 九九综合九色欧美狠狠| 思思久热| 五月丁香婷婷激情四射迷人| 5月丁香婷婷激情网| 亚洲国产精品SUV| 五月婷在线观看| 可以看的av| 九月停停| 婷婷五月天影院| 亚洲正能量欧美| 婷婷五月天亚洲天堂| 99re这里只有| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 深爱激情五月天色婷婷| 免费无码毛片一区二区A片| 国产成人综合网| 秋霞AV淫| 99综合色色色| 国产精品扒开腿做爽爽爽A片唱戏 青青草国产亚洲精品久久 | 色综合色五月| 久久视这里只有精品| 亚洲精品成人| 精热在线综合网| 99热在线观看免费精品| 精品国产va久久久久| 色日本五月天| 九九久久五月天综合伊人| 国产成人精品亚洲线观看| 久久色频| 91狼友视频网页更新| 99超超碰| 色情婷婷五月天| 天堂五月婷婷| 精品久久99码| 99热日韩| 1024手机在线观看看片_日韩精品| 五月天综合在线观看视频| 成人短视频免费| 极品人妻VideOssS人妻| 亚洲中文字幕av| 丁香五月手机在线| 六月色丁香中文字幕| 99在线播放| 激情图片久久| 婷婷在线操| 影音先锋自拍网| 六月丁香社区| 国产伦理精品高清在线观看网站一区二区| 激情内射人妻1区2区3区| 狠狠干五码| www.91AV.COM| 婷婷五月天伊人| 亚州视频九九99| 精品九九婷婷| 国产99久久久国产精品免费看| 丁香五月宝贝激情网| 国内自拍1区| 天堂综合久| 天天天天天天天干| 色婷六月| 67194线路二在线观看| 久久精彩免费视频| 天天久久综合| 超碰av在线| 亚洲视频在线观看| 99re66热这里只有精品| 色吊操色妞| 丁香色五月 97干| 婷婷成人五月天一区| 欧美日韩成人高清在线| 国内自拍97在线| 99干日本| 思思热视频| 另类的婷婷| 极品五月天| 色五月av| 996热| 五月天伊人手机在线播放AV| 综合激情网五月激情| 色吊丝99| 亚洲岛国电影| 成人做爰A片免费看视频| 久久五月天色| 深爱五月亚洲| 狠狠干2007| 大香蕉久久久| 99热费观看| 丁香情色五月| 亚洲精品无人区| 久久久激情视频| 丁香五月综合网亚洲综合欧美狠狠| 国产超碰在线| 9999三级片| 99爽视频| 中文字幕激情综合| 婷婷五月天开心激情网| 婷婷免费无视频| 色五月天丁香婷婷| 五月天婷婷激情在线色图| 中文字幕丰满孑伦无码专区| 天天玩夜夜操天天爽| 日逼影音先锋男人资源站| 97人人干人人操| 五月婷婷福利| 精品综合五月| 色五月激情综合| 婷婷久久综合久| 9热在线视频精品| 精品一二三区久久AAA片| 中文字幕成人影视| 人妻久久久久久| 伊人五月网| 狠狠五月天婷婷| 成人精品在线| 九九亚洲视频| 人妻操逼视频。| AV在线收看| a网站免费观看| 大香蕉精品视频| www.超碰在线| 乱码操操| 99思思| 99爱视频| 五月丁香操婷逼| 99视频在线精品| 婷婷五月天堂| www.yw色| 国产亚洲在线| 五月开心网| 久久人人九九| 色婷婷www| 狼人久草| 日本人妻A片成人免费看片| 色综合激情| 97五月天| 日韩成人av在线| 超碰资源在线| 婷婷五月天色色| 五月色丁香| 人人摸人人搞| 久久综合久色欧美综合狠狠 | 人人干AV| 婷婷六月久久综合导航| 婷婷五月天伊人| 99re这里| 五月丁香六月| 激情五月天社区| 婷婷五月天av| 久久桃花网色婷婷| 免费人人操| 99久精品| 五月婷婷六月丁香激情综合网| 五月人妻婷婷| 狠狠摸狠狠摸| 999热这里只有精品| 久久婷婷成人综合色怡春院| 男男野外做爰全过程69| 六月婷婷色色色| 丁香五月中文字幕| 日韩欧美四五区| 激情综合另类| 日本啪啪天堂| 五月开心播播网| 国产黄色大片| 激情宗合哪里能看| 丁香激情综合| 婷婷五月天成人| 女人被躁到高潮嗷嗷叫小| 97超美国视频在线观看| 国产片天天爽夜夜爽| yazhou seshipin| 久久婷婷五月草视频| 色婷婷社区| 51XX午夜影福利| 五月天激情小说网| 日本97在线视频| 丁香五月网站| ji'qi'luan'ren'lun| 99激情| 天天弄天天操| 亚洲成人中文字幕| 大伊久久| 五月天色婷婷综合| 色一情一乱一乱一区9| www.99热| 97干婷婷| 久久只有精| 丁香涩涩爱| 狠狠做婷婷| 丁香五月狠狠在线观看| 大香蕉精品视频| 天天综合天天玩夜夜玩天天玩夜夜玩 | 久久婷婷青草五月天| 久久成人综合五月天| 色爱亚洲| 超碰亚洲欧美| 欧美婷婷六月丁香综合色连续高潮抽搐| 丁香五月婷在线观看| 婷婷五月天成人| 丁香五月-激情综合| 色五月婷婷操逼| 五月丁香六月欧美综合| 五月丁香婷婷色| 色色影院黄大片| 六月激情久久婷婷| 五月丁香久| 超碰九热| 色婷婷丁香女女| 亚洲成人免费电影| 夜夜躁爽日日| 91色色色18| 丁香五月婷婷激情蜜桃| 午夜伊人大香蕉| 玖玖资源站国产| 婷婷色播婷婷| 中文字幕永久免费| 曰曰久久| 成人婷99最新| av在线观看网站| 久热视频这里只有精品| 久久99jiu9| 99爱免费在线视频| 国产精品美女久久久久AV超清| 日本九九九九| 草草视频91| 另类 在线| 婷婷 色 丁香 夜| 丁香五月天大香蕉啪啪| 六月天丁婷婷| 欧美97超碰| 婷婷开心青青草| 白人荫道BBWBBB大荫道| 2025最新亚洲激情在线| 夜夜操加勒比| 夜夜撸天天日| 另类亚洲电影| 色五月丁香网| 热久69| 丁香五月色欲| 婷婷综合九月| 午夜成人综合| 亚洲av免费在线| 五月丁香综合啪啪| 日本色噜| 一本色道久久88加勒比| 婷婷五月天日本无码| 欧美一级a| 色婷婷五月天激情在线观看| 人妻激情视频| 91综合在线| 色区久久| 久久99这里只有精品视频| 91国产精品视频播放| 五月天久久丁香| 在线观看欧美3区| 五月丁香另类图片| 国产精品久久..4399| 色综合久久88色综合天天看| 丁香婷婷六月婷婷六月婷婷六月婷婷| 这里只有精品视频在线| 丁香九月婷婷色| 五月婷婷激情在线| 日本久热| 五月色欧洲| 五月婷九月| 久久婷婷五月天蜜桃| 美欧成人视频| 丰满人妻妇伦又伦精品国产| 欧美黄色AA片哗啦啦啦| 久99热| 国产FREESEXVIDEOS性中国| 色六月丁香婷婷狠狠干| 婷婷色五月大香蕉在线观看| 亚洲综合色婷婷| 久久激情综合| 国产亚洲色婷婷久久99精品9j| 99re这里只有| 色婷婷深爱五月| 丁香五月婷婷Av| 色丁香五月婷婷| 久久五月天合网| 婷婷最新地址| 久久色婷婷| 成人九九视频| sesesesezonghe| 5月丁香六月婷婷| 99五月婷| 亚洲黄色网址| 九九综合九九| 在线视频99| 天天日人人| 综合色色综合| 91精品国产综合久久久不卡电影| 日韩 中文 欧美| 丁香五月av在线| 91色综合网| 激情五月综合网丁| 丁香五月六月| 婷婷五月色| 综合色色婷婷| www。88热在线视频免费观看| 91N 一起草| 538在线精品| 天天草比天天爽| 婷婷五日b| 丁香五月最新地址| 亚洲免费电影2| 六月丁丁香| 欧美性爱中文字幕| 五月丁香色婷婷| 这里只有精品视频看看| 婷婷激情小说网| 91精品视频男人的天堂| 最近免费中文字幕大全高清大全1| 久热人妻| 六月久久婷婷| 天天插天天爽| 噜噜色婷婷| 白天AV月月| 九九视频在线观看视频6| 强伦轩人妻一区二区电影| www五月天激情com| 激情亚洲色图片丁香综合| 亚洲成人AV在线观看| 另类视屏| 日韩情色在线观看| 久久天堂女人| 亚洲av综合在线| 噜噜在线| 丁香五月天天久久综合小说| 色欧美一级| 久久五月婷| 99这里只有精品|v| av狠狠操| 精品人妻伦九区久久AAA片| 色色色婷婷五月天| 丁香五月天堂| 久机视频这只有精品| 综合色影| 激情五月天综合网| 久久丁香五月婷婷| 伊人综合网站| 色伊人91在线视频| 激情综合视频| 亚洲精品第一国产综合亚AV | 天天综合色综合| 超碰免费人人| 丁香五月色播中文在线播放| 五月天婷婷网站| 天天激情夜夜干| 亚洲激情五月婷婷日日| 热久久99视频| 99r这里只有精品在线观看| 99亚洲无码| 五月丁香六月婷婷视频| 色色色热| 国产成人在线精品| 99亚洲视频| 激情小说五月天| 丰满少妇猛烈A片免费看观看| 久久精品99国产精品日本| 熟女色色一区二区| 婷婷久久五月天中文字幕在线观看| 久七香蕉| 九月丁香婷婷| 黄网在线免费| 亚洲婷婷久久综合| 天天天操天天天爰| 五月丁香六月婷婷手机无线| 五月性色| 韩国真做片在线观看| 久久sp免费视频| 五月天婷婷色色| 五月丁香久久网| 色五月综合网| 成人丁香色| 99热国产这里只有精品| 九八Av| 日本久久极品| 亚洲色五月天是什么| 99热最新网址| 色婷婷六月天| 丁香婷婷欧美综合| 婷婷五月天AV网| 婷婷亚洲丁香五月| pacopacomama 070722_670 素人奥様初撮りドキュメント 103 大久保純子 | 伊人www22综合色| www超碰| 很很色丁香久久停停| 亚洲在线综合| 天天色天天爱天天爽| 色婷婷激情四射视频| 丁香五月天视频| 丁香97综合| 亚洲综合成人网| 99色热视频| 色五月婷婷综合在线| 色婷婷导航| Caop在线| 99精品视频免费观看,| 天天爽天天操| 久久99最新地址| 成人丁香色| 五月香六月婷| 一起草AV| 天堂久久精品| 国产精品人人妻人人爽| 九九综合影音先锋| 欧美日本VA| 99色性爰网络| 9色91视频| 人人操99| 婷婷五月天堂| 婷婷五月综合色中文字幕| 日日婷婷不卡| 日本婷婷| 九九热视频精品2| 日本va欧美va国产激情| 五月激香蕉网| 激情婷婷五月黑人| 婷婷五月色| 激情碰碰碰| 婷婷五月激情基地| 丁香五月成人| 6月丁香婷婷| 五月丁香六月香香蕉| 99人人干人人操| 久热这里只有精品66| 五月丁香啪| 色色色五月| 超碰精品手机在线| 99热精品在线| www久久五月com| 99激情网| 丁香五月香蕉在线| 亚洲高清在线| 国产操碰| www久久99| 亚洲永久免费| 五月丁香婷婷成人网| 猫咪伊人久久| 婷婷天堂站| 久久色情| 丁香六月婷婷久久综合| 婷婷五月天色丁香| 大战熟女丰满人妻AV| 五月丁香激情综合网官网| 思思精品视频| 九九热再线九九视频免费在线观看| 色色丁香婷婷| 99色在线观看免费| A片女女女女女女BBBB| 99热 免费| 操一区| 天天插天天插天天日| 少妇性按摩无码中文A片| 六月丁香花婷婷| 久热无码| 2025中文在线视频字幕免费观看| 丁香六月婷婷基地| 婷婷五月六| 黄色91在线观看| 五月天狠狠色| 九九色之九九色之88| 亚洲国产成人综合| 蜜臀A∨在线水帘洞| 能看的av| 有哪些A片网站| 五月婷婷婷| 九九色色网| 狠狠色噜噜狠狠色噜噜噜999| 久热91| 丁香五月欧美色综合| 欧洲综合一区| 在线观看亚洲视频影院| 丁香六月开心| 月丁香久久久| 午夜一区| 99热精品9| 激情婷| 五月丁香综合网| 日韩六十路91性交电影| 免费AV在线网址| 91碰碰碰| 激情综合网五月激情| 99九九在线观看免费| 久热久| 99热的无码| 國語久久婷| 丰满老熟妇BBBBB搡BBB| 五月丁香六月情| 99久久99久久综合| 亚洲AVwwwwwww| 国产成人综合网| 另类国产综合| 97精品欧美91久久久久久久| 97自拍视频网| 婷婷五月天AV| 深爱婷婷网| 日本婷婷网| 天堂爱啪啪| 202丰满熟女妇大| 久久色亭亭五月天| 99色视频在线观看| 那里有AV网址| 欧美乱码国产一级A片| 婷婷丁香五月综合| 99热在线只有精品| 天天日夜夜草进麻麻的子宫| 色久女| 午夜伊人大香蕉| 五月天播播| 丁香婷婷色五月| 五月婷婷激情四季| 色综合久久44| 人妻aV在线| 婷婷五月丁香综合亚洲| 五月丁香婷婷欧美| 久久99激情| 亚洲欧美一区二区三区爱爱动图| 色综合xx| 99热福利| 狼人婷婷久久| www.sebowuyue| 久久九九热38| 欧美日韩中文国产一区发布| 狠狠操狠狠爱| 色婷婷www| 婷婷五月,偷窥偷拍网| 五月婷婷六月奇米网丁香| 玖玖视频福利| 五月婷网| 久久五月激情综合| 91精品久久久久久久久| 98永久精品| AV网址大全在| 久久久久久久久久久久久久久久久精典| 99热伊人| 亚洲精品V天堂中文字幕| 九九色色| 成人AV在线电影| 99啪啪视频| 中文资源在线a| 九九無妻| 99视频在线观看网址| 五月天国产| 国产精品色婷婷AV综合色色| 婷婷精品性性性性性性性| 亚洲激情视频网| 操日本人妻视频| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 九九亚洲| 97色欧美| 色婷婷五月天偷拍| 天天色视频| 色五月五月婷婷| 噼里啪啦完整版中文在线观看| 天天干,夜夜爽| 色五月婷婷五月天| 五月婷婷激情| 婷婷情色五月| 婷婷五月天午夜激情影院| 9超碰在线| 青青久久五月天丁香婷婷| 婷婷激情四射五月天| 9久热在线精品| 成人短视频在线免费观看| 婷婷丁香激情综合色情| 天天色综合天天| 天天爽天天日人人爱| 亚洲婷婷丁香五月天激情小说| 国产美女最新VA在线免费观看| 六月五月婷婷| 99色视频| 玖玖在线视频| AA片在线观看视频在线播放| 婷婷五月综合色小姐小说| 色婷婷亚洲在线观看| 97香蕉久久超级碰碰高清版| 久热只有这里有精品| 色婷丨日丨天丨综合久久| 日日婷婷不卡| 色五月婷婷久久| 五月丁香操婷逼| 激情五月天小说网| 婷婷色情五月| 久久这里只有精品久久| 最新精品视频99| 五月婷婷婷丁香播| 天天做天天爱天天爽| 日韩AV中文在线观看| 婷婷五月综合网激情| 操一区| 婷婷五月丁香婷婷| 亚洲天堂色色| 思思re最新视频| 97五月天婷婷综合激情网| 激情小说五月天| 精品成人无码A片观看香草视频| 国产婷婷综合| 亚洲精品久久久无码| www.精品久9| 成人AV在线网站| 夜夜爽天天爽| 无码人妻AV久久久一区二区三区| 五月天婷婷激情网| 婷婷五月天伊人网在线观看视频| 婷婷五月丁香色综合| 亚洲精品视频在线| Av九九| 夜夜爽天天日| AV性爱网| 91久久电影| 亚洲狠狠婷婷综合久久久| 99综合网| www.色色色com| 99这里的视频都是精品| 九九热视频在线观看| 少妇搡BBBB搡BBB搡毛茸茸| 激情另类综合| 99热这里只有精品2| 日韩婷婷| 97操男人的天堂| 婷婷丁香五月,狠狠综合| 婷婷五月丁香五月| 激情五月色婷婷| 四色五月婷婷在线观看| 青青操绿aaa一区日v| 五月色综合| 91干网| 五月天婷婷导航| 天天爽天天日| 婷婷丁香色五月亚洲| 五月激情综合网| 久久44| 五月丁香久久精品在线观看| 97色婷婷成人综合在线观看| 色婷婷性爱| 5月丁香六月婷婷| 99人人爽| 色色亚卅| 熟妇内谢69XXXXXA片| 99在线免费视| 天天爱天天操| 色优久久| 五月天婷婷社区| 五月停亭六月,六月停亭的英语| 99精在线| ...婷婷五月综合不卡,国产在线手机| 五月丁香六月激情综合在线| 丁香色婷婷| 九九热这里只有精品23| 97在线碰| 99热9| 日本色色色| 久久182| 99免费视频在线观看爱| 丁香性爱在线视频| AV五月婷婷露脸| 超碰无码老师| 婷婷五月天电影区小说区| 综合久久综合五月天婷婷| 丁香五月中文字幕久色| 五月婷婷av在线| 99热亚州综合| 婷婷播5月| 大香人妻| 91九色国产在线| 操久久网| 色婷婷香蕉| 玖久精品视频9| 99操九九网| 婷婷五月天小说网| 999精品乱码77777| 婷婷五月综合在线| 久久久妻人人人| 综合AV网| 丁香五月综合AV在线| 亚洲成人AV在线| 婷婷综合| 狠狠久久婷五月综合色| 激情五月婷婷| 六月激情网| 成人五月丁香社区| 色综合五月| 久8色色| www.久9| 婷婷亚洲综合| 亚洲九九99精品视频在线播放| www.com久久久久久久久久久久久久久久久| 五月天黄色激情小说| 综合激情肏逼网| 五月婷婷中文| 五月天婷婷色播在线网| 大香蕉久久婷婷精品综合| 天堂A∨在线| 国产日韩欧美性生活| 伊人成综合五月婷婷| 婷婷五月激情网| 亚洲成人在线播放| 亚洲天堂制| www.精品99| 在线VA视频| 波多野结衣AV无码Porn| 九九精品免费| 天天爽天天干天天| 那里有AV网址| 91碰人人| 色情综合| 九九热只有精品| 久久婷婷精品| 亲子乱AV-区二区三区| 五月天大香蕉| site:publishdd.com| wWW九九在线播放| 五月婷婷啪啪啪啪| 五月婷婷与六月丁香图片激情| www.婷婷五月天啪啪| 一区二区免费看| 无遮挡国产高潮视频免费观看 | 丁香婷婷六月天| 丁香五月激情六月| 国产在线中文字幕| 91久女| 99热这里只有精品16| 26UUU精品一区二区| 久久五月人人摸| 亚洲成人网站在线| 涩涩激情五月婷婷| 亚洲综合五月天婷婷丁香| 日日狠狠久久偷偷四色综合免费 | 激情九月天天天天婷婷| 色欧美一级| 超碰在线人人| 激情婷婷色五月| 五月天六月天| 99在线观看亚洲| 超碰高清在线| 五月天丁香久久综合 | 日韩AV免费看| 精品一区二区三区免费毛片爱| 五月婷婷六月丁香在线| 日日夜夜天天爽| 99精品这里只有免费视频| 五月丁香激情婷婷| 久久精品夜色噜噜亚洲a∨| 艹B高清无码| 激情深爱五月天| 色色色色色色色色综合网| 丁香五月婷婷在线| 天天舔日日肏夜夜爽| 五月丁香九九九综合| 久久久妻人人人| 啊V视频在线观看| 一级性感黄色内射视频| 色五月自偷自拍婷婷婷婷| 六月婷婷毛片| 亚洲亚洲人成综合网络| 欧美婷婷| 婷婷成人五月天| 国产一级片| 久久丁香五月| 丁香五月天网站| 久久精彩视频| 操一操干一干| 97热精品| 91视频精品99| 久久九九网| 91精品在线看| 欧洲不卡视频| 色婷婷综合网| 天天玩夜夜操| 五月天伊人| 亚洲国产精品二二三三区| 九九色热| 香蕉婷婷五月| 九色视频九色九色91jiuseshipin| 亚洲国产精品SUV| 丁香五月婷婷图片综合| 香蕉网婷婷| 我淫我色婷婷五月天激情四射| 十二区无码| 99艹精品在线观看| www.婷婷,com| 超碰免费人妻| 一起草无码视频| wwccc久久久| 五月天色婷婷基地| 六月丁香网| 天天干一干| 丰满少妇猛烈A片免费看观看| 亚洲av另类在线观看| 91成人看| 91精品又长又大又粗又爽又猛| 大香蕉婷婷丁香天堂AV| 中文字幕在线观看视频www| 另类视频一区| 性小说五月天| 婷婷五月色亚洲| 婷婷五月丁香超碰| 日本99视频| 综合网色| 婷婷五月欧美综合| 97伊人综合婷婷| 色五月婷婷久久| 人妻操逼| 开心婷婷五月中文字幕组| www.久久久久久久| 婷婷九月色| 欲求不满的人妻| 久9热视频在线观看| 久久天天天| 天天操电影院色狼性av| 男人的天堂五月丁香| 五月丁香激| 午夜精品久久久久久久爽| 六月色 亚洲| WWW,激情五月天,COM| 五月综合六月丁| 亭亭玉月丁香| 99re6在线视频精品免费| www.九九婷婷| 久久99这里| 久久九九视频| 亚洲色五月| 99综合成人视频在线观看 | 一本色道久久综合狠狠躁小说| 亚洲超碰中文字幕| 999热在线视频| 免费播放99性爱视频| 天堂中文国产| 婷婷成人基地| 久久99婷婷| 丁香六月天婷婷开心综合| 99超级碰免费视频| www五月婷婷| 久久婷五月婷| 第五色婷婷| www.激情| 色啪网| 日本久久爱| 91超碰人人操| 久久婷婷网| 天天综合网亚洲网站| 婷婷久草| 97热这里精品在线视频| 久久久er热| 狠狠香蕉| 激情婷婷视频在线| 亚洲九九在线| 五月丁香激情综合| 特黄三级片| 五月成人网站| 天天躁日日躁狠狠躁日日躁2022年5月9日 | 亚洲综合在线伊人婷| www.色婷婷| 激情综合网激情五月丁香五月俺也去| 91天天操天天干天天射| 婷婷久久综合| 五月丁小婷婷激情四射| 六月婷伊人| 婷婷香蕉| 一区二区乱视频码| 色视五月天婷婷| 99综合在线| 欧美精品A片一区在线观看| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 超碰婷婷五月| 五月天激情国产综合AV| 欧美激情五月天| 综合激情五月天| www.9797国产| 免费超碰在线| 99这里只有精品视频| 伊人99久久| 天天色官网| 国产真人做爰视频免费| 丁香五月色播中文在线播放| 久久机热/这里只有精品| 97资源碰碰在线| 中文字幕丰满人妻无码专区| 日韩久久欧亚| 狠狠干夜夜干| 3DAV亚洲香蕉久久 一区二区| 99热无码| 日本玖玖在线| 色五月首页| 丁香狠狠操| 夜夜躁爽日| 久久99看免费| www.夜夜操| 五月玖玖| 超碰人人操在线| 操人无码| 人人爽天天爽| 热九九精品| 丰满老熟妇BBBBB搡BBB| 久久99激情| 91夫妻网站九色| 开心婷婷五月中文字幕组| 999九九九久久久99HD| 婷婷六月丁| 日本三级中国三级99| 久99综合婷婷| 99热9| 99国产在线精品视频| 国产精品国产VA片国产| 久草婷婷视频| 久久久久婷 | 久久九九99| 国产成人精品一区二三区熟女在线| www.夜夜操.con| 91麻豆国产三级精品福利在线观看| 青青草视频福利| 微拍92| 激情床戏| 五月婷婷 欧美| 超碰操日| 日本狠狠色| 久久五月视频| 婷婷五月天天| 五月婷婷丁香啪啪| 亚洲国产婷婷色五月| 99燥99日| 久久丁香五月天| 操逼国产91| 五月天综合在线| 日日射天天射| 成人免费在线电影| 无码操B| 五月天婷婷视频30| 五月丁香综合中文| EEUSS鲁片一区二区三区| 99亚洲色| 婷婷综合网| 人妻丰满精品一区二区A片| 天天爽夜夜爽夜爽精品| 激情五月婷婷啪啪| www.99视频| 另类激情网| 久久婷婷五月丁香网| 婷婷在线中文字幕| 偷拍91九色| 色五月丁香激情视频| 热婷婷在线视频| 99热伊人| 婷婷操婷婷干婷婷射| 婷婷 久综合| 激情超碰网| 久久久婷婷| 婷婷五月天美女21p| 丁香色啪综合| 玖玖婷婷精品| 三级av在线| 九九精品自拍| 亚洲精99| 久热中文字幕| 草草色情综合网| 99这里只有精品视频| 精品亚洲VA网站| 97激情五月天| 日本一毛片| 超碰免费电影| 婷婷香蕉| 大香蕉五月天| 玖玖资源站视频| 五月六月丁香婷婷在线观看| 天堂爱啪啪| 97亚洲精品| 婷婷网五月天| 91男同| 深情五月天| 天天干天天干天天干天天干天天干天天| 欧洲亚洲午夜| 亚洲色婷婷久久99精品91| 俺也去色| 丁香五月天电影| 亚洲人妻Av| 婷婷五月天基地| 五月丁香六月婷婷婷婷| 狠狠操天天操综合| 一级黄色影片| 久色网址| 啪色综合| 日韩av网站在线观看| 婷婷丁香激情五月天色色色| 另类小说五月天| 色色五月婷| www.色综合| 五月天婷婷基地| 天天婷婷| 久色五月| 婷婷六月伊人| 中文无码精品一区二区三区| 情婷婷五月天在线| 精品视频这里只有精品| 成片免费观看视频大全| 亚洲无码yw| 黑人无码一区| 激情丁香五月天图片| 免费看片操逼| 婷婷丁香五月在线观看91| 日本大人久久| 丁香婷婷老熟女综合网| 综合色、色综合| 国外亚洲成AV人片在线观看| 丁香香蕉射射射| 大地9中文在线观看免费高清 | 亚洲国产精品VA在线看黑人| A片试看50分钟做受视频| 九九九热精品| 99只有精品| 五月丁香啪啪综合| 婷婷丁香五月麻豆| 99热精品中文字幕| 色五月婷婷中文字幕| 五月激情六月综合| 99热这里只有精品66| 五月天成人综合| 天天搞天天爽| 久久国产一区二区三区| 91丨九色丨国产打屁股网站| 色欲婷婷五月天丁香| 综合网激情五月天| 日韩超碰在线| 色色综合五月| 亚洲狠狠狠色婷婷综合激情久久久| 五月天婷婷综合| 久久丁香综合香蕉| 五月天婷婷色播综合在线| 天天射影院| 亲子乱AV-区二区三区| 激情五月天啪啪视频| 91碰| 成片免费观看大全| 人妻操操色| www.五月天婷婷| 久久五月丁香婷婷| 亚洲成人五月天| 美女久久天堂| 婷综合| 五月天久久网站| 激情啪啪五月天| 最新亚洲色色网| 一本色道久久88综合日韩精品| 综合色色婷婷| 啪啪激情网| 91pornav在线| 可以直接看的AV| 丁香五月天成人| 日本熟妇人妻在线| 天天爽天天操| 欧美色图45678| 婷婷丁香五月色| 欧美天堂婷婷日韩| 五月婷六月天| 国产FREESEXVIDEOS性中国| 久久久久久久久久久久久久人妻视频| 91人妻人人做人碰人人爽九色| 玖玖激情五月天| 五月婷婷啪啪| 久婷婷五月综合欧美| 99色播| 五月婷婷影视| 天天射夜夜骑| 色噜噜丁香| 丁香五月激情性色郤| 狠狠精品干练久久久无码中文字幕| 97激情五月天| 夜精品无码A片一区二区蜜桃| 99er6| 国产亚洲色婷婷久久99精品91| 日韩啪啪视频| 九九亚洲| 久久机热这里只有精品免费视频| 99热这里只有精品9| 婷婷丁香五月亚洲欧美| 天天干,夜夜爽| 99er这里只有精品视频| 婷婷色导航| 天天噜天天插| 丁香五月激情五月| 97色伦另类图片小说视频 | 99久热这里只有精品视频删减版| 久久久这里有精品| 色色啊| 日本欧美成人片AAAA| 新激情五月天色播| 丁香五月婷婷国产av| 丁香五月区| 一级性爱大片| 91碰视频| 欧美成人无码高清一区二区三区| 伊人99热| 天天爽夜夜爽| 97操碰免费视频| 九九精品热播| av激情在线| 99热.com| www.五月激情红色| 超碰人人在线观看| 99视频激情四射| 色婷婷亚洲| 亚洲成av人影院| 五月草影视| 成人网页在线观看| 婷婷五月丁香香蕉| 色婷婷91激情小说| 香蕉曰比| 五月丁香操亭亭网| 久久久五月五丁香| 操91| 色五月综合婷婷| 九九色院| 99色在线观看| 亚洲综合在线丁香五月| 婷婷九月狠狠色| 热久精品| 99热这里只有是亚洲国产| 国产AV不卡福利| 在线播放成人网站| 综合色久| 丁香五月婷婷综合啪啪| 五月丁香在线| 激情图片亚洲| 婷婷中文综合网| 五月丁香六月婷| 亚洲丁香五月美女| 91精产品自偷自偷综合| 饮料下药迷倒漂亮女同事强干| 婷婷五月综合啪| 婷婷久热| 久久婷青青草原| 色色婷婷丁香| 五月婷婷综合激情|