MCP 协议开发实战:从零搭建 AI Agent 工具链

MCP协议开发实战:从零搭建AI Agent工具链 摘要:本文提供了一份完整的MCP协议开发指南,帮助开发者从零搭建AI Agent工具链。MCP协议通过标准化方式解决LLM调用外部工具的安全性和效率问题。文章首先介绍了MCP的核心组件(Server、Client、资源、工具和传输层),然后详细演示了开发流程:1)使用Node.js和TypeScript初始化项目;2)构建一个提供天气查询功能的MCP Server;3)配置Claude Desktop作为MCP Client;4)创建自定义Client集成LLM SDK。通过这套工具链,开发者能够为AI A 阅读详情

1. 引言:为什么需要 MCP

  • 当前 AI Agent 接入外部工具/数据的痛点:接口碎片化、协议不统一、重复造轮子
  • MCP(Model Context Protocol)是什么:Anthropic 于 2024 年底开源的开放协议
  • MCP 的核心价值:让模型与工具、数据源之间建立标准化连接,一次接入、处处复用
  • 本文目标:从零手写一个 MCP Server,并接入 AI Agent,搭建一套可用的工具链

2. MCP 核心概念与架构

  • 协议分层:Client、Server、Transport、Protocol
  • 核心原语:Tools、Resources、Prompts 三大能力
  • 消息模型:JSON-RPC 2.0 之上的请求/响应/通知
  • 传输方式对比:stdio(本地进程)与 Streamable HTTP(远程服务)
  • 生命周期:initialize → 能力协商 → 工具调用 → 关闭
  • 配套一张 MCP 架构图(Mermaid)

下面是 MCP 的整体架构图,清晰展示了 Client、Server、Transport、Protocol 的分层关系,以及 Tools、Resources、Prompts 三大原语与各层之间的交互流向:

外部系统

MCP Server 层

Protocol 协议层

Transport 传输层

MCP Client 层

AI Agent 应用层

LLM 模型

应用逻辑

Client 核心
initialize / 能力协商

工具调用调度

Resources 处理

Prompts 处理

stdio
本地进程

Streamable HTTP
远程服务

JSON-RPC 2.0
请求 / 响应 / 通知

消息 Schema 校验

Server 核心
能力注册与分发

Tools 工具

Resources 资源

Prompts 提示词模板

外部 HTTP API

数据库

文件系统

图中各层职责与交互流向说明:

  • Client 层:负责与 LLM 应用对接,完成 initialize 握手与能力协商,并把模型意图路由到对应的工具调用、资源读取或提示词模板。
  • Transport 层:承载 Client 与 Server 之间的消息传输,本地开发用 stdio,远程部署用 Streamable HTTP。
  • Protocol 层:基于 JSON-RPC 2.0 定义消息格式与 Schema 校验,保证双方按统一契约通信。
  • Server 层:注册并暴露 Tools、Resources、Prompts 三大原语,分别对接外部 API、数据库、文件系统等真实数据源。

3. 环境准备与项目初始化

  • 技术选型:Python + 官方 SDK(mcp 包)或 TypeScript SDK
  • 环境要求:Python 3.10+ / Node 18+,uv 或 pip 安装
  • 初始化项目结构:server.py、client.py、requirements.txt
  • 安装 MCP SDK 并验证版本
  • 最小可运行示例:一个返回 “hello” 的 MCP Server

3.1 安装依赖

# 创建虚拟环境(推荐)
python -m venv .venv
source .venv/bin/activate  # Windows 下为 .venv\Scripts\activate

# 安装 MCP 官方 Python SDK
pip install "mcp[cli]"

# 验证安装
mcp --version

3.2 项目结构

mcp-toolchain/
├── server.py          # MCP Server 实现
├── client.py          # MCP Client 实现
├── requirements.txt   # 依赖清单
└── .env               # 环境变量(API Key 等)

3.3 最小可运行 Server

# server.py
from mcp.server.fastmcp import FastMCP

# 创建 MCP Server 实例
mcp = FastMCP("hello-server")

