常用工具集(网页、计算器、RAG)
入门工具箱:搜索网页、进行数学计算、查询知识库——覆盖 80% 的演示场景。
常用工具集(网页、计算器、RAG) 是 CoddyKit 上的免费 AI Agents 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。
本课时的部分内容尚未翻译,以英文显示。
入门工具箱
三个工具可以覆盖 80% 的代理演示:
- web_search — 搜索公开网络
- calculator — 计算数学表达式
- retrieve — 搜索内部知识库(RAG)
工具 1:网络搜索
使用 Tavily、Serper 或 Brave Search API:
import requests
def web_search(query: str, k: int = 5):
r = requests.post('https://api.tavily.com/search',
json={'api_key': TAVILY_KEY, 'query': query, 'max_results': k})
results = r.json()['results']
return [
{'title': r['title'], 'url': r['url'], 'snippet': r['content'][:300]}
for r in results
]Web Search Tool Schema
schema_search = {'type': 'function', 'function': {
'name': 'web_search',
'description': 'Search the public web. Use for current events or facts after the knowledge cutoff.',
'parameters': {'type': 'object', 'properties': {
'query': {'type': 'string', 'description': 'What to search for'},
'k': {'type': 'integer', 'default': 5}
}, 'required': ['query']}
}}
import json
print(json.dumps(schema_search, indent=2))
工具 2:计算器
模型无法可靠地在脑中进行算术运算。计算器工具可以修正大多数数值错误:
import math
ALLOWED = {k: getattr(math, k) for k in ['sqrt','log','exp','sin','cos','tan','pi','e']}
def calculator(expression: str) -> str:
try:
return str(eval(expression, {'__builtins__': {}}, ALLOWED))
except Exception as e:
return f'Error: {e}'
print(calculator('sqrt(16) + 2'))
Calculator Tool Schema
schema_calc = {'type': 'function', 'function': {
'name': 'calculator',
'description': 'Evaluate a math expression like 2 + 3 * sqrt(16). Use for any arithmetic.',
'parameters': {'type': 'object', 'properties': {
'expression': {'type': 'string'}
}, 'required': ['expression']}
}}
import json
print(json.dumps(schema_calc, indent=2))
Tool 3: RAG / Knowledge Retrieval
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
store = Chroma(persist_directory='./db', embedding_function=OpenAIEmbeddings())
def retrieve(query: str, k: int = 4):
docs = store.similarity_search(query, k=k)
return [{'text': d.page_content, 'source': d.metadata.get('source')} for d in docs]Retrieve Tool Schema
schema_retrieve = {'type': 'function', 'function': {
'name': 'retrieve',
'description': 'Search the internal knowledge base for company-specific information (policies, docs, history).',
'parameters': {'type': 'object', 'properties': {
'query': {'type': 'string'},
'k': {'type': 'integer', 'default': 4}
}, 'required': ['query']}
}}
import json
print(json.dumps(schema_retrieve, indent=2))
工具 4:代码解释器(附加)
对于数据任务,请为代理提供 Python 沙箱:
def run_python(code: str) -> str:
# Use a sandboxed environment (E2B, Firecracker, gVisor)
return sandbox.run(code).stdout工具 5:HTTP 获取(附加)
用于获取特定网址的内容(在 web_search 返回有价值的链接之后):
def fetch_url(url: str) -> str:
r = requests.get(url, timeout=10)
return BeautifulSoup(r.text, 'html.parser').get_text()[:5000]工具描述技巧
- 说明何时使用工具,而不只是说明工具的功能
- 提及典型的输入和输出
- 注明限制(“仅适用于英文文本”,“5 秒超时”)
避免工具重叠
用途重叠的两个工具会让模型感到困惑。如果 search_web 和 retrieve 都表示“搜索”,请在描述中明确何时使用哪一个。
评估工具使用
用 50 个问题构建一个小型测试集:每个问题都有一个“正确”的调用工具。运行您的代理,测量它选择正确工具的频率。这是非常有价值的指标。
隐藏工具
有些工具很有用,但并非总是需要——只在相关时显示它们。例如,只有当用户已通过身份验证并询问退款时,才显示 refund_order。
改进选择的最佳方法
您的代理经常选错工具。最简单的修复方法是什么?
回顾
入门工具箱包括:web_search、calculator、retrieve。构建它、评估它,然后不断改进工具描述。这可以覆盖大多数早期代理使用场景。
常见问题解答
「常用工具集(网页、计算器、RAG)」课时是免费的吗?
是的 — 「常用工具集(网页、计算器、RAG)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。
「常用工具集(网页、计算器、RAG)」这节课中我会学到什么?
入门工具箱:搜索网页、进行数学计算、查询知识库——覆盖 80% 的演示场景。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Agents 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「常用工具集(网页、计算器、RAG)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Agents 课中编写并运行代码吗?
能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- ReAct:推理 + 行动模式
- 从零实现 ReAct
- 常用工具集(网页、计算器、RAG)
- 检测并恢复工具错误