本文探讨了AI Agent接入企业系统时,选择CLI(命令行界面)还是MCP(模型上下文协议)的利弊。通过对比分析,指出CLI更适配终端操作,而MCP则适合结构化数据交换和Bot身份操作。文章还提供了ERP CLI落地实战案例,以及如何将CLI接入Claude Code、OpenClaw等AI工具的详细步骤。最后,提出了企业内部AI Agent落地的正确姿势:业务逻辑只写一次,在Service层,CLI和MCP作为封装层,按需暴露给不同的AI工具。

图片

一、从一个场景说起


上周,我们财务小李找我:“能不能让 AI 帮我提报销?”

听起来简单。我们的 ERP 有 API,接个 AI 不就行了?

但真动手时,我面临一个选择:把 ERP 能力暴露给 AI,用 CLI 还是 MCP?

这不仅是技术选型,更是 AI Agent 时代的基础架构问题。在说选型之前,先把这两个东西讲清楚。

二、CLI 和 MCP 到底是什么


CLI:命令行界面

CLI(Command Line Interface,命令行界面),就是你打开终端(Terminal / 命令提示符),用文字命令操作电脑的方式。

git commit -m "fix bug"
docker ps
kubectl get pods

这些都是 CLI。你输入一条命令,系统执行并返回结果。简单、直接、无状态。

CLI 不是新东西,它比图形界面(GUI)还老。但 2026 年它突然又火了——因为 AI Agent 成了 CLI 的新用户。以前是人敲命令,现在是 AI 替你敲。飞书在 2026 年 3 月开源了飞书 CLI,核心目标就是:让 AI Agent 能通过命令行操作飞书。

MCP:模型上下文协议

MCP(Model Context Protocol,模型上下文协议),是 Anthropic 在 2024 年底推出的一套标准协议。

它解决的问题是:AI 怎么标准化地调用外部工具?

没有 MCP 之前,每个 AI 工具要对接外部系统,都得自己写一套插件。比如 Claude 要连 GitHub,得写一个 GitHub 插件;Cursor 也要连 GitHub,又得写一个。各家各写,互不通。

MCP 定义了一套统一的 JSON-RPC 协议,类似 USB 接口——你只要按 MCP 标准把你的能力包装成 MCP Server,所有支持 MCP 的 AI 工具都能直接用。

一个 MCP Server 长这样:

{
"tools": [
    {
        "name": "submit_reimbursement",
        "description": "提交报销单",
        "inputSchema": {
            "type": "object",
            "properties": {
                "type": { "type": "string", "enum": ["差旅", "办公", "餐饮"] },
                "amount": { "type": "number" },
                "project": { "type": "string" }
            },
         "required": ["type", "amount", "project"]
      }
    }
  ]
}

AI 读取这个 schema,就知道"我可以调 submit_reimbursement 这个工具,需要传 type、amount、project 三个参数"。

一句话区分

CLI 是命令——AI 敲一行文字,系统执行并返回结果。

MCP 是协议——AI 按标准格式调用工具,MCP Server 执行并返回结构化数据。

两者都能让 AI 操作外部系统,但"AI 怎么调用"和"结果怎么返回"的方式不同。

三、CLI vs MCP:核心对比


直觉归直觉,工程决策要看数据。

2026 年初,社区做了一组基准测试,同一批任务分别用 CLI 和 MCP 执行:

指标 CLI MCP
单次调用成本 基准 高 10-32 倍
任务完成可靠率 100% 72%
初始化开销 几乎为零 schema 加载(数万 tokens)
错误恢复 重新执行命令 重连 + 重新加载 schema

差距为什么这么大?三个原因。

原因一:Schema 是 Token 黑洞

一个 GitHub MCP Server,光加载工具 schema 就要消耗约 55,000 tokens。Claude 的上下文窗口 200K,还没开始干活,四分之一就没了。

ERP 系统更夸张。报销、采购、项目、审批、财务……每个域十几个操作,每个操作五六个参数。我粗算了一下,我们 ERP 如果全量做 MCP,schema 大概在 80K-120K tokens。

这已经不是吃 context 了,是吞 context。

CLI 呢?erp 报销 --help,几十个 token 搞定,按需查看。

原因二:LLM 天生就会 CLI,不熟 MCP