@mcp.tool()
def say_hello(name: str) -> str:
    """向用户问好"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run()  # 默认以 stdio 模式运行

启动后,用 mcp dev server.py 即可在调试面板中看到并调用 say_hello 工具。

4. 开发第一个 MCP Server

  • 创建 Server 实例并注册工具
  • 用装饰器定义工具:入参 schema 与返回值约定
  • 实现一个「天气查询」工具:输入城市名,返回模拟天气数据
  • 工具内调用外部 HTTP API 的实践(requests/httpx)
  • 错误处理与结构化返回
  • 本地运行与调试:用 mcp 命令行工具或直接启动

4.1 定义带 Schema 的工具

# server.py
from typing import Any
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("weather-server")

@mcp.tool()
def get_weather(city: str, unit: str = "celsius") -> dict[str, Any]:
    """查询指定城市的天气。

    Args:
        city: 城市名称,如 "北京"、"Shanghai"
        unit: 温度单位,celsius(摄氏)或 fahrenheit(华氏)

    Returns:
        包含天气信息的结构化字典
    """
    # 模拟数据,实际项目中可替换为真实 API 调用
    data = {
        "city": city,
        "temperature": 26 if unit == "celsius" else 79,
        "condition": "晴",
        "humidity": 45,
        "wind": "东南风 3 级",
    }
    return data

4.2 调用外部 HTTP API

# server.py(续)
import httpx
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("weather-server")

@mcp.tool()
async def get_weather_http(city: str) -> dict[str, Any]:
    """通过外部 API 查询真实天气数据。"""
    url = f"https://api.example.com/weather?city={city}"
    async with httpx.AsyncClient(timeout=10) as client:
        resp = await client.get(url)
        resp.raise_for_status()  # 非 2xx 时抛出异常
        return resp.json()

4.3 错误处理与结构化返回

# server.py(续)
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("weather-server")

@mcp.tool()
def get_weather_safe(city: str) -> dict[str, Any]:
    """带错误处理的天气查询工具。"""
    if not city or not city.strip():
        return {"error": "城市名不能为空", "success": False}

    try:
        # 模拟查询逻辑
        result = {"city": city, "temperature": 26, "success": True}
        return result
    except Exception as e:
        return {"error": str(e), "success": False}

4.4 本地运行与调试

# 方式一:直接启动(stdio 模式)
python server.py

# 方式二:使用 MCP Inspector 可视化调试
mcp dev server.py

启动后,Inspector 会打开一个 Web 面板,可直观地查看工具列表、入参 Schema 并手动调用测试。

5. 接入 AI Agent:编写 MCP Client

  • 用官方 SDK 编写 Client 连接 Server
  • 完成 initialize 握手与能力协商
  • 列出并调用 Server 暴露的工具
  • 将 MCP 工具接入 LLM:以 OpenAI/DeepSeek 等兼容接口为例
  • 实现「用户提问 → 模型决定调用工具 → 返回结果 → 模型总结」的完整闭环
  • 配套一张 Agent 调用时序图(Mermaid)

5.1 基础 Client:连接与调用

# client.py
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    # 配置要连接的 Server 进程
    server_params = StdioServerParameters(
        command="python",
        args=["server.py"],
    )

    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # 1. initialize 握手与能力协商
            init_result = await session.initialize()
            print("协商结果:", init_result.capabilities)

            # 2. 列出 Server 暴露的工具
            tools = await session.list_tools()
            for tool in tools.tools:
                print(f"工具: {tool.name} - {tool.description}")

            # 3. 调用工具
            result = await session.call_tool(
                "get_weather",
                arguments={"city": "北京"},
            )
            print("调用结果:", result.content)

if __name__ == "__main__":
    asyncio.run(main())

5.2 接入 LLM:完整工具调用闭环

# agent.py
import json
from openai import OpenAI
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

client = OpenAI(base_url="https://api.deepseek.com", api_key="your-key")

async def run_agent(session: ClientSession, user_query: str):
    # 1. 获取工具列表并转换为 OpenAI 格式
    tools_result = await session.list_tools()
    tools = [
        {
            "type": "function",
            "function": {
                "name": t.name,
                "description": t.description,
                "parameters": t.inputSchema,
            },
        }
        for t in tools_result.tools
    ]

    messages = [{"role": "user", "content": user_query}]

    # 2. 模型决定是否调用工具
    resp = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages,
        tools=tools,
    )

    msg = resp.choices[0].message
    messages.append(msg)

    # 3. 若模型请求调用工具,则执行并回填结果
    if msg.tool_calls:
        for tc in msg.tool_calls:
            args = json.loads(tc.function.arguments)
            result = await session.call_tool(tc.function.name, arguments=args)
            messages.append({
                "role": "tool",
                "tool_call_id": tc.id,
                "content": str(result.content),
            })

        # 4. 模型基于工具结果生成最终回答
        final = client.chat.completions.create(
            model="deepseek-chat",
            messages=messages,
        )
        return final.choices[0].message.content

    return msg.content

async def main():
    server_params = StdioServerParameters(command="python", args=["server.py"])
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            answer = await run_agent(session, "北京今天天气怎么样?")
            print("Agent 回答:", answer)

if __name__ == "__main__":
    asyncio.run(main())

5.3 Agent 调用时序图

MCP ServerMCP ClientLLM 模型用户MCP ServerMCP ClientLLM 模型用户提问「北京天气如何?」请求工具列表list_tools返回工具 Schema工具定义调用 get_weather(city="北京")call_tool返回天气数据工具结果总结回答「北京晴,26℃」

整个闭环的核心是:模型不直接执行工具,而是通过 MCP Client 与 Server 通信,从而让工具接入标准化、可复用。

6. 进阶:Resources 与 Prompts

  • Resources:暴露只读数据(文件、数据库查询、API 结果)
  • Prompts:预置可复用的提示词模板
  • 三者(Tools/Resources/Prompts)的适用场景对比
  • 在 Server 中注册一个 Resource 与一个 Prompt 的示例

6.1 注册 Resource

# server.py(续)
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("advanced-server")

@mcp.resource("config://app")
def get_config() -> str:
    """暴露应用配置(只读数据源)"""
    return "version=1.0.0\nmode=production"

@mcp.resource("db://users/{user_id}")
def get_user(user_id: str) -> str:
    """从数据库查询用户信息"""
    # 实际项目中在此查询数据库
    return f'{{"id": "{user_id}", "name": "Alice", "role": "admin"}}'

6.2 注册 Prompt

# server.py(续)
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("advanced-server")

@mcp.prompt()
def code_review(code: str) -> str:
    """生成代码审查提示词模板"""
    return f"""请对以下代码进行审查,重点关注:
