当前位置:首页>python>盘点Python Agent框架中的Tools

盘点Python Agent框架中的Tools

  • 2026-10-11 06:18:36
盘点Python Agent框架中的Tools

一、Tools将LLM能力发挥到无限大

LLM具有庞大知识储备,更神奇的是LLM理解自然语言,可以补充知识,进行多轮对话达到目标。

在调用侧,LLM SDK和Agent 框架都提供了Tools能力,当信息不足时提供"神助攻",不断补充相关信息,直到LLM可以从给定的足够丰富的上下文中归纳出答案。

从某种程度上,LLM可以看做是具有足够知识储备,智商情商均在线的高超转述者。

目前LLM上下文窗口普遍能够到达1M Token,利用各种Tools往上下文中放入所有有关信息。

一百万Token,可以看做一本约30万汉字的书,让LLM做阅读理解解答各种提问。

当前AI开发领域中耳熟能详的技术,如Skills/MCP/ComputerUse等等,都是利用Tools实现的。

可以说能把Tools功能做好,Agent框架就成功了一半。

二、最重要的Tools功能

LangChain框架文档中,罗列出内建的重要Tools:

  • read_file    读取文件内容(支持分页和多模式)

  • write_file    创建新文件

  • edit_file    在文件中执行精确的字符串替换

  • ls    列出目录中的文件

  • glob    查找符合通配符模式的文件

  • grep    搜索文件内容

  • execute    运行 shell 命令

  • task    启动一个子代理来处理委托的任务

  • write_todos    管理结构化的待办事项列表

这些无疑就是最重要的Tools。

前段时间火爆的龙虾OpenClaw,依赖的核心Agent库pi-mono中也定义了最基本的Tools:

export const allTools = {read: readTool,	bash: bashTool,	edit: editTool,	write: writeTool,	grep: grepTool,	find: findTool,ls: lsTool,};

可以看到,一个Agent框架只要做到:

  • 1. 浏览文件系统,找到文件

  • 2. 读写,编辑文件

  • 3. 执行shell脚本

理论上就可以实现一切功能。

Agent框架通过管道等IPC机制和shell的启动程序通信,就可以获取到想要的信息,也可以发送指令、修改数据等。

三、盘点主流Python Agent框架中附带的Tools

综合LangChain,Ango,CrewAI三款人气高的Agent框架,可以将Tools分为以下几类:

  • 本地目录、文件和格式文档读写

  • 数据库访问,数据处理工具

  • 网站搜索工具

  • 网页浏览和抓取

  • 社交网站内容获取,生产力工具

  • 云数据存储,业务结构化

  • 集成和自动化流

  • 模型和机器学习

前两类可以看做是访问本地资源和数据库。中间四类是通过WebAPI访问网络资源,各自举一个例子:

  • 3. 搜索。比如利用Arxiv API访问各种论文

  • 4. 网页抓取。利用Firecrawl强大引擎抓取网络信息

  • 5. 社交内容。通过Slack API获得讨论组信息

  • 6. 云数据。通过JIRA API获取issue列表

具体的Tools列表较长,罗列在文末。

四、Python Agent框架的Tools实现

上述三个Agent框架,均采用继承父类Tools方式。

  1. LangChain: BaseTool(langchain_core.tools) 定义了超过80个Tools

  2. Agno:Toolkit(agno.tools) 定义了超过140个Tools

  3. CrewAI: BaseTool(crewai.tools) 定义了近80个Tools

访问网络资源方式,有通过Web API直接访问,也有通过python 三方库。

五、Java开发框架中的Tools

这里简单提一下Java开发框架中的Tools实现。

无论是Spring AI还是LangChain4j中,Java的AI开发框架更多的是将精力放在实现完备的Tools能力,框架并未自带众多的各种功能Tools。

如LangChain4j,定义了@Tool注解,应用在方法上。

static classCalculator{    @Tool("Calculates the sum of two numbers")    int add(int a, int b) {        System.out.println("Called add() with a=" + a + ", b=" + b);        return a + b;    }}

Spring AI,早期版本通过实现Function来定义Tools。现在的版本也还支持Function定义。

运行时动态解析@Bean,或者利用低层FunctionToolCallback编程实现。

public class WeatherService implements Function<WeatherRequest, WeatherResponse> {    public WeatherResponse apply(WeatherRequest request) {        return new WeatherResponse(30.0, Unit.C);    }}

更推荐的方式,是通过注解@Tool来定义方法。

classDateTimeTools{    @Tool(description = "Get the current date and time in the user's timezone")    String getCurrentDateTime() {        return LocalDateTime.now().atZone(LocaleContextHolder.getTimeZone().toZoneId()).toString();    }}

Spring AI和LangChain4j均实现了Tool Specification定义,可运行时动态解析,包括Tool Callback,JSON Schema,Tool Context,Result Conversion, Return Direct等,通过反射执行@Tool定义的代码内容。

六、总结

Python的Agent框架起步更早,发展的更成熟些,也因为Python语言动态性,可以自由的调用各种库和shell。

而Java的LLM开发框架,需要具备生产级稳定性,自身并不附带众多的集成三方功能,留给社区及客户实现。

