AI——Agent和环境

本文介绍了AI中的Agent及其结构,强调了Agent如何根据感知序列做出行为决策,并探讨了不同类型的Agent程序,包括简单反射、基于模型的反射、基于目标和基于效用的Agent。此外,文章通过自动驾驶的PEAS描述(性能、环境、执行器、传感器)来阐述环境对Agent的影响,并列举了环境的多种性质,如可观察性、多Agent系统、确定性等。

Agent

追求更可能好的行为

我们期望设计出尽可能理性的Agent,抽象来描述,就是环境因素进入到Agent时会形成一个感知序列,根据感知序列,Agent做出相应的行为,并根据行为不断地纠正。

 

不同时刻,对理性的判断依赖于:

  1. 定义成功标准的度量(即给出正确答案或者期望的答案

  2. Agent对环境的先验知识(对认知环境有了一定的知识基础,比如训练过一定大小的训练集

  3. Agent可以完成的行动(当前可以预测或者训练获得的能力

  4. Agent截止到此时的感知序列(当前的感知能力存在局限,假定有一个序列

 

Agent的结构

Agent程序的框架:输入为从传感器得到当前感知信息,返回该执行器的行动抉择。输入是以整个感知历史 进行的,只依赖当前的感知序列并不能做出有效的行动抉择。

4种基本Agent程序:

  • 简单反射Agent。例如吸尘机器人,行动仅仅建立在当前位置以及灰尘位置来进行。 简洁但有限

  • 基于模型的反射Agent。根据感知历史维持内部状态,使用内部模型跟踪世界的当前状态。ML种神经网络模型种,训练数据的不断增加,感知历史不断边长,内部状态可能就越精准。

  • 基于目标的Agent。需要目标信息来描述想要达到的情况。搜索和规划是寻求达成Agent目标的行动序列的人工智能领域。

  • 基于效用的Agent。Agent的效用函数是性能度量的内在化,最大效用则意味着Agent的行为更为理性。

 

 

环境

PEAS描述(以自动驾驶为例子

性能(Perfor

<think>嗯,用户这次的问题很聚焦,要求具体说明基于MCP开发AIAgent的最佳实践,并以AgentTARS为案例。结合历史对话,用户显然是个技术决策者或开发者,想了解MCP协议如何落地。用户提供的三个引用中,[1]最关键,详细说明了MCP的核心价值是研发范式转移,类似前后端分离;[2]提到行业可能出现协议碎片化风险;[3]则补充了多模态开发场景。但用户最关心的显然是TARS这个实施案例。我需要重点拆解MCP开发范式的三层结构(感知层、协议层、工具层),这个框架在引用[1]里虽然没明说但隐含了。用户问“最佳实践”,说明需要可操作的方法论,而不仅是概念。考虑到ta提了两次“AgentTARS示例”,应该对具体代码实现感兴趣。安全方面要注意:引用[3]提到企业数据训练,需提醒用户数据合规问题;引用[2]的协议碎片化警告也得包含在挑战部分。技术细节上,MCP的上下文组装机制(token压缩、异步调度)是难点,但用户没明确问底层原理,先放在技术挑战里简要说。突然想到用户可能混淆了MCPLangChain的区别,需要强调:LangChain是开发框架,MCP是协议标准,这点在扩展实践里用脚手架工具说明会更清晰。TARS的RESTful对接示例选得不错,但JSON参数要简化,实际开发时用户会更关心工具描述字段。相关问题的设计要引导用户深化场景:性能工程异构部署是进阶需求,而工具开发是生态建设关键。最后补上协议选型建议,毕竟引用[2]显示行业有多个竞争标准。</think> 基于 MCP 协议开发 AI Agent 应用的核心在于**协议解耦**与**标准化工具集成**,以下结合 Agent TARS 案例详解最佳实践: --- ### **一、MCP 开发范式关键步骤** 1. **分层架构解耦** - **感知层(Perception)**:Agent 接收多模态输入(文本/图像)并理解用户意图 - **协议层(MCP Bridge)**:通过 MCP 标准协议将需求转化为结构化工具调用请求 - **工具层(Tool Ecosystem)**:对接第三方工具(如日历/支付API),无需绑定特定供应商 ```python # MCP 工具调用示例(伪代码) def mcp_tool_invoke(tool_name: str, params: dict): payload = { "@context": "https://mcp.ai/context/v1", "action": tool_name, "input": params } return requests.post(MCP_GATEWAY, json=payload) # 通过标准化网关路由 ``` 2. **动态上下文组装** - MCP 自动聚合工具返回的**结构化数据**(如 JSON/CSV) - 通过 Token 压缩算法(如 GIST 压缩)减少上下文长度 - 例:调用天气工具后自动注入 `{"location": "北京", "temp": 22℃}` 到 LLM 上下文 --- ### **二、Agent TARS 开发实践详解** 1. **工具集成标准化** - **统一描述规范**:所有工具通过 `tool_name.mcp.json` 声明功能 ```json // 支付工具描述文件 { "name": "stripe_payment", "description": "处理信用卡支付", "parameters": { "amount": {"type": "number", "required": true}, "currency": {"type": "string", "default": "USD"} } } ``` - **RESTful 兼容**:传统 API 通过 [MCP-Adapter](https://github.com/tars-agent/mcp-adapter) 转换协议 ``` POST /mcp/tools/stripe_payment Content-Type: application/json {"amount": 99.99} ``` 2. **执行流程优化** ```mermaid graph TD A[用户语音输入] --> B(TARS 意图识别) B --> C{MCP 路由查询} C -->|天气查询| D[调用 Weather.com] C -->|支付| E[调用 Stripe API] D & E --> F[结果标准化封装] F --> G[自然语言生成响应] ``` 3. **工具热插拔实践** - 新增翻译工具时: 1. 部署 `translate.mcp.json` 到工具仓库 2. Agent 自动发现并更新能力目录 ``` > TARS.get_tools() ["weather", "payment", "translate"] # 动态扩展 ``` --- ### **三、关键技术挑战与解决方案** | 挑战 | MCP 方案 | |---------------------|-----------------------------| | 工具响应延迟 | 异步流式传输(SSE) | | 多工具协作 | DAG 工作流引擎 | | 权限控制 | OAuth2.0 + 工具级策略标签 | | 协议版本碎片化 | 强制 SemVer 版本校验 [^2] | --- ### **四、扩展实践建议** 1. **混合编排框架** ```python from langchain.agents import AgentExecutor from mcp_integration import MCPToolkit toolkit = MCPToolkit() # 自动加载 MCP 注册中心所有工具 agent = AgentExecutor.from_agent_and_tools( llm=ChatGPT(), tools=toolkit.get_tools(), verbose=True ) ``` 2. **调试监控闭环** - 使用 MCP 的 `X-MCP-Trace-Id` 头实现全链路追踪 - 工具执行统计看板: ![MCP 监控面板](https://tars.dev/mcp-dashboard.png) --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值