1. 潜在 Bug 与边界条件
2. 性能瓶颈
3. 代码可读性与命名规范

代码内容:
```python
{code}

“”"

@mcp.prompt()
def translate(text: str, target_lang: str = “English”) -> str:
“”“翻译提示词模板”“”
return f"请将以下内容翻译成{target_lang},保持原意与语气:\n\n{text}"


### 6.3 三者适用场景对比

| 原语 | 本质 | 适用场景 | 是否可写 |
|------|------|----------|----------|
| Tools | 可执行操作 | 查询天气、调用 API、执行计算 | 可产生副作用 |
| Resources | 只读数据 | 配置文件、数据库记录、文件内容 | 只读 |
| Prompts | 提示词模板 | 代码审查、翻译、角色扮演 | 只读模板 |

**选择建议**:需要执行动作用 Tools;只需读取数据用 Resources;需要复用固定指令用 Prompts。

## 7. 实战:搭建一个多工具 Agent 工具链

- 场景设计:一个「信息查询助手」,聚合天气、新闻、计算器三个工具
- 在一个 Server 中注册多个工具
- 用 Client 侧路由把不同工具分发给不同模型或统一模型
- 处理工具调用链:一个工具的输出作为另一个工具的输入
- 日志与可观测性:记录每次工具调用的入参、出参、耗时

### 7.1 多工具 Server

```python
# multi_server.py
import time
from typing import Any
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("info-assistant")

@mcp.tool()
def get_weather(city: str) -> dict[str, Any]:
    """查询城市天气"""
    return {"city": city, "temperature": 26, "condition": "晴"}

