P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01

前言

2026年了,你要是还没听过AI Agent,那你在程序员圈基本等于“原始人”了。

我上周去参加技术沙龙,左边坐了个写了5年Java的老哥,一杯接一杯灌冰美式,愁得头发都白了一半,说现在投30份简历才2个回复,薪资还被砍20%,天天写CRUD写得怀疑人生。右边两个95后小伙子,聊得眉飞色舞,说刚落地了个私有化智能体项目,年薪直接干到80万,猎头电话都被打爆了。

这差距,简直比我和王思聪的钱包差距还大!

我当时就坐不住了,赶紧凑过去取经。结果人家说,现在做AI Agent根本不用你从头训模型,也不用你会什么高深的深度学习,只要搞懂三个东西——MCP、SKILLS、Context Engineer,你也能写出能帮你打工的AI助理。

我半信半疑,回家捣鼓了3天,真的写出了一个能帮我管任务、查天气、生成工作报告的AI助理!今天就把这个压箱底的干货分享给大家,保证看完你也能上手,少走3年弯路!

别再瞎写工具调用了!MCP才是AI的“万能插座”

先问大家一个问题:你写AI应用的时候,是不是最头疼工具调用?

今天要接个天气API,明天要接个数据库,后天又要接个邮件服务,每个工具都要单独写适配代码,参数格式不一样,返回结果不一样,报错处理也不一样,写得你头都大了。更气人的是,好不容易写好了,大模型调用的时候还经常出错,要么参数传错,要么返回结果解析失败,简直就是“大型翻车现场”。

别慌!MCP就是来拯救你的!

MCP全称Model Context Protocol,翻译过来就是“模型上下文协议”,是Anthropic公司去年开源的。你可以把它理解成AI界的“万能插座”——不管你是什么工具,CLI也好,API也好,系统能力也好,只要插上MCP这个插座,大模型就能直接用,不用再写任何适配代码。

它牛就牛在这三个地方:

  • 标准化:统一了工具的定义格式、参数校验、返回结构和错误处理,就像所有电器都用统一的插头一样,插上就能用
  • 上下文感知:能把AI的会话历史、用户权限这些信息同步给工具,让工具更智能。比如你跟AI说“帮我查一下明天的天气”,它会自动知道你在哪个城市,不用你再重复一遍
  • 安全管控:内置了权限隔离、调用审计和沙箱执行,再也不用担心AI不小心删了你的数据库,或者泄露了公司机密

以前你写工具调用,可能要花一周时间适配10个工具,现在用MCP,10分钟就能搞定!这效率,直接提升了100倍有没有!

别让大模型从零干活了!SKILLS才是“预制菜”神器

解决了工具调用的问题,你可能又会遇到新的麻烦:大模型太笨了!

你让它做个“用户行为数据分析”,它得先拆解任务:先查数据库,再清洗数据,再计算指标,再生成图表,最后写报告。结果呢?要么拆解错了,要么中间某一步出错了,要么生成的报告根本没法用。

这就像你让一个从来没做过饭的人,从买菜开始给你做一桌满汉全席,不翻车才怪!

那怎么办呢?答案就是SKILLS!

SKILLS是什么?你可以把它理解成AI界的“预制菜”。我们把那些重复的、复杂的业务流程,比如“用户行为数据分析”、“生成周报”、“出差行程规划”,提前打包成一个个“技能包”,里面包含了完整的流程、Prompt逻辑和错误处理。大模型只要调用这个技能包,就能一步到位完成任务,不用再从零开始拆解。

它解决了两个最头疼的问题:

  • 减少大模型的推理压力:不用让大模型每次都想“第一步该做什么,第二步该做什么”,直接调用现成的技能就行,大大降低了出错的概率
  • 实现业务能力的复用:一个技能包写好之后,所有的AI Agent都能调用,不用每个人都重复造轮子

比如我写的那个个人助理Agent,就封装了“添加任务”、“查看任务列表”、“生成任务报告”这几个技能。我只要跟它说“明天去北京出差”,它会自动调用“添加任务”技能,同时调用“查询天气”工具,告诉我北京明天的天气,还会提醒我带外套。

这体验,简直不要太丝滑!

别再只会写Prompt了!Context Engineer才是AI的“大脑秘书”

很多人以为,做AI应用只要会写Prompt就行了。大错特错!

我敢说,80%的AI Agent故障,都不是大模型能力不行,而是上下文管理混乱导致的。

