# PicoBot 工具说明 ## send_message — 向指定渠道发送消息 向指定会话发送消息,可附带文件或图片。 ### 参数 | 参数 | 必填 | 说明 | |------|------|------| | `target_chat_id` | 是 | 目标会话 ID,格式 `:` 或 `::` | | `content` | 是 | 消息文本内容 | | `files` | 否 | 文件路径列表 | | `origin` | 否 | 消息来源标识,不填则自动使用当前 session_id | `files` 支持绝对路径和 workspace 相对路径,媒体类型由文件扩展名/MIME 自动判断。目前 schema 不支持手工指定 `file_types`。 ### 示例 ```json { "target_chat_id": "feishu:oc_abc123", "content": "这是生成的音乐文件", "files": ["/workspace/music.mp3"] } ``` 发送流程会先把消息写入目标 Session,再调用 `MessageBus::deliver_outbound` 等待真实渠道投递结果(上限 120 秒)。投递失败会作为工具失败返回,不应把“已入队”报告成“已送达”。 --- ## chat_manager — 会话管理 查看和管理会话及消息。 ### 参数 | 参数 | 必填 | 说明 | |------|------|------| | `action` | 是 | 操作: `list_sessions`, `list_channels`, `list_messages` | | `session_id` | 部分 | `list_messages` 时必填 | | `count` | 否 | 返回数量(默认 20,最大 100) | | `offset` | 否 | 跳过前 N 条,用于翻页 | | `before_time` | 否 | Unix 时间戳(秒),返回该时间之前的消息 | | `after_time` | 否 | Unix 时间戳(秒),返回该时间之后的消息 | --- ## Cron 定时任务工具 Cron 不是一个带 `action` 的统一工具,而是六个独立工具;仅在 `gateway.scheduler.enabled=true` 时注册。 | 工具 | 主要参数 | 说明 | |------|----------|------| | `cron_add` | `schedule`, `prompt`, `channel`, `chat_id`; 可选 `name`, `model` | 创建任务 | | `cron_list` | 可选 `status=all|enabled|disabled` | 列出任务 | | `cron_update` | `job_id`; 可选 `prompt`, `schedule`, `channel`, `chat_id`, `model` | 更新指定字段 | | `cron_remove` | `job_id` | 永久删除任务和关联 job runs | | `cron_enable` | `job_id` | 启用并重新计算下次运行时间 | | `cron_disable` | `job_id` | 禁用但保留任务 | `schedule` 支持: ```json {"type":"at","at":1750000000000} {"type":"every","every_ms":3600000} {"type":"cron","expr":"0 0 9 * * *","tz":"Asia/Shanghai"} ``` 时间戳和间隔单位为毫秒;Cron 表达式为 6 段(秒、分、时、日、月、周)。定时 Agent 不复用聊天历史,`prompt` 必须包含完整上下文,并由 Agent 使用 `send_message` 投递结果。`model` 当前会持久化和展示,但执行仍使用默认 Agent Provider/Model,不能依赖它实现模型覆盖。 --- ## memory_store — 存储记忆 写入长期记忆(Knowledge 类别)。 | 参数 | 必填 | 说明 | |------|------|------| | `key` | 是 | 记忆唯一键,同 key 覆盖旧值 | | `content` | 是 | 记忆内容 | | `importance` | 否 | 重要性 (0.0–1.0) | ## memory_recall — 搜索知识记忆 关键词全文搜索 Knowledge 记忆。 | 参数 | 必填 | 说明 | |------|------|------| | `query` | 是 | 空格分隔的关键词列表 | | `since` | 否 | 起始时间戳(unix 毫秒) | | `until` | 否 | 结束时间戳 | | `limit` | 否 | 返回数量(默认 10) | ## timeline_recall — 搜索时间线 搜索压缩后的历史会话摘要。 | 参数 | 必填 | 说明 | |------|------|------| | `query` | 是 | 关键词 | | `session_id` | 否 | 限定会话 | | `since` | 否 | 起始时间 | | `until` | 否 | 结束时间 | | `limit` | 否 | 返回数量 | ## memory_forget — 删除记忆 按 key 删除记忆。 | 参数 | 必填 | 说明 | |------|------|------| | `key` | 是 | 要删除的记忆键 | --- ## get_skill — 获取 Skill 查询 skill 内容。 | 参数 | 必填 | 说明 | |------|------|------| | `action` | 否 | 操作: `get`(默认), `list` | | `skill_name` | get时必填 | Skill 名称 | --- ## delegate — 子 Agent 委托 创建子 Agent 处理独立任务。 | 参数 | 必填 | 说明 | |------|------|------| | `action` | 是 | `run`, `check_task`, `cancel_task`, `list_tasks` | | `prompt` | run 必填 | 子任务描述 | | `mode` | 否 | `inline`, `background`, `parallel`,默认 `inline` | | `allowed_tools` | 否 | 子 Agent 可用工具列表;默认只读工具集 | | `max_iterations` | 否 | 最大迭代次数,默认 99 | | `timeout_secs` | 否 | 超时秒数,默认 3600 | | `tasks` | parallel 必填 | 并行子任务数组 | | `task_id` | 查询/取消必填 | 后台任务 ID | 默认只读工具集:`file_read`、`file_search`、`content_search`、`web_fetch`、`http_request`、`calculator`。 --- ## browser — 浏览器自动化 仅在 `browser.enabled=true` 时注册。底层使用 WebDriver/Chrome。 | action | 说明 | |--------|------| | `open` | 打开 URL | | `snapshot` | 获取页面结构快照 | | `click`, `click_at` | 点击元素或坐标 | | `fill`, `type`, `press` | 输入文本或按键 | | `get_text`, `get_title`, `get_url` | 读取页面信息 | | `screenshot` | 截图,可写入文件或返回 base64 | | `focus`, `hover`, `scroll`, `wait` | 常见交互和等待 | | `close` | 关闭浏览器会话 | --- ## MCP 工具 如果 `config.mcp.servers` 配置了 MCP 服务器,Gateway 启动时会连接服务器、发现工具,并把 MCP 工具包装后注册到 ToolRegistry。使用 `/mcp` 查看当前连接状态和工具列表。 --- ## file_read / file_write / file_edit / file_search / content_search — 文件操作和搜索 文件读写编辑、文件名搜索和内容搜索。相对路径从 workspace cwd 解析;默认注册的文件工具也接受绝对路径,因此 workspace 不是硬沙箱。详细参数以各工具的 `parameters_schema` 为准。 ## bash — 执行命令 默认从 workspace cwd 执行 bash 命令。参数为 `command` 和可选 `timeout`;默认 60 秒、最大 600 秒,输出最多约 50,000 字符。命令继承 Gateway 进程权限,可以访问 workspace 外路径;危险模式拦截不是完整沙箱。 ## pty — 持久终端会话 用于交互式程序和需要保持状态的长运行命令。`action` 支持 `spawn`、`write`、`read`、`kill`、`list`;`write/read/kill` 需要 `session_id`。Gateway 进程退出时 PTY manager 会清理子进程。 ## http_request / web_fetch — HTTP 和 Web 工具 `http_request` 支持 GET/POST/PUT/DELETE/PATCH、headers 和字符串 body;`web_fetch` 提取 HTML/JSON 的可读文本。两者校验 URL 与 DNS 解析结果,阻止回环、私网、link-local 和本地域名,并禁用自动重定向,以降低 SSRF 风险。 ## calculator — 计算器 数学表达式计算和统计函数。 | action | 说明 | |--------|------| | `evaluate` | 计算表达式 | | `sum` | 求和 | | `average` | 平均值 | | `median` | 中位数 | | `mode` | 众数 | | `stdev` / `variance` | 标准差/方差 | | `min` / `max` | 最小值/最大值 | | `log` | 对数 | | `factorial` | 阶乘 | | `round` | 四舍五入 | | `percentage_change` | 变化百分比 | | `percentile` | 百分位数 |