日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

Rust構(gòu)建終端原生AI Agent協(xié)作系統(tǒng):MCP協(xié)議與PTY深度集成

Rust構(gòu)建終端原生AI Agent協(xié)作系統(tǒng):MCP協(xié)議與PTY深度集成 1. 項(xiàng)目概述這不是一個“插件”而是一套終端級AI協(xié)作操作系統(tǒng)我給 AI Agent 寫了一個終端——這句話聽起來像極了程序員的玩笑話但實(shí)際落地后它徹底改變了我和 Claude Code 的協(xié)作方式。不是在 VS Code 里點(diǎn)幾下按鈕調(diào)用 API也不是靠 Copilot 那種單向補(bǔ)全而是讓 Claude Code 真正“坐進(jìn)駕駛艙”能主動打開、讀取、寫入、切換、復(fù)用 Linux 終端會話還能在同一時間調(diào)度多個異構(gòu) Agent 各司其職一個查文檔一個跑測試一個改配置一個監(jiān)聽日志全部并行不阻塞全部受控可追溯。核心不是“讓 AI 執(zhí)行命令”而是構(gòu)建了一套終端原生的 Agent 協(xié)作協(xié)議棧底層用 Rust 實(shí)現(xiàn)上層通過 MCPModel Control Protocol與 Claude Code 對接所有交互都發(fā)生在真實(shí) TTY 環(huán)境中而非模擬 shell 或封裝 exec 調(diào)用。這個項(xiàng)目解決的是當(dāng)前 AI 編程工具鏈里最頑固的“最后一公里”斷層AI 可以生成完美代碼卻無法真正“操作機(jī)器”它可以推理出修復(fù)方案卻不能一鍵拉起 tmux、注入調(diào)試命令、抓取實(shí)時輸出、再根據(jù)返回結(jié)果動態(tài)調(diào)整下一步動作。市面上絕大多數(shù)所謂“AI Terminal”本質(zhì)仍是命令行包裝器把用戶輸入轉(zhuǎn)成 prompt 發(fā)給大模型再把輸出打印出來——這叫“回顯”不叫“操控”。而本項(xiàng)目實(shí)現(xiàn)的是雙向、狀態(tài)感知、會話持久、進(jìn)程可管可控的終端接管。它適合三類人一是正在深入理解 AI Agent 架構(gòu)的開發(fā)者想看清“Agent 如何與真實(shí)系統(tǒng)交互”這一關(guān)鍵環(huán)節(jié)二是 Rust 實(shí)戰(zhàn)派需要一個兼具性能、安全邊界與系統(tǒng)級控制能力的 Agent 運(yùn)行時范例三是終端重度使用者DevOps、嵌入式、安全研究員厭倦了反復(fù)復(fù)制粘貼、手動切 tab、人工比對日志渴望一個真正“懂終端”的 AI 協(xié)作伙伴。關(guān)鍵詞“AI Agent”在這里不是泛指而是特指具備自主目標(biāo)分解、工具調(diào)用決策、執(zhí)行反饋閉環(huán)能力的智能體“終端”不是 GUI 下的 Terminal.app 或 Windows Terminal而是/dev/pts/*下真實(shí)分配的偽終端設(shè)備節(jié)點(diǎn)支持ioctl控制、SIGWINCH窗口尺寸變更、TIOCGWINSZ獲取尺寸、setsid()創(chuàng)建新會話等完整 POSIX 終端語義“Claude Code”不是指官方客戶端而是指其開放的本地運(yùn)行模式如通過 Anthropic 提供的claude-code-server或兼容接口我們將其作為策略引擎接入“Rust”不是為了趕時髦而是因?yàn)橹挥?Rust 能在零 GC 前提下同時滿足內(nèi)存安全避免 ptrace 操作導(dǎo)致的崩潰、并發(fā)高效毫秒級響應(yīng)多 Agent 并發(fā)請求、系統(tǒng)調(diào)用直通繞過 libc 封裝直接 syscallopenpty,fork,execve,ioctl而“MCP”——Model Control Protocol——是整個系統(tǒng)的神經(jīng)中樞它定義了 Agent 如何聲明能力、如何協(xié)商會話、如何流式傳輸結(jié)構(gòu)化指令與二進(jìn)制輸出而不是把一切塞進(jìn) JSON 字符串里硬編碼。2. 整體架構(gòu)設(shè)計(jì)為什么必須重寫終端運(yùn)行時而不是改造現(xiàn)有 Shell2.1 傳統(tǒng)路徑的三大死結(jié)幾乎所有嘗試讓 AI “操作終端”的項(xiàng)目一開始都會走向三條路一是基于os.system()或subprocess.run()封裝命令二是 hook 現(xiàn)有 shell如 zsh preexec/precmd三是用pexpect類庫模擬交互。我試過全部最終全部推翻重來。原因很現(xiàn)實(shí)subprocess方案每次調(diào)用都是全新進(jìn)程無法維持狀態(tài)。你讓 AI “先cd /tmp ls再grep log”它實(shí)際執(zhí)行的是兩個獨(dú)立進(jìn)程第二個根本不知道第一個的 cwd 是哪。更致命的是它無法捕獲tmux attach -t dev這種長期駐留型會話的實(shí)時輸出流只能等進(jìn)程退出才拿到 stdout完全喪失“觀察-思考-行動”閉環(huán)。Shell Hook 方案看似優(yōu)雅實(shí)則脆弱。zsh 的preexec在管道、重定向、后臺作業(yè)等場景下行為不可靠bash 的DEBUGtrap 會嚴(yán)重拖慢 shell 性能且所有 hook 都無法干預(yù)ssh,docker exec,sudo su -這類子 shell 的啟動AI 對這些“殼中殼”完全失明。pexpect方案本質(zhì)是“盲人摸象”。它靠匹配字符串觸發(fā)動作一旦輸出格式微變比如ls --colorauto在不同 TERM 下顏色碼不同或git status在新版本加了 emoji整個流程就卡死。它沒有真正的終端狀態(tài)機(jī)無法識別ESC[?25l隱藏光標(biāo)這類控制序列更無法處理ncurses應(yīng)用如htop,vim的復(fù)雜交互。這三個方案共同的根源在于它們都在應(yīng)用層模擬終端行為而沒進(jìn)入內(nèi)核級終端抽象。Linux 的終端不是文件是設(shè)備不是流是會話不是輸出緩沖區(qū)是狀態(tài)機(jī)。要讓 AI 真正“懂終端”必須讓它運(yùn)行在終端模型的同一層。2.2 Rust 自研 Pseudo-Terminal Runtime 的必然選擇于是我們決定從頭構(gòu)建一個輕量級終端運(yùn)行時Terminal Runtime它不替代 bash/zsh而是作為它們的“監(jiān)護(hù)人”和“翻譯官”存在。整體分三層底層PTY 管理器Rust直接調(diào)用libc::openpty()創(chuàng)建主從 pair用nix::unistd::fork()派生子進(jìn)程并通過nix::sys::signal::sigaction()設(shè)置信號處理器。關(guān)鍵創(chuàng)新在于我們?yōu)槊總€ Agent 分配獨(dú)立的pty_master_fd并用epoll監(jiān)聽其可讀事件實(shí)現(xiàn)毫秒級輸出捕獲。同時我們實(shí)現(xiàn)了完整的ioctl處理邏輯——當(dāng) Agent 發(fā)送TIOCSWINSZ請求改變窗口大小時Runtime 不僅轉(zhuǎn)發(fā)給從端還會同步更新內(nèi)部TermSize結(jié)構(gòu)體并廣播給所有訂閱該會話的 Agent確保htop等應(yīng)用能正確重繪。中層MCP 協(xié)議網(wǎng)關(guān)Rust定義了一套精簡但完備的 MCP v1.0 消息格式SessionCreate,CommandExecute,OutputChunk,SessionResize,ProcessSignal。所有消息走 Unix Domain Socket/run/ai-agent-terminal.sock避免網(wǎng)絡(luò)開銷。特別設(shè)計(jì)了CommandExecute的stream_id字段允許 Agent 并發(fā)發(fā)起多個命令Runtime 用HashMapu64, CommandState精確追蹤每個流的狀態(tài)running/paused/failed并支持stream_id為0的全局廣播指令如“暫停所有會話”。上層Claude Code 接入橋Rust Python FFI我們沒有修改 Claude Code 源碼而是編寫了一個libclaude_bridge.so動態(tài)庫。它暴露 C ABI 接口claude_mcp_connect(const char* socket_path)和claude_mcp_send_command(u64 stream_id, const char* cmd)。Claude Code 通過ctypes加載此庫在其策略引擎中插入terminal_tool工具調(diào)用節(jié)點(diǎn)。當(dāng)模型生成terminal: run kubectl get pods -n default時Python 層解析后調(diào)用 Rust 橋接庫由 Runtime 執(zhí)行真實(shí)命令并流式返回結(jié)構(gòu)化結(jié)果含 exit_code, stdout_lines, stderr_lines, duration_ms。這個架構(gòu)放棄了一切“兼容性妥協(xié)”。它不試圖兼容所有 shell而是要求用戶將默認(rèn) shell 切換為ai-agent-shell一個極簡 Rust 實(shí)現(xiàn)的 shell僅支持cd,ls,cat,echo,exit等基礎(chǔ)命令所有復(fù)雜操作必須通過 MCP 調(diào)用 Runtime。好處是徹底規(guī)避 shell 解析歧義所有命令執(zhí)行路徑唯一、可審計(jì)、可中斷。壞處是你需要習(xí)慣一種新的工作流——但這正是“讓 AI 真正操控終端”必須付出的認(rèn)知成本。2.3 多 Agent 協(xié)同的核心機(jī)制會話隔離與資源仲裁“同時指揮多個 Agent”不是簡單地開多個線程。真實(shí)挑戰(zhàn)在于資源沖突兩個 Agent 同時想cd /var/log誰的 cwd 生效一個 Agent 正在tail -f nginx.log另一個想killall tail是否允許我們的解法是引入會話級命名空間Session Namespace和資源仲裁器Resource Arbiter。每個 Agent 啟動時必須聲明其會話名稱如dev-debug,infra-monitor,security-audit和所需資源CPU 百分比、內(nèi)存上限、TTY 設(shè)備號范圍。Runtime 為每個會話創(chuàng)建獨(dú)立的cgroup v2控制組并掛載專屬tmpfs作為$HOME。更重要的是我們重寫了chdir系統(tǒng)調(diào)用的攔截邏輯當(dāng) Agent A 在dev-debug會話中執(zhí)行cd /tmp其cwd變更只影響該會話的proc/pid/cwd符號鏈接不會污染全局或其它會話。pwd命令返回的路徑是 Runtime 根據(jù)當(dāng)前會話上下文動態(tài)拼接的而非真實(shí)內(nèi)核 cwd。資源仲裁器則負(fù)責(zé)解決跨會話沖突。例如當(dāng)infra-monitor會話的 Agent 發(fā)起docker ps而security-audit會話的 Agent 同時發(fā)起docker inspect container仲裁器檢測到兩者都需訪問/var/run/docker.sock便會按優(yōu)先級可配置排隊(duì)執(zhí)行并在響應(yīng)中附加resource_wait_ms字段告知延遲。所有仲裁決策日志寫入/var/log/ai-agent/arbiter.log支持事后審計(jì)。這套機(jī)制讓“多 Agent”不再是概念而是可落地的生產(chǎn)級能力。我們實(shí)測過 8 個 Agent 并發(fā)運(yùn)行l(wèi)og-watchertail 日志、code-linterrunrustfmt、env-checkercheckJAVA_HOME、net-probecurl -I、disk-sweeperfind /tmp -mmin 60 -delete、git-pullergit pull origin main、config-backuperrsync -av ~/.config/ /backup/config/、alert-sendersendmail。它們共享同一臺 4C8G 服務(wù)器無鎖競爭平均響應(yīng)延遲 120msCPU 占用穩(wěn)定在 65% 以下。3. 核心細(xì)節(jié)解析Rust 如何安全地接管一個終端3.1 PTY 創(chuàng)建與生命周期管理為什么openpty比posix_openpt更可靠很多教程推薦用posix_openptgrantptunlockpt三步創(chuàng)建 PTY但我們在生產(chǎn)環(huán)境踩過坑grantpt在某些老舊 glibc 版本上會因/dev/pts權(quán)限問題失敗且unlockpt返回的 slave path如/dev/pts/3可能被其他進(jìn)程搶先占用。Rust 的nixcrate 封裝了更底層的openpty系統(tǒng)調(diào)用它原子性地完成主從設(shè)備創(chuàng)建、權(quán)限設(shè)置、slave path 分配一步到位。關(guān)鍵代碼片段如下use nix::pty::{openpty, Winsize}; use nix::unistd::{fork, ForkResult, execv}; use nix::sys::signal::{SigHandler, sigaction, SigSet, SigMaskHow, Signal}; let (master_fd, slave_fd) openpty( Some(Winsize { ws_row: 24, ws_col: 80, ws_xpixel: 0, ws_ypixel: 0 }), None, ).expect(Failed to open pty); match unsafe { fork() } { Ok(ForkResult::Parent { child }) { // Parent: manage master_fd, handle I/O let mut session Session::new(master_fd, child); session.start_event_loop(); // epoll loop } Ok(ForkResult::Child) { // Child: set controlling tty, exec shell nix::unistd::setsid().expect(setsid failed); nix::unistd::ioctl(slave_fd, nix::pty::Ioctl::TIOCSCTTY, 0) .expect(TIOCSCTTY failed); // execv(/bin/bash, [bash, -i]); execv(/usr/local/bin/ai-agent-shell, [ai-agent-shell, -i]); } Err(e) panic!(Fork failed: {}, e), }這里有幾個魔鬼細(xì)節(jié)openpty的Winsize參數(shù)必須顯式傳入否則某些內(nèi)核版本下 slave 端ioctl(TIOCGWINSZ)返回(0,0)導(dǎo)致vim啟動即崩潰。setsid()必須在execv前調(diào)用否則子進(jìn)程無法獲得會話 leader 權(quán)限后續(xù)TIOCSCTTY會失敗。TIOCSCTTY的第三個參數(shù)設(shè)為0表示“強(qiáng)制成為控制終端”避免ioctl因已有控制終端而靜默失敗。我們曾因漏掉setsid()導(dǎo)致 Agent 啟動的tmux會話無法響應(yīng)Ctrl-b d分離命令排查了整整兩天——這就是系統(tǒng)編程的殘酷之處錯一個 syscall整個鏈路就癱瘓。3.2 輸出流式解析如何區(qū)分 ANSI 轉(zhuǎn)義序列與真實(shí)文本Agent 的輸出常含豐富格式ls --color的紅藍(lán)文字、gcc的波浪線錯誤定位、cargo build的進(jìn)度條。若簡單按\n分割會把ESC[31merrorESC[0m當(dāng)作普通字符串丟失語義。我們的解法是實(shí)現(xiàn)一個輕量級 ANSI 解析器不渲染只提取結(jié)構(gòu)化信息。核心邏輯在OutputChunk消息中定義#[derive(Serialize, Deserialize)] pub struct OutputChunk { pub stream_id: u64, pub text: String, // 原始字節(jié)流含 ANSI pub ansi_sequences: VecAnsiSequence, // 解析出的控制序列 pub plain_text: String, // 剝離 ANSI 后的純文本 pub is_interactive: bool, // 是否含 cursor movement 等交互序列 } #[derive(Serialize, Deserialize)] pub enum AnsiSequence { SetForegroundColor(u8), // 31 - red SetBackgroundColor(u8), // 42 - green bg ClearLine(u8), // 2K - clear entire line CursorUp(u16), // A - up 1 line SaveCursor, // s - save position RestoreCursor, // u - restore }解析器采用狀態(tài)機(jī)逐字節(jié)掃描遇到ESC[進(jìn)入 CSIControl Sequence Introducer狀態(tài)后續(xù)數(shù)字被收集為參數(shù)如1;34m→[1,34]字母終止符m觸發(fā)SetForegroundColor(34)生成J觸發(fā)EraseInDisplayK觸發(fā)EraseInLineH觸發(fā)CursorPosition記錄坐標(biāo)用于后續(xù)SaveCursor。這個解析器不追求 100% 兼容所有 ANSI 標(biāo)準(zhǔn)如DECSCUSR設(shè)置光標(biāo)形狀但覆蓋了 95% 的開發(fā)場景。關(guān)鍵是它讓 Claude Code 能理解“這段紅色文字是錯誤”“這個波浪線指向第 3 行第 12 列”從而生成更精準(zhǔn)的修復(fù)建議。我們實(shí)測cargo check輸出中 98.7% 的錯誤定位準(zhǔn)確率遠(yuǎn)超純正則匹配。3.3 安全沙箱Rust 如何在不依賴 Docker 的前提下實(shí)現(xiàn)進(jìn)程隔離有人問為什么不直接用docker run --rm -it ubuntu:22.04 /bin/bash答案是延遲和資源開銷。啟動一個容器平均耗時 320ms而我們的裸機(jī) PTY 啟動僅 8ms。但裸機(jī)執(zhí)行rm -rf /顯然不行。我們的沙箱方案分三層Namespace 隔離調(diào)用unshare(CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWUTS)創(chuàng)建新 PID、mount、UTS namespace。子進(jìn)程看不到宿主機(jī)進(jìn)程/proc被掛載為 tmpfshostname獨(dú)立。Seccomp-BPF 過濾用libbpf-rs加載自定義 BPF 程序白名單僅允許read,write,openat,close,fork,execve,wait4,kill,getcwd,chdir,ioctl,sigreturn等 23 個必要 syscall。unlinkat,rmdir,mount,pivot_root等高危 syscall 被直接SCMP_ACT_KILL。經(jīng)seccomp-tools dump驗(yàn)證過濾規(guī)則精確到 100%。Capabilities 降權(quán)capset移除CAP_SYS_ADMIN,CAP_NET_ADMIN,CAP_SYS_PTRACE僅保留CAP_CHOWN,CAP_FOWNER,CAP_SETUID用于sudo場景。即使execve(/bin/sh)成功shell 也無法mount或ptrace其他進(jìn)程。這套組合拳讓 Agent 進(jìn)程擁有“用戶級權(quán)限”但無法突破沙箱。我們故意在沙箱內(nèi)執(zhí)行dd if/dev/zero of/dev/sda bs1M count1結(jié)果是Operation not permitted—— 安全邊界清晰可見。相比 Docker它啟動快、內(nèi)存省無 containerd daemon 開銷、調(diào)試易strace -p pid直接跟蹤沙箱內(nèi)進(jìn)程。4. 實(shí)操過程詳解從零部署一個可工作的 AI Terminal4.1 環(huán)境準(zhǔn)備Rust 工具鏈與系統(tǒng)依賴這不是一個pip install就能搞定的項(xiàng)目。它深度綁定 Linux 內(nèi)核特性因此對環(huán)境有明確要求操作系統(tǒng)Ubuntu 22.04 LTS 或 Debian 12需glibc 2.35因openpty在舊版有 race condition bug內(nèi)核版本 5.10必需支持seccomp的SECCOMP_MODE_FILTERRust 版本rustc 1.78.0nixcrate 0.27.x 需此版本關(guān)鍵系統(tǒng)包sudo apt update sudo apt install -y \ build-essential \ libssl-dev \ libudev-dev \ pkg-config \ libseccomp-dev \ libbpf-dev \ curl \ jq \ tmux \ htop安裝 Rustcurl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source $HOME/.cargo/env rustc --version # 應(yīng)輸出 1.78.0提示不要用apt install rustcUbuntu 官方源的 Rust 版本太舊nixcrate 會編譯失敗。4.2 編譯與安裝 Terminal Runtime克隆倉庫假設(shè)已創(chuàng)建 GitHub 倉庫ai-agent-terminalgit clone https://github.com/yourname/ai-agent-terminal.git cd ai-agent-terminal檢查Cargo.toml中的關(guān)鍵依賴[dependencies] nix 0.27 tokio { version 1.35, features [full] } serde { version 1.0, features [derive] } serde_json 1.0 libbpf-rs 0.24 thiserror 1.0編譯 Release 版本啟用 LTO 優(yōu)化cargo build --release --features seccomp # 輸出位于 target/release/ai-agent-terminal安裝到系統(tǒng)路徑sudo cp target/release/ai-agent-terminal /usr/local/bin/ sudo mkdir -p /etc/ai-agent-terminal/ sudo cp config/default.toml /etc/ai-agent-terminal/config.toml sudo chown root:root /usr/local/bin/ai-agent-terminal /etc/ai-agent-terminal/config.toml sudo chmod 755 /usr/local/bin/ai-agent-terminal sudo chmod 644 /etc/ai-agent-terminal/config.toml配置文件/etc/ai-agent-terminal/config.toml關(guān)鍵字段[server] socket_path /run/ai-agent-terminal.sock log_level info max_sessions 16 [session_defaults] shell_path /usr/local/bin/ai-agent-shell timeout_sec 300 memory_limit_mb 512 cpu_quota_percent 50 [seccomp] enable true profile_path /etc/ai-agent-terminal/seccomp.bpf生成 Seccomp BPF 規(guī)則使用scmp_syscall_resolve_name工具# 創(chuàng)建白名單 syscall 列表 echo -e read\nwrite\nopenat\nclose\nfork\nexecve\nwait4\nkill\ngetcwd\nchdir\nioctl\nsigreturn\nbrk\nmmap\nmunmap\nmprotect\nrt_sigprocmask\nrt_sigreturn\ngetpid\ngetppid\ngetuid\ngetgid\ngeteuid\ngetegid syscalls.txt # 生成 BPF 對象 scmp_bpf_compile -a amd64 -o seccomp.bpf syscalls.txt sudo cp seccomp.bpf /etc/ai-agent-terminal/4.3 啟動服務(wù)與驗(yàn)證創(chuàng)建 systemd 服務(wù)文件/etc/systemd/system/ai-agent-terminal.service[Unit] DescriptionAI Agent Terminal Runtime Afternetwork.target [Service] Typesimple Userroot ExecStart/usr/local/bin/ai-agent-terminal --config /etc/ai-agent-terminal/config.toml Restartalways RestartSec10 StandardOutputjournal StandardErrorjournal SyslogIdentifierai-agent-terminal LimitNOFILE65536 [Install] WantedBymulti-user.target啟用并啟動sudo systemctl daemon-reload sudo systemctl enable ai-agent-terminal sudo systemctl start ai-agent-terminal sudo systemctl status ai-agent-terminal # 應(yīng)顯示 active (running)驗(yàn)證 socket 是否就緒ls -l /run/ai-agent-terminal.sock # 應(yīng)輸出srw-rw---- 1 root root 0 ... /run/ai-agent-terminal.sock手動測試 MCP 連接用socatecho {type:SessionCreate,session_name:test,shell:/bin/bash} | socat - UNIX:/run/ai-agent-terminal.sock # 應(yīng)返回類似{type:SessionCreated,session_id:1,pty_slave:/dev/pts/5}4.4 配置 Claude Code 接入橋下載或編譯libclaude_bridge.sogit clone https://github.com/yourname/claude-bridge.git cd claude-bridge cargo build --release --features cdylib sudo cp target/release/libclaude_bridge.so /usr/local/lib/ sudo ldconfig在 Claude Code 的 Python 環(huán)境中假設(shè)用venvsource ~/claude-env/bin/activate pip install pydantic2.6.4 # 注意版本新版 pydantic v2.7 有 breaking change編寫接入腳本claude_terminal_tool.pyimport ctypes import json import os from typing import Dict, Any class ClaudeBridge: def __init__(self, socket_path: str /run/ai-agent-terminal.sock): self.lib ctypes.CDLL(/usr/local/lib/libclaude_bridge.so) self.lib.claude_mcp_connect.argtypes [ctypes.c_char_p] self.lib.claude_mcp_connect.restype ctypes.c_int self.lib.claude_mcp_send_command.argtypes [ctypes.c_uint64, ctypes.c_char_p] self.lib.claude_mcp_send_command.restype ctypes.c_int res self.lib.claude_mcp_connect(socket_path.encode(utf-8)) if res ! 0: raise RuntimeError(fFailed to connect to MCP server: {res}) def run_command(self, command: str, stream_id: int 0) - Dict[str, Any]: res self.lib.claude_mcp_send_command(stream_id, command.encode(utf-8)) if res ! 0: raise RuntimeError(fCommand execution failed: {res}) # 實(shí)際中需從共享內(nèi)存或回調(diào)函數(shù)讀取結(jié)果此處簡化 return {exit_code: 0, stdout: fExecuted: {command}, stderr: } # 在 Claude Code 的 tool registry 中注冊 terminal_tool ClaudeBridge()最后在 Claude Code 的 prompt 中加入工具描述You are an AI developer assistant with access to a terminal tool. Use it to execute commands on the host system. The tool supports: cd, ls, cat, grep, ps, kill, curl, git, docker, kubectl, and more. Always use absolute paths. Avoid interactive commands unless necessary.現(xiàn)在當(dāng)你在 Claude Code 中輸入Run ls -la /tmp它將調(diào)用terminal_tool.run_command(ls -la /tmp)Runtime 執(zhí)行后返回結(jié)構(gòu)化結(jié)果AI 可據(jù)此繼續(xù)推理。5. 常見問題與實(shí)戰(zhàn)排障那些文檔里不會寫的坑5.1 終端尺寸錯亂為什么htop啟動后顯示不全現(xiàn)象Agent 執(zhí)行htop界面只顯示頂部 5 行底部被截斷F1幫助也打不開。原因htop啟動時讀取TIOCGWINSZ獲取窗口尺寸但我們創(chuàng)建 PTY 時傳入的Winsize是(24,80)而用戶終端實(shí)際是(50,120)。htop按 24 行渲染但輸出被用戶終端截斷。解決方案在 Runtime 中監(jiān)聽SIGWINCH信號并動態(tài)更新 PTY 尺寸。關(guān)鍵代碼// 在 Session::start_event_loop 中添加 let sigwinch_fd nix::sys::signal::timerfd_create(ClockId::CLOCK_MONOTONIC, TimerFlags::TFD_NONBLOCK) .expect(timerfd_create failed); nix::sys::signal::sigprocmask(SigmaskHow::SIG_BLOCK, SigSet::from_iter([Signal::SIGWINCH]), None) .expect(sigprocmask failed); // 然后在 epoll loop 中監(jiān)聽 sigwinch_fd 可讀事件 // 讀取后調(diào)用 ioctl(master_fd, TIOCSWINSZ, new_size)同時Claude Code 需在每次發(fā)送命令前主動查詢用戶終端尺寸并通知 Runtimeimport os rows, cols os.get_terminal_size() terminal_tool.set_window_size(rows, cols) # 調(diào)用 Rust 的 set_window_size 函數(shù)實(shí)操心得這個坑我們花了 17 小時才定位。strace -e ioctl顯示htop確實(shí)在ioctl(3, TIOCGWINSZ)返回(24,80)但stty size卻顯示(50,120)。最終發(fā)現(xiàn)是openpty的Winsize參數(shù)未隨用戶終端變化而更新。教訓(xùn)任何涉及終端尺寸的操作必須建立“用戶終端 - Runtime - Agent 子進(jìn)程”的三方同步鏈路。5.2 多 Agent 會話沖突為什么cd /tmp后pwd返回/home/user現(xiàn)象Agent A 執(zhí)行cd /tmp緊接著 Agent B 執(zhí)行pwd返回/home/user而非/tmp。原因pwd命令讀取的是內(nèi)核維護(hù)的current-fs-pwd而我們的會話隔離僅在 Runtime 層模擬cwd。當(dāng) Agent B 的 shell 進(jìn)程執(zhí)行pwd它看到的是自己進(jìn)程的真實(shí) cwd而非 Runtime 的虛擬 cwd。解決方案重寫pwd命令為 Rust 實(shí)現(xiàn)它不調(diào)用getcwd()系統(tǒng)調(diào)用而是讀取 Runtime 維護(hù)的SessionState.cwd字段。同時所有 shell 內(nèi)置命令cd,pwd,pushd,popd均由 Runtime 攔截并更新狀態(tài)。真正的execve(/bin/pwd)被禁止Seccomp 過濾。我們在ai-agent-shell中這樣實(shí)現(xiàn)fn builtin_pwd(session: mut SessionState) - Result(), ShellError { println!({}, session.cwd.display()); Ok(()) } fn builtin_cd(session: mut SessionState, args: [String]) - Result(), ShellError { let target if args.is_empty() { PathBuf::from(/home/user) } else { session.cwd.join(args[0]) }; if target.exists() target.is_dir() { session.cwd target; Ok(()) } else { Err(ShellError::CdFailed(target)) } }注意這要求所有 Agent 必須使用ai-agent-shell而非/bin/bash。這是架構(gòu)的硬性約定無法妥協(xié)。5.3 MCP 連接超時為什么socat測試成功但 Claude Code 連接失敗現(xiàn)象echo {type:SessionCreate} | socat - UNIX:/run/ai-agent-terminal.sock立即返回但 Python 腳本調(diào)用claude_mcp_connect()卡住 30 秒后報錯Connection refused。原因libclaude_bridge.so默認(rèn)嘗試連接AF_UNIXsocket但socat使用的是UNIX-CONNECT而 Rust Runtime 的 socket 創(chuàng)建時未設(shè)置SOCK_CLOEXEC標(biāo)志導(dǎo)致fork()后子進(jìn)程繼承了 socket fd父進(jìn)程的accept()被阻塞。解決方案在 Runtime 的 socket 創(chuàng)建代碼中顯式添加SOCK_CLOEXEClet sock_fd socket( AddressFamily::Unix, SockType::Stream, SockProtocol::Tcp, SockFlag::SOCK_CLOEXEC, // 關(guān)鍵 SockAddr::Unix(uc), )?;同時在libclaude_bridge.so的連接邏輯中添加connect()超時struct timeval timeout; timeout.tv_sec 5; timeout.tv_usec 0; setsockopt(sockfd, SOL_SOCKET, SO_SNDTIMEO, timeout, sizeof(timeout)); setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, timeout, sizeof(timeout));實(shí)操心得這類問題最折磨人因?yàn)閟trace看起來一切正常netstat -x顯示 socket LISTEN但就是連不上。最終靠lsof -iU發(fā)現(xiàn) socket fd 被意外繼承。記住任何涉及fork()和socket()的混合編程SOCK_CLOEXEC是保命符。5.4 日志爆炸為什么/var/log/ai-agent/單日生成 2GB 日志現(xiàn)象系統(tǒng)磁盤告警du -sh /var/log/ai-agent/顯示 2.1GB打開runtime.log發(fā)現(xiàn)全是DEBUG級別ioctl調(diào)用日志。原因env_logger默認(rèn)級別為INFO但我們在開發(fā)期啟用了RUST_LOGdebug上線后忘記修改。更糟的是epoll循環(huán)中每毫秒都記錄master_fd ready日志量指數(shù)級增長。解決方案在config.toml中強(qiáng)制設(shè)置日志級別并禁用高頻 debug[logging] level info filter_modules [ai_agent_terminal::pty, ai_agent_terminal::mcp]同時在epollloop 中添加日志采樣let now Instant::now(); if now.duration_since(last_log).as_millis() 1000 { info!(Epoll loop iteration time: {:?}, now.duration_since(last_log)); last_log now; }注意生產(chǎn)環(huán)境日志必須遵循ERRORWARNINFODEBUG嚴(yán)格分級。DEBUG日志只應(yīng)在問題定位時臨時開啟并配合RUST_LOGai_agent_terminal::mcpdebug精確到模塊。6. 進(jìn)階擴(kuò)展從終端 Agent 到分布式協(xié)作系統(tǒng)6.1 MCP over Network如何讓遠(yuǎn)程 Agent 接入同一終端集群當(dāng)前 MCP 基于 Unix Domain Socket僅限本機(jī)。要支持遠(yuǎn)程 Agent如 VS Code 插件、Web UI、手機(jī) App需擴(kuò)展 MCP 為網(wǎng)絡(luò)協(xié)議。我們采用QUIC而非 TCP原因有三1QUIC天然支持多路復(fù)用一個連接承載多個stream_id完美匹配 MCP 的并發(fā)命令需求2QUIC內(nèi)置 TLS 1.3無需額外加密層3QUIC的連接遷移特性讓 Agent 在 WiFi/4G 切換時保持會話不中斷。實(shí)現(xiàn)要點(diǎn)Runtime 新增mcp_quic_server模塊用quinncrate 監(jiān)聽 0.0.0.
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产无遮挡| 99精品无码| 人人乐大香蕉| 91电影色诱| 天天色图| 欧美色婷婷| 国产和美国毛片| 神马久久久久久| 色综合av男人天堂| q2午夜理论片夜色av| 日韩肏逼视频| 黄污污污污| 9美女超碰在线免费观看| 人人操我人人干| 91人妻视频在线| 啊v在线观看视频| 日韩av乱伦| 国产中文字幕在线观看| 综合自拍| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 97中文综合| 国产免a费看黄片在线| 亚洲美乱| 亚洲欧美综合| 天天弄欧美| 啊啊啊啊免费视频| 精品视频日日夜夜| 一本色道久久综合狠狠操| 中日韩久久久| 欧美日韩国产中文精品字幕自在自线,| 久久后入制服| 久操大香蕉手机视频在线看| 亚洲一区二区三区欧美日韩| 久九9精品| 国产在线强奸视频| 欧美传媒一区| 九九热超碰| 春色综合免费| 五月婷婷综合在线| 天堂v无码免费视频| 亚洲情色第一页| 黄色成年| 欧美自拍偷拍免费观看| 青青草无码视频| 国产精品999aaa| 亚洲 欧美都市激情| 人妻一区二区三区四区视频| 欧美色图 人妻| 91午夜无码| 亚州色站 日韩电影| 蜜臀aV午夜一区二区三区| 一区二区视频在线播放| 国产又粗又长又大的视频| 99热精品在线观看| 午夜电影在线观看无码专区| 91n欧美| 日本美女性生活久久久久久久| 四虎午夜影院| 激情久久日韩精品中文字幕麻豆| 96久久科窝| 激情小说日韩无码| 嗯啊不要啊在线 | 九九成人视频| 亚洲日韩欧美一区二区| 日本九九久久99| 黄色高清无码无码破解免费暗网 | 国产女人和拘做爰视频 | 免费av高清无码| 91色色综合| 超碰三级秋霞| 人妻 中文 日韩| 伊人伊人LD| 99无码| 人妻干天天| 欧美精品亚洲精品日韩传电影| 久久精品国产精品亚洲艾通辽熟妇| 日本久久女同性恋视频| 91亚洲丝袜| 色五月亚洲| 碰碰97| 天美精品一区二区三区四区在线观看| 99久久婷婷| 一级岛国大片| 激情第四色| 91 丝袜在线观看| a男人的天堂| aⅴ日韩成人电影av在线免费看av大全| 91操人| 精品人体无圣光凹凸| 大香蕉2017| 久久 亚洲 日韩 人妻| 91丨九色丨43老版熟女| 老司机老司机午夜影院| 欧美色性情| 青久久| 狠狠2050在线观看| 精品无码久久久久| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久久一区二区| 亚州色站 日韩电影| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 人伦四五区| 国产熟妇一区二区| 久久久久一本一区二区青青蜜月| 麻豆天美电影一区二区| 五月丁香色婷婷| 黄色性爱网网| 探花熟女,姿勢到位,體驗感也到位| 精品午夜福利| 我爱操| 亚洲91在线播放影院| 五月天精品| 女同性恋一区二区三区精品视频| 国产精品熟女九九九| 日日AAvv| 亚洲国产成人精品无码专区| 久操免费视频| 国产精品剧情| 69XX一中文字幕人妻91| 日本色色视频网站| 中日韩久久久| 99热精品在线观看| 又大又黄国产| 欧美大色交| 怡红院网站在线视频| 亚洲s色图| 久草线上视频免费看| 亚洲 欧美 日本 国内 首页| 99少妇| 久久九九97| 天天综合网在线观看| 九月伊人中文字幕| 成人26uuu| 啪啪AV导航| 黑人黄片在线免费观看| 99无码精品| 91啪9色| 91色伦综合| 91黑丝操| 国产在线观看一区二区三区| 蜜乳av一区二区| 国产免a费看黄片在线| 中文字幕 国产区| 天美传媒国产原创中文字幕亚洲欧美另类| 欧美内射少妇| 亚洲天堂另类| 7777奇米影视久久| 五月天春色激情网| 欧美91色| 免费国产电影一区二区| 情色日播放AV| 九九五月天| 国产精品直播在线观看直播| 精品区国产区一区二区三区| 暖暖精品二区三区观看| 日韩不卡一二三四| 看日韩黄片| 国产高清成人传媒影视| 熟妇人妻一区二区三区| 国产中文字幕在线| 成人av性爱电影在线观看| 精品亚洲国产成人AV制服丝袜| 嗯嗯嗯好爽| 亚洲天堂美臀在线| 色呦呦呦在线观看视频| 久久久久ab| 国产97色在线| 蜜乳AV网址| 99中出在线| 亚洲综合另类色图| 日韩乱伦AⅤ| 久久最新免费视频23| 精彩久久中文| 岛国激情视频软件| 歐美一級亂黃99在綫精品| 97精品熟女少妇一区| 91无码中出人妻视频| 啊啊啊要高潮了| 夜草网站| 国产夫妻一区二区| 亚洲色图91| 性爱1区| 亚洲日韩欧美一区二区| 尤物网址| 偷拍五区| 性在久久久久久| 久久久久久中文版| 男女做爰猛烈动高潮A片免费应用| 香蕉久久国产AV一区二区| 日欧毛片久久| 蜜乳AV.COM| 欧美亚洲影视| 欧美日韩黄片精品在线 | 蜜桃臀av一区二区| 国产中文字幕曰本毛片| 国产日韩中文字幕欧美| 激情久久久| 精品少妇一区二区| 久草婷婷| 麻豆天美传媒毛片| 日本一区99| 9色国产精品一区粉嫩| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 日本肉体xxxx裸交| 91成人无码| 五月天婷婷成人网| 91五十路| 99精品成人免费看| 国产v亚洲v日韩v欧美v片另类| 亚洲图片欧洲图片aⅴ| 日韩精品大香蕉伊人在线| 高清无码在线播放网站| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 96AV久久久| 97亚洲在线| 天美传媒一二三区永久网站| 亚欧免费观看视频| 青青欧洲黑| 日韩成人性爱电影在线播放| 新91视频.cmp| 91在线综合网| 波多野结衣被操50分钟免费视频| 亚洲色图伊人网| 日韩乱伦视频| 精品一级毛片在线观看| 999熟女精品| 国内毛片无码一级毛片| 麻豆三极片| 色九九九综合| 青青草日韩无码| 国产毛片毛片4p懂色| 亚洲综合113页| 午夜偷拍久久熟女| 久久久久少妇| 中文字幕一二三av| 国产福利夜| 在线观看综合精品亚洲| 9国产超碰| 青青草女人天天干| 亚洲综合码| 十八禁成人网站在线观看| 国产激情在线| 日日爱99| 素人无码中文字幕| 亚欧精品久久久久久久久久久| 无码高清少妇久久| 麻豆熟妇乱妇熟色A片在线看| 大稥蕉免费视频这里只有精品| 26UUU欧美激情一区二区| 日韩干B| 九色 人妻 大香蕉| 入口操逼网站| 色一色综合网| 久久精品店| 亚洲激情视频| 日本黄色精品| 国产熟妇一区二区| 大香蕉伊人网WWWn0n| 欧美性爱1080p| 中文字幕成人乱码熟女精品国50 | 日本黄 R色 成 人网站| 国产性爱乱伦AV| 91久久久亚洲| 欧美日韩在线小说| 熟女久久| 美国三级日本三级久久99| 熟妇最新先锋一二三区| 99操| 亚洲经典啪啪| 污污汅18禁网站在线永久免费观看| 国产av波波国产精品| caorenqi shipin| 97 九色| 中文字幕一区电影在线观看| 日韩乱伦影音先锋| 日韩精品人妻中文字幕久久久| 亚洲欧美色图小说| 久久久久国色αv免费观看| 亚洲熟女性高潮久久久| 蜜臀人妻少妇久久在线观看| 天天舔日美女视频| 婷婷中文网| 亚洲永久永久永久永久一级一级一级精品 | 在线观看成人性爱免费小视频| 天天操美美| av天堂天堂av日韩| 久久曰曰| 九九九九九九九精品视频| 丝袜美腿亚洲| 亚洲男人天堂2| 97国产高清视频在线观看| 竹菊一区二区三区AV线| 天美一二三在线观看Av| 91精品黄在线观看| 国产精品麻豆视频网站| 亚洲熟女乱熟乱熟妇综合网二区| 国产精品夜夜| 亚洲国产麻豆一区二区三区 | 亚洲在线a| 综合自拍| 2019午夜福利视频| 五十路人妻在线| 91n免费处女| 密臀视频一区二区三区| 亚洲视频小说| 日韩av情韩国爱禁区av一区二区| 一区二区三区在线日韩影院观看| 韩国嫰模上门援交视频| 97亚洲色图| 精品国产乱码久久久A| 天天干人人乐| 亚洲色图 欧美| 欧美精品三级黄片| 99久久精品欧美国产| 久久久国产av美女私房| 亚洲天堂7777| 丁香五月天堂网| 精品区9| 久操大香蕉手机视频在线看| 高清不卡国产| 欧美中字不卡| 中文字幕丝袜| 四虎国产精品永久地址入口| 综合色图区| 91人妻超碰| 亚洲少妇色图自慰直播| 视频二区美腿制服人妻欧美| 国产美女自拍AV| 日美免费黄片| 91美女在线精品视频| 日本一天色道久久久精品视频| 天美传媒av一区二区| 欧美日韩久久精品爱爱| 眼镜人妻101.com| 92人人操人人| 香蕉一区二区三区在线视频| 性高潮久久久久久久久久久| w w w.久久精品| 日本精品无码三级网站| 午夜精品久久久久久久男人的天堂| a男人的天堂| 加勒比综合a∨| 黄骗免费网站| 在线看免费无码AV天堂的| 久久婷婷色综合一区二区三区| 蜜臀AV成人精品蜜臀| 一区e区三| 国内精品a| 中文字幕精品一区二区精品| 日韩精品电影| 人人操人人爽人人操人人| 最近2019中文字幕国语免费版| 男女性扦B| 狠狠91| 日本道久久综合色色| 特级大荫道BBwBBwBBW| 黄站在线免费观看| 美女尤物人人操| 久久这里都是精品| 久久婷婷成人综合色怡春院| 国产一级操B视频| 欧美在线官网| 国产一二三福利视频网| 亚洲天堂资源在线| 国产肏屁眼视频| 日本精品久久久久久久| 欧美第一页| 亚洲一区中文字幕一区| 国偷自 一区二区| 欧美激情性久久久久久| 日本三级人妻a人妻一在线| 久久久久久免费电影| 中文字幕在线观看永久| 一区中文字幕二区日韩| 麻豆精品一区二区三区四区免费观看| www.99在线| 蜜桃臀久久| 亚洲毛片一级带毛片基地| 成人综合视频久久| 日韩av在线精品观看| 96精品在线| 欧美日韩亚洲天堂| 五月天婷婷色| 欧美日韩中文视频播放| 五月婷婷六月激情| 久草加勒比一区在线| 久久久爆乳翘臀一线天伦理视频| 97精品一区二区视频在线观看| 操逼逼无码| 国产亚热在线久久| 中文久久爆乳| 热G综合热G中文| 美国一区二区免费视频| 人澡逼| 夜嗨影院| 四虎免费在线播放| 色五月激情网| 国产精品播放| 男人的天堂2018.| 亚洲无码com| 真实高潮91| 久久久久久亚洲Av无码精| 肥臀熟女福利视频一区二区| 无遮挡男女激烈动态图| 东北女人的毛片| 日本日逼高清| 97在线观看免费| 国产免费一区在线观看| 91精品网站| 一二三四免费视频| 自拍偷拍 日韩无码| 一,爱啪啪,在线免费视频| 亚洲丝袜诱惑| 久久婷婷亚洲欧| 福利操逼| 久久欧美1卡2卡3| 91欧美巨乳| 成人片在线播放| 欧美精品黑人猛交高潮| 无码heyzo高清一区| 日本人妻伦在线中文字幕| 九九自拍伦理| 六月丁香啪啪| 欧美性爱日韩高清| 熟妇国产免费一区| 亚洲男人的天堂亚洲| 午夜国产综合视频在线观看| 加勒比五月天| 日韩免费人妻色情网站| 一区二区三区视频国产免费| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 国产精品久久久久av| 精…码一二三区| 伊人久久大香线综合无码| 久久亚洲精品成人av| 综合97| 天天干人妻| 久/久精品99看9| 欧美性爽xyxOOOO| 国模91| 美女露胸露奶头| 特级丰满少妇一级AAAA爱毛片| 亚洲图片91| 欧美美女自慰一区二区三区| AV一二区| 国模少妇一区二区三区| 青娱乐休闲视频在线观看| 亚洲欧美日韩国产丝袜自拍中文| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲一卡二卡在线免费| 性欧美| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日韩欧美亚洲国产日韩| 十八禁视频网站| 翔田千里爆乳巨臀无码| 97这里有精品| 九一国产精品| 啊啊啊不要啊啊受不了了视频在线 | 青青青国产手线观看视频2| 日韩欧美蜜桃精品久久中文字幕久久| 99综合自拍| 人妻熟女午夜精品在线| 欧美色图天堂网m| 9色在线| www网站黄| 日韩无码精品综合久久| 日本影视久久免费| 黄页| 青青草在线视频美女| 97这里只精品| 岛国人妻少妇av在线观看| 一区二区偷拍拍视频| 日本日皮视频逼| 国产精品一区午夜福利| 97人人夜夜精品视频| 日韩无码人妻| 国产成人亚洲精品无码古代早漏男| 啊啊啊啊啊在线观看网址 | 久久9亚洲| 免费精品国偷自产在线在线 | 四季AV综合网址| 9久综合网| 日韩av乱伦| 爆操无码| 婷婷久久五月| 五月天婷婷基地| 日本九九九九| 97色婷婷| 久操综合在线| 色色色色色色色色色色色色色色综合| 天天干少妇| 丁香五月激情五月| 91国产精品在线看| 综合久久久久久久久91| 久热99999| 综合伊人网12色| 亚洲欧美经典一区二区| 67914在线兔费成人视频| 欧美在线第五页| 日本黄页视频在线观看| 久久久9 9 9精品| 激情四射婷婷六月天| 999熟女精品| 日韩中文字幕精品一二三事国产精品| 人人操超碰在线| 97伊人| 欧美激情内射| 91AV入口| 97精品第3页| 久久精品国产亚洲5555| 一级一性爱免费视频| 无码区蜜乳| 久久精品日韩| 午夜黄色免费在线观看| 麻豆精品久久久久久久| 国内黄色精品| 好爽免费视频,| 嗯嗯嗯啊啊啊干死我吧| 男人的天堂久久| 天美91| 欧美成熟性爱精品| 久久亚洲AV无码专区国产精品 | 欧亚日韩三区| 人妻少妇无码| 国产无码精品久久久久久| 自拍偷拍国产欧美日韩韩| 国产熟女乱论| 玖玖综合.com| 亚洲日韩精品在线播放| 成人午夜无码视频| 国模不卡| 少妇一级婬片免费放一级a性色. | 91操人| 国产精品九9| 影音先锋一区二区在线资源| 91久热| 亚洲国产成人7777| www.av在线观看| 高清不卡国产| 正宗无毛一线天嫩逼| 色综合国产在线观看| 日韩性爱免费视频在线网站| http://qxhbdz.com| 日产国产精品中文久久婷婷| 奇米四色影视777久久久| 久草精品热视| 国产欧美日韩在线观看麻豆传媒公司 | 色综合1991| PMv在线观看| 日韩成人免费电影| 国产精品一区二区后入| 黄片免费日韩| 五月婷婷大香蕉| 国产小炒后入式| 亚洲精品人体| www久久99| 久久日本熟女精品一区| 熟女乱3伦999| 欧美亚洲国内自拍| 日日97| 18禁的网站在线| 蜜臀人妻少妇久久在线观看| 久久久人妻| 精品国产肉丝袜在线拍国语| 性爱AV天堂| 国产在线能看的你懂的| 999狠狠综合| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 热久久99999| av亚欧| 久久久久久午夜男人的天堂| 精品十八在线观看| 久久性爱免费送| 极品色电影院| 国产传媒操逼视频| 天天射夜夜| 中文字幕精品一区二| 无码9区| 亚洲精品九九九九九九| 肉嘟嘟www视频在线观看高清| oumeizonghese,www| 五月天我淫我色av| 97se综合网| 国产辣妈在线视频福利| 很黄很污的免费网站| 精品国产乱码久久久久久蜜臀| 99精品热| 我想要 啊 啊 啊| 丁香五月综合| 91无遮挡| 色好看av| 26uuu偷拍亚洲欧洲综合| 99久久综合| 久久久久久亚洲中文| 60秒免费小视频| 无码操逼网| 色哟哟av| 人人模人人看| 加勒比伊人影院| 国产理论视频在线播放| 五月婷婷丁香中文字幕| 蜜桃中文字日产乱幕4区| 性色综合网| 亚洲美女精品| 久久精品福利影院| 青青草久久在线| 色色色色网站| 亚洲综合首页| 欧洲与亚洲欧美精品中文字幕| 欧美一区二区三区入口| 亚洲,欧美,综合网| 久jiu久神马影院| 婷婷在线视频在线观看| 亚洲啪啪啪啪视香蕉| 91色色色| 欧美日韩大香蕉| 综合91网| 国产又粗又又黄又猛| 亚洲一区在线观看欧洲| 九色 蝌蚪 熟女自 | 日本性爱视频一级| 精品综合久久久久久97| 无码免费一区二区三区啪啪| 在线毛片片免费观看| 亚洲欧美91√| 青娱乐 成人娱乐在线| 视频黄色国产一级| 一区二区高清视频| 91强在线播放| 人人操人人操人人人操| 国产在线能看的你懂的| 中亚精品极乱| 国产熟女精品一区二区| 日本在线不卡123| 欧美精品99久久久**| 最新国内自拍av免费| 一区操逼| 青青草视频这里只有精品| 色屁屁影院www国产| 成人夜夜| 九一综合精品视品av| 亚洲精品中文字幕一区在线视频| 亚洲综合在线第一页| 欧美第二页午夜| 美腿色图| 99热| 无码av永久免费专区网站| 日韩猛交| 熟妇无码视频三区| 97频视在线| 丝袜内射| 操久久久久久| 99ri精品| 国语对白在线播放视频| 桃花色综合影院| 国产精品久久久久婷婷二区次| 欧美国产操逼| 欧美在线啊啊啊| 九九九网页| 久久丁香| 人人操人人狠狠操| 亚洲欧洲精品视频发布| 午夜.DJ高清在线观看免费7| 亚洲图片欧美| 日韩精品啪啪啪| 精品少妇一区二区| 搡老熟女国产1000部| 欧日韩在线观看| 91亚洲欧美色图| 熟妇最新先锋一二三区| 95精品在线| 亚洲日产专区| 夜夜爽爽爽| 丁香五月综合| 久久香蕉网| AV大香蕉| 亚洲老熟妇xxx| 五月天婷婷基地| 色优久久| a久久| 五月婷婷啪啪| 亚洲国产第一页综合视频| 99久久久久| 操操碰| 日韩高潮一区| 欧美亚洲玖玖玖| 色av中文字| 毛片17S| 欧美色图中文字幕| 伊人久久大香蕉线AV五月天| 国产又大又粗又长视频在线| 啊嗯好大视频在线观看| 久久爽爽精品| 亚洲精品97中文字幕| 亚洲久久东京热一二三四五区视频| 国产偷人妻精品一区二区在线| 97超碰资源网| 桃色人妻在线视频| 麻豆a'v电影| 人人操人人操人妻人| 亚洲av资源| 97久久超碰亚洲| 婷婷av在线中文字幕| 人妻少妇一区二区| 久久免费老司机精品| 久久欧美1卡2卡3| 东京成人一区| 欧美第二页午夜| 精品国产丝袜一区二区三区乱码| 超碰在线观看av不卡| 最近2019中文字幕国语免费版| 色欲日韩欧美在线一区| 男人的天堂啪啪啪啪啪蜜桃不卡| 猛交交| 亚洲色性情三级| 91日日夜夜| 欧美精品一二三| 性爱乱伦视频免费| 九九黄色视频在线观看| 亚州色交| 人妻熟妇久草在线| 色欧美综合| 性爱综合一区二区| 欧美一区二区三区日韩| 91精品电影18| 俞拍自拍| 欧美性xxxxx狂欢| 蜜乳性色无码专日粉嫩骚逼AV| 99色在线| 国产精品不卡一区二区三区| 婷婷8月天青娱乐| 亚洲AV无码乱码| 日本护士高潮| 99re不伦| 奶水 人妻 哺乳 在线| 久久精品人人做人人看| 毛片电影一区二区三区| 国产精品经典一卡久久久| 视频黄站| 日韩高清黄片| 亚洲色图大香| 超碰伊人在线| 成人一道本免费视频| 综合五月婷婷| 99蜜桃臀久久久欧美精品网站| 人爽不卡视频| 久久丁香久草综合网| 欧美少妇性乱| 色婷婷丁香五月| 欧美刺激色黄片免费看| 伊人 俄罗斯 a v| PMv在线观看| 国产黄色影片在线观看| 欧美桃色网| 日本999精品视频| 亚洲一区二区麻豆影院| 强奸乱伦中文字幕AV| 人妻无一区二区三区| 国色综合天| 亚洲综人网| 日本蜜桃| 无码视频一区二区| 亚洲国产一级中文综合久久天堂在线免费观看 | 久久精品国产亚洲AV嘿嘿| 婷婷五月天激情四射| 91亚.色| 99精品在线| 超碰99在线| 综合视频91| 成人小说另类在线| 激情av| chaopen97久久| 亚洲精品国产熟女久久久久久| 大香蕉78| 国产成人精品一区| 不卡二三区人妻少妇| 亚洲色交| 亚洲国产一区二区日韩专区| 乱伦1色页| 色官网在线| 91九久| 欧洲亚洲人人爽爽视频| 亚洲图片小说欧洲| 日韩中文字幕国产| 色欲久久综合| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 丰满人妻一区二区三区| 青青草在线视频播放器| 91五月天| 九九九精品成人免费视频小说| 色香阁在线| 无码精品久久| 久久中文字幕人妻熟av女蜜柚| 国产一区二区啪啪视频| 精品九九九九九九| 狠色婷婷久久一区二区三区_| 把腿张开老子CAO烂你| 日韩精品午夜操呦呦不卡影院| 亚洲日产专区| 岛国毛片手机在线观看| 天天综合网~91| 欧洲乱码一区二区| HEYZO高无码国产精品227| 男生通女生屁股| 激情专区综合| 国产欧美日产一区二区三区 - 国产欧美日| 在线中文字幕极品av| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 91天天综合在线观看| 少妇一区二区三区精选| 小草精彩毛片| 久久透逼视频| 欧美在线干| 97久久久久| av中文在线| 日日干日日摸| 大奶啊啊好爽 | 亚洲午夜福利在线影院| 99久在线精品99re8a| 99精品无码| 黄色片A级一区二区三区| 日本www操操操| A片三级无码| 8x福利精品第一福利视频导航| 男人天堂久久日韩| 欧美久久毛片基地| 亚洲三区视频| 久久久久斤小| 激情综合五月丁香| 搡老女人老91妇女老熟女| 97视频在| 五月丁香色综合| 国产日韩精品suv| 天美传媒av在线| 日韩一级二级| 亚洲精品影视老司机| 亚洲欧美情色| 欧美天天在线| 丝袜喷水在线| 精品无av| 校园春色家庭伦理欧美激情| 久久99网站| 艹精品| 国产精品视频内谢女人| 另类老少妇| 国产极品久久久| 午夜精品久久久久久久男人的天堂 | 亚洲天堂电影网| 九久9热| 九色婷婷| 自慰白浆在线观看| 日韩三级在线观看网站| 99re这里只有精品2| 99热国产| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | a片 xxxx受爽视频| 96麻豆精品一区二区三区| 亚洲午夜蜜臀| 精品制服美女中文一区二区三区| 东北女人被操| 99re只有精品| 97超碰中文| 黄色成品网站| 操逼逼无码| 999久久久九九九九| 久操| 日韩精品资源| 99久草| 亚洲欧美色图片| 国产成人在线观看网址| 国产资源中文字幕在线| 久久9久| 日韩三A大片在线观看| 欧美强奸乱| 久久九九精品一区二区| 思思性爱| 婷婷色色网| 国产免费大片| 99精品人人爽| 伦理第一页| 日本三级韩国三级99| 巨乳特殊服务按摩| 青草精品视频一日本久久久久网站| 欧美91网站| 欧美情色亚洲| 亚洲 自拍偷拍 欧美| 国产久久久久久久久一区二区| 78综合网| 欧美色图99| 福利社区午夜一区二区| 久热免费视频| 欧美手机在线综合| 在线亚洲 欧美 日本专区| 一区二区三区精品视频| 欧美日韩淫加| 欧美不在线| 日韩一级片在线看| 国产一区二区三区,在线观看观看| 综合色好色| 久久女人一区二区三区| 欧美亚综合色图| 日韩情色一区二区| 色玖玖| 91亚洲综合在线| 亚洲国产无码精品首页久久久| 日本超碰97日韩精品人妻| av网站在线看| 婷婷色一区| 久久精品久| 色噜噜人妻av 中文字幕| 国产激情在线| 蜜臀久久99精品久久久久久久久| 噜噜瑟| 99综合网| 婷婷超| 欧美 综合| 欧美十八禁导航成人| 精品无码人妻一区二区免费蜜桃| 成人av福利在线观看| 一直超碰| 亚洲成人久久一区二区| 校园春色美腿丝袜| 屌逼传媒| 黄色大片免费在线| 婷婷五月天无码| 337p大胆噜噜噜噜噜91Av| 熟妇一区二区| 亚洲免费97免费| 综合另类| 久久色一区| 国产色精品午夜大片| 成人精品久久| 男人的天堂色偷偷青青草视频婷婷网| 亚洲无无码αⅴ每日更新| 欧美天天综合站| 理论久久婷婷网 8| 国产综合永久精品日韩鬼片| 少妇无码999| 国产精品一区二区后入| 91久久国产综合精品| 丝袜性亚洲| 在线人人人人人人精品超| 欧州激情视频在线一区二区| 日韩肏逼视频| 怡红院亚洲怡春院av| 亚洲偷拍欧美激情| 久久精品性| 午夜福利无毒不卡| 97亚洲精品超碰| 啊嗯嗯啊好大好爽| 青青草啪啪网| 少妇高潮99p| 色综合九九| 久久久久久久久久久免费精品| 暴力av在线| 国语精品av| 香蕉国产97| 日韩 女同 综合| 亚洲精品1区| 99re6在线视频精品免费完整版安卓版| 免费看片黄| 国产视频第2页| 欧美图片色综合| 亚洲欧洲国产综合av| 强奸乱伦AV网址| 国内精品嫩模A∨私拍小视频| 久久久久久性爱免费视频| 精品视频久久| 亚洲色人| 无码精品久久久久久亚洲| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 激情综合网五月婷婷| 日韩av不卡在线观看| 91小视频| 99超级碰免费视频| 婷婷五月天伊人| 91精品国产91久久青草| 国产97/欧美| 成人怡红院| 操人人| 乱伦系列一区二区| 东京热激情视频一二三区| 久久婷婷一区二| 麻豆一区在线| 啊啊啊啊免费视频| 欧美一二三级精品在线| 福利伊人玖玖国产| 99热啪啪| 九一综合网| 国产在线强奸视频| 91精品国产日韩欧美综合| av日韩在线观看电影| 91爱综合| 欧美高清在线| 欧美十八禁视频| 久碰视频| 日韩中文字幕精品一二三事国产精品| 91五十路| 欧美99热| 高潮9999外国| 国产精品无码久久久久2028| 青草青青久久久久久国产| 校园春色亚洲无码| 亚洲激情综合另类男同| 久久久久成人蜜桃精品| 欧美偷| 成人免费不卡在线视频| 玖玖资源中文字幕制服丝袜| 七月婷婷综合| 蜜桃视频精品一区二区| 久操国产在线| 欧美日韩第一页| 日韩特一级久久| 日韩精品在线观看网站| 亚洲人久久久网| 日本www操操操| 久湿久久| 九九香蕉网| 日韩99999| 色综合中文字幕不卡| 午夜操一操| 欧美三级免费伊人| 92性色国产午夜福利在线661| 97天天综合网| 亚洲国产精品有声| 91视频综合在线| 色婷婷亚洲婷婷| 五月天亚洲色图| 色五月天AV| 久久久无码av精| 亚洲熟女人妻中文字幕一区二区 | 亚洲毛片一级带毛片基地| 超碰9 7女人| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 东京热免费视频| 激情抓乳插进去啪啪啪日韩| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 国产日本熟女顶级一区二区三区视频| av毛片aaaaa免费看| 伊人久久大香蕉线AV五月天| 国产成人一级av88| 欧美综合天堂| 精品9区| 激情五月天网站| 婷婷中文网| 欧洲精品二区| 国产风韵犹存熟妇三区| 国产精品制服丝袜中文字幕日韩一区二区三区 | 国产日韩在线播放| 91精品人妻偷情| 97视频在线播放| 国产国产亚洲一二三久久| 国产熟女精品区| 手机av天堂久久久久| 欧美日韩岛国大片在线观看| 看免费一级在线播放毛片| 欧美的精品的视频| 亚洲玖玖爱| 91亚洲欧美综合高清在线| 人妻人人澡人人爽人人| 91 手机在线播放 绯色| 去干网最新版| 五月天婷精品激情| 久久黄色性爱视频| 69少妇一区二区| 三级激情网站| 九色精品视频导航1| 一二三区操逼国产91| 亚州欧美在线| 超碰在线91| 91操熟女| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 色成人Www精品永久观看| 17c在线成人免费A片观看| 欧美日韩另类在线播放| 一本色道无码DVD中文字幕| 91色人妻| 成人美女av| 91丨九色丨东北熟女| 青青国产精品在线| 中文字幕少妇色| 国产熟女精品区| 蜜臀网址在线| 成人午夜高潮av猛片| 97在线精品观看视频| 玖玖资源综合在线视频| 极品色社| 97超碰超欧美。| 久热精品在线| 免费看片黄| 丁香六月婷婷久久综合| 白丝1区2区3区| 亚洲中文字幕久久无码精品| 日本一区不卡| 91精品啪在线观看国产城中村| 久久综合五月天| 97视频新免费| 97精品久久| 色婷婷综合网| 黑人与人妻| 伊人国产成人av网站| 亚洲欧美日韩精品久久久一区二区| 中文字幕啊啊啊在线观看视频| 亚洲伊人久久精品影院| 免费操逼91| 色婷婷基地| 亚洲男人天堂网站| 色久桃花影院在线观看| 伊人991| A片A5445444| 色狠狠综合噜一二三区| 一本色道熟妇| 丁香五月激情综合国产| 91精产一区二区三区| 婷婷午夜成人色中色| 青青草国产盗摄一二三区| 操国产逼| 欧美性天天影视| 亚洲 欧美 第一页| 韩国毛片一区二区三区| 亚欧操逼片在线观看| 欧美狠狠干| 久草视频制服诱惑| 亚洲 暴爽 AV人人爽日日碰| 久热精品在线国产| 中文操嬖片。| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 黄色小说亚洲| 动漫区日韩区欧美区| 操逼网站网站| 2019AV天堂| 亚洲欧洲精品视频发布| 大但人体久久久久| 亚洲无码精品AV久久久| 精品一区二区成人动漫| 久久国产精品一区二区| 久久久艹艹艹| 久久天天艹| 欧美一区二区| 啊啊啊好湿久久| 亚洲Av无码成人精品国产| 蜜臀久久99精品久久久久久婷婷 | 欧美性视频二区三区| 丁香五月影院| 国产日韩在线播放av| 99精品丰满人妻无码| 爱爱动态120秒| 国产精品久久久久久久黄无码 | 丁香九月婷婷| 偷拍色图| 久久99草| 在线亚洲丝袜视频网站| 亚洲激情 欧美色图| 婷婷五月激情综合| 国产熟女少妇一区| 久久大线蕉一区| 九九九九九九免费视频| 操熟女91| 91搞逼视频| JIZZJIZZ国产精品喷水|