如果你最近在关注AI智能体开发,可能已经发现了一个现象:很多教程都在教你如何调用API,如何写Prompt,但当你真正想做一个能“自己思考、自己行动”的本地AI助手时,却卡在了第一步:环境。不是Python包冲突,就是模型下载失败,或者工作流配置让人一头雾水。你需要的不是一个又一个零散的代码片段,而是一个从零开始、能真正跑通的完整路径。

这正是本文要解决的问题。我们将聚焦于 WorkBuddy —— 一个基于LangGraph和Ollama构建的本地AI智能体框架。它最大的价值在于,让你能在自己的电脑上,用开源模型,搭建一个具备“规划-执行-反思”能力的智能体,并且完全掌控数据和流程。听起来很酷,但网上资料要么过于简略,要么跳过了最关键的部署细节,导致很多人从“入门”直接到“放弃”。

本文将提供一个真正的“保姆级”实战指南。我们不只告诉你WorkBuddy是什么,更会带你一步步解决从环境安装、模型部署、技能(Skill)配置到复杂工作流构建的全过程。你会看到具体的命令、真实的配置文件、可能遇到的每一个错误及其解决方案。读完本文,你将能独立在本地搭建并运行一个属于你自己的AI智能体,理解其核心架构,并具备定制化开发的能力。

1. 为什么你需要关注本地AI智能体(WorkBuddy)?

在讨论具体步骤之前,我们必须先厘清一个核心问题:在云服务如此便捷的今天,为什么还要折腾本地部署的AI智能体?这不仅仅是技术极客的玩具,它解决的是三个实实在在的痛点: 数据隐私、成本可控和流程定制

想象一下这些场景:

  • 内部数据自动化 :你想让AI自动分析公司内部的日报、周报数据,生成汇总报告。这些数据敏感,绝不能上传到第三方API。
  • 定制化工作流 :你需要一个智能体不仅能回答问题,还能按特定顺序执行一系列操作,比如先查询数据库,再根据结果调用某个内部系统接口,最后格式化输出。通用的聊天机器人做不到这一点。
  • 长期运行的助手 :你需要一个7x24小时在后台运行的智能体,监听事件并自动处理。长期调用商用API的成本将是天文数字。

WorkBuddy正是为此而生。它不是一个单一的模型,而是一个 智能体框架 。你可以把它理解为一个机器人的“大脑”和“神经系统”。Ollama提供了本地运行的“大脑”(大语言模型),而LangGraph(通过WorkBuddy封装)则提供了规划、决策和调用工具(Skill)的“神经系统”。所有计算和数据都在你的本地环境完成。

与Dify、Coze等在线平台相比,WorkBuddy的优势在于极致的 自主权 深度集成能力 。你可以任意修改其源码,接入任何本地服务,定义复杂的工作流逻辑。当然,这种灵活性也带来了更高的上手门槛,而本文将彻底踏平这个门槛。

2. 核心概念解析:Agent、Skill与Workflow

在动手之前,理解三个核心概念至关重要,这能避免你在后续配置中感到困惑。

1. AI智能体 (Agent) 在WorkBuddy的语境下,Agent不是一个简单的聊天接口。它是一个具备 状态管理、任务规划和工具调用能力 的自治系统。它接收用户目标(如“帮我总结本周项目进度”),然后会自主分解任务、选择工具、执行步骤,并在遇到问题时尝试其他路径。这背后是LangGraph提供的“图”计算模型在驱动。

2. 技能 (Skill) Skill是Agent可以调用的具体工具。一个Skill就是一个独立的功能模块。例如:

  • WebSearchSkill : 执行网络搜索。
  • CalculatorSkill : 进行数学计算。
  • FileReadSkill : 读取本地文件。
  • DatabaseQuerySkill : 查询数据库。 WorkBuddy自带一些基础Skill,更重要的是,你可以用Python轻松编写自己的Skill,比如连接公司内部的CRM系统、调用特定的API等。Skill是扩展Agent能力的基石。

3. 工作流 (Workflow) 这是WorkBuddy最强大的部分。工作流定义了多个Skill和决策节点如何串联成一个复杂的业务流程。它不是一个线性的脚本,而是一个 有向图 。Agent会根据当前状态和LLM的推理,决定下一步走哪个分支。例如,一个“数据报告生成”工作流可能包含“获取数据 -> 分析数据 -> 生成图表 -> 写入文档”等多个节点,并且中间可能存在条件判断和循环。