@mcp.tool()
def get_news(topic: str = "technology") -> list[dict[str, str]]:
    """获取指定主题的新闻列表"""
    return [
        {"title": f"{topic} 头条新闻一", "url": "https://example.com/1"},
        {"title": f"{topic} 头条新闻二", "url": "https://example.com/2"},
    ]

@mcp.tool()
def calculator(expression: str) -> float:
    """计算数学表达式,如 '1 + 2 * 3'"""
    # 安全起见,仅允许数字与四则运算
    allowed = set("0123456789+-*/(). ")
    if not all(c in allowed for c in expression):
        raise ValueError("表达式包含非法字符")
    return eval(expression)  # 生产环境请使用安全解析库

7.2 Client 侧路由与日志

# multi_client.py
import asyncio
import time
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def call_with_log(session: ClientSession, tool_name: str, args: dict):
    """带日志与耗时的工具调用封装"""
    start = time.perf_counter()
    print(f"[调用] {tool_name}({args})")

    result = await session.call_tool(tool_name, arguments=args)

    elapsed = (time.perf_counter() - start) * 1000
    print(f"[完成] {tool_name} 耗时 {elapsed:.1f}ms,结果: {result.content}")
    return result

async def main():
    server_params = StdioServerParameters(command="python", args=["multi_server.py"])
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            # 路由:根据用户意图分发到不同工具
            intent = "weather"  # 实际项目中由 LLM 判断意图

            if intent == "weather":
                await call_with_log(session, "get_weather", {"city": "上海"})
            elif intent == "news":
                await call_with_log(session, "get_news", {"topic": "ai"})
            elif intent == "calc":
                await call_with_log(session, "calculator", {"expression": "(3+5)*2"})

if __name__ == "__main__":
    asyncio.run(main())

7.3 工具调用链:一个工具的输出作为另一个工具的输入

# chain_client.py
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def run_chain(session: ClientSession):
    """演示工具调用链:先查天气,再根据天气生成穿衣建议"""
    # 第一步:查询天气
    weather_result = await session.call_tool(
        "get_weather", arguments={"city": "北京"}
    )
    weather_text = str(weather_result.content)
    print("天气结果:", weather_text)

    # 第二步:将天气结果作为输入,调用建议工具
    # (实际项目中建议工具可在 Server 端实现)
    advice = await session.call_tool(
        "calculator",
        arguments={"expression": "26 - 10"},  # 模拟温差计算
    )
    print("温差建议:", advice.content)

async def main():
    server_params = StdioServerParameters(command="python", args=["multi_server.py"])
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            await run_chain(session)

if __name__ == "__main__":
    asyncio.run(main())

7.4 可观测性要点

  • 入参日志:记录每次工具调用的完整参数,便于复现问题
  • 出参日志:记录返回结果,便于排查数据异常
  • 耗时统计:记录每次调用的耗时,定位性能瓶颈
  • 链路追踪:为一次 Agent 会话生成唯一 trace_id,串联所有工具调用

8. 部署与远程调用

  • 本地 stdio 模式与远程 HTTP 模式的切换
  • 用 Streamable HTTP 暴露 MCP Server
  • 鉴权与安全:API Key、CORS、输入校验
  • 部署到云服务器 / Docker 容器
  • 远程 Client 连接配置示例

9. 常见问题与调试技巧

  • 握手失败、能力协商不一致的排查
  • 工具调用超时与重试策略
  • 传输层断连与重连
  • 日志级别与调试工具(mcp dev、inspector)
  • 版本兼容性:SDK 与协议版本对应关系

10. 总结与展望

  • 回顾从零搭建工具链的完整路径
  • MCP 生态现状:官方 SDK、社区 Server、规范演进
  • 下一步学习方向:自定义 Transport、多 Server 聚合、与 LangChain/Claude 深度集成
  • 结语:MCP 正在成为 AI 工具互联的事实标准
「文智助手」全场景办公AI助理AI+OPC全流程实践方案(大赛作品) 阅读详情

相关推荐