大模型的训练语料里有几十亿行 CLI 命令和输出——Stack Overflow、GitHub、Shell 脚本、man pages。模型对 git log --oneline -5 这种模式的理解已经内化到参数里了。

MCP 的 JSON-RPC 协议?2024 年底才定义。训练数据里几乎没有。模型需要从有限的 system prompt 中"临时学会"——这个学习深度没法跟从几十亿行真实终端数据中积累的能力比。

Vercel CEO rauchg 说得好:“CLIs are the de-facto MCPs for agents”——CLI 就是事实上的 Agent 工具协议。

原因三:组合能力天差地别

CLI 可以管道、重定向、脚本编排:

# 查出待审批的报销单,提取超时的,自动催办
erp 报销 列表 --status=待审批 --json | /
  jq '.[] | select(.days_pending > 7)' | /
  erp 消息 发送 --to=.申请人 --template=催办

MCP 只能一个 tool 一个 tool 调,中间结果回来再决定下一步,每次交互都吃 token。

更完整的对比

维度 CLI / Skill MCP / Tool
模型适配成本 零——模型天生会用 需要专门协议适配
组合能力 管道、脚本任意编排 受限于 server 暴露的工具集
调试 复制命令直接跑 需要连 server、看日志
认证 复用本机登录态(OAuth) 每个 server 单独配置
运维 无状态,跑完即退 需要维护常驻进程
上下文效率 按需获取(–help) schema 吃掉大量 token
标准化 各家格式不统一 协议标准,生态兼容
类型安全 弱,参数是字符串 强,schema 定义类型
Bot 身份 不方便 原生支持

四、MCP 不是废了,而是场景不同


CLI 有优势,但 MCP 有几个 CLI 替代不了的场景:

AI 原生集成:Claude Code、Cursor 等工具原生支持 MCP 配置,开箱即用

结构化数据交换:CI/CD 流水线、数据平台等需要严格类型约束的场景

Bot 身份操作:定时同步、批量处理等系统级自动化

生态兼容:一次实现,所有支持 MCP 的平台都能接入


五、我的选择:CLI 为主,MCP 补位


架构思路如下:

图片

第一层:ERP 后端 API —— 已有的业务接口

第二层:CLI 层(主力) —— 200+ 命令覆盖全业务域,OAuth 个人身份认证,JSON/table/CSV 多格式输出

第三层:三个出口

AI Agent 直接调用 CLI 命令 —— 日常操作,省 token

Skill 编排 —— 多步骤复杂流程,管道组合

MCP Server(补充) —— 面向系统集成场景

所有业务逻辑先在 CLI 里实现。MCP Server 从 CLI 派生——薄薄一层,内部直接调用 CLI 命令,不重复实现业务逻辑。维护一份代码,服务两类场景。


六、ERP CLI 落地实战


6.1 命令设计

遵循一个原则:产品 + 域 + 动作,参考飞书 CLI 的设计:

# 报销
erp 报销 提交 --type=差旅 --amount=3200 --project=XX
erp 报销 列表 --status=待审批 --month=2026-05
erp 报销 详情 --id=RE-20260501

# 采购
erp 采购 新建 --supplier=XX --material=YY --qty=100
erp 采购 审批 --id=PO-20260501 --action=通过
erp 采购 跟踪 --id=PO-20260501

# 项目
erp 项目 进度 --name=智慧园区
erp 项目 成员 --name=智慧园区 --add=张三
erp 项目 预算 --name=智慧园区 --used

# 通用
erp 审批 列表 --type=报销 --pending
erp 审批 批量通过 --before=2026-05-01
erp 搜索 --keyword=XX --scope=全部

6.2 技术实现:Java / Python 完全可以

飞书 CLI 用 Go 写,但 Go 不是必须的。用你团队最熟的语言就行。

Python 实现

Python 有 click 库,写 CLI 非常舒服:

# erp_cli/cli.py
import click
import requests

@click.group()
def cli():
    """ERP 命令行工具 - 让 AI Agent 操作 ERP"""
    pass

# ── 报销域 ──
@cli.group()
def 报销():
    """报销相关操作"""
    pass