比如:

  • 聊了没几句,AI就失忆了,之前说过的话全忘了
  • 上下文塞满了没用的信息,导致核心信息被截断,AI开始胡说八道
  • 敏感信息没有脱敏,不小心把用户的手机号、身份证号泄露了

这就像一个人,脑子一团乱麻,记不住事情,分不清主次,你还指望他能帮你干活?

这时候,你就需要Context Engineer——上下文工程。

很多人会把Context Engineer和Prompt Engineering搞混,其实它们完全不是一回事:

  • Prompt Engineering是“给AI说一句正确的话”,针对的是单次大模型调用
  • Context Engineer是“给AI搭建一套完整的信息处理系统”,贯穿AI从启动到任务结束的全流程

如果说Prompt Engineering是“一句话的艺术”,那Context Engineer就是“整个大脑的工程”。

Context Engineer主要包括这五个模块:

  1. 上下文采集与标准化:收集所有的信息,统一格式,过滤掉没用的垃圾信息
  2. 上下文存储与记忆管理:把信息分成短期记忆、中期记忆和长期记忆,分别存在不同的地方,就像我们人类的大脑一样
  3. 上下文路由与分发:把正确的信息,在正确的时间,发给正确的模块,避免信息泛滥
  4. 上下文压缩与优化:当上下文太长的时候,自动压缩,只保留核心信息,解决大模型上下文窗口限制的问题
  5. 上下文安全与合规:脱敏敏感信息,管控数据权限,避免数据泄露

有了Context Engineer,AI就像有了一个专业的大脑秘书,帮它整理信息、管理记忆、过滤垃圾,再也不会失忆和胡说八道了!

实战:3天写出能帮你打工的个人助理AI

讲完了理论,咱们来点干货!我手把手教你用pydantic-ai框架,3天写出一个能帮你管任务、查天气的个人助理AI。

技术栈选择

  • 框架:pydantic-ai(强烈推荐!封装了所有和大模型通信、MCP协议解析的逻辑,让你专注于业务逻辑)
  • 大模型:DeepSeek-V4-Pro(性价比高,推理速度快)
  • 向量库:FAISS(本地运行,速度超快)
  • 文本向量化模型:all-MiniLM-L6-v2(轻量,本地就能跑)

第一步:写个简单的交互界面

首先,我们需要一个和AI聊天的界面。不用搞什么复杂的Web页面,用终端就行,简单又高效。

class TUI:
    def __init__(self):
        self.running = True
    
    def print_welcome(self) -> None:
        print("=" * 50)
        print("Task Assistant Agent 已就绪,请开始对话")
        print("输入 'exit' 或 'quit' 退出程序")
        print("=" * 50)
        print()
    
    def print_message(self, message: str) -> None:
        print(f"[助手]: {message}")
    
    def get_user_input(self) -> str:
        try:
            user_input = input("你: ").strip()
            return user_input
        except (EOFError, KeyboardInterrupt):
            return ""
    
    def should_exit(self, user_input: str) -> bool:
        return user_input.lower() in ["exit", "quit"]
    
    def print_goodbye(self) -> None:
        print()
        print("=" * 50)
        print("感谢使用,再见!")
        print("=" * 50)

然后写个主循环,让AI能一直和你聊天:

def run() -> None:
    tui = TUI()
    tui.print_welcome()
    while tui.running:
        user_input = tui.get_user_input()
        if not user_input:
            continue
        if tui.should_exit(user_input):
            tui.running = False
            tui.print_goodbye()
            break
        try:
            # 处理用户输入
            response = process_input(user_input)
            tui.print_message(response)
        except Exception as e:
            error_msg = f"处理请求时出错: {str(e)}"
            tui.print_message(error_msg)

if __name__ == "__main__":
    run()

第二步:创建AI Agent核心

接下来,我们创建AI Agent的核心部分。用pydantic-ai框架,创建一个Agent只需要两行代码:

from pydantic_ai import Agent
from pydantic_ai.models.openai import OpenAIChatModel
from pydantic_ai.providers.deepseek import DeepSeekProvider

# 构造大模型连接实例
model = OpenAIChatModel("deepseek-v4-pro", provider=DeepSeekProvider())

# 构造Agent
agent = Agent(
    model,
    system_prompt="""你是一个任务助手,帮助用户管理日常任务。
    你有以下能力:
    1. 添加新任务:从用户的输入中提取任务内容和优先级,然后添加到任务列表
    2. 查看任务列表:列出所有任务或按优先级/状态筛选
    3. 生成任务报告:按时间整理任务,提供统计信息
    添加任务时,默认优先级为 medium(中等),除非用户明确指定 high(高)或 low(低)。
    请用中文回复。"""
)