通俗类比 :如果把Agent比作一个项目经理,那么Skill就是它手下的各个专家(程序员、设计师、测试员),而Workflow就是项目经理手中的项目甘特图,它规定了在什么时间、由谁、做什么事,并且能应对计划外的变更。

3. 环境准备:打造稳固的基石

本地AI项目的失败,十有八九始于环境问题。我们将建立一个清晰、隔离且可复现的Python环境。

3.1 系统与Python环境

  • 操作系统 :Windows 10/11, macOS, 或 Linux (Ubuntu 22.04 LTS 推荐)。本文以Ubuntu 22.04为例,Windows和macOS用户主要区别在命令提示符和路径。
  • Python版本 Python 3.10 或 3.11 。这是大多数AI框架兼容性最好的版本。避免使用Python 3.12+,可能存在未适配的依赖。
  • 包管理工具 :使用 conda venv 创建虚拟环境,强烈推荐。这能避免与你系统上的其他Python项目冲突。

3.2 创建并激活虚拟环境 打开你的终端(Linux/macOS的Terminal,Windows的PowerShell或CMD),执行以下命令:

# 检查Python版本
python --version  # 或 python3 --version

# 使用 venv 创建虚拟环境(系统自带)
python3 -m venv workbuddy_env

# 激活虚拟环境
# Linux/macOS:
source workbuddy_env/bin/activate
# Windows:
# workbuddy_env\Scripts\activate

# 激活后,命令行提示符前应显示 (workbuddy_env)

3.3 安装关键底层依赖 在安装WorkBuddy之前,有些系统级依赖可能需要处理,特别是涉及机器学习库时。

# 更新pip到最新版本
pip install --upgrade pip

# 安装PyTorch(根据你的CUDA版本选择,如果没有GPU,使用CPU版本)
# 访问 https://pytorch.org/get-started/locally/ 获取最新命令。
# 例如,对于Linux+CUDA 11.8:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 对于纯CPU版本:
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

# 安装LangChain和LangGraph(WorkBuddy的核心依赖)
pip install langchain langgraph langchain-community

完成以上步骤,你的基础Python环境就准备好了。接下来是AI智能体的“大脑”——本地大模型。

4. 部署本地大模型:Ollama完全指南

WorkBuddy需要一个语言模型来驱动推理。我们将使用 Ollama ,因为它是在本地运行和管理开源模型最简单、最流行的工具。

4.1 安装Ollama 访问 Ollama官网 下载对应操作系统的安装包,或使用命令行安装:

# Linux/macOS 一键安装脚本
curl -fsSL https://ollama.com/install.sh | sh

# Windows:直接下载安装包运行。

安装完成后,启动Ollama服务(通常安装后会自动启动)。在终端输入 ollama --version 验证安装。

4.2 拉取并运行模型 Ollama的核心命令是 ollama run 。对于智能体开发,我们推荐中等尺寸、推理能力强的模型,如 llama3.1:8b qwen2.5:7b deepseek-coder:6.7b (如果涉及编码)。

# 拉取并运行一个模型(首次运行会自动下载)
ollama run llama3.1:8b

运行后,你会进入一个交互式聊天界面,输入 /bye 退出。这证明模型已成功在本地运行。

关键步骤:让模型在后台作为服务运行 智能体需要持续与模型交互,我们需要让Ollama在后台以API模式运行。

# 1. 首先停止当前运行的ollama服务(如果正在运行)
ollama serve stop

# 2. 以服务形式重新启动(Linux/macOS)
ollama serve &
# Windows用户可以通过将Ollama注册为系统服务,或直接打开Ollama桌面应用。

# 3. 验证API是否可用
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1:8b",
  "prompt": "Hello",
  "stream": false
}'

如果返回一段JSON格式的文本,包含生成的回复,说明API服务正常。

4.3 模型选择建议

  • 通用任务 llama3.1:8b ,在性能和资源消耗间取得了良好平衡。
  • 中文任务 qwen2.5:7b ,对中文支持更佳。
  • 代码/逻辑任务 deepseek-coder:6.7b ,专为代码生成和推理优化。
  • 资源受限 phi3:mini ,体积小,速度快,适合入门或低配置机器。