@报销.command("提交")
@click.option("--type", "reimb_type", required=True, type=click.Choice(["差旅", "办公", "餐饮"]))
@click.option("--amount", required=True, type=float)
@click.option("--project", required=True)
@click.option("--description", default="")
def 报销提交(reimb_type, amount, project, description):
    """提交报销单"""
    resp = requests.post(
        "https://erp.internal/api/reimbursement",
        json={
            "type": reimb_type, 
            "amount": amount,
            "project": project, 
            "description": description
        },
        headers=auth_headers()
    )
    result = resp.json()
    click.echo(f"✅ 报销单已提交,单号: {result['id']}")

@报销.command("列表")
@click.option("--status", type=click.Choice(["待审批", "已审批", "已驳回", "全部"]), default="全部")
@click.option("--month", default=None)
@click.option("--format", "fmt", type=click.Choice(["json", "table", "csv"]), default="table")
def 报销列表(status, month, fmt):
    """查询报销单列表"""
    params = {"status": status}
    if month:
        params["month"] = month
        resp = requests.get("https://erp.internal/api/reimbursement", params=params, headers=auth_headers())
        data = resp.json()["data"]
    if fmt == "json":
        click.echo(json.dumps(data, ensure_ascii=False, indent=2))
    else:
        for item in data:
            click.echo(f"{item['id']}  {item['type']}  ¥{item['amount']}  {item['status']}")

if __name__ == "__main__":
    cli()

安装后就可以用了:

pip install erp-cli
erp 报销 提交 --type=差旅 --amount=3200 --project=智慧园区
Java 实现

如果团队是 Java 栈,用 Picocli 库,同样可以做出专业级 CLI:

@Command(name = "提交", description = "提交报销单")
public class ReimburseSubmitCommand implements Callable<Integer> {
    @Option(names = "--type", required = true, description = "报销类型: 差旅/办公/餐饮")
    private String type;

    @Option(names = "--amount", required = true, description = "金额")
    private double amount;

    @Option(names = "--project", required = true, description = "项目名称")
    private String project;

    @Override
    public Integer call() {
        Map<String, Object> body = Map.of("type", type, "amount", amount,"project", project);
        HttpResponse resp = HttpClient.newHttpClient().send(
            HttpRequest.newBuilder()
                .uri(URI.create("https://erp.internal/api/reimbursement"))
                .header("Authorization", "Bearer " + AuthUtil.getToken())
                .POST(HttpRequest.BodyPublishers.ofString(toJson(body)))
                .build(),
            HttpResponse.BodyHandlers.ofString()
        );
        var result = parseJson(resp.body());
        System.out.println("✅ 报销单已提交,单号: " + result.get("id"));
        return 0;
    }
}

打包成可执行 jar,再包一层 shell 脚本:

#!/bin/bash
# /usr/local/bin/erp
java -jar /opt/erp-cli/erp-cli.jar "$@"
两种语言怎么选
考虑因素 Python Java
开发速度 快,几十行搞定一个命令 稍慢,模板代码多
部署 pip install 或 pipx 打 jar + shell 脚本包装
ERP 集成 requests 库够用 Spring Boot 可复用 Service 层
团队熟悉度 数据/运维团队友好 后端团队友好

如果 ERP 后端是 Spring Boot,用 Java 写 CLI 可以直接复用 Service 层代码,不用重新封装 HTTP 调用。这是最大的优势。

// Java CLI 直接注入 Spring Service,不走 HTTP
@Component
publicclass ReimburseSubmitCommand implements Callable<Integer> {
    @Autowired
    private ReimbursementService reimbursementService;  // 直接复用!

    @Override
    public Integer call() {
        reimbursementService.submit(type, amount, project, description);
        return 0;
    }
}

6.3 Skill 编排

把高频的多步操作封装成 Skill,让 AI 一次完成复杂流程:

# skills/travel-reimburse.yaml
name: 差旅报销
description: 提交差旅报销并跟踪审批
parameters:
  - name: amount
    type: number
    required: true
  - name: project
    type: string
    required: true
steps:
1. erp 报销 提交 --type=差旅 --amount={amount} --project={project}
2. 等待返回的单号
3. erp 报销 详情 --id={单号}
4. 如果状态为"待主管审批",通知主管
5. 如果 48 小时未审批,自动催办
# skills/purchase-flow.yaml

name: 采购申请
description: 从申请到下单的完整采购流程
parameters:

  - name: supplier
      type: string
  - name: items
      type: string
    steps:

1. **erp 采购 新建 --supplier={supplier} --items={items}**

2. **erp 审批 查询 --id=上一步返回的单号**

3. **如果审批通过,erp 采购 下单 --id={单号}**

4. **erp 采购 跟踪 --id={单号}**

6.4 认证和安全

# 首次使用:OAuth 登录(个人身份)

erp auth login

# 按域授权:只开需要的权限

erp auth scope --add=报销,项目

# 查看当前权限

erp auth status

安全策略:

最小权限:每个域单独授权,不是一次全开

敏感操作确认:金额超过阈值、批量审批等操作,AI 必须先展示预览再确认执行

操作日志:所有 CLI 命令记录审计日志,管理员可追溯

定期过期:授权 token 定期失效,需要重新登录


七、写好的 CLI 怎么接入各种 AI 工具


这是最实操的部分。CLI 写好了,怎么让各种 AI Agent 用起来?

7.1 接入 Claude Code

Claude Code 是 Anthropic 官方的终端 AI Agent。有两种方式接入:

方式一:直接安装,Claude Code 天然会用

Claude Code 本身就在终端里运行,可以直接执行 shell 命令。只要把 CLI 装到系统 PATH 里:

pip install erp-cli   # 或 java 方式包装到 /usr/local/bin/erp
erp --help
claude

然后在 Claude Code 里直接说:

“帮我提交一个差旅报销,金额 3200,项目是智慧园区”

Claude Code 会自动执行:

erp 报销 提交 --type=差旅 --amount=3200 --project=智慧园区

不需要任何配置。LLM 天生理解 CLI 命令格式,它会自己从 --help 学习怎么用。

方式二:通过 Skill 注入,更可控

在项目的 CLAUDE.md 里写入 Skill 说明:

# ERP CLI Skills

你可以通过 erp 命令操作公司 ERP 系统。

## 常用命令

- 报销提交:erp 报销 提交 --type=差旅/办公/餐饮 --amount=金额 --project=项目名
- 报销查询:erp 报销 列表 --status=待审批/已审批 --month=2026-05
- 采购新建:erp 采购 新建 --supplier=供应商 --material=物料 --qty=数量
- 项目进度:erp 项目 进度 --name=项目名

## 注意事项

- 提交报销前先用列表确认是否有重复
- 金额超过 10000 的操作需要先展示预览给用户确认
- 不要执行删除类操作除非用户明确要求

7.2 接入 OpenClaw

OpenClaw 是当前最火的开源自主 AI Agent,通过插件机制接入外部能力。

飞书 CLI 的做法是直接做了 OpenClaw 插件,底层复用 CLI 的代码。你可以参考同样的模式:

步骤一:创建 OpenClaw 插件

# openclaw_erp_plugin/manifest.yaml

name: erp-assistant
version: 1.0.0
description: 企业 ERP 系统助手
permissions:

  - shell:execute
# openclaw_erp_plugin/plugin.py

import subprocess

class ERPPlugin:
    """OpenClaw 插件:通过 CLI 调用 ERP"""

    def get_tools(self):
        return [
            {
                "name": "erp_reimburse_submit",
                "description": "提交报销单",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "reimb_type": {"type": "string", "enum": ["差旅", "办公", "餐饮"]},
                        "amount": {"type": "number"},
                        "project": {"type": "string"}
                    },
                    "required": ["reimb_type", "amount", "project"]
                }
            },

            # ... 更多工具

        ]

    def execute(self, tool_name, params):

# 统一转成 CLI 命令执行

        cmd = self._build_command(tool_name, params)
        result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
        return result.stdout

def _build_command(self, tool_name, params):
        mapping = {
"erp_reimburse_submit":
                f"erp 报销 提交 --type={params['reimb_type']} "
                f"--amount={params['amount']} --project={params['project']}",
            "erp_reimburse_list":
                f"erp 报销 列表 --status={params.get('status', '全部')} --format=json",
        }
        return mapping[tool_name]

步骤二:安装插件

openclaw plugin install ./openclaw_erp_plugin

安装后,在 OpenClaw 里直接说人话:

“帮我查一下这个月待审批的报销”

OpenClaw 会调用插件 → 插件执行 CLI 命令 → 返回结果。

7.3 接入 Cursor / OpenCode / 其他 AI IDE