船载 OpenHarmony AIS 航海工作台:告警与防碰撞预警系统

船载OpenHarmony AIS航海工作台的告警与防碰撞系统,集成十余类告警(超速、偏航、会遇、SOS等),通过网格空间索引实现高效邻近判定,保障实时性。告警管理器统一调度规则、去重、通知与日志,支持悬浮球、语音、跑马灯、弹窗多渠道触达,确保航行安全。SOS紧急通道独立运行,避免干扰。系统设计强调性能优化与多场景适配,为航海安全提供核心支撑。

专注于计算机研发知识和资讯分享 188

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 297

KEGG数据库与KAAS工具:基因功能注释的实用指南

本文提供了使用KEGG数据库与KAAS工具进行基因功能注释的完整实用指南。详细阐述了如何从准备基因或蛋白序列开始,通过KAAS服务器获取KEGG Orthology(KO)编号,并解读注释结果。文章进一步介绍了如何利用KOBAS工具进行通路富集分析,将定性观察转化为定量洞察,并分享了提高注释准确率、处理大数据集及使用API等避坑技巧与高阶方法,为基因组学、转录组学研究者奠定坚实的数据分析基础。

weixin_29292535的博客 394

ChatGPT、Perplexity、Gemini 与 AI Overviews 引用对比:谁的引用更可信

AI 引擎的引用机制差异很大:ChatGPT 以行内引用加 Sources 列表呈现来源,Perplexity 几乎逐句可溯源,Gemini 在回答中内嵌相关来源链接,AI Overviews 则把多源聚合答案与来源列表一起放在搜索结果顶部。本文从引用透明度、来源偏好、可干预性 3 个维度对比这 4 个引擎,并给出 GEO 的 3 点启示,帮企业在多引擎环境下提升被引用的概率。

淡然一笑 的专栏 140

WRF和WPS安装和编译时遇到的问题

检查是否自己netcdf和Fortran编译器一致。解决办法:修改configure.wps里的路径。如果没问题且wrf已成功编译,考虑重新。path修改为jasper在的路径。

m0_54898744的博客 1838

传感器校准与标定:传感器的灵敏度校准_(11).常见传感器的灵敏度校准方法

线性校准:适用于传感器输出与输入之间存在线性关系的情况。通过收集数据并使用最小二乘法拟合线性方程,可以确定斜率和截距,从而实现校准。非线性校准:适用于传感器输出与输入之间存在非线性关系的情况。通过收集数据并使用非线性拟合方法(如最小二乘法),可以确定多项式或其他非线性方程的参数,从而实现校准。温度补偿校准:适用于传感器在不同温度下输出特性变化的情况。通过收集不同温度下的数据并使用温度补偿方程,可以提高传感器在不同温度下的测量精度。其他校准方法。

2401_87715305的博客 918

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 235

CloudCompare 二次开发(16)——计算点云最值

不依赖任何第三方点云相关库,使用ClopudCompare计算点云最值。

点云侠的博客 518

【从零理解 Spring AI · 12】MCP 的两种角色:做客户端还是做服务端

上一篇讲了 MCP 的概念:标准协议、三大角色、M+N 替代 M×N。

nice_lcj520的博客 534

18、动态系统响应分析

本文系统地介绍了动态系统响应的分析方法,涵盖传递函数建模、特殊输入下的响应特性(如脉冲和阶跃响应)、终值与初值定理的应用、系统直流增益的计算,并深入探讨了一阶和二阶系统的时域特性。通过实例分析与MATLAB仿真,展示了不同参数对系统行为的影响。文章还总结了系统响应在控制设计与故障诊断中的实际应用,并展望了多变量、非线性及实时响应分析的未来研究方向。配合流程图,提供了清晰的系统分析与设计路径。

kite3的博客 144

一文吃透 SAP IDoc 状态码:从 TEDS1 到 WE02 排障,再到 ABAP 自动化监控

