|
一、Agent
Agent是一种能够感知环境、进行决策和执行动作的智能体,是感知->规划->行动的循环,能够以最低限度的配置应对多样化的应用场景;AI Agent = LLM(大脑) + Memory(记忆) + Planning(规划) + Tools(工具)。
1. 系统构成
A. 感知(Perception):感知是Agent与外部世界互动的桥梁,负责收集和解析环境数据;
B. 规划(Planning):发挥LLM的逻辑推理能力,通过思维链能力实现任务拆解;
C. 记忆(Memory):负责存储信息,为模型提供上下文信息的组件,作用于Prompt,有利于实现持续学习和处理长期任务,侧重于以用户信息为中心,分感觉记忆、短期记忆和长期记忆,记忆机制分为基于会话、基于列表、基于图谱与基于用户档案等类型;记忆模块的实现依赖存储结构,如短期记忆用键值对内存数据库,长期记忆用向量数据库或知识图谱;
D. 工具(Tools):调用各种工具如API接口来执行复杂的任务,是模型连接外部世界的桥梁;
E. 行动(Action):基于规划和记忆来执行具体的行动;
2. 关键特征
A. 自主性:无需人工干预即可运行,独立做出决定;
B. 反应式与主动式行为:既能应对环境变化,又能主动采取措施以确保目标实现;
C. 适应性:通过处理新信息和新经验来学习和发展;
D. 目标导向:努力实现预定目标或优化成果;
E. 互动性:与其他代理或人类进行交流和合作;
F. 持久性:持续运行,监控并应对动态环境。
3. 方式
A. Function Call:通过将用户指令映射到预定义函数或工具,LLM先识别用户意图,再决定调用哪个函数并提取所需参数,更适合简单、明确的任务,强调直接调用工具的高效性;
B. ReAct:即推理+动作,LLM首先思考当前状态与目标,然后选择并调用合适的工具,工具的输出结果又将引导LLM进行下一步的思考与行动,如此循环直到解决问题,更适合复杂、多步骤的任务,强调推理过程的灵活性和可解释性。
4. 架构模式
A. ReAct:将推理(Reasoning)和行动(Action)紧密结合,形成Thought(分析当前状态,思考下一步行动)—>Action(执行具体操作如工具获取结果)—>Observation(观察行动结果,更新状态)的循环,具有单线程执行、上下文限制和错误积累(一步出错可能导致后续全错)的局限性;
B. Multi-Agent:靠多智能体分工协作处理复杂任务,效率高但架构较复杂,遵循职责分离(每个Agent复制特定领域)、协作机制(由Agent之间通过消息传递协作)、路由决策(由Router或Orchestrator分配任务)的三原则,注意Sub-Agent是特指某个Agent运行下的子Agent,支持递归嵌套;
C. CodeAct:用代码执行任务,准确性高但对环境要求严;
D. AgenticRAG:比传统RAG更主动,擅长知识检索与更新;
E. Self-Reflection:通过自我修正提升输出可靠性,不过耗时略增。
二、MCP
MCP(Model Context Protocol)是由Anthropic于2024年底提出的一种通用模型上下文协议,旨在让大语言模型能够安全、高效、结构化地访问外部工具和服务,用来解决工具碎片化、上下文污染及安全性风险的LLM三大痛点。
1. MCP Server类型
A. stdio类型:采用stdio传输协议,
B. HTTP类型:采用SSE或Streamable HTTP传输协议,适用于本地或远程执行环境。
2. MCP架构
MCP基于JSON-RPC 2.0协议,采用客户端-主机-服务器架构
Host:用户直接交互的应用(Claude Desktop、Cursor、Windsurf);
Client:Host 应用中管理与特定 Server 通信的组件,模型侧的协议解析器;
Server:连接外部系统的桥梁(数据库、API、本地文件等),实现MCP协议的服务端。
3. MCP三个操作
Resources(资源)—— 应用控制,读取数据
Tools(工具)—— 模型控制,执行动作
Prompts(提示)—— 用户控制,复杂指令
4. mcp.json
{
"mcpServers": {
"服务器名称": {
// 配置具体的参数
}
}
}
A. 服务器名称:唯一标识符,用于在配置中区分不同的MCP服务器;
B. type:传输方式,定义客户端与MCP服务器之间的通信协议,可自动推断
stdio:标准输入输出流通信,适用于本地环境;
sse:Server-Sent Events,适用于单向数据流;
http:标准HTTP请求响应,适用于本地或远程执行环境;
websocket:双向实时通信。
C. command:要执行的命令或可执行文件路径,当type=stdio时必须,如npx;
npx:下载到临时缓存位置,可能会被自动清理,常用于一次性执行,默认目录C:\Users\你的用户名\AppData\Local\npm-cache。
D. args:传递给命令的参数列表;
E. env:环境变量参数;
F. disabled:是否禁用此MCP服务器;
G. url:远程MCP服务器的完整URL地址;
H. headers:发送到远程服务器的HTTP头部信息;
I. timeout:工具调用的超时时间,默认30000,单位毫秒;
5. Playwright MCP
Playwright是一个浏览器自动化测试框架,验证网页的交互逻辑,提升开发效率。
5.1 优点
A. 现代化的架构:采用DevTools Protocol,绕开了WebDriver的性能瓶颈,提供了更快、更可靠的浏览器控制能力;
B. 与生俱来的稳定性:强大的自动等待机制,是Palywright解决业界普遍存在的测试“脆弱性”问题的关键所在;
C. 强大的原生工具链:集成的代码生成器、调试器和追踪查看器,极大地提升了测试脚本的编写与调试效率;
D. 全面的测试能力:原生支持网络请求拦截、移动端设备模拟等复杂场景,无需依赖复杂的第三方库,即可满足现代Web应用的全方位测试要求;
5.2 参数
headless:false-浏览器会弹出窗口、true-代表无头模式运行
5.3 工具列表
|
工具
|
作用
|
|
start_codegen_session
|
开始一个新的代码生成会话,用于记录 Playwright 操作。
|
|
end_codegen_session
|
结束代码生成会话并生成测试文件。
|
|
get_codegen_session
|
获取关于代码生成会话的信息。
|
|
clear_codegen_session
|
清除代码生成会话而不生成测试文件。
|
|
playwright_navigate
|
导航到一个 URL。
|
|
playwright_screenshot
|
对当前页面或特定元素进行截图。
|
|
playwright_click
|
点击页面上的元素。
|
|
playwright_iframe_click
|
点击 iframe 中的元素。
|
|
playwright_iframe_fill
|
在页面中的 iframe 里填充某个元素.
|
|
playwright_fill
|
填写输入字段。
|
|
playwright_select
|
使用 Select 标签选择页面上的元素。
|
|
playwright_hover
|
悬停在页面的元素上。
|
|
playwright_upload_file
|
将文件上传到页面中的 input[type="file"] 元素.
|
|
playwright_evaluate
|
在浏览器控制台执行 JavaScript。
|
|
playwright_console_logs
|
检索浏览器的控制台日志(带过滤选项)。
|
|
playwright_resize
|
使用自定义尺寸或设备预设来调整浏览器视口大小。支持 143 种以上的设备预设,包括 iPhone、iPad、各类 Android 设备以及桌面浏览器,并提供正确的 User-Agent 和触控(Touch)模拟。
|
|
playwright_close
|
关闭浏览器并释放所有资源。
|
|
playwright_get
|
执行 HTTP GET 请求。
|
|
playwright_post
|
执行 HTTP POST 请求。
|
|
playwright_put
|
执行 HTTP PUT 请求。
|
|
playwright_patch
|
执行 HTTP PATCH 请求。
|
|
playwright_delete
|
执行 HTTP DELETE 请求。
|
|
playwright_expect_response
|
请求 Playwright 开始等待某个 HTTP 响应。该工具只会启动等待操作,但不会阻塞或等待该操作完成。
|
|
playwright_assert_response
|
等待并校验之前已发起的 HTTP 响应等待操作。
|
|
playwright_custom_user_agent
|
为浏览器设置自定义 User Agent。
|
|
playwright_get_visible_text
|
获取当前页面的可见文本内容。
|
|
playwright_get_visible_html
|
获取当前页面的 HTML 内容。默认情况下,输出结果会移除所有 <script> 标签,除非显式将 removeScripts 设置为 false。
|
|
playwright_go_back
|
在浏览器历史中后退。
|
|
playwright_go_forward
|
在浏览器历史中前进。
|
|
playwright_drag
|
将元素拖动到目标位置。
|
|
playwright_press_key
|
按下键盘键。
|
|
playwright_save_as_pdf
|
将当前页面保存为 PDF 文件。
|
|
playwright_click_and_switch_tab
|
点击一个链接并切换到新打开的标签页。
|
5.5 mcp.json
{
"mcpServers": {
"Playwright": {
"command": "npx",
"args": [
"-y",
"@executeautomation/playwright-mcp-server"
],
"env": {}
}
}
}
5.6 安装
A. 安装playwright:npm install playwright;
B. 只安装chrome浏览器:npx playwright install chromium。
6. 其它MCP
A. Chrome DevTool MCP:Chrome DevTool是一个页面深度调试与性能分析工具。
A. MySQL MCP
B. Draw-io画图:https://github.com/DayuanJiang/next-ai-draw-io;
三、Skill
Skill是一份清晰、严谨、可执行的指令文档,用于明确告诉大模型在什么条件下,按照哪些步骤,产出什么结果。
1. Skill的结构
A. 一个技能中必须包含一个SKILL.md文件,还可以根据实际需求添加其他文件,如可参考的示例examples、可参考的脚本scripts、可参考的模板templates等,例如:
B. SKILL.md文件格式
2. Skill的特点与使用场景
A. 特点:具有结构化、大模型可动态按需加载的优点;
B. 使用场景:用于保证输出结果的一致性与规范性、自动化重复性工作流、总结与共享专业能力。
3. webapp-testing:网页应用测试
来源:https://www.cnblogs.com/ruhuanxingyun/p/19690417 |