这类工具一般同时支持两种方式:

方式一:CLI 直连(终端集成) — 有内置终端的 IDE,CLI 装到 PATH 里就能用

方式二:MCP 接入 — 从 CLI 派生一个 MCP Server:

# erp_mcp_server.py

from mcp.server import McpServer, StdioServerTransport

server = McpServer("erp", "1.0.0")

@server.tool("submit_reimbursement", {
    "description": "提交报销单",
    "parameters": {
        "type": "object",
        "properties": {
            "reimb_type": {"type": "string", "enum": ["差旅", "办公", "餐饮"]},
            "amount": {"type": "number"},
            "project": {"type": "string"}
        },
        "required": ["reimb_type", "amount", "project"]
    }
})
async def submit_reimbursement(params):

    # 直接调 CLI,不重新实现业务逻辑

    result = subprocess.run(
        ["erp", "报销", "提交",
         f"--type={params['reimb_type']}",
         f"--amount={params['amount']}",
         f"--project={params['project']}"],
        capture_output=True, text=True
    )
    return {"content": [{"type": "text", "text": result.stdout}]}

# ... 其他工具同理,全部是 CLI 的薄封装

transport = StdioServerTransport()
await server.connect(transport)

在 AI IDE 配置里加上:

{
    "mcpServers": {
        "erp": {
            "command": "python",
            "args": ["/path/to/erp_mcp_server.py"]
        }
    }
}

接入方式总结

在这里插入图片描述

核心原则:CLI 是底层能力,MCP 是 CLI 的薄封装,插件是 CLI 的另一个封装。业务逻辑只写一次。


八、企业自研 Agent(基于 Spring AI),怎么接入


很多企业不会直接用 Claude Code 或 OpenClaw,而是基于 Spring AI 自己搭一个内部 Agent。这种情况怎么接入?

8.1 Spring AI 调用 CLI:最简单的方式

Spring AI 支持自定义 Function(工具),你可以在 Function 里直接调用 CLI 命令:

@Configuration
public class ErpToolsConfig {

    @Bean
    @Description("提交报销单。参数:type(差旅/办公/餐饮), amount(金额), project(项目名)")
    public Function<ReimburseRequest, String> submitReimbursement() {
        return request -> {
            try {
                ProcessBuilder pb = new ProcessBuilder(
                    "erp", "报销", "提交",
                    "--type=" + request.type(),
                    "--amount=" + request.amount(),
                    "--project=" + request.project()
                );
                pb.redirectErrorStream(true);
                Process process = pb.start();
                String output = newString(process.getInputStream().readAllBytes());
                process.waitFor();
                return output;
            } catch (Exception e) {
                return"执行失败: " + e.getMessage();
            }
        };
    }

    @Bean
    @Description("查询报销单列表。参数:status(待审批/已审批), month(月份如2026-05)")
    public Function<ReimburseListRequest, String> listReimbursement() {
        return request -> {
            try {
                List<String> cmd = new ArrayList<>(List.of("erp", "报销", "列表"));
                if (request.status() != null) cmd.add("--status=" + request.status());
                if (request.month() != null) cmd.add("--month=" + request.month());
                cmd.add("--format=json");

                ProcessBuilder pb = new ProcessBuilder(cmd);
                pb.redirectErrorStream(true);
                Process process = pb.start();
                String output = newString(process.getInputStream().readAllBytes());
                process.waitFor();
                return output;
            } catch (Exception e) {
                return"执行失败: " + e.getMessage();
            }
        };
    }
}

record ReimburseRequest(
    @JsonProperty("type") String type,
    @JsonProperty("amount") Double amount,
    @JsonProperty("project") String project
) {}

record ReimburseListRequest(
    @JsonProperty("status") Stringstatus,
    @JsonProperty("month") String month
) {}

ChatClient 里注册这些工具:

@Service
public class ErpAgentService {

    private final ChatClient chatClient;

    public ErpAgentService(ChatClient.Builder builder) {
        this.chatClient = builder
            .defaultSystem("你是企业ERP助手,帮员工操作报销、采购、项目管理等功能。")
            .defaultFunctions("submitReimbursement", "listReimbursement")
            .build();
    }

    public Stringchat(String userMessage) {
        return chatClient.prompt()
            .user(userMessage)
            .call()
            .content();
    }
}

