内置工具 API 参考

CeeCore 为 Agent 技能提供了一套内置工具。这些工具无需在 tools.json 中声明即可使用,覆盖了最常见的技能需求。

工具概览

工具用途权限要求
http_request发送 HTTP 请求http
schedule_task创建定时任务cron
send_notification推送通知notification
read_file读取文件file
write_file写入文件file
search_memory搜索设备记忆
get_device_info获取设备信息

最低版本要求:CeeCore 固件 ≥ 1.0.0。部分工具在更高版本中新增参数。

http_request — HTTP 请求

发送 HTTP 请求到外部 API。

参数

参数类型必填说明
urlstring请求 URL
methodstringHTTP 方法,默认 "GET"
headersobject请求头
bodystring/object请求体(POST/PUT 时使用)
timeoutinteger超时时间(秒),默认 30

示例

{
  "name": "http_request",
  "parameters": {
    "url": "https://api.openweathermap.org/data/2.5/weather",
    "method": "GET",
    "headers": {
      "Accept": "application/json"
    },
    "timeout": 10
  }
}

返回值

{
  "status": 200,
  "headers": {},
  "body": {}
}

注意事项

  • 所有外部 HTTP 请求需要 http 权限
  • 请求超时默认 30 秒,最大 60 秒
  • 响应体自动解析 JSON,非 JSON 返回文本
  • 不支持重定向跟随(3xx 状态码直接返回)

schedule_task — 定时任务

创建定时执行的任务。

参数

参数类型必填说明
namestring任务名称
schedulestringCron 表达式或时间描述
actionstring触发时执行的操作描述
enabledboolean是否启用,默认 true

Cron 表达式支持

分钟 小时 日期 月份 星期
*    *    *    *    *

示例:
"0 8 * * *"     → 每天早上 8:00
"0 */6 * * *"   → 每 6 小时
"30 9 * * 1-5"  → 工作日早上 9:30

时间描述支持

也可以用自然语言描述时间:

"every morning at 8:00"
"every 6 hours"
"every weekday at 9:30"

示例

{
  "name": "schedule_task",
  "parameters": {
    "name": "morning-weather",
    "schedule": "0 8 * * *",
    "action": "获取天气数据并推送给用户",
    "enabled": true
  }
}

注意事项

  • 需要 cron 权限
  • 任务名称全局唯一
  • 设备重启后定时任务自动恢复
  • 最多同时运行 20 个定时任务

send_notification — 推送通知

向用户发送推送通知。

参数

参数类型必填说明
titlestring通知标题
messagestring通知内容
prioritystring优先级:"low"/"normal"/"high"
soundboolean是否播放声音,默认 true
badgeinteger应用角标数字

示例

{
  "name": "send_notification",
  "parameters": {
    "title": "今日天气",
    "message": "北京今天晴,15℃~25℃,适合出行",
    "priority": "normal",
    "sound": true
  }
}

优先级说明

优先级行为
low静默推送,仅在通知中心显示
normal标准推送,有声音和横幅
high强提醒,忽略勿扰模式

注意事项

  • 需要 notification 权限
  • 单条通知内容 ≤ 500 字符
  • 每小时最多推送 10 条(防止骚扰)
  • high 优先级仅用于紧急情况

read_file — 读取文件

从设备文件系统读取文件内容。

参数

参数类型必填说明
pathstring文件路径(相对于技能工作目录)
encodingstring编码,默认 "utf-8"
max_bytesinteger最大读取字节数,默认 1048576(1MB)

示例

{
  "name": "read_file",
  "parameters": {
    "path": "data/config.json",
    "encoding": "utf-8"
  }
}

返回值

{
  "path": "data/config.json",
  "content": "...",
  "size": 1024,
  "encoding": "utf-8"
}

注意事项

  • 需要 file 权限
  • 只能读取技能工作目录下的文件
  • 最大读取 10MB
  • 不支持二进制文件

write_file — 写入文件

向设备文件系统写入文件。

参数

参数类型必填说明
pathstring文件路径(相对于技能工作目录)
contentstring文件内容
encodingstring编码,默认 "utf-8"
appendboolean是否追加,默认 false(覆盖)

示例

{
  "name": "write_file",
  "parameters": {
    "path": "reports/daily-2026-08-27.md",
    "content": "# 工作日报\n\n...",
    "encoding": "utf-8"
  }
}

注意事项

  • 需要 file 权限
  • 只能写入技能工作目录下
  • 自动创建不存在的父目录
  • 单文件最大 10MB

search_memory — 搜索记忆

在设备的记忆系统中搜索信息。

参数

参数类型必填说明
querystring搜索关键词
limitinteger返回数量,默认 10,最大 50
categorystring记忆分类过滤

示例

{
  "name": "search_memory",
  "parameters": {
    "query": "用户偏好",
    "limit": 5
  }
}

返回值

{
  "results": [
    {
      "content": "用户喜欢简洁的回复风格",
      "category": "preference",
      "timestamp": "2026-08-27T08:00:00Z"
    }
  ],
  "total": 15
}

注意事项

  • 无需权限声明
  • 只能搜索当前用户授权范围内的记忆
  • 搜索结果按相关度排序

get_device_info — 获取设备信息

获取 CeeCore 设备的系统信息。

参数

无必填参数。

参数类型必填说明
fieldsstring[]要获取的信息字段,默认全部

可选字段:"version""uptime""storage""memory""network""skills"

示例

{
  "name": "get_device_info",
  "parameters": {
    "fields": ["version", "uptime", "storage"]
  }
}

返回值

{
  "version": "1.2.0",
  "uptime": 86400,
  "storage": {
    "total": 34359738368,
    "used": 8589934592,
    "available": 25769803776
  },
  "memory": {
    "total": 8589934592,
    "used": 4294967296
  },
  "network": {
    "type": "wifi",
    "ip": "192.168.1.100"
  },
  "skills": {
    "installed": 8,
    "active": 5
  }
}

注意事项

  • 无需权限声明
  • 返回的设备信息不包含用户隐私数据

完整使用示例

以下是一个技能 prompt.md 中综合使用多个内置工具的示例:

# 日报生成器

## 任务

每天下午 5:00,自动生成工作日报:

1. 使用 `search_memory` 搜索今天的对话记录
2. 使用 `http_request` 查询今日日历事件
3. 使用 `read_file` 读取日报模板
4. 根据以上信息生成日报
5. 使用 `write_file` 保存日报到 `reports/` 目录
6. 使用 `send_notification` 推送日报摘要

## 工具使用规则

- `http_request`:调用日历 API 时超时设置 10 秒
- `search_memory`:搜索关键词为日期 + "工作"
- `send_notification`:优先级 normal,不需要声音
- 所有文件操作都在技能工作目录下

权限速查

你想用的工具需要的权限
http_requesthttp
schedule_taskcron
send_notificationnotification
read_file / write_filefile
search_memory
get_device_info

manifest.json 中声明权限:

"permissions": ["http", "cron", "notification", "file"]

← manifest.json Schema 参考 | 返回开发者入门概览