ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Anthropic MHS 深度解析:AI Agent 控制现实世界的技术底座与开发实践

Anthropic MHS 深度解析:AI Agent 控制现实世界的技术底座与开发实践 最近一段时间AI Agent 的热度已经不只是停留在“能聊天、能写代码”的层面而是开始向真实世界延伸。Anthropic 在 2024 年底推出 Computer Use 能力时很多人第一次看到 Claude 能自己移动鼠标、点击按钮、填写表单那种震撼感不亚于 ChatGPT 刚发布时的状态。现在社区里又出现了一个高频缩写MHS。很多人问Anthropic MHS 到底是什么它和 AI Agent 控制现实世界有什么关系为什么突然大家都在讨论它这篇文章不打算只给一个名词解释而是想把这条技术链路拆开来看AI Agent 控制现实世界需要哪些基础设施Anthropic 在这条链路上做了什么MHS 可能指向什么以及作为一个开发者你现在能动手验证哪些能力。如果你正在关注 AI Agent 开发、Anthropic 生态接入、工具调用和自动化流程这篇文章值得读完。1. 这篇文章真正要解决的问题先说实话到目前为止Anthropic 官方文档里并没有一个叫“MHS”的成熟产品正式发布。在技术社区的讨论中MHS 大概率是某个缩写可能指向 Model Hosting Service、Managed Hosting Service也可能指的是 MCP Host Service 或 Message Handling Service 这一类“模型托管与调度服务”的统称。既然没有官方定论为什么还要写因为比起纠结一个缩写更重要的是理解它背后的技术趋势AI Agent 正在从“对话系统”变成“行动系统”而控制现实世界这件事需要一套可靠的服务托管、工具调用、权限管理和执行反馈机制。无论 MHS 最终指什么它都属于这个范畴。这篇文章要解决的三个问题为什么 AI Agent 能开始控制现实世界底层能力发生了什么变化。Anthropic 在 Agent 控制现实世界这件事上提供了哪些关键技术比如 Computer Use、MCP。MHS 可能是什么你该如何理解它、验证它以及在实际开发中会遇到哪些坑。读完这篇文章你会对 AI Agent 的现实世界控制能力有一个完整的技术认知同时能尝试用 Anthropic 的 API 跑通一个最简单的工具调用 Agent。2. AI Agent 从“聊天”到“行动”的范式变化要理解 Agent 控制现实世界先要看清楚过去几年 AI 应用的变化路径。第一代 LLM 应用以“对话”为核心。用户输入 prompt模型输出文本。模型没有手没有脚也没有权限去操作外部系统。你让它订个机票它只能给你一份文字攻略实际上什么也做不了。第二代应用开始引入“工具调用”。模型可以通过函数调用Function Calling触发外部 API比如查天气、查数据库、发邮件。这个阶段模型有了“手”但每次调用都需要应用开发者提前把工具定义好Agent 只是在多个工具之间做选择。第三代应用就是现在正在发生的Agent 开始操作真实世界的图形界面和系统。Anthropic 的 Computer Use 让模型能够读取屏幕截图、计算点击坐标、模拟键盘输入从而操作真实软件。这已经不只是调用 API而是像人类一样“看屏幕、动鼠标、敲键盘”。这背后的关键变化是输出不再局限于文本而是结构化指令。上下文不再局限于提示词而是实时感知环境状态。行为不再局限于单次回答而是多轮规划、执行、纠错、验证。所以AI Agent 控制现实世界的本质是模型从“认知”走向“认知 行动闭环”。而要让这个闭环可靠运行就必须有一层服务来管理模型的部署、工具的注册、任务的调度、结果的回传。这就是 MHS 这类“托管服务”出现的大背景。3. Anthropic MHS 到底是什么一个需要拆解的缩写现在回到标题本身的问题Anthropic MHS 到底是什么我从几个角度分析一下目前社区里 MHS 可能指代的含义。第一种理解Managed Hosting Service即“托管托管服务层”。Agent 应用不像普通 CRUD 接口它需要处理长会话、工具调用、权限隔离、多步骤任务。一个成熟的托管服务层应该帮助开发者屏蔽底层基础设施让 Agent 可以随时调用预置工具。第二种理解Model Hosting Service即“模型托管服务”。Anthropic 提供 Claude API开发者不需要自己部署大模型只需要调用托管接口。这个理解最贴近 Anthropic 的实际业务因为绝大多数开发者是通过 API 使用 Claude而不会自己部署权重。第三种理解MCP Host Service即“MCP 主机服务”。MCPModel Context Protocol是 Anthropic 推出的模型上下文协议用来标准化模型与外部工具之间的连接。MCP 架构里有 MCP Server工具提供方和 MCP Client模型侧调用方。所谓 Host Service可以理解为装载并管理这些客户端/服务端的运行环境。第四种理解Message Handling Service即“消息处理服务”。Agent 在执行任务时会产生大量中间消息包括模型请求、工具返回结果、错误日志、用户确认指令。这些消息需要被记录、转发、过滤和持久化才能支撑长任务执行。我的判断是MHS 目前不是一个有唯一答案的官方产品名而是一个“功能集合”的简称。无论在哪个语境下它都指向同一件事为了让 AI Agent 能够可靠地控制现实世界你需要在模型之上建立一层服务做工具接入、状态管理、任务调度和执行安全控制。与其纠结 MHS 是哪个词组的缩写不如把关注点放在它代表的能力架构上。4. Anthropic 的现实世界控制技术底座Computer Use 与 MCPAnthropic 在 Agent 控制现实世界这件事上真正拿出的是两个重量级技术Computer Use 和 MCP。4.1 Computer Use让 AI 像人一样操作电脑Computer Use 是 Anthropic 给 Claude 增加的一项能力允许模型读取电脑屏幕图像分析界面元素然后输出鼠标点击、键盘输入、滚动、拖拽等操作指令。开发者拿到这些指令后通过自动化工具在本地或云端执行。这个能力解决了一个关键问题现实世界有大量系统没有开放 API只有图形界面。过去你想让 AI 帮你操作这些系统基本不可能因为你必须为每个系统单独写自动化脚本。Computer Use 让 AI 直接成为“通用型自动化操作员”不需要系统额外提供接口。但 Computer Use 也带来新的风险。如果模型错误判断了屏幕状态可能点击错误按钮甚至执行危险操作。所以 Anthropic 在发布时强调这个功能目前适合低风险、有监督的自动化场景比如填写表单、数据录入、日常办公流程。4.2 MCP工具接入的标准化协议如果说 Computer Use 解决的是“怎么操作界面”那么 MCP 解决的是“怎么连接一切工具”。MCP 的定位类似于 AI Agent 的“USB-C 接口”。协议定义了三个核心角色MCP Host运行 Agent 的应用程序。MCP Client在 Host 内部与 Server 建立连接的通信组件。MCP Server暴露具体工具、数据资源和提示词的外部服务。通过 MCP一个 Agent 可以连接文件系统、数据库、搜索引擎、内部业务系统不需要为每一个工具单独写一套适配代码。工具提供方只需要实现一个 MCP Server所有兼容 MCP 的 Agent 都能直接使用。MCP 的价值不能只看协议本身。它真正的价值在于生态效应。当足够多的工具都实现 MCP 标准后AI Agent 的能力边界会被极大拓宽。而这正好呼应了 MHS 的定位在 MCP 之上需要一个托管服务来管理这些连接的生命周期。5. 环境准备与前置条件如果你想亲自动手验证 Anthropic 的 Agent 能力需要准备以下环境。版本信息以官方文档为准我在这里重点演示通用思路不会写死版本号。操作系统macOS、Linux 或 Windows 均可建议使用 Linux 或 macOS 开发服务器。编程语言Python 3.8 以上或者 Node.js 18 以上两者任选。Anthropic API Key在 Anthropic 控制台创建注意 API Key 需要访问权限。开发工具VS Code 或其他支持 Python/Node.js 的 IDE。依赖包Anthropic 官方 Python SDK 或 TypeScript SDK。需要注意调用 Anthropic API 属于远端模型托管服务你不需要本地部署大模型只需要能够访问 api.anthropic.com。如果你的网络环境访问有问题请通过合法的网络配置解决这里不做展开。在开始写代码之前先确认你已经能成功调用基础 API。这一步能避免后续把“环境问题”和“代码问题”混在一起排查。6. 从零实现一个最简单的 Agent 工具调用示例下面我们用一个最小示例跑通“AI Agent 调用外部工具”的完整流程。这里以 Python 为例演示如何定义一个计算器工具让 Claude 能够根据用户问题自动调用它。6.1 安装依赖pip install anthropic安装完成后在终端确认 SDK 版本python -c import anthropic; print(anthropic.__version__)如果你能正常输出版本号说明 SDK 安装成功。6.2 编写基础工具调用代码创建文件agent_demo.py内容如下import os from anthropic import Anthropic client Anthropic( api_keyos.environ.get(ANTHROPIC_API_KEY) ) # 定义一个简单的工具让 Claude 可以调用 tools [ { name: calculate, description: 执行四则运算表达式例如 1 2 * 3, input_schema: { type: object, properties: { expression: { type: string, description: 要计算的数学表达式比如 12 * 34 } }, required: [expression] } } ] def run_calculate(expression: str): # 注意生产环境不要使用 eval这里仅为演示工具调用流程 return str(eval(expression)) def main(): user_input 请帮我计算 12345 乘以 6789 的结果 messages [{role: user, content: user_input}] response client.messages.create( modelclaude-sonnet-4-5, # 具体模型名以官方文档为准 max_tokens1024, toolstools, messagesmessages ) # 检查模型是否想要调用工具 for block in response.content: if block.type tool_use: print(f模型想要调用工具: {block.name}) print(f参数: {block.input}) if block.name calculate: expr block.input.get(expression) result run_calculate(expr) print(f工具执行结果: {result}) # 把工具结果回传给模型让模型生成最终回答 messages.append({ role: assistant, content: response.content }) messages.append({ role: user, content: [ { type: tool_result, tool_use_id: block.id, content: result } ] }) final_response client.messages.create( modelclaude-sonnet-4-5, max_tokens1024, toolstools, messagesmessages ) print(最终回答:) for final_block in final_response.content: if final_block.type text: print(final_block.text) elif block.type text: print(模型直接回答:, block.text) if __name__ __main__: main()这段代码的核心逻辑定义了一个calculate工具并描述了参数expression。把用户问题和工具定义一起发给 Claude。模型判断需要计算时返回tool_use类型的消息。应用侧执行真实的计算逻辑。把工具执行结果回传给模型模型据此生成最终回答。需要注意这段代码里的eval非常危险仅用于演示。生产环境应该使用ast模块或专门的表达式解析库。6.3 运行与验证export ANTHROPIC_API_KEY你的_API_Key python agent_demo.py预期的输出大致是模型想要调用工具: calculate 参数: {expression: 12345 * 6789} 工具执行结果: 83812005 最终回答: 12345 乘以 6789 的结果是 83812005。如果你看到模型成功调用工具并给出最终结果说明你已经跑通了一个最基础的 Agent 工具调用闭环。这个闭环就是 AI Agent 控制现实世界的最小单元模型提出意图代码执行动作结果回流验证。7. MCP 接入配置示例上面示例里工具是写死在应用代码里的。如果工具很多你会发现问题每增加一个工具都要修改 Agent 代码。MCP 的解法是把工具独立成 Server运行时动态注册。下面是一个简易的 MCP Server 配置示例使用 Python SDK 暴露一个“获取当前时间”的工具。# server.py from mcp.server.fastmcp import FastMCP mcp FastMCP(TimeServer) mcp.tool() def get_current_time(format: str %Y-%m-%d %H:%M:%S) - str: 获取当前时间format 为时间格式化字符串 from datetime import datetime return datetime.now().strftime(format) if __name__ __main__: mcp.run()然后需要在 MCP Host 的配置文件里注册这个 Server。不同 Host 配置方式不同以 Claude Desktop 为例配置文件位置通常在macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.json配置内容大致如下{ mcpServers: { time-server: { command: python, args: [/path/to/server.py] } } }MCP 的实际价值在于当你把 Agent 应用从“单人工具脚本”升级为“团队共享能力平台”时工具的接入、权限、版本管理都会变得有序。这恰好也是 MHS 这种托管服务层需要解决的问题。8. 常见问题与排查思路结合社区里大量开发者遇到的问题下面几个高频问题值得关注。问题现象可能原因排查方式解决方案调用 API 返回 403 ForbiddenAPI Key 无效、权限不足或账号未开通模型访问权限检查请求头Authorization是否携带有效 Key在控制台查看 Key 状态重新生成 API Key确认账号有权限使用指定模型无法连接到 api.anthropic.com本地网络受限或代理配置异常使用curl -I https://api.anthropic.com/v1/models测试连通性检查网络配置确保能合法访问配置正确的代理环境变量提示 does not look like an anthropic model模型名称写错或使用的网关路由不匹配检查代码中model参数与官方文档是否一致到 Anthropic 文档查阅当前支持的模型 IDMCP Server 启动后无法连接配置文件路径错误、命令不存在或依赖缺失在终端手动执行配置里的 command 和 args看是否有报错修正路径安装依赖确认 Python 命令可用Agent 执行工具时出现不确定行为工具输入参数 schema 定义与真实逻辑不一致打印工具实际收到的 input检查模型生成参数完善 tool 定义中的 description让模型更准确地生成参数针对 403 错误多说一句。403 和“网络不通”是两码事。403 表示请求已经到了服务器但服务器拒绝处理。最常见的两个原因API Key 无效或者当前账号没有权限使用你指定的模型。排查时一定要先看请求日志里返回的具体错误正文不要只盯着状态码。9. 最佳实践与工程建议9.1 权限最小化原则Agent 控制现实世界时一定要遵循权限最小化。给 Agent 的工具权限只需要完成当前任务的最小范围即可。比如一个只读查询任务的 Agent不应该被赋予删除文件的权限。在 MCP Server 设计上你可以为不同任务注册不同粒度的工具。9.2 工具执行的沙箱隔离如果 Agent 能够执行系统命令或代码必须考虑沙箱隔离。生产环境建议使用容器或虚拟机运行 Agent 工具避免模型生成的异常指令影响宿主机。9.3 完整审计日志Agent 执行过程需要详细记录模型发送了什么工具调用请求。工具接收到了什么参数。工具执行结果是什么。最终回答是基于哪些结果生成的。这些日志不仅是排查问题的依据也是未来做安全审计和模型行为评测的基础。9.4 任务确认机制对于高影响操作比如转账、删除数据、发送重要邮件Agent 在执行前必须经过人工确认。最简单的实现方式是在工具调用前增加一个确认步骤由用户点击“确认”或“取消”后再继续执行。这能避免很多灾难性故障。9.5 工具描述尽量详细模型本身并不知道你的工具内部逻辑。它只能根据description和相关参数描述来判断“什么时候该调用、传什么参数”。所以工具描述要写清楚“什么时候用、什么时候不用、参数的单位和约束”。描述越清晰模型的工具选择准确率越高。10. 总结与后续学习方向AI Agent 开始控制现实世界不是一句口号而是由工具调用、协议标准化和托管服务共同支撑起来的技术趋势。Anthropic 在这个方向上提供了 Computer Use、MCP 这样的关键技术组件而 MHS 作为一个尚未定论的缩写指向的是承载这些能力的服务层。对你来说更重要的是抓住这条技术主线先跑通一个最简单的工具调用 Agent。再通过 MCP 把工具从应用代码中剥离出来。最后在真实业务场景中逐步增加权限控制、审计和人工确认机制。这里面值得继续深入的方向很多MCP 协议规范、Computer Use 的安全边界、Agent 评测方法、多 Agent 协作框架。你可以在 Anthropic 官方文档里找到最新资料也可以关注社区里的长期追踪文章。建议把你今天跑通的工具调用 Agent 代码保存下来作为后续学习的基础项目。AI Agent 的迭代速度很快但底层的“意图 工具 执行 验证”闭环不会变。理解这个闭环比记住任何一个缩写都更有价值。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进