用户说"帮我提一个差旅报销 3200 块,项目是智慧园区",Spring AI 会自动调用 submitReimbursement Function → 执行 CLI 命令 → 返回结果。

8.2 更优雅的方式:Spring AI + CLI 共享 Service 层

如果你的 ERP 本身就是 Spring Boot 应用,不需要让 CLI 走 HTTP 调用再绕回来。

图片

Spring Boot 应用内部结构:

REST API(Web 入口) → 调用 Service 层

CLI 模块(Picocli 入口) → 调用 Service 层

AI Tools(Spring AI 入口) → 调用 Service 层

MCP Server(Controller 入口) → 调用 Service 层

Service 层 → 业务逻辑只写一次

DAO / Repo → 数据访问

// 三种入口共享同一个 Service
@Service
public class ReimbursementService {

    @Autowired
    private ReimbursementRepository repo;

    @Autowired
    private ApprovalClient approvalClient;

    public ReimburseResult submit(String type, double amount,
                                  String project, String description) {
        // 业务逻辑只写一次
        Reimbursement reimb = new Reimbursement(type, amount, project, description);
        reimb.setStatus("待审批");
        repo.save(reimb);
        approvalClient.initiateApproval(reimb);
        return new ReimburseResult(reimb.getId(), "已提交");
    }

    public List<Reimbursement> list(Stringstatus, String month) {
        // ...
    }
}

// CLI 入口
@Command(name = "提交")
public class ReimburseSubmitCommand implements Callable<Integer> {
    @Autowired
    private ReimbursementService service;  // 直接注入

    @Option(names = "--type") privateString type;
    @Option(names = "--amount") privatedouble amount;
    @Option(names = "--project") privateString project;

    @Override
    public Integer call() {
        var result = service.submit(type, amount, project, "");
        System.out.println("✅ 报销单已提交,单号: " + result.getId());
        return 0;
    }
}

// Spring AI 工具入口
@Bean
@Description("提交报销单")
public Function<ReimburseRequest, String> submitReimbursement(
        ReimbursementService service) {  // 同一个 Service
    return req -> {
        var result = service.submit(req.type(), req.amount(), req.project(), "");
        return"报销单已提交,单号: " + result.getId();
    };
}

一份业务逻辑,四个入口(API / CLI / AI / MCP)共享。 这才是企业内部最优雅的架构。

8.3 Spring AI 也能接 MCP

如果将来你要对接外部 AI 工具(Claude Code、Cursor),Spring Boot 应用也可以启动一个 MCP Server:

@RestController
public class McpController {

    @Autowired
    private ReimbursementService reimbursementService;

    @PostMapping("/mcp/tools/list")
    public McpResponse listTools() {
        return McpResponse.tools(
            McpTool.builder()
                .name("submit_reimbursement")
                .description("提交报销单")
                .inputSchema(/* ... */)
                .build()
        );
    }

    @PostMapping("/mcp/tools/call")
    public McpResponse callTool(@RequestBody McpRequest request) {
        // 还是调同一个 Service
        switch (request.getName()) {
            case "submit_reimbursement":
            varparams = request.getParams();
            var result = reimbursementService.submit(
            params.get("type"), params.get("amount"),
            params.get("project"), "");
            return McpResponse.result(
               "报销单已提交,单号: " + result.getId());
        }
    }
}

九、最终架构全景


图片

Spring Boot 应用内部:

REST API → 供前端页面调用

CLI 模块 → 供终端 / AI Agent 调用

AI Tools → 供 Spring AI Agent 调用

MCP Server → 供外部 AI 工具调用

REST API、CLI 模块、MCP Server全部指向同一个 Service 层

外部用户:

前端页面(员工自助) → REST API

内部 AI Agent(Spring AI) → AI Tools(直调 Service,最快路径)

外部 AI 工具(Claude Code、Cursor 等) → CLI 或 MCP


十、不是二选一,是各司其职


CLI 和 MCP 的争论,本质上是两种哲学的碰撞:

CLI 信仰"轻":无状态、按需加载、管道组合、AI 天生会用

MCP 信仰"规范":结构化、类型安全、协议标准、生态兼容

但在企业内部落地,不是选边站,而是让每个工具做它最擅长的事:
在这里插入图片描述