附A、LangChain Tools

  • ainetwork

  • amadeus

  • arxiv

  • asknews

  • audio

  • azure_ai_services

  • azure_cognitive_services

  • bearly

  • bing_search

  • brave_search

  • cassandra_database

  • clickup

  • cogniswitch

  • connery

  • databricks

  • dataforseo_api_search

  • dataherald

  • ddg_search

  • e2b_data_analysis

  • edenai

  • eleven_labs

  • few_shot

  • file_management

  • financial_datasets

  • github

  • gitlab

  • gmail

  • golden_query

  • google_books

  • google_cloud

  • google_finance

  • google_jobs

  • google_lens

  • google_scholar

  • google_serper

  • google_trends

  • graphql

  • human

  • ifttt

  • interaction

  • jina_search

  • jira

  • json

  • memorize

  • merriam_webster

  • metaphor_search

  • mojeek_search

  • multion

  • nasa

  • nuclia

  • office365

  • openai_dalle_image_generation

  • openapi

  • openweathermap

  • passio_nutrition_ai

  • playwright

  • polygon

  • powerbi

  • pubmed

  • reddit_search

  • requests

  • riza

  • scenexplain

  • searchapi

  • searx_search

  • semanticscholar

  • shell

  • slack

  • sleep

  • spark_sql

  • sql_database

  • stackexchange

  • steam

  • steamship_image_generation

  • tavily_search

  • vectorstore

  • wikidata

  • wikipedia

  • wolfram_alpha

  • yahoo_finance_news

  • you

  • youtube

  • zapier

  • zenguard

附B、Ango Tools

  • agentql

  • airflow

  • apify

  • api

  • arxiv

  • aws_lambda

  • aws_ses

  • baidusearch

  • bitbucket

  • brandfetch

  • bravesearch

  • brightdata

  • browserbase

  • calcom

  • calculator

  • cartesia

  • clickup

  • coding

  • confluence

  • crawl4ai

  • csv_toolkit

  • dalle

  • daytona

  • decorator

  • desi_vocal

  • discord

  • docker

  • docling

  • duckdb

  • duckduckgo

  • e2b

  • eleven_labs

  • email

  • evm

  • exa

  • fal

  • file_generation

  • file

  • financial_datasets

  • firecrawl

  • function

  • giphy

  • github

  • gitlab

  • gmail

  • google/auth

  • google/bigquery

  • google/calendar

  • google/drive

  • google/gmail

  • google/maps

  • google/sheets

  • google/slides

  • google_bigquery

  • googlecalendar

  • google_drive

  • google_maps

  • googlesheets

  • hackernews

  • jina

  • jira

  • knowledge

  • linear

  • linkup

  • llms_txt

  • local_file_system

  • lumalab

  • mcp_toolbox

  • mem0

  • memory

  • mlx_transcribe

  • models/azure_openai

  • models/gemini

  • models/groq

  • models/morph

  • models/nebius

  • models_labs

  • moviepy_video

  • nano_banana

  • neo4j

  • newspaper4k

  • newspaper

  • notion

  • openai

  • openbb

  • opencv

  • openweather

  • oxylabs

  • pandas

  • parallel

  • perplexity

  • postgres

  • pubmed

  • python

  • reasoning

  • reddit

  • redshift

  • replicate

  • resend

  • salesforce

  • scheduler

  • scrapegraph

  • searxng

  • seltz

  • serpapi

  • serper

  • shell

  • shopify

  • slack

  • sleep

  • spider

  • spotify

  • sql

  • streamlit

  • tavily

  • telegram

  • todoist

  • toolkit

  • tool_registry

  • trafilatura

  • trello

  • twilio

  • unsplash

  • user_control_flow

  • user_feedback

  • valyu

  • visualization

  • webbrowser

  • webex

  • websearch

  • website

  • webtools

  • whatsapp

  • wikipedia

  • workflow

  • workspace

  • x

  • yfinance

  • youtube

  • zendesk

  • zep

  • zoom

附C、CrewAI Tools

  • ai_mind

  • apify_actors

  • arxiv_paper

  • brave_search

  • brightdata

  • browserbase_load

  • code_docs_search

  • composio

  • contextualai_create_agent

  • contextualai_parse

  • contextualai_query

  • contextualai_rerank

  • couchbase

  • crewai_platforms

  • csv_search

  • dalle

  • databricks_query

  • daytona_sandbox

  • directory_read

  • directory_search

  • docx_search

  • e2b_sandbox

  • exas

  • file_read

  • files_compressor

  • file_writer

  • firecrawl_crawl_website

  • firecrawl_scrape_website

  • firecrawl_search

  • generate_crewai_automation

  • github_search

  • hyperbrowser_load

  • invoke_crewai_automation

  • jina_scrape_website

  • json_search

  • linkup

  • llamaindex

  • mdx_search

  • merge_agent_handler

  • mongodb_vector_search

  • multion

  • mysql_search

  • nl2sql

  • ocr

  • oxylabs_amazon_product_scraper

  • oxylabs_amazon_search_scraper

  • oxylabs_google_search_scraper

  • oxylabs_universal_scraper

  • parallels

  • patronus_eval

  • pdf_search

  • qdrant_vector_search

  • rag

  • scrape_element_from_website

  • scrapegraph_scrape

  • scrape_website

  • scrapfly_scrape_website

  • selenium_scraping

  • serpapi

  • serper_dev

  • serper_scrape_website

  • serply_api

  • singlestore_search

  • snowflake_search

  • spider

  • stagehand

  • tavily_extractor

  • tavily_get_research

  • tavily_research

  • tavily_search

  • txt_search

  • vision

  • weaviate

  • website_search

  • xml_search

  • youtube_channel_search

  • youtube_video_search

  • zapier_action

最新文章

随机文章