让AI给你写代码(五)—— 应用Agent,理解Agent,走进现实世界

本文想解决一个问题,理解Agent有啥具体的作用? 所谓读书千遍,不如动手一试,我们还是借助于上一篇,让AI给你写代码(四)—— 初步利用LangChain Agent根据输入生成,保存,执行,可以根据提示(prompt)生成代码的Agent,来解决本系列一开始的问题,提取股票信息的一些信息,例如当前股价。

一. 代码说明

我们对代码稍作修改,一个是支持多次人工输入,而不是一次性的预先输入,另一个是重点修改descrription描述,以指导agent以更快的方式生成代码,代码如下

import dashscope
import os
from langchain_community.llms import tongyi
from langchain.agents import initialize_agent
from langchain.tools import tool
from langchain.utilities.python import PythonREPL
import textwrap

from langchain.agents import (
    Tool,
    AgentExecutor,
    agent,
    
)

import time
import random


dashscope.api_key="sk-bb1e64ed39b64aa49195280a8a52cfae"

#新增解析返回数据
def output_response(response: str) -> None:
    if not response:
        exit(0)
    for line in textwrap.wrap(response, width=60):
        for word in line.split():
            for char in word:
                print(char, end="", flush=
<think>嗯,用户这次的问题很聚焦,要求具体说明基于MCP开发AIAgent的最佳实践,并以AgentTARS为案例。结合历史对话,用户显然是个技术决策者或开发者,想了解MCP协议如何落地。用户提供的三个引用中,[1]最关键,详细说明了MCP的核心价值是研发范式转移,类似前后端分离;[2]提到行业可能出现协议碎片化风险;[3]则补充了多模态开发场景。但用户最关心的显然是TARS这个实施案例。我需要重点拆解MCP开发范式的三层结构(感知层、协议层、工具层),这个框架在引用[1]里虽然没明说但隐含了。用户问“最佳实践”,说明需要可操作的方法论,而不仅是概念。考虑到ta提了两次“AgentTARS示例”,应该对具体代码实现感兴趣。安全方面要注意:引用[3]提到企业数据训练,需提醒用户数据合规问题;引用[2]的协议碎片化警告也得包含在挑战部分。技术细节上,MCP的上下文组装机制(token压缩、异步调度)是难点,但用户没明确问底层原理,先放在技术挑战里简要说。突然想到用户可能混淆了MCP和LangChain的区别,需要强调: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) --- **
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhyuli

您的鼓励是对我付出努力一种赞赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值