请根据你的硬件(尤其是GPU显存)选择合适的模型。8B参数模型通常需要至少8GB空闲显存才能流畅运行。

5. 安装与配置WorkBuddy

环境和大模型都已就绪,现在可以安装主角WorkBuddy了。

5.1 安装WorkBuddy WorkBuddy通常是一个Python包,可能托管在GitHub或PyPI。假设我们通过GitHub安装最新开发版:

# 确保在之前创建的虚拟环境中
pip install git+https://github.com/your-org/workbuddy.git
# 注意:`your-org` 是占位符,实际地址需替换为真实的GitHub仓库地址。
# 如果WorkBuddy已上架PyPI,则更简单:
# pip install workbuddy

如果遇到依赖冲突,可以尝试新建一个干净的虚拟环境,并按照 requirements.txt 文件安装。

5.2 基础配置 WorkBuddy需要一个配置文件来指定模型端点、技能列表等。创建一个名为 config.yaml 的文件:

# config.yaml
workbuddy:
  # Ollama API 地址
  llm_endpoint: "http://localhost:11434"
  # 使用的模型名称,必须与Ollama中拉取的模型名一致
  model_name: "llama3.1:8b"
  
  # 启用的技能列表
  skills:
    - "web_search"
    - "calculator"
    - "file_io"
    # - "your_custom_skill" # 自定义技能稍后添加
  
  # 工作流存储目录
  workflow_dir: "./workflows"
  
  # Agent基础配置
  agent:
    max_iterations: 10 # Agent最大推理/执行步数,防止死循环
    verbose: true # 打印详细日志,调试时非常有用

5.3 验证安装 创建一个简单的Python脚本 test_workbuddy.py 来测试核心组件是否正常:

# test_workbuddy.py
import asyncio
from workbuddy import WorkBuddy, SkillRegistry
from workbuddy.skills import CalculatorSkill
from langchain_community.llms import OllamaLLM

async def main():
    # 1. 初始化LLM(连接Ollama)
    llm = OllamaLLM(
        base_url="http://localhost:11434",
        model="llama3.1:8b"
    )
    print("✅ LLM 初始化成功")
    
    # 2. 初始化技能注册表并添加技能
    skill_registry = SkillRegistry()
    calc_skill = CalculatorSkill()
    skill_registry.register(calc_skill)
    print("✅ 技能注册成功")
    
    # 3. 创建WorkBuddy实例
    # 注意:实际API可能不同,此处为示意
    buddy = WorkBuddy(
        llm=llm,
        skills=skill_registry,
        config_path="./config.yaml"
    )
    print("✅ WorkBuddy 实例创建成功")
    
    # 4. 运行一个简单任务
    response = await buddy.run("请计算 125 乘以 88 等于多少?")
    print(f"🤖 Agent回复: {response}")
    
if __name__ == "__main__":
    asyncio.run(main())

运行这个脚本:

python test_workbuddy.py

如果看到LLM初始化、技能注册成功的提示,并且Agent正确地调用了计算器技能给出了答案(125*88=11000),那么恭喜你,WorkBuddy的核心骨架已经搭建成功。

6. 技能开发实战:打造你的专属工具

WorkBuddy自带的技能有限,真正的威力在于自定义Skill。我们来创建一个实用的 WeatherSkill ,用于查询天气。

6.1 Skill的基本结构 一个Skill通常是一个类,继承自基础类,并实现 execute 方法。它需要清晰的名称、描述和参数定义,以便LLM理解何时调用它。

# skills/weather_skill.py
import aiohttp
from typing import Dict, Any
from workbuddy.skill import BaseSkill

