lang-chain/graph agent开发库介绍

1. tool

LangChain 的 Tool 设计其实很直观------工具就是一个注册方法(函数),

写清楚它能干啥, 什么时候用, 由 LLM 来决定具体的调用时机与传参。

例子

python 复制代码
from pydantic import BaseModel, Field
from langchain_core.tools import tool

class WeatherInput(BaseModel):
    city: str = Field(description="城市名称,如'杭州'、'北京'")
    date: str = Field(description="日期,格式 YYYY-MM-DD")

@tool(args_schema=WeatherInput)
def get_weather(city: str, date: str) -> str:
    """查询指定城市指定日期的天气预报。当用户问到天气相关问题时使用。"""
    # 实际调用天气 API
    return f"{city} {date} 的天气:晴,25°C"

@tool 装饰器会自动提取函数的 docstring 和 签名, LLM 看到的是这样一段描述:

  • 工具名: get_weather
  • 描述: 查询指定城市指定日期的天气预报。当用户问到天气相关问题时使用。
  • 参数: { city: string(城市名称), date: string(日期) }

LLM 根据这段描述判断"用户在问天气,我该调用这个工具",然后生成 {"city": "杭州", "date": "2026-08-19"} 作为参数。

2. skill

skill 是 知识注入 和 工具关联.

自己开发 agent时, 如何实现像 cc 那样自动加载 .claude/skills 目录 这样的效果呢?

Q :langchain 中有没有 skill 这个 预定义的 class, 来应对 这个 场景?

A:没有.

实现 Skill 加载器

在 Agent loop 里注入 Skill. 在每次构建上下文时,根据用户意图选择合适的 Skill 注入.

Deep Agents Skills

如果你要从零搭 Agent,用 Deep Agents 的 create_deep_agent + FilesystemBackend 是最省事的,基本就是 CC Skills 的开源复刻版

注入 prompt

python 复制代码
# 1. 定义 Skill 字典
skills = {
    "sql-expert": """
    # SQL 专家规则
    你是一个 SQL 专家,遵循以下规范:
    - 所有查询必须加 LIMIT
    - 生产环境禁止 DELETE 不带 WHERE
    """,
    "code-reviewer": """
    # 代码审查规则
    ...
    """,
}

# 2. 用一个 tool 做按需加载
@tool
def load_skill(name: str) -> str:
    """加载指定技能的完整指令。name 参数可选值:sql-expert, code-reviewer"""
    return skills.get(name, f"未知技能,可选值:{list(skills.keys())}")

# 3. 用 middleware 注入初始摘要
from langchain.agents.middleware import AgentMiddleware

class SkillMiddleware(AgentMiddleware):
    def before_model(self, state, runtime):
        # 只在 system prompt 里列出可用 Skill 名称
        skill_list = "\n".join(f"- {k}" for k in skills)
        return {
            "system_prompt": f"可用技能:\n{skill_list}\n使用 load_skill 工具加载具体技能指令。"
        }
相关推荐
先吃饱再说2 小时前
LangGraph 状态图:从节点、边到中断恢复,手写一个多 Agent 工作流
人工智能·langchain·llm
染指11102 小时前
155.Agent-LangGraph-节点级重试策略
人工智能·langchain·1024程序员节·agents
正经教主16 小时前
【FDE系列】阶段3:Day 77:LangChain 基础 — LCEL 管道与三件套
人工智能·langchain·agent·fde
小林ixn16 小时前
FastAPI + LangChain 实战:从 0 到 1 打造高性能 AI 后端服务
人工智能·langchain·fastapi
LMT流氓兔20 小时前
第五单元——第9课:防止同一次操作重复执行
java·服务器·数据库·算法·ai·langchain
一千柯橘21 小时前
LangChain Tools 进阶:动态工具、Headless 客户端工具、MCP 协议集成与服务端工具
langchain
LMT流氓兔1 天前
第五单元——第11课:自动测试“拒绝后绝不能写入”
数据库·人工智能·python·langchain
ratel️1 天前
小墨析 · Office Agent 日常办公不烧心
python·langchain·word·excel·fastapi·js·ppt
一千柯橘1 天前
LangChain Tools:从基础定义、上下文访问到错误处理
langchain
LMT流氓兔1 天前
第五单元——第10课:用自动化测试验证工具逻辑
数据库·ai·oracle·langchain