在 SAP 集成场景里,IDoc 往往是最常见、也最容易被低估的一条生命线:采购订单、发票、主数据、库存移动……只要系统之间要稳定地交换结构化业务数据,IDoc 就经常登场。真正让人头疼的,并不是 IDoc 本身,而是它在链路里到底走到了哪一步、卡在了哪里、该找谁背锅。这篇文章把常用的 IDoc 状态码按出站、入站拆开讲清楚,并且把每个状态对应的真实世界故障现象、排查入口、以及可以落地的 ABAP 监控代码串起来,让你看到状态码就能想到动作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 409

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 588

PyTorch生成式人工智能(25)——基于Transformer实现机器翻译

不同于循环神经网络 (RNN) 按顺序处理数据,Transformer 以并行的方式处理输入数据(例如句子)。这种并行处理提高了效率,但并未使其能够识别输入的顺序。为了解决这个问题,Transformer 向输入的词嵌入中添加了位置编码。这些位置编码是分配给输入序列中每个位置的独特向量,其维度与输入词嵌入对齐。本节将以英语到法语的翻译为例,通过介绍如何训练 Transformer 模型将英语句子转换为法语,深入理解 Transformer 的架构及自注意力机制的运作方式。

盼小辉丶的博客 2771

终端 AI 审计与 “龙虾” 类智能体风险治理:从可见性到闭环溯源

生成式 AI 办公普及之后,数据泄露风险逐步下沉到终端。员工将合同、源代码、客户资料粘贴至公有大模型,以及龙虾(OpenClaw)这类本地开源 AI 智能体的滥用,成为企业安全新挑战。传统网络边界防护存在审计盲区,本文从风险链路拆解、核心能力模型、分级治理策略、落地踩坑点以及技术局限性多角度,分享终端侧 AI 安全治理的实践思路。

2401_86491085的博客 665

如何在 UniApp 中接入讯飞语音听写功能 文末附vue3+vue2完整代码

在开发过程中,我遇到了讯飞接口返回空数据的问题。通过仔细检查传送的每一帧数据,我发现问题出在第一帧的配置信息以及 Base64 数据的切片。确保每一帧的数据正确且符合接口要求,问题就能够得到解决。希望这个过程能帮助你在项目中顺利对接讯飞语音识别。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 999

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

抽象主义人工智能和生命体AI的内在联系

彭军辉提出“抽象主义人工智能”作为第四大AI范式,批判符号主义、连接主义、行为主义剥离生命本体的误区,确立“智能是现象,生命是本体”的核心公理。主张原生智能必须依附具备存续诉求的生命本体,提出“生命体AI理论”,构建七层演化阶梯与自闭环工程框架,强调智能不可跳过底层存续机制直接模拟语言。该体系为生成式AI提供科学边界,推动从“仿真表象”向“原生智能”的范式跃迁,开辟硅基人工生命新赛道。

抽象主义人工智能和生命体AI 131

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 257

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

企业微信iPad协议详解:接口接入、实时消息同步与语音转码实践

深入解析企业微信iPad协议的技术架构与开发思路,涵盖API接口接入、长连接通信、实时消息同步、Silk语音转码、异常重连及高并发优化,帮助开发者了解企业微信自动化系统的设计与实现。

欢迎来到祖安! 354

AI作图软件技术选型:从4个技术维度出发的实测对比

AI作图软件技术选型:从4个技术维度出发的实测对比

Vbaoke的博客 231

【AI Agent面试系列】AI Agent可观测、评测、安全相关的知识点

之前的文章介绍了和,本文主要介绍AI Agent的测评、可观测等知识。

297

Docling 原理解读:是什么、为什么、怎么样

从论文视角拆解 Docling 的整体架构、DoclingDocument 数据模型、PDF 预处理、版面分析、OCR、TableFormer 双解码器、阅读顺序与装配流程,并解释版面框与 OCR 框的区别。

PLANTTHESON的博客 350

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程

WorkBuddy 实战:一句话需求 → 七屏可交互原型,户外徒步 App 的 AI 设计全流程,跟着博主一起来还原整个过程。

夜郎King的博客 4924
上一篇: 微信小程序基础开发:从零到一快速上手
下一篇: Claude Code 离线安装方案揭秘:从零到一构建企业级私有化 AI 编程助手
system_error_x
博客等级 码龄3年 17粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值