周末折腾Ollama+A2A,差点把老婆的电脑搞崩了

首席.梁娟.猎人
2026-08-09 10:05
阅读 599

上周五晚11点,我盯着报错日志发呆。去年公司倒闭后,心里就没踏实过。现在白天写CRUD,晚上捣鼓技术,怕再失业时简历上只有Vue那点东西。

我在折腾什么

Google的A2A协议能让不同AI Agent互相通信协作,有标准的任务分发、协商和状态同步机制。我想用Ollama在本地跑模型,基于A2A搭一套Agent协作系统,纯本地部署,零成本学技术。

Ollama部署与踩坑

拉取qwen2.5:14b模型:

ollama pull qwen2.5:14b

启动后API默认只监听127.0.0.1,跨服务调用需设置:

export OLLAMA_HOST=0.0.0.0:11434
ollama serve

理解A2A协议

核心概念:Agent Card(能力描述)、Task(任务单元)、Message(通信格式)、Artifact(产出物)。它用标准JSON处理异步任务、状态同步和错误重试,避免碎片化。我设计了两个模型实例:任务分发Agent和执行Agent,通过A2A通信。

实现与崩溃

用Python+FastAPI实现,核心分发逻辑:

@app.post("/a2a/tasks")
async def create_task(task_request: TaskRequest):
    intent = await analyze_intent(task_request.user_input)
    agent_card = match_agent(intent)
    task = Task(
        id=str(uuid.uuid4()),
        status="pending",
        agent_url=agent_card.url,
        payload={"input": task_request.user_input}
    )
    async with httpx.AsyncClient() as client:
        response = await client.post(
            f"{agent_card.url}/a2a/tasks/{task.id}",
            json=task.dict()
        )
    return task

同时跑3个模型实例时,内存飙至28G,电脑完全卡死。

资源优化

用Docker限制内存:

services:
  ollama-distributor:
    image: ollama/ollama:latest
    deploy:
      resources:
        limits:
          memory: 6G
    environment:
      - OLLAMA_HOST=0.0.0.0:11434
    volumes:
      - ./models:/root/.ollama

换用量化模型:

ollama pull qwen2.5:14b-instruct-q4_K_M

优化后总内存控制在15G内,A2A任务流转跑通,复杂任务约15秒完成。

心得与思考

本地部署AI已可行,M1芯片就能跑14B模型做原型验证。A2A协议解决Agent协作的真问题,能省去大量胶水代码。学习要有场景驱动,别追求完美,先跑通核心流程。公司会倒闭,技术会过时,但解决问题的能力不会。多一个技能,就少一份焦虑。

评论 0

最热最新
暂无评论
首席.梁娟.猎人Lv.1
0
影响力
0
文章
0
粉丝