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 工具加载具体技能指令。"
        }
相关推荐
未若君雅裁5 小时前
让模型按契约返回数据,LangChain 结构化输出实战
python·langchain
艾醒(AiXing-w)18 小时前
LangChain 1.0 入门(三):稳定性双核心——重试机制+速率限速器参数详解与实战
开发语言·langchain·php
未若君雅裁19 小时前
从函数到工具,LangChain Tools 与 Tool Calling 完整入门
langchain
未若君雅裁19 小时前
工具描述决定调用质量,LangChain 工具 Schema 与参数校验
langchain
艾醒(AiXing-w)21 小时前
LangChain 1.0 入门(二):LangChain 全模型标准化接入最佳实践(小白参数详解版)
前端·javascript·langchain
invicinble1 天前
langchain --rage了解(周末版本)
langchain
qy2016skq1 天前
OpenClaw 源码解读——入门与破局9 双插件协同:Quota Guard 负责“停“,Model Router 负责“绕“
langchain·prompt·aigc·embedding·ai编程·llama·agi
这就是佬们吗1 天前
治幻觉,先治检索:RAG 系统防幻觉的完整工程指南
python·langchain·embedding
爱奥尼欧1 天前
14.输出解析器-Pydantic与JSON
人工智能·学习·langchain·json