公司网站开发怎么入账,赣州热门网站,做网站工作内容,网页版微信会留下记录吗文章概述
Anthropic 在 2024 年 11 月推出了 Model Context Protocol (MCP)#xff0c;这是一个连接 AI Agent 到外部系统的开放标准协议。本文是 Anthropic 工程团队在 MCP 推出一年后#xff0c;针对大规模工具连接场景下的性能瓶颈#xff0c;提出的创新性解决方案——通…文章概述Anthropic 在 2024 年 11 月推出了 Model Context Protocol (MCP)这是一个连接 AI Agent 到外部系统的开放标准协议。本文是 Anthropic 工程团队在 MCP 推出一年后针对大规模工具连接场景下的性能瓶颈提出的创新性解决方案——通过代码执行环境与 MCP 结合实现 98.7% 的 token 使用率降低。这不仅是一次技术优化更是 AI Agent 架构设计理念的重大转变。核心问题分析问题背景MCP 的快速普及与挑战MCP 自推出以来取得了惊人的增长社区构建了数千个 MCP 服务器所有主流编程语言都有SDK 支持已成为连接 Agent 与工具/数据的事实标准然而随着开发者构建连接数百甚至数千工具的 Agent一个严重的问题浮现传统的直接工具调用方式导致上下文窗口过载。问题一工具定义占用大量上下文空间传统方式的工作流程具体案例 假设你的 Agent 连接了 Google Drive 和 Salesforce 两个 MCP 服务器Google Drive 工具定义示例gdrive.getDocument Description:从GoogleDrive检索文档 Parameters: - documentId (必需,string):要检索的文档 ID - fields (可选,string):要返回的特定字段 Returns: 包含标题、正文内容、元数据、权限等的文档对象Salesforce 工具定义示例salesforce.updateRecord Description:更新Salesforce中的记录 Parameters: - objectType (必需,string):Salesforce对象类型潜在客户、联系人、账户等 - recordId (必需,string):要更新的记录 ID - data (必需,object):要更新的字段及其新值 Returns: 带确认的更新记录对象问题严重性当连接到数十个服务器每个服务器有数十个工具时工具定义可能占用数十万 tokensAgent 甚至还没开始处理请求就已经消耗了大量资源导致响应时间增加和成本上升问题二中间结果消耗额外的 Token数据流转的低效模式让我们看一个实际的任务场景用户请求“从 Google Drive 下载我的会议记录并将其附加到 Salesforce 的潜在客户记录中。”传统执行流程代码示例// 第一次工具调用 TOOL CALL: gdrive.getDocument(documentId:abc123) →返回讨论了 Q4 目标...\n[完整的会议记录文本] →加载到模型上下文中(50,000 tokens) // 第二次工具调用 TOOL CALL: salesforce.updateRecord( objectType:SalesMeeting, recordId:00Q5f000001abcXYZ, data:{ Notes:讨论了 Q4 目标...\n[完整的会议记录文本再次写入] } ) →模型需要将整个记录再次写入上下文(又是50,000 tokens)问题严重性对于 2 小时的销售会议可能需要处理额外的50,000 tokens更大的文档可能超出上下文窗口限制导致工作流中断模型在复制大型数据结构时更容易出错传统架构图关键问题总结⚠️每个中间结果都必须通过模型⚠️数据在工具调用之间重复加载⚠️大型文档可能导致上下文溢出⚠️增加延迟和成本 解决方案代码执行与 MCP 的结合核心理念转变从“让 AI 直接调用工具”转变为“让 AI 编写代码来调用工具”这个看似简单的转变带来了革命性的效率提升。实现方案将 MCP 服务器呈现为代码 API方案一文件系统树结构生成一个包含所有可用工具的文件树结构servers/ ├── google-drive/ │├── getDocument.ts │├── listFiles.ts │├── createDocument.ts │├──...(其他工具) │└── index.ts ├── salesforce/ │├── updateRecord.ts │├── queryRecords.ts │├── createLead.ts │├──...(其他工具) │└── index.ts └──...(其他服务器)工具文件实现示例每个工具对应一个文件包含清晰的 TypeScript 接口// ./servers/google-drive/getDocument.ts import{ callMCPTool }from../../../client.js; interfaceGetDocumentInput{ documentId:string; } interfaceGetDocumentResponse{ content:string; } /** 从 Google Drive 读取文档 */ exportasyncfunction getDocument( input:GetDocumentInput ):PromiseGetDocumentResponse{ return callMCPToolGetDocumentResponse( google_drive__get_document, input ); }如果你也想通过学大模型技术去帮助自己升职和加薪可以扫描下方链接使用代码执行的优化流程新的执行模式// 从 Google Docs 读取记录并添加到 Salesforce 潜在客户 import*as gdrive from./servers/google-drive; import*as salesforce from./servers/salesforce; const transcript ( await gdrive.getDocument({ documentId:abc123}) ).content; await salesforce.updateRecord({ objectType:SalesMeeting, recordId:00Q5f000001abcXYZ, data:{Notes: transcript } });新架构的数据流新架构对比图性能对比Token 使用量对比场景传统方式代码执行方式节省率工具定义加载150,000 tokens2,000 tokens98.7%会议记录处理100,000 tokens~500 tokens99.5%大型数据集筛选200,000 tokens~1,000 tokens99.5%实际效果⚡响应速度提升10-50 倍成本降低98%可扩展性增强- 可处理数千个工具而不会上下文溢出 代码执行的五大核心优势1. 渐进式工具披露Progressive Disclosure核心概念模型擅长浏览文件系统。将工具呈现为文件系统上的代码允许模型按需读取工具定义而不是一次性加载所有定义。实现方式方式一文件系统探索// Agent 的工作流程 // 1. 列出 ./servers/ 目录发现可用服务器 const servers await fs.readdir(./servers/); // 返回: [google-drive, salesforce, slack, ...] // 2. 对于当前任务只读取需要的工具 const gdocTool await fs.readFile( ./servers/google-drive/getDocument.ts, utf-8 ); const sfTool await fs.readFile( ./servers/salesforce/updateRecord.ts, utf-8 ); // 只加载了 2 个工具定义而不是全部 1000 个工具方式二工具搜索功能// 添加一个 search_tools 工具到服务器 interfaceSearchToolsInput{ query:string; detailLevel?:name|summary|full;// 控制返回的详细程度 } // Agent 使用示例 const salesforceTools await searchTools({ query:salesforce, detailLevel:summary// 只返回名称和描述 }); // 当确定需要某个工具时再获取完整定义 const fullDef await searchTools({ query:salesforce.updateRecord, detailLevel:full// 返回完整的 schema });流程图优势总结✅ 从 150,000 tokens → 2,000 tokens✅ 更快的首次响应时间✅ 支持连接数千个工具而不会溢出2. 上下文高效的工具结果处理核心概念当处理大型数据集时Agent 可以在代码中先过滤和转换结果再返回给模型。实际案例处理 10,000 行电子表格传统方式// 所有 10,000 行都流经上下文 TOOL CALL: gdrive.getSheet(sheetId:abc123) →返回10,000行数据到上下文中 →模型手动筛选消耗大量 tokens代码执行方式// 在执行环境中筛选 const allRows await gdrive.getSheet({ sheetId:abc123}); // 在代码中进行筛选和聚合 const pendingOrders allRows.filter(row row[Status]pending row[Amount]1000 ); // 计算统计信息 const totalAmount pendingOrders.reduce( (sum, row) sum row[Amount], 0 ); // 只向模型返回摘要和样本 console.log(找到 ${pendingOrders.length} 个待处理订单); console.log(总金额: $${totalAmount.toLocaleString()}); console.log(前 5 个订单示例:); console.log(pendingOrders.slice(0,5));Agent 看到的内容约 500 tokens找到157个待处理订单 总金额: $234,567 前5个订单示例: [ { orderId:ORD-001, customer:Acme Corp, amount:5000, status:pending}, { orderId:ORD-045, customer:TechStart Inc, amount:3200, status:pending}, ... ]更多应用场景场景一数据聚合// 跨多个数据源进行 JOIN 操作 const salesData await salesforce.query({ query:SELECT Id, Amount FROM Opportunity }); const customerData await gdrive.getSheet({ sheetId:customers}); // 在代码中执行 JOIN const enrichedData salesData.map(sale ({ ...sale, customer: customerData.find(c c.id sale.customerId) })); // 只返回汇总 console.log(处理了 ${enrichedData.length} 条销售记录); console.log(平均订单金额: $${average(enrichedData.map(d d.Amount))});场景二字段提取// 从大型 JSON 中只提取需要的字段 const largeDocument await api.fetchDocument({ id:123}); // 只提取关键信息 const summary { title: largeDocument.metadata.title, author: largeDocument.metadata.author, wordCount: largeDocument.content.split( ).length, keyTopics: largeDocument.analysis.topics.slice(0,5) }; console.log(summary);// 只返回摘要而不是整个文档针对所有自学遇到困难的同学们我帮大家系统梳理大模型学习脉络将这份LLM大模型资料分享出来包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 有需要的小伙伴可以扫描下方二维码领取↓↓↓对比图3. 更强大的控制流能力核心概念使用熟悉的代码模式循环、条件、错误处理而不是链式工具调用。实际案例等待部署通知传统方式的问题// Agent 需要在每次检查之间与用户交互 TOOL CALL: slack.getChannelHistory({ channel:C123456}) →检查消息 →未找到通知 TOOL CALL: sleep(5000) TOOL CALL: slack.getChannelHistory({ channel:C123456}) →再次检查 →未找到通知 TOOL CALL: sleep(5000) // ... 重复多次每次都通过 Agent 循环代码执行方式// 在代码中实现完整的轮询逻辑 let found false; let attempts 0; const maxAttempts 60;// 最多等待 5 分钟 while(!found attempts maxAttempts){ const messages await slack.getChannelHistory({ channel:C123456 }); found messages.some(m m.text.includes(deployment complete) ); if(!found){ attempts; console.log(等待部署通知... (尝试 ${attempts}/${maxAttempts})); awaitnewPromise(r setTimeout(r,5000));// 等待 5 秒 } } if(found){ console.log(✓ 收到部署完成通知); }else{ console.log(✗ 超时未收到部署通知); }更多控制流案例案例一条件批处理// 根据数据量决定处理策略 const records await salesforce.query({ query:SELECT Id FROM Lead WHERE Status New }); if(records.length 100){ // 小批量逐个处理 for(const record of records){ await processRecord(record); } }else{ // 大批量批处理 const batches chunk(records,50); for(const batch of batches){ await processBatch(batch); } }案例二错误重试机制// 实现智能重试逻辑 asyncfunction fetchWithRetry(url:string, maxRetries 3){ for(let i 0; i maxRetries; i){ try{ const result await api.fetch({ url }); return result; }catch(error){ if(i maxRetries -1)throw error; const delay Math.pow(2, i)*1000;// 指数退避 console.log(请求失败${delay}ms 后重试...); awaitnewPromise(r setTimeout(r, delay)); } } }案例三复杂的决策树// 多条件决策逻辑 const customer await crm.getCustomer({ id: customerId }); const orders await orders.getHistory({ customerId }); let action; if(customer.tier premium){ if(orders.length 10){ action send_vip_discount; }else{ action send_welcome_gift; } }elseif(customer.tier standard){ if(hasRecentPurchase(orders)){ action send_survey; }else{ action send_reminder; } }else{ action send_onboarding; } await executeAction(action, customer);性能优势优势总结⚡ 减少首次 Token 延迟 - 不需要等待模型评估每个 if 语句 使用成熟的编程模式 - 循环、条件、异常处理 更少的往返通信 - 整个逻辑在一次执行中完成4. 隐私保护操作核心概念中间结果默认保留在执行环境中。Agent 只看到你明确记录或返回的内容敏感数据可以流经工作流而不进入模型的上下文。实际案例导入客户联系信息场景从 Google Sheets 导入客户联系信息到 Salesforce传统方式的隐私风险// 传统方式所有数据都通过模型上下文 TOOL CALL: gdrive.getSheet(sheetId:abc123) →返回包含敏感信息的完整数据 [ { name:张三, email:zhangexample.com, phone:13800138000,...}, { name:李四, email:liexample.com, phone:13900139000,...}, // 所有敏感数据都加载到 LLM 上下文中 ] TOOL CALL: salesforce.updateRecord(...) →模型需要再次写入所有敏感数据代码执行方式自动令牌化// Agent 编写的代码 const sheet await gdrive.getSheet({ sheetId:abc123}); for(const row of sheet.rows){ await salesforce.updateRecord({ objectType:Lead, recordId: row.salesforceId, data:{ Email: row.email,// 实际的敏感数据 Phone: row.phone,// 实际的敏感数据 Name: row.name // 实际的敏感数据 } }); } console.log(已更新 ${sheet.rows.length} 条潜在客户记录);MCP 客户端在后台的处理// 数据被自动令牌化 // Agent 如果记录 sheet.rows看到的是 [ { salesforceId:00Q..., email:[EMAIL_1],// 已令牌化 phone:[PHONE_1],// 已令牌化 name:[NAME_1]// 已令牌化 }, { salesforceId:00Q..., email:[EMAIL_2], phone:[PHONE_2], name:[NAME_2] }, // ... ]关键机制拦截和令牌化MCP 客户端在数据进入 LLM 之前拦截安全流转数据通过执行环境从 Google Sheets → Salesforce去令牌化在实际 API 调用时令牌化的数据被还原零暴露真实的邮箱、电话、姓名从未进入 LLM 上下文高级隐私控制确定性安全规则// 定义数据流规则 const privacyPolicy { // PII 数据可以从哪些源读取 allowedSources:[google-drive,salesforce], // PII 数据可以写入哪些目标 allowedDestinations:[salesforce,local-storage], // 禁止的操作 forbidden:[ { source:*, destination:public-api}, { source:google-drive, destination:slack} ], // 需要令牌化的字段 sensitiveFields:[email,phone,ssn,creditCard] }; // MCP 客户端强制执行这些规则 // 如果 Agent 尝试违规操作会被阻止 try{ await slack.sendMessage({ channel:general, text: customer.email // ❌ 违反隐私策略 }); }catch(error){ // Error: Privacy policy violation: // PII cannot be sent to slack }数据流对比graph TB subgraph 代码执行 令牌化 A1[GoogleSheetsbr/真实数据]--|读取| B1[代码执行环境] B1 --|令牌化| C1[LLM 上下文br/[EMAIL_1],[PHONE_1]] B1 --|真实数据| D1[Salesforce API] D1 -- E1[数据安全导入] end subgraph 传统方式 A2[GoogleSheetsbr/真实数据]--|读取| B2[LLM 上下文br/完整敏感数据] B2 --|可能记录/泄露| C2[日志/缓存] B2 -- D2[Salesforce API] end style C1 fill:#6bcf7f style B2 fill:#ff6b6b隐私保护总结零上下文暴露- 敏感数据不进入 LLM️自动令牌化- 无需手动处理审计和合规- 可定义和强制执行数据流规则✅符合 GDPR/CCPA- 最小化数据暴露5. 状态持久化和技能演化核心概念代码执行环境的文件系统访问允许 Agent维护跨操作的状态- 保存中间结果恢复工作持久化自己的代码- 将成功的实现保存为可重用函数5.1 状态持久化案例处理大批量数据// Agent 可以保存进度支持中断和恢复 const leads await salesforce.query({ query:SELECT Id, Email FROM Lead LIMIT 10000 }); // 转换为 CSV 并保存 const csvData leads.map(l ${l.Id},${l.Email}).join(\n); await fs.writeFile(./workspace/leads.csv, csvData); console.log(已保存 10,000 条潜在客户记录到 leads.csv); // -------- 稍后的执行或从失败中恢复-------- const saved await fs.readFile(./workspace/leads.csv,utf-8); const rows saved.split(\n).map(row { const[id, email] row.split(,); return{ id, email }; }); console.log(从文件加载了 ${rows.length} 条记录继续处理...);案例跟踪处理进度// 处理大量记录时保存检查点 const CHECKPOINT_FILE ./workspace/progress.json; // 加载之前的进度如果有 let progress { processed:0, failed:[]}; if(await fs.exists(CHECKPOINT_FILE)){ progress JSON.parse( await fs.readFile(CHECKPOINT_FILE,utf-8) ); console.log(恢复进度已处理 ${progress.processed} 条记录); } const allRecords await fetchRecords(); for(let i progress.processed; i allRecords.length; i){ try{ await processRecord(allRecords[i]); progress.processed; // 每 100 条记录保存一次进度 if(i %1000){ await fs.writeFile( CHECKPOINT_FILE, JSON.stringify(progress) ); } }catch(error){ progress.failed.push({ index: i, error: error.message }); } } console.log(完成处理了 ${progress.processed} 条失败 ${progress.failed.length} 条);5.2 技能演化Skills核心概念Agent 可以保存成功的代码实现构建自己的技能库。技能保存示例// ./skills/save-sheet-as-csv.ts import*as gdrive from./servers/google-drive; import*as fs fromfs; /** * 将 Google Sheet 保存为本地 CSV 文件 * param sheetId - Google Sheet 的 ID * returns 保存的 CSV 文件路径 */ exportasyncfunction saveSheetAsCsv(sheetId:string):Promisestring{ // 获取数据 const data await gdrive.getSheet({ sheetId }); // 转换为 CSV const csv data.map(row row.map(cell ${cell}).join(,) ).join(\n); // 保存到文件 const filePath ./workspace/sheet-${sheetId}.csv; await fs.writeFile(filePath, csv); console.log(✓ 已保存 ${data.length} 行到 ${filePath}); return filePath; }技能文档SKILL.md# Save Sheet as CSV 将GoogleSheet导出为本地 CSV 文件。 ## 使用场景 -需要离线分析GoogleSheets数据 -将数据导入到不支持GoogleSheets API 的系统 -创建数据快照 ## 使用示例typescript import { saveSheetAsCsv } from ‘./skills/save-sheet-as-csv’;const csvPath await saveSheetAsCsv(‘1A2B3C4D5E6F’); console.log(CSV已保存到:${csvPath});## 参数 -sheetId(string):GoogleSheet的 ID ## 返回值 -(string):保存的 CSV 文件路径 ## 依赖 -google-drive MCP 服务器技能复用示例// 在未来的任何执行中Agent 可以直接使用这个技能 import{ saveSheetAsCsv }from./skills/save-sheet-as-csv; import{ uploadToS3 }from./skills/upload-to-s3; // 组合多个技能完成复杂任务 const csvPath await saveSheetAsCsv(abc123); const s3Url await uploadToS3(csvPath,my-bucket); console.log(数据已上传到: ${s3Url});技能生态系统技能库结构skills/ ├──>// ./skills/salesforce/sync-leads-from-sheet.ts import*as gdrive from../servers/google-drive; import*as salesforce from../servers/salesforce; import*as slack from../servers/slack; /** * 从 Google Sheet 同步潜在客户到 Salesforce * 并发送 Slack 通知 */ exportasyncfunction syncLeadsFromSheet( sheetId:string, notifyChannel:string ):Promise{ success: number; failed: number }{ // 1. 读取数据 const sheet await gdrive.getSheet({ sheetId }); console.log(读取到 ${sheet.length} 条记录); // 2. 批量更新 let success 0, failed 0; for(const row of sheet){ try{ await salesforce.createLead({ FirstName: row[0], LastName: row[1], Email: row[2], Company: row[3] }); success; }catch(error){ failed; console.error(失败: ${row[1]}, 原因: ${error.message}); } } // 3. 发送通知 await slack.sendMessage({ channel: notifyChannel, text:✓ 潜在客户同步完成: ${success} 成功, ${failed} 失败 }); return{ success, failed }; }状态和技能总结状态持久化- 支持长时间运行的任务和错误恢复技能积累- Agent 随时间变得更加高效可复用性- 一次编写多次使用专业化- 针对特定领域构建专用工具集⚠️ 实施考虑和权衡代码执行引入的复杂性虽然代码执行带来了显著的性能优势但它也引入了新的挑战1. 安全隔离Sandboxing需求防止恶意代码执行系统命令限制文件系统访问范围隔离网络请求实现方案// 沙箱配置示例 const sandboxConfig { // 文件系统限制 filesystem:{ allowedPaths:[./workspace,./skills], deniedPaths:[/,/etc,/usr], maxFileSize:100MB }, // 网络限制 network:{ allowedDomains:[api.example.com], deniedDomains:[*], requireHttps:true }, // 资源限制 resources:{ maxMemory:512MB, maxCpuTime:30s, maxExecutionTime:60s } };2. 资源限制挑战CPU 时间限制内存使用限制执行超时处理监控示例// 资源监控 const monitor { startTime:Date.now(), memoryUsed: process.memoryUsage().heapUsed, check(){ const elapsed Date.now()-this.startTime; const memory process.memoryUsage().heapUsed; if(elapsed 60000){ thrownewError(执行超时60 秒); } if(memory 512*1024*1024){ thrownewError(内存超限512MB); } } };3. 监控和审计需要追踪执行的代码API 调用数据访问错误和异常审计日志示例{ executionId:exec-123, timestamp:2024-11-05T10:30:00Z, code:const data await gdrive.getSheet(...), apiCalls:[ { service:google-drive, method:getSheet, duration:450ms, status:success } ], dataAccess:[ { source:google-drive, destination:salesforce, recordCount:1000, privacyCheck:passed } ] }架构对比何时使用代码执行决策矩阵场景建议方案原因 10 个工具简单流程直接工具调用实现简单overhead 低10-100 个工具混合方案核心工具用代码辅助工具直接调用 100 个工具代码执行唯一可扩展的方案大数据处理代码执行避免上下文溢出复杂控制流代码执行循环、条件更自然敏感数据代码执行 令牌化隐私保护快速原型直接工具调用快速验证想法实施建议渐进式采用从核心工具开始迁移到代码执行保留直接工具调用作为备选逐步扩展到更多工具混合架构// 配置哪些服务器使用代码执行 const executionStrategy { google-drive:code,// 大数据量用代码 salesforce:code,// 复杂操作用代码 slack:direct,// 简单通知直接调用 calendar:direct// 简单查询直接调用 };监控和优化追踪 token 使用量测量执行时间收集错误率持续优化实施成本 vs 收益 关键技术要点总结核心创新架构转变从直接工具调用到代码 API传统LLM ↔️ 工具创新LLM → 代码 → 工具性能提升Token 使用降低98.7%响应速度提升10-50 倍成本降低98%能力增强支持数千个工具而不会上下文溢出复杂数据处理在执行环境中完成自然的编程控制流循环、条件、异常五大优势速查优势传统方式代码执行方式提升工具加载一次性加载全部 150,000 tokens按需加载 2,000 tokens↓ 98.7%数据处理所有数据流经 LLM 200,000 tokens执行环境筛选 500 tokens↓ 99.8%控制流每次循环都要等待 LLM代码中执行循环⚡ 10-50x隐私敏感数据进入上下文自动令牌化 零暴露技能每次重新生成代码持久化可复用 持续提升技术架构对比最佳实践工具发现使用文件系统探索或search_tools渐进式加载定义优先加载名称和摘要数据处理在执行环境中筛选、聚合只返回摘要和关键信息避免大型数据进入上下文控制流用代码实现循环和条件实现错误重试机制减少 Agent 往返通信隐私保护启用自动令牌化定义数据流规则审计敏感数据访问技能演化保存成功的代码实现编写 SKILL.md 文档构建可复用的技能库 技术影响和未来展望对 AI Agent 生态的影响1. 重新定义 Agent 能力边界之前的限制Agent 连接的工具数量受上下文窗口限制大数据处理几乎不可能复杂工作流需要过多的往返通信代码执行后可以连接数千个工具处理 GB 级别的数据执行复杂的多步骤工作流2. 编程范式回归有趣的观察我们用 AI 来写代码然后让代码执行来提升 AI 的效率。这其实是一种范式回归传统编程人类编写代码 → 计算机执行AI Agent 1.0AI 直接调用工具AI Agent 2.0AI 编写代码 → 代码执行环境 → 调用工具为什么代码如此强大成熟的抽象循环、函数、模块化高效的数据处理就地转换不需要序列化确定性代码执行是可预测的可组合性复用和扩展3. 技能经济Skills Economy随着 Agent 可以持久化自己的代码一个新的技能经济正在形成个人技能库my-agent/ ├── skills/ │├── personal/ ││├── weekly-report.ts # 生成周报 ││├── expense-tracker.ts # 追踪支出 ││└── meeting-scheduler.ts # 智能排期 │└── work/ │├── customer-onboarding.ts # 客户入职流程 │└── sales-pipeline.ts # 销售管道管理团队技能库company-skills/ ├── sales/ │├── lead-qualification.ts │├── proposal-generator.ts │└── crm-sync.ts ├── marketing/ │├── campaign-analyzer.ts │└── social-media-poster.ts └── ops/ ├── incident-response.ts └── deployment-checker.ts开源技能市场开发者分享通用技能企业采用最佳实践社区协作改进Cloudflare 的验证文章提到 Cloudflare 发布了类似的发现称之为代码模式Code Mode。核心洞察一致LLM 擅长编写代码开发者应该利用这一优势来构建与 MCP 服务器交互更高效的 Agent。这不是巧合而是技术演进的必然LLM 最初是为代码生成训练的代码是最高效的工具组合方式执行环境提供了必要的隔离和控制未来方向1. 自动化技能发现和组合// Agent 自动发现相关技能 const skills await skillRegistry.search({ query:sync data from Google Sheets to Salesforce, similarity:0.8 }); // 自动组合多个技能 const workflow await composer.combine([ skills.find(read-google-sheet), skills.find(transform-csv), skills.find(bulk-import-salesforce) ]);2. 跨 Agent 技能共享3. 智能工具推荐// Agent 根据任务自动推荐工具 const task 分析最近的销售趋势; const recommendations await toolRecommender.suggest(task); // 返回: // 1. salesforce.query (相关度: 0.95) // 2. google-sheets.getSheet (相关度: 0.82) // 3. chart-generator.createGraph (相关度: 0.78)4. 渐进式安全增强// 基于信任度的权限系统 const securityPolicy { untrustedCode:{ allowedTools:[read-only], requireApproval:true }, trustedSkills:{ allowedTools:[all], requireApproval:false }, learnFromExecution:true// 从安全执行中学习 };开发者行动建议如果你正在构建或使用 AI AgentAnthropic 鼓励实验在你的 MCP 实现中尝试代码执行测量对比 token 使用和响应时间分享将你的发现分享给 MCP 社区贡献开源你的技能库和最佳实践资源链接MCP 协议规范https://modelcontextprotocol.ioMCP 服务器目录社区已构建数千个服务器SDK 文档支持 Python、TypeScript、Go 等如何学习AI大模型大模型时代火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业”“谁的饭碗又将不保了”等问题热议不断。不如成为「掌握AI工具的技术人」毕竟AI时代谁先尝试谁就能占得先机想正式转到一些新兴的 AI 行业不仅需要系统的学习AI大模型。同时也要跟已有的技能结合辅助编程提效或上手实操应用增加自己的职场竞争力。但是LLM相关的内容很多现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学学习成本和门槛很高那么针对所有自学遇到困难的同学们我帮大家系统梳理大模型学习脉络将这份LLM大模型资料分享出来包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 有需要的小伙伴可以扫描下方二维码领取↓↓↓学习路线第一阶段 从大模型系统设计入手讲解大模型的主要方法第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段 以SD多模态大模型为主搭建了文生图小程序案例第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。1.AI大模型学习路线图2.100套AI大模型商业化落地方案3.100集大模型视频教程4.200本大模型PDF书籍5.LLM面试题合集6.AI产品经理资源合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】