然后,我们给Agent注册几个工具函数,让它能添加任务、查看任务列表和生成任务报告:

@agent.tool
def add_task(content: str, priority: str = "medium") -> AddTaskResult:
    """添加一个新任务"""
    # 实现添加任务的逻辑
    pass

@agent.tool
def list_tasks(priority_filter: str | None = None, status_filter: str | None = None) -> TaskListResult:
    """列出所有任务"""
    # 实现查看任务列表的逻辑
    pass

@agent.tool
def get_task_report() -> TaskReportResult:
    """生成按时间整理的任务报告"""
    # 实现生成任务报告的逻辑
    pass

第三步:接入MCP和SKILLS

有了Agent核心,我们再接入MCP和SKILLS,让它更强大。

接入MCP非常简单,只要写个配置文件,然后加载就行:

def load_mcp_config(config_path: str) -> list[MCPServerStdio]:
    # 读取MCP配置文件,返回MCP服务器列表
    pass

# 在创建Agent的时候传入MCP配置
agent = Agent(
    model,
    system_prompt=system_prompt,
    toolsets=load_mcp_config("mcp_config.json")
)

接入SKILLS也不难,我们把所有的技能都放在skills目录下,每个技能是一个SKILL.md文件。然后用向量库实现技能的自动检索和加载:

class SkillInferenceEngine:
    def __init__(self, vector_store: SkillVectorStore):
        self.vs = vector_store
        self.threshold = 0.65  # 相似度阈值
    
    def infer(self, query: str) -> Optional[Skill]:
        skill, score = self.vs.search(query)
        if score >= self.threshold:
            return skill
        else:
            return None

第四步:添加上下文管理

最后,我们给Agent添加上下文管理功能,让它能记住之前说过的话,并且在上下文太长的时候自动压缩:

class ContextManager:
    def __init__(self):
        self.__contexts = []
        self.__compress_agent = None
    
    def update_messages(self, messages):
        self.__contexts = messages
    
    def get_messages(self):
        return self.__contexts
    
    def compress_messages_and_update(self, messages):
        if not self.__compress_agent:
            model = OpenAIChatModel("deepseek-v4-pro", provider=DeepSeekProvider())
            self.__compress_agent = Agent(
                model,
                instructions="总结本次对话,省略闲聊内容及无关话题。重点梳理任务要点与后续工作计划。"
            )
        compress_content = self.__compress_agent.run_sync(message_history=messages)
        self.__contexts = compress_content

然后在主循环里,每次和大模型通信的时候,都带上历史消息,并且在token超过阈值的时候自动压缩:

def run() -> None:
    context_manager = ContextManager()
    tui = TUI()
    agent = create_agent()
    skill_engine = preprocess()
    
    tui.print_welcome()
    while tui.running:
        user_input = tui.get_user_input()
        if not user_input:
            continue
        if tui.should_exit(user_input):
            tui.running = False
            tui.print_goodbye()
            break
        try:
            # 命中技能
            target_skill = skill_engine.infer(user_input)
            instructions = target_skill.content if target_skill else None
            
            # 获取历史消息
            message_history = context_manager.get_messages()
            
            # 调用大模型
            result = agent.run_sync(
                user_input,
                instructions=instructions,
                message_history=message_history
            )
            
            # 打印结果
            tui.print_message(result.output)
            
            # 更新上下文
            usage = result.usage()
            if usage.total_tokens > 1000:
                context_manager.compress_messages_and_update(result.all_messages)
            else:
                context_manager.update_messages(result.all_messages)
        except Exception as e:
            error_msg = f"处理请求时出错: {str(e)}"
            tui.print_message(error_msg)

搞定!现在你就有了一个能帮你管任务、查天气、生成工作报告的AI助理了!

写在最后

怎么样?是不是没有你想象的那么难?

很多人觉得AI Agent很高深,要懂高数,要懂深度学习,要从头训模型。其实根本不是这样!现在的AI开发,已经进入了“工程化”时代,大部分的底层技术都已经被封装好了,我们只要学会怎么用这些工具和框架,就能快速开发出自己的AI应用。

今天讲的MCP、SKILLS、Context Engineer,就是2026年AI Agent开发的三大核心基础设施。搞懂了这三个东西,你就能从“只会写CRUD的传统程序员”,转型成“年薪百万的AI工程师”。

别再犹豫了!现在就是AI最好的时代,赶紧动手试试吧!下一个年薪80万的,说不定就是你!

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