内置工具
Agent Framework 可以直接使用 Spring AI 的 ToolCallback、@Tool 方法和 ToolCallbackProvider。此外,main 分支中还提供了一批面向 Agent 运行时的内置工具和工具扩展点。
工具注册方式
| 入口 | 说明 |
|---|---|
tools(ToolCallback...) | 直接传入工具回调。 |
methodTools(Object...) | 从带 Spring AI @Tool 注解的方法生成工具。 |
toolCallbackProviders(...) | 从 Spring AI ToolCallbackProvider 获取工具。 |
toolNames(...) + resolver(...) | 按工具名通过 ToolCallbackResolver 动态解析。 |
| Hook / Interceptor 提供工具 | DefaultBuilder 会收集 Hook 与 ModelInterceptor 暴露的工具,并按名称去重。 |
Shell 与搜索工具
| 类 | 说明 |
|---|---|
ShellTool | 基于 ShellSessionManager 执行 shell 命令,支持工作目录、启动/关闭命令、超时、输出行数、环境变量等配置。 |
ShellTool2 | 另一组 shell 工具构建入口。 |
ShellSessionManager | 管理按 threadId 隔离的 shell session,支持输出截断和脱敏规则。 |
GlobSearchTool | 在指定根目录下按 glob 匹配文件,支持最大结果数。 |
GrepSearchTool | 在指定根目录下搜索文本,可配置是否使用 ripgrep 和最大文件大小。 |
WebFetchTool | 发起 Web fetch,源码中包含 DNS 固定、地址解析和 HTTP 传输相关实现。 |
WriteTodosTool | 写入待办列表,支持事件处理器。 |
import io.github.agentic.ai.graph.agent.ReactAgent;
import io.github.agentic.ai.graph.agent.tools.GlobSearchTool;
import io.github.agentic.ai.graph.agent.tools.GrepSearchTool;
import io.github.agentic.ai.graph.agent.tools.ShellTool;
ToolCallback shell = ShellTool.builder("/workspace")
.withCommandTimeout(30_000)
.withMaxOutputLines(200)
.build();
ToolCallback glob = GlobSearchTool.builder("/workspace")
.maxResults(100)
.build();
ToolCallback grep = GrepSearchTool.builder("/workspace")
.withUseRipgrep(true)
.withMaxFileSizeMb(5)
.build();
ReactAgent agent = ReactAgent.builder()
.name("developer_agent")
.model(chatModel)
.tools(shell, glob, grep)
.build();