class WeatherSkill(BaseSkill):
    """一个用于查询城市天气情况的技能。"""
    
    def __init__(self, api_key: str = None):
        super().__init__()
        self.name = "get_weather"
        self.description = "获取指定城市的当前天气信息。需要提供城市名称。"
        self.api_key = api_key or "YOUR_API_KEY"  # 建议从环境变量读取
        # 定义技能所需的输入参数
        self.parameters = {
            "city": {
                "type": "string",
                "description": "城市名称,例如:北京、上海、New York",
                "required": True
            }
        }
    
    async def execute(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
        """执行天气查询。"""
        city = inputs.get("city")
        if not city:
            return {"error": "缺少必要参数:city"}
        
        # 这里使用一个模拟的天气API,实际可以替换为OpenWeatherMap等
        # 注意:任何网络请求都要考虑错误处理和超时
        async with aiohttp.ClientSession() as session:
            try:
                # 示例URL,实际需要替换为真实的API端点
                url = f"https://api.weatherapi.com/v1/current.json?key={self.api_key}&q={city}"
                async with session.get(url, timeout=10) as resp:
                    if resp.status == 200:
                        data = await resp.json()
                        # 提取关键信息
                        temp_c = data['current']['temp_c']
                        condition = data['current']['condition']['text']
                        return {
                            "city": city,
                            "temperature_c": temp_c,
                            "condition": condition,
                            "success": True
                        }
                    else:
                        return {"error": f"API请求失败,状态码:{resp.status}"}
            except Exception as e:
                return {"error": f"查询天气时发生错误:{str(e)}"}
    
    def get_schema(self) -> Dict:
        """返回技能的OpenAI函数调用格式的schema,用于让LLM理解。"""
        return {
            "name": self.name,
            "description": self.description,
            "parameters": {
                "type": "object",
                "properties": {
                    "city": self.parameters["city"]
                },
                "required": ["city"]
            }
        }

6.2 注册并使用自定义Skill 修改你的主程序或配置文件,将新技能加载到Agent中。

首先,更新 config.yaml

skills:
  - "web_search"
  - "calculator"
  - "file_io"
  - "weather" # 添加我们自定义的天气技能

然后,在主程序中动态注册:

# main.py
import asyncio
from workbuddy import WorkBuddy
from skills.weather_skill import WeatherSkill
# ... 其他导入

async def main():
    # ... 初始化llm和skill_registry
    
    # 注册自定义技能
    weather_skill = WeatherSkill(api_key=os.getenv("WEATHER_API_KEY"))
    skill_registry.register(weather_skill)
    
    # ... 创建WorkBuddy实例
    
    # 测试新技能
    response = await buddy.run("今天北京的天气怎么样?")
    print(response)

# ...

6.3 技能开发的核心要点

  1. 清晰的描述 name description 至关重要,LLM靠它来决定是否调用该技能。
  2. 强健的错误处理 :网络请求、文件IO都可能失败,必须在 execute 方法内妥善处理,并返回结构化的错误信息。
  3. 参数验证 :在技能内部验证输入参数的完整性和有效性。
  4. 异步支持 :使用 async/await 处理可能阻塞的IO操作,保证Agent的整体响应效率。

7. 构建复杂工作流:从线性任务到智能决策

单个技能是工具,工作流才是生产力。我们将构建一个“智能日报生成器”工作流,它能够:1) 读取指定目录下的日志文件;2) 分析日志内容;3) 根据分析结果查询相关的外部信息(如错误代码解释);4) 生成一份汇总报告。

7.1 工作流定义(YAML格式) WorkBuddy可能支持通过YAML或Python DSL定义工作流。这里我们假设一种YAML定义方式:

# workflows/daily_report.yaml
name: "daily_report_generator"
description: "分析日志文件并生成每日报告的工作流。"

nodes:
  - id: "start"
    type: "input"
    parameters:
      prompt: "请分析 ./logs 目录下的日志文件,并生成日报。"
  
  - id: "read_logs"
    type: "skill"
    skill: "file_io"
    config:
      action: "read_directory"
      path: "./logs"
      pattern: "*.log"
    depends_on: ["start"]
  
  - id: "analyze_content"
    type: "llm"
    config:
      system_prompt: |
        你是一个资深的系统管理员。请分析以下日志内容,总结出:
        1. 关键错误和警告信息。
        2. 系统运行的整体状态。
        3. 需要关注的风险点。
      user_prompt_template: "日志内容:{{ inputs.read_logs_output }}"
    depends_on: ["read_logs"]
  
  - id: "enrich_with_search"
    type: "conditional"
    condition: "{{ 'error' in inputs.analyze_content_output|lower }}"
    true_branch: "search_errors"
    false_branch: "format_report"
  
  - id: "search_errors"
    type: "skill"
    skill: "web_search"
    config:
      query_template: "{{ inputs.analyze_content_output 中提取的关键错误信息 }} 解决方案"
    depends_on: ["enrich_with_search"]
  
  - id: "format_report"
    type: "llm"
    config:
      system_prompt: |
        请将分析结果格式化为一份专业的日报,包含概述、详情、建议三部分。
        使用Markdown格式。
      user_prompt_template: |
        分析结果:{{ inputs.analyze_content_output }}
        {% if inputs.search_errors_output %}补充信息:{{ inputs.search_errors_output }}{% endif %}
    depends_on: ["analyze_content", "search_errors"] # 条件依赖
  
  - id: "save_report"
    type: "skill"
    skill: "file_io"
    config:
      action: "write_file"
      path: "./reports/daily_report_{{ current_date }}.md"
      content: "{{ inputs.format_report_output }}"
    depends_on: ["format_report"]
  
  - id: "end"
    type: "output"
    depends_on: ["save_report"]

