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

ARTICLE DETAIL

資訊詳情

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

AI Agent技能實戰(zhàn):從零構建、集成與管理智能體核心能力

AI Agent技能實戰(zhàn):從零構建、集成與管理智能體核心能力 這次我們來看一個關于Agent Skills的技術主題。Agent Skills智能體技能是當前AI Agent智能體開發(fā)中的核心概念它直接決定了智能體能做什么、做得好不好。網上教程很多但要么太理論要么太零散很難直接上手應用到實際項目中。這篇文章不講虛的直接聚焦于Agent Skills 的實戰(zhàn)落地。我們會拆解清楚 Agent Skills 到底是什么它和 MCPModel Context Protocol、Agent Tools 等熱門概念的區(qū)別以及如何從零開始一步步構建、測試并集成一個可用的技能。無論你是想快速入門還是需要為企業(yè)級應用設計技能體系這里都有可以直接復用的思路和代碼。本文會重點解決幾個核心問題Agent Skills 的準確定義與邊界是什么如何設計一個高可用的技能如何通過代碼實現技能的注冊、調用與管理如何將技能集成到現有的 Agent 框架中以及在實戰(zhàn)中如何避免常見的性能與設計陷阱。1. 核心能力速覽在深入細節(jié)之前我們先通過一個表格快速了解 Agent Skills 的核心特性和本文的覆蓋范圍。能力項說明核心定位定義 AI Agent 可執(zhí)行的具體原子操作或復雜流程是 Agent 能力的具象化單元。與 MCP 區(qū)別MCP 是模型與工具/數據源之間的通信協(xié)議用于安全、標準化地擴展模型上下文。Agent Skills 是建立在協(xié)議或直接調用之上的功能實現。一個 MCP 服務器可以提供多個 Skills 所需的數據或接口。與 Agent Tools 區(qū)別在多數框架中Tools和Skills概念?;煊谩5毜膮^(qū)分是Tools偏向于單一、基礎的函數如搜索、計算而Skills可能是由多個Tools和邏輯組成的、具有明確業(yè)務目標的復合能力如“生成季度報告”、“排查系統(tǒng)故障”。開發(fā)門檻主要依賴 Python。對基礎編程和 API 調用有要求但無需深入的機器學習知識。運行環(huán)境可在本地開發(fā)環(huán)境Python、云服務器或容器化Docker環(huán)境中運行。通常作為后端服務集成到 Agent 框架。核心產出可被 Agent 理解、規(guī)劃和調用的技能函數通常包含清晰的名稱、描述、參數 schema 和執(zhí)行邏輯。適合場景1. 為 AutoGPT、LangChain、CrewAI 等框架擴展自定義能力。2. 構建企業(yè)內部的自動化業(yè)務流程如數據分析、報告生成、系統(tǒng)巡檢。3. 開發(fā)面向垂直領域的專業(yè)智能助手。2. Agent Skills 究竟是什么與 MCP、Tools 的深度辨析理解一個概念最好的方式是劃清它的邊界。當前社區(qū)對 Agent Skills、MCP、Agent Tools 的討論很多容易混淆。Agent Skills智能體技能的本質是“能力包”。它描述了一個智能體可以完成的一項具體任務。這個任務可以很簡單比如“獲取當前天氣”也可以很復雜比如“分析 GitHub 倉庫活躍度并生成報告”后者可能內部調用了多個數據查詢、處理和格式化的步驟。技能的核心在于提供一個標準化的接口讓 Agent 的“大腦”通常是 LLM能夠理解、規(guī)劃并調用它。MCPModel Context Protocol的本質是“安全通道”。它是由 Anthropic 提出的一種協(xié)議旨在解決大模型如何安全、可控地訪問外部工具、數據和計算資源的問題。你可以把它想象成一套標準的“插頭和插座”規(guī)范。一個 MCP 服務器如連接數據庫、JIRA、內部知識庫的服務器通過實現這套協(xié)議就能讓兼容 MCP 的客戶端如 Claude Desktop、某些 Agent 框架安全地調用其能力。Skills 可以利用 MCP 協(xié)議來獲取數據或執(zhí)行操作但 Skills 本身不等于 MCP。MCP 更側重于連接和協(xié)議而 Skills 更側重于功能邏輯。Agent Tools智能體工具在 LangChain、AutoGPT 等早期框架中廣泛使用其概念與 Skills 高度重疊。在許多上下文中它們可以互換。但如果細究可以這樣區(qū)分Tool工具更像一個“螺絲刀”或“扳手”是單一、通用的功能。例如search_web,calculate,read_file。它的輸入輸出通常很簡單。Skill技能更像“組裝一臺電腦”或“更換汽車輪胎”是一個有明確目標的復合流程可能涉及按順序或條件調用多個 Tools并包含更多的業(yè)務邏輯和錯誤處理。例如generate_weekly_report這個技能內部可能調用了query_database、analyze_data、format_to_ppt等多個工具。對于開發(fā)者而言不必過于糾結名詞。關鍵是理解你需要為你 Agent 定義一系列可調用的函數這些函數有清晰的描述和參數這就是你給 Agent 裝備的“技能”或“工具”。本文后續(xù)將統(tǒng)一使用“Skill”來指代。3. 環(huán)境準備與前置條件開始構建 Skill 之前需要準備好開發(fā)和運行環(huán)境。以下是一個通用且推薦的環(huán)境配置。1. 基礎軟件操作系統(tǒng)Windows 10/11 macOS 或 Linux如 Ubuntu 20.04。本文示例以 Linux/macOS 命令為主Windows 用戶可使用 WSL2 或相應調整。Python版本 3.8 - 3.11。推薦使用 3.10 以保證廣泛的庫兼容性。使用python --version檢查。包管理工具pip最新版。建議使用虛擬環(huán)境venv或conda隔離項目。2. 關鍵 Python 庫我們將使用langchain社區(qū)的一個流行框架langchain-core來演示如何定義和調用 Tools/Skills因為它設計清晰且被廣泛采用。# 創(chuàng)建并進入項目目錄 mkdir agent-skills-demo cd agent-skills-demo # 創(chuàng)建虛擬環(huán)境可選但推薦 python -m venv venv # Windows: venv\Scripts\activate # Linux/macOS: source venv/bin/activate # 安裝核心依賴 pip install langchain-core langchain-openai # langchain-openai 用于接入 OpenAI 模型如果你用其他模型請安裝對應包如 langchain-anthropic, langchain-community3. 大模型訪問權限你需要一個可訪問的大語言模型 API。本文示例使用 OpenAI GPT 系列但你也可以替換為 Claude、DeepSeek 或本地部署的模型。OpenAI在 OpenAI Platform 獲取 API Key。將 API Key 設置為環(huán)境變量這是最安全的方式# Linux/macOS export OPENAI_API_KEYyour-api-key-here # Windows (PowerShell) $env:OPENAI_API_KEYyour-api-key-here4. 從零構建你的第一個 Agent Skill我們從一個最簡單的技能開始一個查詢指定城市天氣的技能。雖然它內部只是返回模擬數據但完整展示了 Skill 的定義、封裝和調用流程。4.1 定義技能函數首先創(chuàng)建一個 Python 文件my_skills.py。# my_skills.py import json from typing import Type from pydantic import BaseModel, Field from langchain_core.tools import BaseTool, StructuredTool # 1. 定義技能的輸入參數模型Schema # 這幫助 LLM 理解調用這個技能需要提供什么信息 class WeatherQueryInput(BaseModel): 輸入參數查詢天氣需要城市名。 city_name: str Field(description要查詢天氣的城市名稱例如北京、上海、New York) # 2. 實現技能的核心邏輯函數 def get_current_weather(city_name: str) - str: 獲取指定城市的當前天氣情況。 這是一個模擬函數真實場景應調用如 OpenWeatherMap 的 API。 # 模擬一些天氣數據 weather_data { 北京: {city: 北京, condition: 晴朗, temperature: 22°C, humidity: 40%}, 上海: {city: 上海, condition: 多云, temperature: 25°C, humidity: 65%}, New York: {city: New York, condition: 小雨, temperature: 18°C, humidity: 80%}, } city weather_data.get(city_name) if city: return json.dumps(city, ensure_asciiFalse) else: return json.dumps({error: f未找到城市 {city_name} 的天氣信息}, ensure_asciiFalse) # 3. 使用 LangChain 的 StructuredTool 將函數包裝成一個標準的 Tool/Skill # 這是關鍵一步將普通函數轉化為 Agent 可理解和調用的對象。 weather_tool StructuredTool.from_function( funcget_current_weather, # 關聯(lián)的函數 nameget_current_weather, # 技能名稱LLM 通過這個名稱來調用 description查詢指定城市的當前天氣。, # 技能描述LLM 據此判斷何時使用此技能 args_schemaWeatherQueryInput, # 輸入參數 schema return_directFalse, # 是否直接返回結果給用戶。通常為 False讓 Agent 決定如何呈現。 )4.2 測試技能是否可用創(chuàng)建另一個文件test_skill.py直接測試我們剛定義的技能。# test_skill.py from my_skills import weather_tool # 直接調用工具就像調用普通函數一樣但需要通過 invoke 方法并傳入參數字典 result weather_tool.invoke({city_name: 上海}) print(直接調用技能結果) print(result) print(\n---\n) # 查看技能的 Schema 信息這是 LLM 所看到的內容 print(技能 Schema (供LLM使用)) print(f名稱: {weather_tool.name}) print(f描述: {weather_tool.description}) print(f參數: {weather_tool.args})運行python test_skill.py你應該能看到上海的模擬天氣信息被打印出來同時也能看到技能的元數據。這證明你的技能函數工作正常并且已經被正確封裝。5. 將技能賦予 Agent 并實現自動調用單個技能自己運行意義不大關鍵是讓 AgentLLM能夠根據用戶需求自動決定是否使用、如何使用這個技能。下面我們創(chuàng)建一個簡單的 Agent并觀察它如何運用get_current_weather技能。5.1 創(chuàng)建帶有技能的 Agent創(chuàng)建文件run_agent.py。# run_agent.py import os from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate from my_skills import weather_tool # 導入我們定義的技能 # 0. 確保已設置 OPENAI_API_KEY 環(huán)境變量 # 或者在代碼中設置不推薦用于生產 # os.environ[OPENAI_API_KEY] your-key # 1. 初始化大語言模型 llm ChatOpenAI(modelgpt-4o-mini, temperature0) # 使用 gpt-4o-mini成本低且性能足夠 # 2. 準備技能列表。一個 Agent 可以擁有多個技能。 tools [weather_tool] # 3. 設計提示詞模板告訴 Agent 它的角色和可用技能。 # 這是引導 Agent 行為的關鍵。 prompt ChatPromptTemplate.from_messages([ (system, 你是一個樂于助人的助手可以調用工具來幫助用戶解決問題。 如果你需要查詢實時信息如天氣請務必調用相應的工具。 你的回答應當清晰、準確。 以下是你可以使用的工具 {tools} 調用工具時請嚴格按照工具要求的參數格式提供信息。 如果用戶的問題無法通過現有工具解決請誠實地告知用戶你的能力限制。), (placeholder, {chat_history}), # 預留多輪對話歷史的位置 (human, {input}), # 用戶當前輸入 (placeholder, {agent_scratchpad}), # 預留 Agent 思考過程的位置 ]) # 4. 創(chuàng)建 Agent agent create_tool_calling_agent(llmllm, toolstools, promptprompt) # 5. 創(chuàng)建 Agent 執(zhí)行器它負責運行 Agent 的循環(huán)思考-調用工具-再思考-輸出 agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) # verboseTrue 打印詳細過程 # 6. 運行測試 if __name__ __main__: # 測試用例 1需要調用技能的問題 query1 今天上海的天氣怎么樣 print(f用戶: {query1}) result1 agent_executor.invoke({input: query1, chat_history: []}) print(f助手: {result1[output]}\n) # 測試用例 2無需調用技能的問題 query2 你好請介紹一下你自己。 print(f用戶: {query2}) result2 agent_executor.invoke({input: query2, chat_history: []}) print(f助手: {result2[output]}\n) # 測試用例 3技能無法解決的問題 query3 你能幫我預訂明天的機票嗎 print(f用戶: {query3}) result3 agent_executor.invoke({input: query3, chat_history: []}) print(f助手: {result3[output]})5.2 運行與觀察運行python run_agent.py。由于設置了verboseTrue你會在控制臺看到詳細的執(zhí)行過程類似于用戶: 今天上海的天氣怎么樣 Entering new AgentExecutor chain... 思考用戶詢問上海的天氣我需要使用 get_current_weather 工具來獲取信息。 Action: get_current_weather Action Input: {city_name: 上海} Observation: {city: 上海, condition: 多云, temperature: 25°C, humidity: 65%} 思考我已經獲取到了上海的天氣信息現在可以回答用戶了。 助手: 上海當前的天氣是多云氣溫25°C濕度65%。這個過程清晰地展示了 Agent 的推理鏈Chain of Thought理解問題識別出用戶需要天氣信息。規(guī)劃決定調用get_current_weather工具。執(zhí)行以正確的參數{city_name: 上海}調用工具。觀察結果接收工具返回的 JSON 數據。合成回答將工具返回的結構化數據轉化為自然語言回復給用戶。對于不需要工具的問題如“介紹自己”Agent 會直接利用 LLM 的內部知識回答。對于工具無法解決的問題如“訂機票”Agent 會根據提示詞要求誠實地告知能力限制。6. 構建企業(yè)級實戰(zhàn)技能復合技能與外部 API 集成單一技能只是開始。企業(yè)級應用需要更復雜、更可靠的技能這些技能往往需要組合多個步驟、調用外部 API 并處理異常。6.1 設計一個復合技能GitHub 倉庫分析報告假設我們需要一個技能能分析指定 GitHub 倉庫的近期活躍度如最近10個 Issue 主要貢獻者并生成一份簡短的文本報告。這個技能會涉及調用 GitHub REST API 獲取數據。對數據進行處理和分析。格式化生成報告。步驟一安裝額外依賴pip install requests python-dateutil步驟二實現復合技能創(chuàng)建文件advanced_skills.py。# advanced_skills.py import requests import json from datetime import datetime, timedelta from dateutil import parser from typing import List, Dict, Any from pydantic import BaseModel, Field from langchain_core.tools import StructuredTool # --- 技能1獲取倉庫基礎信息 --- class RepoInfoInput(BaseModel): owner: str Field(descriptionGitHub 倉庫的所有者用戶名或組織名例如microsoft) repo: str Field(descriptionGitHub 倉庫的名稱例如vscode) def get_github_repo_info(owner: str, repo: str) - str: 獲取 GitHub 倉庫的基礎信息如星標數、fork 數等。 url fhttps://api.github.com/repos/{owner}/{repo} headers {Accept: application/vnd.github.v3json} try: response requests.get(url, headersheaders, timeout10) response.raise_for_status() data response.json() # 提取關鍵信息 result { full_name: data.get(full_name), description: data.get(description), stars: data.get(stargazers_count), forks: data.get(forks_count), open_issues: data.get(open_issues_count), language: data.get(language), updated_at: data.get(updated_at), } return json.dumps(result, ensure_asciiFalse) except requests.exceptions.RequestException as e: return json.dumps({error: f請求 GitHub API 失敗: {str(e)}}, ensure_asciiFalse) except json.JSONDecodeError: return json.dumps({error: 解析 GitHub 響應失敗}, ensure_asciiFalse) repo_info_tool StructuredTool.from_function( funcget_github_repo_info, nameget_github_repo_info, description獲取指定 GitHub 倉庫的基礎信息和統(tǒng)計指標。, args_schemaRepoInfoInput, ) # --- 技能2分析近期 Issues --- class AnalyzeIssuesInput(BaseModel): owner: str Field(descriptionGitHub 倉庫的所有者) repo: str Field(descriptionGitHub 倉庫的名稱) days: int Field(default30, description分析最近多少天內的 Issue默認30天) def analyze_recent_issues(owner: str, repo: str, days: int 30) - str: 分析 GitHub 倉庫最近一段時間內創(chuàng)建的 Issue。 since_date (datetime.now() - timedelta(daysdays)).isoformat() url fhttps://api.github.com/repos/{owner}/{repo}/issues params {state: all, since: since_date, sort: created, direction: desc, per_page: 10} headers {Accept: application/vnd.github.v3json} try: response requests.get(url, headersheaders, paramsparams, timeout15) response.raise_for_status() issues response.json() analysis { total_recent_issues: len(issues), issues: [] } for issue in issues[:5]: # 只分析前5個作為示例 issue_info { number: issue.get(number), title: issue.get(title), state: issue.get(state), created_at: issue.get(created_at), user: issue.get(user, {}).get(login), } analysis[issues].append(issue_info) # 簡單統(tǒng)計 open_count sum(1 for i in issues if i.get(state) open) analysis[open_issues] open_count analysis[closed_issues] len(issues) - open_count return json.dumps(analysis, ensure_asciiFalse) except requests.exceptions.RequestException as e: return json.dumps({error: f請求 Issues API 失敗: {str(e)}}, ensure_asciiFalse) issues_analysis_tool StructuredTool.from_function( funcanalyze_recent_issues, nameanalyze_recent_issues, description分析指定 GitHub 倉庫最近一段時間內的 Issue 活躍情況。, args_schemaAnalyzeIssuesInput, ) # --- 復合技能生成倉庫分析報告 --- # 這個技能本身不直接調用API而是協(xié)調調用上述兩個基礎技能并整合結果。 class GenerateRepoReportInput(BaseModel): owner: str Field(descriptionGitHub 倉庫的所有者) repo: str Field(descriptionGitHub 倉庫的名稱) def generate_github_repo_report(owner: str, repo: str) - str: 生成一份關于 GitHub 倉庫的簡要分析報告。 內部會調用獲取倉庫信息和分析 Issue 的工具。 # 調用第一個工具獲取基礎信息 print(f[INFO] 正在獲取倉庫 {owner}/{repo} 的基礎信息...) info_result get_github_repo_info(owner, repo) info_data json.loads(info_result) if error in info_data: return f獲取倉庫基礎信息失敗{info_data[error]} # 調用第二個工具分析 Issues print(f[INFO] 正在分析倉庫 {owner}/{repo} 的近期 Issues...) issues_result analyze_recent_issues(owner, repo, days30) issues_data json.loads(issues_result) if error in issues_data: return f分析 Issues 失敗{issues_data[error]} # 整合信息生成報告文本 report_lines [] report_lines.append(f# GitHub 倉庫分析報告{info_data.get(full_name, f{owner}/{repo})}) report_lines.append(f**描述**: {info_data.get(description, 無)}) report_lines.append(f**主要語言**: {info_data.get(language, 未知)}) report_lines.append(f**星標數**: {info_data.get(stars, N/A)}) report_lines.append(f**Fork 數**: {info_data.get(forks, N/A)}) report_lines.append(f**最近更新**: {info_data.get(updated_at, N/A)}) report_lines.append() report_lines.append(f## 近期活躍度分析 (最近30天)) report_lines.append(f共創(chuàng)建 {issues_data.get(total_recent_issues, 0)} 個 Issue。) report_lines.append(f- 仍開放的: {issues_data.get(open_issues, 0)}) report_lines.append(f- 已關閉的: {issues_data.get(closed_issues, 0)}) report_lines.append() report_lines.append(### 最近的部分 Issues) for issue in issues_data.get(issues, [])[:3]: # 展示最近3個 report_lines.append(f- [#{issue.get(number)}] {issue.get(title)} ({issue.get(state)}) - 由 {issue.get(user)} 創(chuàng)建于 {issue.get(created_at)}) report_lines.append() report_lines.append(*報告生成時間{}*.format(datetime.now().strftime(%Y-%m-%d %H:%M:%S))) return \n.join(report_lines) # 將復合技能也封裝成 Tool這樣 Agent 可以直接調用它 repo_report_tool StructuredTool.from_function( funcgenerate_github_repo_report, namegenerate_github_repo_report, description為指定的 GitHub 倉庫生成一份包含基礎信息和近期活躍度的分析報告。, args_schemaGenerateRepoReportInput, )6.2 測試復合技能創(chuàng)建測試文件test_advanced_skill.py。# test_advanced_skill.py from advanced_skills import repo_report_tool # 測試一個知名倉庫如 LangChain 的 LangSmith SDK result repo_report_tool.invoke({owner: langchain-ai, repo: langsmith}) print(GitHub 倉庫分析報告) print(result)運行此腳本你會看到控制臺先打印出[INFO]日志然后輸出一份格式化的 Markdown 報告。這個generate_github_repo_report就是一個復合技能的典型例子。它內部編排了多個子任務調用兩個 API并進行了數據整合與格式化。在企業(yè)場景中你可以用類似模式構建更復雜的技能例如generate_sales_report從 CRM、數據庫拉取數據分析生成 PPT 大綱。monitor_system_health調用多個監(jiān)控系統(tǒng) API匯總狀態(tài)發(fā)送警報。onboard_new_employee在 HR 系統(tǒng)、IT 工單系統(tǒng)、通訊工具中創(chuàng)建一系列記錄。7. 技能的管理、注冊與動態(tài)加載當技能數量增多時需要一套管理機制。常見的模式是使用一個技能注冊中心Registry。7.1 創(chuàng)建技能注冊中心創(chuàng)建文件skill_registry.py。# skill_registry.py from typing import Dict, Any, List from langchain_core.tools import BaseTool import importlib import pkgutil import sys class SkillRegistry: 一個簡單的技能注冊中心用于管理和加載所有可用的技能。 def __init__(self): self._tools: Dict[str, BaseTool] {} def register_tool(self, tool: BaseTool): 注冊一個技能工具。 if tool.name in self._tools: print(f[WARNING] 工具名 {tool.name} 已存在將被覆蓋。) self._tools[tool.name] tool print(f[INFO] 已注冊工具: {tool.name}) def register_tools(self, tools: List[BaseTool]): 批量注冊技能工具。 for tool in tools: self.register_tool(tool) def get_tool(self, name: str) - BaseTool: 根據名稱獲取技能工具。 return self._tools.get(name) def get_all_tools(self) - List[BaseTool]: 獲取所有已注冊的技能工具。 return list(self._tools.values()) def load_tools_from_module(self, module_name: str): 從一個 Python 模塊中動態(tài)加載所有 Tool 對象。 約定模塊中所有變量名以 _tool 結尾的對象都被視為技能工具。 try: module importlib.import_module(module_name) for attr_name in dir(module): if attr_name.endswith(_tool): attr getattr(module, attr_name) if isinstance(attr, BaseTool): self.register_tool(attr) except ImportError as e: print(f[ERROR] 無法導入模塊 {module_name}: {e}) def list_tools(self): 列出所有已注冊的工具及其描述。 print( 已注冊技能列表 ) for name, tool in self._tools.items(): print(f- {name}: {tool.description}) # 創(chuàng)建一個全局注冊中心實例 registry SkillRegistry()7.2 使用注冊中心修改run_agent.py使用注冊中心來管理技能。# run_agent_with_registry.py import os from langchain_openai import ChatOpenAI from langchain.agents import AgentExecutor, create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate # 導入技能注冊中心和各個技能模塊 from skill_registry import registry from my_skills import weather_tool from advanced_skills import repo_info_tool, issues_analysis_tool, repo_report_tool # 1. 向注冊中心注冊技能 registry.register_tools([weather_tool, repo_info_tool, issues_analysis_tool, repo_report_tool]) # 或者從模塊自動加載 # registry.load_tools_from_module(my_skills) # registry.load_tools_from_module(advanced_skills) # 列出所有可用技能 registry.list_tools() # 2. 從注冊中心獲取所有工具 tools registry.get_all_tools() # 3. 初始化 LLM 和 Agent同之前 llm ChatOpenAI(modelgpt-4o-mini, temperature0) prompt ChatPromptTemplate.from_messages([ (system, 你是一個強大的助手擁有多種技能。請根據用戶問題選擇最合適的工具。 可用工具 {tools} 請嚴格按工具要求提供參數。如果無法解決請說明原因。), (placeholder, {chat_history}), (human, {input}), (placeholder, {agent_scratchpad}), ]) agent create_tool_calling_agent(llmllm, toolstools, promptprompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) # 4. 運行一個復雜查詢 complex_query 請幫我分析一下 langchain-ai/langsmith 這個 GitHub 倉庫的近期情況并生成一份報告。 print(f\n用戶: {complex_query}) result agent_executor.invoke({input: complex_query, chat_history: []}) print(f\n助手: {result[output]})運行這個腳本你會看到注冊中心列出了所有技能然后 Agent 在面對復雜查詢時自動選擇了最匹配的復合技能generate_github_repo_report來執(zhí)行而不是分別調用get_github_repo_info和analyze_recent_issues。這體現了智能體在擁有多個技能時的規(guī)劃和選擇能力。8. 性能優(yōu)化、錯誤處理與安全邊界8.1 性能優(yōu)化技能懶加載對于初始化耗時的技能如加載大模型不要在注冊時就完全初始化可以封裝一個工廠函數在首次調用時再加載。緩存對頻繁調用、結果變化不頻繁的外部 API 請求如天氣、股票價格添加緩存層如functools.lru_cache或 Redis。異步支持如果技能涉及大量 I/O 操作網絡請求、數據庫查詢考慮使用async/await實現異步技能以提升 Agent 在高并發(fā)下的吞吐量。LangChain 支持異步工具調用。8.2 錯誤處理與魯棒性一個健壯的技能必須處理各種異常。網絡超時與重試在調用外部 API 時使用try...except包裹并考慮實現指數退避重試機制。參數驗證除了 Pydantic Schema在函數內部也應對參數進行業(yè)務邏輯驗證。優(yōu)雅降級當主要功能失敗時嘗試提供降級方案或更友好的錯誤信息。日志記錄使用logging模塊記錄技能調用的開始、結束、參數和錯誤便于排查問題。import logging import time from tenacity import retry, stop_after_attempt, wait_exponential logging.basicConfig(levellogging.INFO) logger logging.getLogger(__name__) retry(stopstop_after_attempt(3), waitwait_exponential(multiplier1, min4, max10)) def robust_api_call(url: str, params: dict) - dict: 一個帶有重試和日志的健壯 API 調用函數示例。 logger.info(f調用 API: {url}, 參數: {params}) try: response requests.get(url, paramsparams, timeout15) response.raise_for_status() return response.json() except requests.exceptions.Timeout: logger.error(fAPI 調用超時: {url}) raise except requests.exceptions.RequestException as e: logger.error(fAPI 調用失敗: {url}, 錯誤: {e}) raise8.3 安全與合規(guī)邊界這是企業(yè)級應用的生命線。權限控制技能可能訪問敏感數據或執(zhí)行危險操作。必須在技能執(zhí)行前進行身份驗證和授權檢查。可以將用戶上下文傳遞給技能函數。輸入凈化對所有來自外部的輸入包括用戶輸入和 LLM 生成的參數進行嚴格的驗證和凈化防止注入攻擊。訪問外部資源確保技能調用的外部 API 或服務是合法、合規(guī)的并遵守其使用條款。數據隱私如果技能處理個人數據必須遵守 GDPR、CCPA 等數據保護法規(guī)。避免在日志中記錄敏感信息。操作審計記錄“誰在什么時候調用了什么技能參數是什么結果是什么”用于安全審計和問題追溯。9. 常見問題與排查方法在開發(fā)和運行 Agent Skills 時你可能會遇到以下典型問題。問題現象可能原因排查方式解決方案Agent 不調用技能1. 技能描述不清晰。2. LLM 溫度 (temperature) 過高導致輸出隨機。3. 系統(tǒng)提示詞未正確列出工具。1. 檢查verboseTrue的日志看 Agent 的思考過程。2. 檢查技能name和description是否準確。3. 簡化提示詞明確要求使用工具。1. 優(yōu)化技能描述使其更匹配預期問題。2. 將temperature設為 0 或更低。3. 在提示詞中強調“你必須使用工具”。技能調用參數錯誤1. LLM 未能正確理解參數格式。2. Pydantic Schema 定義太復雜或模糊。1. 查看Action Input日志參數是否是有效的 JSON。2. 檢查 Schema 中Field的description是否清晰。1. 為每個參數提供更精確、示例化的描述。2. 使用更簡單的數據類型如str,int。3. 考慮使用StructuredTool的args_schema進行強約束。技能執(zhí)行超時或失敗1. 外部 API 不可用或慢。2. 網絡問題。3. 技能函數內部有 bug。1. 在技能函數內部添加超時和異常捕獲。2. 單獨測試技能函數確認其能正常工作。3. 查看詳細的錯誤堆棧。1. 增加超時時間添加重試邏輯。2. 實現 fallback 機制或返回友好的錯誤信息。3. 完善技能函數的錯誤處理。多技能沖突或選擇不當多個技能描述相似LLM 困惑。觀察 Agent 選擇了哪個技能是否合理。1. 細化技能描述突出其獨特用途和邊界。2. 如果技能有重疊考慮合并或重構。依賴安裝失敗Python 包版本沖突或網絡問題。查看pip install的錯誤信息。1. 使用虛擬環(huán)境。2. 使用requirements.txt固定版本。3. 使用國內鏡像源加速下載。10. 總結與最佳實踐通過以上步驟我們完成了一個從簡單到復雜、從單技能到技能體系的 Agent Skills 實戰(zhàn)演練。我們來總結一下關鍵點和最佳實踐1. 技能設計要“高內聚、低耦合”每個技能應專注于完成一件明確的事情。復雜的業(yè)務流程應由 Agent 通過規(guī)劃調用多個簡單技能來完成或者封裝成一個復合技能。避免創(chuàng)建“巨無霸”技能。2. 描述即契約技能的name和description是 LLM 理解它的唯一途徑。描述務必準確、具體、包含關鍵詞。好的描述能極大提升 Agent 調用技能的準確率。3. 輸入 Schema 是護欄使用 Pydantic 嚴格定義輸入參數的類型和描述。這不僅是給 LLM 的指南也是代碼的自動驗證和文檔。4. 錯誤處理不是可選項技能必須能優(yōu)雅地處理失敗并返回對 Agent 和最終用戶都有意義的信息而不是拋出未捕獲的異常導致整個 Agent 崩潰。5. 從簡單開始逐步迭代不要一開始就設計龐大的技能庫。從一個核心技能開始與 Agent 聯(lián)調確保它能被正確理解和調用。然后逐步添加新技能并觀察它們之間的協(xié)作。6. 測試、測試、再測試為每個技能編寫單元測試。模擬 Agent 調用場景進行集成測試。測試正常流程更要測試邊界情況和異常輸入。7. 關注安全與成本尤其是調用外部 API 或執(zhí)行寫操作的技能必須加入權限校驗、操作確認和用量監(jiān)控防止惡意調用或意外產生高額費用。Agent Skills 是將大語言模型能力落地到具體業(yè)務場景的橋梁。掌握如何設計、實現和管理技能你就掌握了構建實用 AI Agent 應用的核心能力。建議從本文的示例代碼出發(fā)嘗試將你日常工作中重復、規(guī)則明確的流程改造成一個 Agent Skill體驗 AI 驅動的自動化帶來的效率提升。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本视频一区二区三区| 91亚洲狠狠色| 亚洲激情久久久伊人综合| 欧美黄色手机在线观看| 日韩丰满熟妇| 91国产伊人大香蕉| 午夜无码精品免费看性色| 婷婷五月丁香五月| 天天综合网视频91| 亚洲欧综合另类无码一区| 天天享受天天看| 亚洲欧美碰碰| 天天插天天干| 91蜜臀人妻中文字幕在线| 中文日本免费高清| 色老汉色| 少妇厨房愉情理伦片bd在线观看| 精品妇女一区二区三区| 欧美丝袜中文字幕07在线| 自慰白浆在线观看| 91男人综合| 亚洲第2页| 嗯~啊~快点 死我视频| 色路综合| 蜜臀久久一区二区| 亚洲日韩电影| 中文字幕91综合| 91国模| 97久久视频| 久久中文字幕人妻熟av女蜜柚| 性爱乱伦网址| 中国熟妇| 婷婷色综合| 91 天天综合| 久久精品性| 亚欧美综合| 亚洲乱码国产乱码精网站| 二三四区精品| 蜜臀操逼黄色视频操的好爽| 欧美97免费| 无码国产精品午夜不卡( | 欧美色五月| 久久美女国产| 精品亚州18| 国产精品白丝在线播放| 97超级欧美| 国产精品成人无码a v毛片| 97免费免费视频网| 操迟操逼在巾线Fre看| 色情亚洲日本成人| 激情综合网五月婷婷五月天| 成人青青草原伊人| 亚洲色图在线视频| 免费观看国产小粉嫩喷水精品午| 1024午夜激情男人的天堂| 亚洲最大的综合性av| 91美女视频电影| 免费AV播放| 91亚洲欧洲| 亚洲91色在线| 日韩免费性爱视频在线观看| 78久久| 亚洲日韩青青草色月| 777AV电影| 色拍偷亚洲| 激情五月综合| 中文字幕五月婷婷免费| 午夜福利合集| 日逼五月天| 欧美成人A天堂片在线观看| 日韩大香蕉精品在线视频| 啊视频在线| 亚洲图片 欧美电影| 91精品综合久久久久久五月丁香| 翔田千里Av在线| 日本亚欧爱爱| 久久久性爱视频| 日韩在线观看字幕精品| 91综合色噜噜| 97伦综合| 欧洲小说色图视频另类| 920日本午夜免费| 国产无码三级视频在线观看| 67914在线兔费成人视频| 日本天天人人狠狠在线日美女| 亚洲成人在线高清| 九九热三级片| 久久99久久99精品天美传媒棢·纸:. | 天天干2区3区| 亚洲乱码尤物193YW| 日韩15p| 大香蕉99热| 欧美日韩情色一区二区| 日本性爱少妇| 成人无码电影在线观看网| 夜夜夜爽www精品视频| 日韩成人午夜精品久久高潮| 综合天天网| 国内外色色色色色成人视频| 久久精品中文字幕无码l| 翔田千里AV无码秘 三区| 四虎在线观看网站| 美女黄页| 激情婷婷五月天| 26uuu性| 天天拍夜夜| 亚洲精品男人的天堂| 亚洲人妖网| 麻豆 亚洲 97| 亚洲国产精品成人综合| 插入粉嫩少妇视频| AV女资源| 中文字幕性感少妇av| 欧美成人色| 久久久久久网址| 五月丁香大香蕉| 亚洲se电影| 欧美不卡二区| 国产又大又粗又长视频在线| av网站免费线看| 午夜久久一区二区无码中出| 夜夜操夜夜高潮夜夜爽国产精品区| 国产在线综合网| 暖暖精品二区三区观看| 麻豆天美传媒毛片| 97爱爱爱综合| 一区二区三区亚洲| 91爱看| 国产亚洲精品无码三区| 久久人体一区二区| 99在线精品观看99| 99热精品在线观看| 久久久九九网站| 白嫩妹子国产骚| 亚洲va综合va国产va中文| 91综合站| 综合天天网| 一本大道不卡一二三区| 淫妻综合网| 欧美双插| 91超碰碰在线| 日韩欧美视频青青| 久久久爆乳翘臀一线天伦理视频| 又大又大又大又粗爽高潮观看| 久久久蜜桃一区二区三区| 久久精品一区二区一8| 亚洲av综合伊人久久| 欧美一区二区三区不卡高清视频| 国产午夜视频| 久久久爆乳翘臀一线天伦理视频| 久操精品| 成人片视频| 色99视频| 青娱乐淫乱1314| 狠狠图片青青草| 97人人操人人干| 伊人五月天婷婷| 欧美午夜视频| 蜜伊人色综合97| 亚洲国产一级精品毛一级精品看免费视频 | 亚洲欧美国产其他二区| 91丨人妻丨国产丨丝袜| 大香蕉伊人75| 骚熟女AV网| 色天堂综合| 久久超碰爱| 三级色综合| 亚洲AV成人精品网站在AV| 大逼色网站| 超碰在线1234区| 日韩国语字幕| aⅴ日韩成人电影av在线免费看av大全| 很很操在线| 亚欧美色| 日韩啪啪视频| 密臀在线一区尤物| 九九九九久久久久| 夜夜精品视频| 亚洲美女AV无码| 97天天摸天天爽| 亚洲精品97久久| 青青草依人大香蕉| 美女黄站| 狠狠操使劲操| 强奸乱伦AV一天堂网| 韩美日操逼| 九九九九久久久| av资源在线观看少妇| 国产福利av精彩对白| 日本视频在线观看污污污| 秋霞久久亚洲精品成人| 午夜福利视频在线一区| 五月开心网| 亚洲日产专区| 美女的肌被草喷水视频| 色老久久| 99久久网站| 久久精品操| 国产精品播放| 青青伊人这里只有精品| 色999;丁香五月| 日本三级久| 精品无人区麻豆乱码久久久| 国产AV线| 成人羞羞视频国产| 天天干夜夜一操| 亚洲免费成人精品电影| 人妻天堂综合网| 天天舔九色婷婷| 最新9久久久9免费视频| 91天天| 乳欲人妻办公室奶水| 一区二区三区精品视频| 台湾肥佬网一区二区三区| 97天天插| 国产最火爆久久国产网站网站| 先锋色眉乱伦资源| 亚洲女毛多水多21P| 欧美亚洲清纯| 992大香蕉| 91人妻精华帖| 野狼激情网| 欧美国产一区二区三区麻豆传媒| 大香蕉草草| 秋霞无码av鲁丝片一区| 熟女中出视频| 啊啊啊好多水| 男人天堂一区二区| 四虎av在线| 国产真实野战在线视频| 99热日| 74成人在线| 欧美性爱97超碰| 日本好吊色视频| 国产精品美女视频诱惑| 日韩另类色图| 久一区久久蜜桃| 日韩免费性爱视频在线观看| 亚洲熟女乱色一区二区三区久久久| 一级片视频啪啪| 天天爽爽爽爽| 中文字幕97| 女色视频社区| 欧美色999| 婷婷性爱| 亚洲激情片| 极品色社| 97超碰人人模人人拍人人| 超AV色女| 在线中文字幕| 日日干夜夜骑| 91久久久久久久久18| 成人草草视频| 又黄又爽在线观看视频| 久草午夜| 亚州久久9| 岛国免费黄色网址| 久久久久九九九九九| 91干熟女| 1769成人国产精品视频| 久久亚洲天天做| 国产一级内射无挡观看| 另类老少妇| 9999免费精彩视频| 男人亚洲天堂| 后入福利| 凌辱美少妇久久aV| 超碰公开久久网| 欧美一级AAAAAAA| 亚洲成人精品久久久| 久久久精品中文字幕爱豆| 亚av顶级裸体一区二区三区四区五区| 激情 欧美 亚洲 小说| daxiangjiao你懂的| 在线视频日韩欧美国产| 亚洲欧美另类激情小说| 婷婷15月天青娱乐| 久久精品国产免费观看99| 欧美韩日精品99综合| 熟女一区二区| 超碰精品在线| 免费?级毛片无码?∨蜜芽试看| 中文字幕日韩情色| 四虎884a| 看看小穴| 国产67194| 亚洲无码99| 日本熟妇浓毛hdsex| 国产中午字一暮区| 北条麻妃性愛视频| 久久9亚洲| 色婷婷亚洲婷婷| japan日本高清乱xxxx| 97人人色| 日本性一区| 大香蕉一人在线| 国产精品2020| 五月天黄色av| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 亚洲色图亚洲无码强奸乱伦| 国产成人无码啪| 人妻一区二区三区熟女| 国产91 丝袜在线播放 | 国产激情视频一区区三区| 超碰偷拍| 2021久久国产综合精品青草| 久久久草成人网站久久久草成人久久久草久久久| 樱花蜜乳av| 日韩极品无码B| 欧美丝袜制服久久| 日韩女优中文字幕| nuu12国产麻豆精品| 欧美爱爱97| 国产精品美女在线一区| 色欲日韩欧美在线一区| 在线观看日韩av不卡| 亚洲丝袜在线观看| 99精品在线观看| 成人av福利在线观看| 日本超碰色精品| 岛国大片在线观看网站入口| 天天躁日日躁狠狠狠躁| www.97在线| 五月天激情小说| 久久五十路熟女人妻| 精品一区二区2| 超碰 另类 欧美 | 热99这里有精品综合久久 | 手机不卡视频不卡在线一二三区| 最新日日夜夜天天干干| 超碰天天去日穴| 操少妞在线视频| 人人做人人妻人人夜视频| 无码抄逼网| 精品999日本| www.男人的天堂| 97精品一二区| 欧美色色色| 婷婷伊人网| 久久久久久人妻| 午夜久久一区二区无码中出| 97超碰逼| 久久有码视频| 亚洲日韩av专区无码| 人人看人人插| 蜜乳AV色欲AVAV无码| 久久99热这里只频精品6学生| 精品精品精品| 欧美激情久久久久| 亚洲欧美骚| 人妻精品一区二区三区| 天美传媒AV在线播放| 黄色av网站在线播放| 日韩av乱伦| 亚洲最大黄网| 爱丝福利| 操逼网站网站| 日本99久久| 黑人与人妻| 久久久久久综合久久伊人蜜月| 久久久久久久久久va| 另类一区| 日han少妇无码| 人妻熟女一区二区在线视频| 蜜乳AV.COM| 色婷婷电影网| 91色人| 日韩激情毛片一级久久久| 综合色啪| 精品妇操一区二区三区| 欧美性生活男人的天堂| 超碰久久中文| 欧洲人妻视频| 日本熟女中文| 97精品视频在线播放| 久久少妇| 天天综合网日韩7799| 91精品老女人| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 一牛一区二区三区久久| 人人爱人人乐人人操| 久久久免费的精品| 亚洲激情网一二三四区| 精品人妻久久久久一区二区三区| 激情国产乱伦Av| 欧美韩日精品99综合| 香蕉黄色一级视频| 性站 | 国产高清免费不卡av| 殴美牲| 久久亚洲天天做| 欧美影音在线| 一级日本牲交大片好爽在线看| 无码人妻一区二区一牛影视| 欧美九一精品久久久熟妇| 国产亚洲欧美每日在线| 久久手机好看网站| 91综合网在线| 久久国产精品一级二级三级| 青青草好吊色| 爱射综合| 国产精品熟女一区二区三区| 伊人色综合超碰| 天美精品原创av片国产| 色av中文字| 中文字幕欧美日韩三级| 91爽啪| 九九九精品| 91久久国产综合久久| 中文字幕精品资源在线| 美国一区二区免费视频| 91麻豆天美国产欧美高潮| 乳欲人妻办公室奶水| 亚洲性猛| 久久久久久AⅤ无码免费肉站| 九热超碰| 亚洲色综合| 亚洲欧美不卡线| 射 色综合| 欧美性爱第一页久久| 中文字幕视频一区视频二区| 中文字幕中文字幕一区二区| 任我爽在线视频免费观看 | 国产精品视频| 91色婷婷综合久久中文字幕二区| 天天天干977| 综合熟女| 精品性爱| 欧美亚洲韩国视频十五区| 午夜男人一级A片7777| 色综合 加勒比| 婷婷五月天影院| 少妇精品久久| 日韩欧美资源| 69精品人人人人| 天天射天天| 后入式视频国产自| 91色碰| 久久无码一区二区二三区性色| 欧美亚州色的图| 精品一区二区亚洲国产| 亚洲精品国产无码高清| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 大香蕉综合| 日韩不卡毛片Av免费高清| 欧美色图20P| 鸥美精品一区二区久久婷婷| 亚洲av无码成人精品国产| 精品国产一区探花在线观看| 精品二区三四区五电影 | 麻豆av一区二区| 啊啊啊啊啊好大好舒服想要| 成人短视频在线观看| 黄色人人| 久久精品久久久久久久| 九九九九97| 青青操97| 日本一本一区二区三区四区五区欧美日韩中文字幕| 一级做a爰片性色毛片久久| 91麻豆天美国产欧美高潮| 我爱操| 五月亭亭六月丁香| 九九精品美女高溯喷水| 日韩性爱再线视频| 国产女s强制榨精视频| 麻豆熟妇乱妇熟色A片在线看| 日本不卡三级网在线播放| 免费看日本操逼视频| 国产精品人妻一区二区| 日韩综合无码一区久久92| 啊啊啊啊啊好舒服视频| 亚洲视频,小说| 天天爱天天韩国日本牛牛牛牛 | 任你干在线视频| 激情久久久| 欧美,日韩,中文,另类| 玖玖视频在线资源一区二区三区| 第一高清av中文字幕| 蜜乳成人AV| 东京热男人的天堂| 人妻欧美| www.91视频网| 插插综合网天天影视网| 国产AV线| 夜夜嗨TV| 久久精品99| 久操| 国产一区二区精品在线视频| 国产超碰欧美| 99999这里都精品| 欧美 亚洲 综合 制服 另类| 欧美熟女妇同| 一区二区三区无卡视频在线观看| 97综合日韩| 少妇与黑人高潮在线| 亚码激情| 亚洲AO在线| 色性荡荡荡荡视频| 少妇人妻精品| 夜夜嗨绯色| 超碰无码五月97| 97伪v| 操逼无毒无码免费视频| 久久久精品中文字幕麻豆| 色呦色呦色精品| 欧美亚洲国产日本在线,久久精品国产| 亚洲综合性网址| www.AV有限公司一区| 精品中文日韩字幕视频| 丝袜亚洲91| 日韩欧美蜜桃精品久久中文字幕久久| 久久综合久色欧美综合狠狠 | 亚洲砖码砖专无区2023| 日本午夜久久电影| 韩日精品四区| 97超碰天天| 加勒比五月天| 久久精品国产亚洲av水密被窝| 96麻豆精品一区二区三区| 2020久久免费视频| 亚洲h片在线免费观看| 国产女人操逼视频| 色婷婷五月天| 91精品丝袜久久久久久无码人妻| 金典av| 成人九九| 国产精品视频内谢女人| 日韩激情啪啪| 国产刺激视频| 亚洲综合贴图91 | 91亚·色| 久久久国产精品亚洲精品| 色网亚洲人| 欧美成熟性爱精品| 中国国国产一级特黄毛片| 五月婷婷影院| 啊啊啊啊啊啊啊啊啊啊在线观看| 啊啊啊啊好疼| 亚洲欧洲无码bt精品合集| 国产 丝袜 欧美中文 另类| 亚洲人人操| 制服中出中文人人精品| 欧美精品激情| 美女国产一区二区久久| 96久久精品一二三区色欲| 欧美不卡在线美女| 色一区二区三区综合| 色吧91| 免费综合亚洲中文| 九九久久99| 成人性交免费视频| 99婷婷一区二区| 熟女人妻一区二区三区| 久久综合女优| 射综合网| 婷婷五月综合在线| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 日本不卡一区二区| 中文字幕在线免费观看视频| 九九九久久久久| 色婷婷国产精品一区在线观看| 亚洲成人日韩小说| 久久只有精品一区二区三区| 色婷婷日韩精品一区二区三区| 成人乱人伦一区二区| 91视频国品一二三区| 成人日本片久久久蜜桃| 中文乱码字字幕在线第5页| 午夜精品视频777| 日韩精品国模| 九九精品无码专区免费| 观看免费区二区三区二| 99热销国产这里有精品| 超碰91在线| 4虎在线视频| 国产综合在线视频网站| 91人妻视频在线| 性色A∨91| 国产免费操逼| 精品97久久综合| 97超碰欧美| www超碰| 日本久久久久久久久久| 久久av无码| 国产白嫩精品久久| 日韩性爱免费观看视频| 久久久9品一区二区三区| 亚洲天堂男人网| 亚洲无码99| 97国产精品一区| 亚洲激情av| 久久岛国| 一区二区三区精品黑丝白丝酒店对鸡 | 超碰免费人人| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 一区二区影院| 日韩精品9区| 日本视频一区二区三区| 久草精品视频| 日韩欧美午夜视频在线| 精品在线78| 高清国产av无码| 黄色成年| 91熟女熟妇视频网站| 国产h小视频在线观看免费| 精品超碰中文在线| 九九视频黄色片| 人妻人人澡人人爽人人| 国产精品爽爽va在线观看98| 色97欧美| 国产精品国产自产拍高清AV| 成人日韩3| 成熟熟女国产精品一区二区| 色综合婷婷| 狼人狠干| 91成人国产综合久久精品蜜月| 日本三级A片网站com| 色婷婷一区二区三区久久午夜| 九九探花视频在线观看| 精品久久久久久久| 亚洲精品骚逼| 不卡免费av在线播放| 欧美色图第一页| 美女大乳久久久久久久女人18| 熟女精品va中文字幕| 久久中文字幕人妻熟av女蜜柚| 中亚精品极乱| 99国产精品视频尤物| 91操熟女视频| 日韩在线AB| 最新国产亚洲精品精品国产亚洲综合| 香蕉精品二区二区| WWW.加勒比人妻一区不卡.com| 影视综合无码少妇| 久久这里只| 91美女看B| 99操碰| 成人免费毛片| 亚洲九九视频| 北条麻妃性愛视频| 五月婷婷综合网| 强奸乱伦大香蕉| 亚洲精品国产熟女久久久| 精品大久久| 成人av动漫在线观看| 国产老太乱伦一区| 少妇熟女视频一二三区| 91 丝袜在线| 99视频只有精品| 亚洲色图尤物视频 | 五月婷婷六月激情| 人妻系列无码专区中文有码| www熟女乱伦com| 日日日日做夜夜夜夜做无码97| 久久久久久久久九九久孕交| 欧美黄色片AAAAA| 欧美亚洲一级在线观看| 啊啊啊免费视频| 亚洲中文sv| 91日产欧美| 久久夜色一区二区| 中文字暮97| 精品少妇一区二区三区在线视频| 亚洲,日韩,欧美,成人播放| 91丝袜人妻| 2019亚洲男人天堂| 欧美精品偷拍| 97久久超碰国产网站| 日本一级二级三级网站| 久久五十路熟女人妻| 中日高清无码操逼视频| 无套内射人妻在线播放| 18禁止看精品中文字幕| 97超碰9| 国产夫妻性生活视频| 老司机免费视频在线91| 97在线观视频免费观看| 使劲用力艹少妇视频一区二区| 国产精品乱人伊人网| 99热在线观看| 欧美|91色综合| 九九成人视频| 67914亚洲精品| 久热无码| 七久久久| 天天插天天操| 色欲久久综合| 伊人激情| 久久大香蕉| 艹我哪美一区无码| 99国产人成精品| 久久男人的天堂国产| 亚洲影视综合网| 国内外色色色色色成人视频| 日日爽夜夜爽| 激情五月婷婷综合| 欧美黑人性猛交91| 色女99一级片在线观看| 91电影色诱| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 国产精品久久久久久久久久久久久久久 | 无码高清操逼网址| 免费的黄片有限公司| 亚洲 自拍偷拍 欧美| 国内偷自视频区视频综合| 日韩免费大片一级播放| 交换娇妻呻吟声不停中文字幕| 曰韩精品视频一区二区| 久久激情亚洲精品无码?V| 伊人影院综合是一个与深夜成人在线| 色综合尤物| 天天天天干| 69AV女优男人的天堂| 欧色综合| 亚洲AV色图一区| AV女优男人的天堂| 亚洲精品国语在线播放| A 在线网址| 乱伦AVxx| 91原创在线观看| 夜夜嗨AV一区天天| 97色涩| 男生通女生屁股| 人妻铁牛TV| 亚洲国产婷婷在线播放| 在线观看黄色电话| 毛片视频白嫩| 91狠婷| 国产熟女精品区| 奶水 人妻 哺乳 在线| yiqicaoav| 精品性爱一二三区| 骚逼高潮久久精品| 天天操人人操骚逼网站| 欧美高清色| 亚洲,日韩,欧美,成人播放| 日韩另类| 一区二区三区日韩欧美| 久久久涩| 立川理惠被中出无码| 亚洲日韩美女中文字幕乱| 嗯啊不要啊在线 | 五月婷婷色色| 男人的天堂VA在线| 久久久久久久久999| 99爱久久视频频| 97超碰人操| 三男一女不戴套的A片| 国产69精品久久久久99尤物| 亚洲欧美天堂在线| 裸体1区| 日日夜夜精品视频| 九九99精品| 97精品国产手机| 超碰在线人人射| 91天堂色男人的天堂| 狠狠干精品一二三四五六2022| 骚货操死你| 国产精品亚洲高清在线| 1024亚洲中文字幕久在线看片你懂的| 黑人粗大V S日韩女优视频| 中国AV美女| 久久久久久中文字幕中文字幕最新| 久9爱经典视频| 人人 操人人 操人人| 人妻啊啊人妻啊| 久久久天堂| 一中国女人毛片水真多| 午夜精品久久久久久久男人的天堂 | 美国一区二区三区视频| 2025亚洲男人天堂| 另类欧美色| 色色婷婷丁香| 国产超碰欧美| 亚洲欧洲精品视频发布| 91N综合在线| 一区二区三区免费视频入口| 91蜜臀在线久久久久| 狠狠爱夜夜| 欧美视频在线视频免费va| 99热日| 欧美日韩日产免费网站看| 日han少妇无码| 国产a片操逼| 大香蕉综合| 青娱乐福利99| 亚洲熟妇乱女区二区三区| 麻豆精品.欧美精品.日韩精品.| 亚洲一区操| 99热这里只有精| 国内伊人久久久久久网站视频| 99热只有这里有精品| 久久国产999| 中文字幕一区二区三区高清| 美女诱惑在线一区| 91在线视频免费播放| 一区,二区,三区视频| 欧美一区二区三区另类精品| 骚逼一区二区| 亚洲天堂人妻熟妇视频| 亚洲一二三四区在线免费看视频| 国产A v无码专区| 丝袜高跟澳门91视频| 久久精品99| 自拍偷拍第26| 厕所偷拍在线| 福利社区午夜一区二区| 秋霞福利网| 日韩欧美字幕亚洲一区二区| 欧美亚洲丝袜人妻制服99| 97色碰| 欧美视频一区二区在线| 天天爱综合网| 九九av| 日韩av在线精品观看| 冬京热男人的天堂| 天堂俺去俺来也www久久婷婷| 97视频在线视频| 激情久久av一区av二区av| 婷婷午夜清品久久久久久久性色视频观| 激情婷婷| 永久免费av无码网站国产app| 亚洲男人的天堂网| 天天色综亚洲91污| 999精品久久久久久久| 中文字幕jul-617人妻熟女| 1区2区3区视频| 国产精品久久久777| 日韩卡一卡二卡三在线| 91色亚洲| 国产精品欧美激在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 日日做夜狠狠爱欧美黑人| 青娱乐日韩无码| 日本精品一级二级三级| 综合亚洲欧美| 91精品无码人妻系列| 久久精品国产精品亚洲艾通辽熟妇 | 2019精品国产无码成人| 婷婷五月天色网| 99.色网| 亚洲免费成人精品电影| 97精| 麻豆激情综合| 东北黄色电影| av天堂手机版追回| 欧美91在线| 玖玖大干人妻| 中文字幕天天操| 一块操欧美| 草草影院日本第一页| 超碰色大香蕉| 亚洲区限制级 99| 中文字幕视频2区| 宅男91视频在线播放| 91一起操| 国产av又色又爽又黄| 国产精品熟女一区二区三区| 亚州图片第一页| 啊啊啊啊啊在线视频| 99热在线播放| 在线观看精品国产免费| 麻豆久久精品亚洲精品88| 97在线播放 | 欧美性爱免费短视频| 美女91在线| 大香交| 亚洲高清内射| 色妹子A V| 色色99| 亚洲欧美日韩精品久| 美国一区二区三区视频| 怡红院成人视频| 激情视频图片| 热热色国产一二区AV| 秋霞男人网| 91 丝袜在线| 国产嫩草精品A88AV在线| 大香蕉一区二区在线观看.| 好吊色综合| 骚日日av| 欧美日韩亚洲国产中文永久天天看| 国产精品久久久777| 小少妇| 五月丁香久久| 99热国产| 综合五月婷婷| 一块操欧美性爱| 日韩欧美中文日韩欧美色| 激情抓乳插进去啪啪啪日韩 | 97欧美色资源| 91大胆欧美| 日韩素人无码一区二区三区三州| 人妻久久久久久久久久久久久久久| 69精品久久久久中文字幕| 久久久久久久久成人av解说| 精品亚洲国产成人av网站| 无码 黑人一区二区三区| 国产精品点击进入在线影院| 色综合天天| 亚洲国产欧美一区二区潘金莲| 嫩呦国产一区二区三区AV| 亚洲日韩国产精品| 热99这里有精品综合久久 | 五月天成人综合| 一区二区三区在线资源| 五月天色综合| 丁香五月天婷婷姐| 日本97久久久精品| 91麻豆天美传媒HD| 九九九九精品一区| 男人天堂无码| 四季av一区二区凹凸精品小说 | 国产精品九9| 亚洲第一在线视频| 婷婷五月综合在线| 伊人AAA| 偷拍伦理视频| 口爆综合网| 精品.99999| 天天看人人操屄犊摸阴| 精品999日本| 91久久伊人婷婷青青草| 青青草视频导航官网| 91N综合在线| 亚洲情色综合网| 青草精品视频-日本久久久久网站| 精品久久久av无码免费| 操啊国产| 久草福利在线资源站| 长长久久88视频| 91国产丝袜足交精品视频| 九九国产| 美女诱惑久久| 日本孕妇一区二区视频操逼免费看 | 日本特黄f c2| 东北老女人的激情视频| 日韩 女同 综合| 色色九区| 日韩黄片影院| 日本福利二区视频| 97精品国产97久久久久久| www.AV有限公司一区| 欧美色亚洲色| 久久双插| www.久久爱| 青青草视频导航官网| 天天天堂影视日韩亚洲91| 屁股久久久久久久| 久久亚洲AV无码专区国产精品 | 无码区蜜乳| 99色在线| 在线亚洲精品久久久| 欧美色网络| 深夜国产一区二区三区在线看| 亚洲高清无码免费观看视频| 97视频7| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 99热国产精品| 国产日本熟女顶级一区二区三区视频| 在线色导航| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 亚洲色资源| 色噜噜人妻av中文字幕| 久草视频观看视频在线| 91视频观看网站| 午夜九九| 国产高清在线观看欧美| 手机不卡视频不卡在线一二三区| 日本天天干天天日一区| 青草草免费网站av| AV色天香在线| 亚洲人妻久久久| 欧美一级黄片视频在线| 麻豆国产原创AV色哟哟| 亚洲AV成人无码一二三久久 | 久久久熟妇熟女国产| 亚洲欧洲日韩中文字幕一区| 熟女精品va中文字幕| 2019天天操天天爽天天拍| 亚洲高清欧美总合| 女人爽到高潮潮喷18禁网站| 97se综合| 97干在线| 亚欧精品久久久久久久久久久| 少妇人妻在线| 女人喷水视频在线观看| 加勒比综合九九99视频在线播放| 久久AV无码AV| 九九热九九热| 粉嫩av一区二区三区天美传媒 | 男人天堂网站| 五月天社区| 亚洲 se图 欧美电影| 久久久久久性爱免费视频| 免费视频无码| 啊啊啊啊啊好多水| 日本五十路熟女一区二区| 成人天天爽| 黄色视频特级毛片| 土豪酒店各种姿势玩弄极品幼稚| 91在线超高颜值国产| 骚熟女吞| 日本东京热加勒比久久| 操逼精品视频| 日韩av不卡在线看| 久久精品中文| 萌白酱自拍视频| 啊啊啊好疼| 国产精品熟女丝袜一区二区| 欧美在线l亚洲| 色官网色综合| 少好三P| 亚洲AV成人无码一区二区三区在线观看 | 91综合天天看| 狼人久草| 亚洲精品少妇| 九色 人妻 大香蕉| 国内毛片热久久思思热| 欧美韩国你懂得在线| 91东京热男人的天堂| 熟女AV一区| 搡老熟女老女人老熟妇免费视频| 久久久久久久久国产| 色情五月综合婷婷| 国产久久久久久| 色婷婷综合久久久久中文一区二区| 91国产操逼视频| 麻豆国产成人精品| 色青青久久影视| 91日产桃蜜| 麻豆 欧美 日韩| 久久男人精品| 中文字幕av久久爽Av| 人妻81p| 97K超碰在线| 国产suv精品一区二区四| 人妻少妇久久中文字幕一区二区 麻豆| 免费看污网站| 国产福利在线视频网站| 91成人亚洲色图| 色爽爽文学| 欧美国产欧美在线观看| 久久久999国产精品| 操狠狠| 777AV电影| 加勒比海人人操超碰在线| 亚洲色色色| 日本黄色精品专区网站| 久久久久深夜无码| 97国产精品国| 欧美性爱91| 日日骚中文字幕| 日韩操呦呦影院在线观看| 亚乱色| 国产99999| 青操影院| 欧美日韩国第一区| 日本视频在线观看污污污| 国产精品熟女一区二区三区| 欧美天天综合站| 久久久艹艹艹| 老熟妇一区二区三区…| 久 久无码人妻AV| 亚洲欧美在线综合| 大香樵伊人网| 日韩欧美aⅴ综合网站发布| 久久系列| 曰本特级特黄特色黄色A级网站高清在线免费看| 99热| 亚洲国产高清福利视频| 人人么人人操| 91爱看| 人妻在线臀日韩| 久久婷色| 黄色网址在线免费观看| 色汉综合| 欧美亚洲系列| 曰韩香蕉97| 一区 欧美 日韩 麻豆| 91粉嫩萝控精品福利网站_精品影音先锋国 | 久久九九一区二区三区成人| 久久婷婷热| 欧美性爱日韩性爱| 囯产精品久久久久久久久久梁医生 | 天堂а√在线最新版在线| 青青草毛片| 天天欧美| 色拍偷亚洲| 亚洲欧美国产中文字幕| 精品人妻1237| 亚洲人妻一区二区三区| 婷婷丁香五月天综合东京热| 国产无码高清操逼视频| 色牛aV| 国产成人精品午夜福利| 中文字幕在在线观看网站| 中文字幕日韩综合| 国产无马av| 嫩草一区二区在线观看| 国产日韩在线播放av| 翔田千里爆乳巨臀无码| 性夜影院爽黄A爽免费动漫| 91狠狠综合久久| 亚洲第一男人天堂| 黑人粗大V S日韩女优视频| 丝袜美腿射精91| 亚洲 欧美 小说| 蜜桃视频一区二区三区在线观看| 97视频在线免费看| 丝袜熟女2P| 麻豆60秒| 国产成人资源| 中文字幕 一区二区 亚洲无码| 精品国产乱码久久久久久久久1 | 久精品无码av一区二免费国产在线观看| 日韩中文字幕视频在线观看| 网友自拍第1页| 国产又粗又长的视频| 亚洲天堂电影网| 狠狠操狠狠燥| 久久噜噜噜精品国产亚洲综合| 久久色AV线| 91黑丝操| 春色综合免费| 亚洲天天自拍| 亚洲在线欧美| 欧美中文字幕精品人妻| 日韩欧无码一区二区三区免费不卡| 五十路三区在线| 午夜舔阴达高潮视频免费看| 水多多映视AV| 国产白丝精品在线观看| 高清国产精品福利网站| 国产搭汕a级片| 夜夜欧美| 日韩在线观看三级电影| 男人天堂网站| 天天天干977| 中文字幕一二三| 日日夜夜精品视频| 日韩成人性日韩成人性爱视频在线免费观看| 农村女一级毛卡片| 免费国产电影一区二区| 国产成人亚洲精品无码古代早漏男| 国产女人操逼视频| 五月丁香综合网| 丁香六月婷婷| 肥臀熟女福利视频一区二区| 91nbbbbbb| 操一对老熟妇爽上天视频| 日本久久久精品电影| 超碰久超碰久| 蜜乳视频网站| 国产精品一二三在线看| 成人日韩欧美| 骚乳在线| 国产精品午夜精品| 色图综合网| 综合欧美日韩在线观看|