业务逻辑只写一次,在 Service 层。CLI 和 MCP 都是 Service 层的封装层,按需暴露给不同的 AI 工具。

这也许就是 AI Agent 时代企业系统接入的正确姿势。

最后

2026年技术圈的分化愈发明显:降薪裁员潮持续蔓延,传统开发、测试等岗位大批缩水,不少从业者陷入职业焦虑;与之形成鲜明对比的是,AI大模型相关岗位迎来疯狂扩招,薪资逆势飙升150%,大厂更是直接开出70-100W年薪,疯抢具备实战能力的大模型人才,甚至放宽年龄限制,只求能快速落地技术、创造价值!

很多程序员、职场新人纷纷入局大模型领域,绝非盲目跟风,而是实实在在看到了不可替代的价值优势,这也是2026年最值得抓住的职业风口:

1、窗口期红利,入门门槛友好:不同于成熟赛道的“内卷式招聘”,2026年大模型人才缺口巨大,简历只要达标(掌握基础AI应用+具备简单项目经验),年龄、学历均非硬性要求,小白可快速入门,转行程序员也能无缝衔接;

2、技术可复用,上手速度翻倍:如果你有前后端开发、测试、数据分析等基础,在大模型落地、系统部署、Prompt工程等环节会更具优势,无需从零开始,复用原有技术能力就能快速进阶;

3、懂业务更吃香,竞争力翻倍:单纯懂技术已不够,2026年大厂更看重“技术+业务”的复合型人才,有垂直领域(金融、医疗、工业等)经验者,能精准定位模型落地痛点,薪资比纯技术岗高出30%以上;

更重要的是,即便没有转型需求,用AI大模型工具为工作赋能、提升效率,也已经成为80%企业的硬性要求——不会用大模型提效,未来很可能被行业淘汰!

图片

那么2026年,小白/程序员该如何高效学习大模型?

很多人想入门大模型,却陷入两大困境:要么到处搜集零散资料,不成体系,越学越懵;要么被收费高昂的课程割韭菜,花了钱却学不到实战技能,白白浪费时间走弯路。

今天就给大家精心整理了一份2026年最新、免费、系统化的AI大模型学习资源包,覆盖从零基础入门到商业实战、从理论沉淀到面试通关的全流程,所有资料均已整理归档,无需拼凑,直接领取就能上手学习,小白可照做,程序员可进阶!

请添加图片描述

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

1、大模型系统化学习路线

这份学习路线结合2026年行业趋势和新手学习规律,由行业专家精心设计,从零基础到精通,每一步都有明确指引,帮你节省80%的无效学习时间,少走弯路、高效进阶,避免踩坑。

请添加图片描述

2、从0到进阶大模型学习视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

在这里插入图片描述

3、大模型学习书籍&电子文档

涵盖2026年最新技术要点,包括基础入门、Transformer核心原理、Prompt工程、RAG实战、模型微调与部署等内容

在这里插入图片描述

4、AI大模型最新行业报告

报告包含腾讯、阿里、甲子光年等权威机构发布的核心内容,还有2026年中文大模型基准测评报告、AI Agent行业研究报告等,帮你站在行业前沿,把握技术风口。

在这里插入图片描述

5、大模型项目实战&配套源码

项目包含Deepseek R1、GPT项目、MCP项目、RAG实战等热门方向,还有视频配套代码,手把手教你从0到1完成项目开发,既能练手提升技术,又能丰富简历,为求职和职业发展加分。

img

6、2026大模型大厂面试真题

2026年大模型面试已全面升级,不再单纯考察基础原理,而是转向侧重技术落地和业务结合的综合考察,很多程序员和新手因为缺乏针对性准备,明明技术不错,却在面试中失利。

img

适用人群

在这里插入图片描述

四阶段学习规划(共90天,可落地执行)
第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型

  • 带你了解全球大模型

  • 使用国产大模型服务

  • 搭建 OpenAI 代理

  • 热身:基于阿里云 PAI 部署 Stable Diffusion

  • 在本地计算机运行大模型

  • 大模型的私有化部署

  • 基于 vLLM 部署大模型

  • 案例:如何优雅地在阿里云私有部署开源大模型

  • 部署一套开源 LLM 项目

  • 内容安全

  • 互联网信息服务算法备案

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

7、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