7.2 工作流的核心逻辑解读 这个YAML定义了一个有状态、有条件分支的工作流:

  • 节点类型 input , skill , llm , conditional , output skill 节点调用具体技能, llm 节点让模型进行思考或生成文本, conditional 节点实现IF-ELSE逻辑。
  • 依赖关系 depends_on 字段定义了节点的执行顺序,形成了一个有向无环图。
  • 数据流 :上一个节点的输出(如 read_logs_output )可以作为变量( {{ ... }} )注入到下一个节点的配置或提示词中。
  • 条件分支 enrich_with_search 节点检查分析结果中是否包含“error”一词,决定是否进行网络搜索来丰富报告内容。

7.3 通过Python API触发工作流 定义好工作流后,我们需要编写代码来加载并执行它。

# run_workflow.py
import asyncio
from workbuddy.workflow import WorkflowEngine
from workbuddy import WorkBuddy

async def run_daily_report():
    # 1. 初始化WorkBuddy(包含LLM和技能)
    buddy = WorkBuddy(config_path="./config.yaml")
    
    # 2. 初始化工作流引擎
    engine = WorkflowEngine(buddy)
    
    # 3. 加载工作流定义
    workflow = engine.load_workflow("./workflows/daily_report.yaml")
    
    # 4. 执行工作流,传入初始参数
    initial_inputs = {"date": "2023-10-27"} # 可以传递动态参数
    final_state = await engine.run(workflow, initial_inputs=initial_inputs)
    
    # 5. 获取结果
    report_path = final_state.get("save_report_output", {}).get("file_path")
    if report_path:
        print(f"✅ 日报已生成,保存至:{report_path}")
        with open(report_path, 'r', encoding='utf-8') as f:
            print(f.read()[:500]) # 打印前500字符预览
    else:
        print("❌ 报告生成失败。")
        print("工作流最终状态:", final_state)

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

运行此脚本,你将看到WorkBuddy依次执行读取日志、分析、条件判断、搜索(如果需要)、生成报告、保存文件等一系列操作,完全自动化。

8. 调试与常见问题排查

本地AI智能体开发过程中,你会遇到各种问题。以下是典型问题及解决方案。

问题现象 可能原因 排查方式 解决方案
Ollama服务连接失败 Ollama未启动;端口被占用;防火墙阻止。 1. 运行 ollama list 检查服务状态。
2. 运行 curl http://localhost:11434/api/tags 测试API。
3. 检查端口 11434 是否监听: netstat -an | grep 11434 (Linux)。
1. 启动服务: ollama serve
2. 更改Ollama配置端口,并同步更新WorkBuddy配置中的 llm_endpoint
模型加载慢或内存不足 模型太大,超出可用显存/内存。 1. 观察任务管理器或 nvidia-smi (GPU)。
2. 查看Ollama日志。
1. 换用更小模型(如 phi3:mini )。
2. 增加虚拟内存(Windows)。
3. 使用 ollama run <model> --num-gpu 0 强制使用CPU(慢)。
Skill执行报错 ModuleNotFoundError 技能依赖的Python包未安装。 查看错误堆栈,找到缺失的包名。 在虚拟环境中安装缺失的包: pip install <package_name>
工作流卡在某个节点不动 LLM响应慢;节点逻辑有死循环;条件判断始终不满足。 1. 开启Agent的 verbose: true 日志。
2. 检查该节点的输入数据是否符合预期。
3. 单独测试该节点对应的技能或LLM调用。
1. 为LLM调用设置超时(timeout)。
2. 检查工作流YAML中 condition 语句的逻辑。
3. 简化工作流,逐步添加节点调试。
Agent陷入循环,不断重复相同动作 Agent的 max_iterations 设置过高;任务目标不明确;LLM陷入思维循环。 观察verbose日志,看Agent的“思考”过程。 1. 适当降低 max_iterations (如设为5)。
2. 在用户指令中给出更明确、更具体的约束。
3. 在系统提示词中强调“避免重复”。
自定义Skill不被Agent调用 Skill的 name description 不清晰;LLM不理解何时使用。 1. 检查Skill是否成功注册到 SkillRegistry
2. 打印LLM收到的工具列表,看是否包含你的Skill。
1. 优化Skill的 description ,用自然语言清晰描述其功能和适用场景。
2. 在测试时,直接给Agent明确的指令,如“请使用get_weather技能查询天气”。

