内置工具
createAgent() 默认会给每个 agent 配备私有 workspace 工具。如果没有传入 workspace,传了 name 时文件存储在 ~/.agent/workspaces/<name>,否则存储在 ~/.agent/workspaces/agent-<session-id>。
只有需要覆盖默认位置时,才传入 workspace:
import { createAgent } from "agent-lattice";
const agent = createAgent({ apiKey, name: "backend", model, workspace: { cwd: process.cwd(), allowedDirectories: [process.cwd()], bashTimeoutMs: 30_000, },});createBareAgent() 初始不带工具、不带 workspace 提示词,也不会创建默认 workspace 目录。当你需要一个 bare agent,但仍想显式接入 SDK 内置文件和 Shell 工具时,使用 createBuiltinTools():
import { createBareAgent, createBuiltinTools } from "agent-lattice";
const agent = createBareAgent({ apiKey: process.env.DEEPSEEK_API_KEY, baseURL: "https://api.deepseek.com/anthropic", model: "deepseek-v4-flash", systemPrompt: "使用已配置的项目目录完成文件工作。", tools: createBuiltinTools({ cwd: process.cwd(), allowedDirectories: [process.cwd()], bashTimeoutMs: 30_000, }),});createBuiltinTools() 和 createAgentWorkspaceTools() 返回的都是下表这套 ToolDefinition。如果代码里更想强调 workspace 语义,也可以继续使用 createAgentWorkspaceTools()。
| 工具 | 说明 |
|---|---|
Read |
读取工作区文件,支持按行偏移和数量读取。 |
Write |
写入工作区文件,并自动创建父目录。 |
Edit |
替换已有文件中的文本。 |
LS |
列出目录。 |
Glob |
按 glob 查找文件。 |
Grep |
按正则搜索文件内容。 |
Bash |
在工作区执行 Shell 命令,带超时控制。 |
这些工具可以读写文件、执行命令,所以生产环境建议配合 permission:
permission: async request => { if (request.toolName === "Bash" || request.toolName === "Write") { return { behavior: "deny", message: "This host did not approve shell or write access.", }; } return { behavior: "allow" };}allowedDirectories 会限制 Write、Edit 和明显 Shell 写入的写入根目录。只读工具仍可检查宿主进程有权限读取的任意路径。这些检查不能替代宿主应用自己的权限策略。