调试心法

  1. 分层调试 :先确保Ollama和基础LLM调用正常,再测试单个Skill,最后集成到工作流。
  2. 善用日志 :将Agent和LLM的verbose日志打开,这是理解其“思考过程”的唯一窗口。
  3. 简化测试 :用最小的、可复现的示例来定位问题。

9. 最佳实践与进阶指南

当你成功运行起第一个智能体后,以下实践能帮助你将其用于更严肃的项目。

9.1 配置管理 不要将API密钥等敏感信息硬编码在代码或YAML中。使用环境变量或 .env 文件。

# .env 文件
WEATHER_API_KEY=your_real_key_here
DATABASE_URL=postgresql://user:pass@localhost/db
# 在Python中读取
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("WEATHER_API_KEY")

9.2 技能设计原则

  • 单一职责 :一个技能只做一件事。不要做一个“万能数据处理技能”,而是拆分成“读取文件”、“解析JSON”、“清洗数据”等多个技能。
  • 幂等性 :尽可能让技能的执行结果是可重复的,相同的输入产生相同的输出。
  • 提供结构化输出 :技能返回字典格式的数据,便于在工作流节点间传递和LLM解析。

9.3 工作流设计模式

  • 规划-执行-检查(Plan-Act-Check) :让LLM先制定计划(Plan),然后按计划执行技能(Act),最后检查结果并决定下一步(Check)。这对应LangGraph的“AgentExecutor”模式。
  • 人工审核节点 :在关键操作(如删除文件、发送邮件)前插入一个“人工审核”节点,将结果暂停并等待用户确认。
  • 子工作流 :将复杂的、可复用的流程封装成子工作流,使主工作流更清晰。

9.4 性能优化

  • 缓存 :对频繁且结果不变的查询(如某些API调用)添加缓存层。
  • 批量处理 :如果技能支持,尽量批量处理数据,减少与LLM交互的次数。
  • 模型量化 :使用Ollama的量化模型(如 llama3.1:8b:q4_0 )可以显著降低显存占用和提升推理速度。

9.5 安全与合规

  • 权限控制 :文件读写、系统命令等敏感技能,必须在内置权限检查,避免智能体被恶意指令利用。
  • 输入净化 :对所有来自用户或LLM的输入(如文件路径、命令参数)进行严格的验证和净化,防止路径遍历、命令注入等攻击。
  • 审计日志 :记录智能体的所有决策、调用的技能和产生的结果,便于事后审查和问题追踪。

从环境安装到技能开发,再到工作流编排,我们完成了一次完整的本地AI智能体搭建之旅。WorkBuddy这类框架的价值,在于它将强大的大语言模型与确定性的程序逻辑相结合,创造出既能理解复杂意图,又能可靠执行具体任务的数字助手。这不仅仅是技术集成,更是一种新的编程范式。

真正的挑战往往在“最后一公里”——如何设计出真正理解业务、稳定可靠的工作流。这需要你既懂技术,也懂业务。建议从自动化一个你日常重复的小任务开始,比如整理下载文件夹、监控特定网站更新、自动回复格式固定的邮件。在一次次迭代中,你会更深刻地理解Agent的思维模式,并设计出更优雅的解决方案。

本文提供的代码和配置都是可运行的起点,你可以在此基础上大胆修改和扩展。本地AI智能体的世界刚刚打开,它的边界由你的想象力定义。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