feat(engine): 添加技能查看工具并优化异步任务管理

- 添加SkillViewTool到引擎加载器中,增强技能管理功能
- 在AgentLoop中引入_active_direct_task来跟踪活跃任务
- 实现直接任务执行时的同步处理逻辑
- 更新工具实例化方式以支持依赖注入

feat(config): 增加智能体运行时参数配置支持

- 扩展AgentDefaultsConfig添加max_tokens和temperature字段
- 实现配置解析函数_first_config_value处理多个配置源
- 支持通过Web API动态更新智能体运行时参数
- 添加前端页面配置表单和验证逻辑

refactor(provider): 统一最大令牌数参数类型为可选整型

- 将所有LLM提供者的max_tokens参数改为int | None类型
- 为AnthropicProvider实现模型特定的最大令牌数默认值
- 调整参数传递逻辑,优先级:调用参数 > 配置文件 > 模型默认值
- 移除硬编码的默认值,改用条件判断

feat(process): 增强事件投影功能

- 添加工具调用开始/结束事件的映射逻辑
- 实现技能激活事件的识别和展示
- 添加辅助函数处理工具调用名称和参数提取
- 优化运行记录关联逻辑,提升事件匹配准确性

fix(web): 更新网络请求客户端信任环境设置

- 将WebFetchTool和WebSearchTool的trust_env参数设为True
- 确保HTTP客户端能够正确使用系统代理配置
- 修复可能的网络连接问题

test: 添加配置加载和事件投影相关测试

- 新增智能体默认参数配置测试用例
- 实现API配置持久化和重载测试
- 添加技能卡片和工具事件的投影测试
```
This commit is contained in:
2026-05-27 13:37:06 +08:00
parent 55b39563a0
commit 33a9845566
75 changed files with 2599 additions and 114 deletions

View File

@ -0,0 +1,3 @@
{
"items": []
}

View File

@ -0,0 +1,13 @@
{
"items": [
"outlook-mail",
"filesystem-operation",
"terminal-operation",
"web-operation",
"utility-tools",
"skills-admin",
"cron-scheduler",
"memory-management",
"officebench-mcp"
]
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "定时任务和周期性调度。支持标准 cron 表达式、一次性提醒和持久化任务。",
"display_name": "cron-scheduler",
"lineage": [],
"name": "cron-scheduler",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["cron", "scheduler", "timer", "periodic"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,34 @@
---
name: cron-scheduler
description: 定时任务和周期性调度。支持标准 cron 表达式、一次性提醒和持久化任务。
tools:
- cron
---
# Cron Scheduler — 定时任务调度
基于 cron 表达式的定时任务和一次性提醒。
## 工具说明
### cron
创建和管理 Beaver 定时通知或 Task。
- `action` (str): `add` | `list` | `remove` | `toggle` | `run`
- `message` (str): 触发时执行的任务说明,`add` 时必填
- `schedule` (str): 调度表达式,例如 `every 15m``0 9 * * *` 或 ISO 时间
- `every_seconds` (int | None): 固定秒级间隔
- `cron_expr` (str | None): 标准 5 段 cron 表达式
- `tz` (str | None): IANA 时区,例如 `Asia/Shanghai`
- `at_iso` (str | None): 一次性任务的 ISO 时间
- `job_id` (str | None): `remove``toggle``run` 目标任务 ID
- `enabled` (bool | None): `toggle` 时设置启停状态
- `mode` (str | None): `notification``task`
- `requires_followup` (bool | None): task 模式下是否需要用户跟进
## 使用原则
1. 避开 :00 和 :30 整点分钟,分散负载
2. 一次性提醒优先使用 `at_iso` 或清晰的 `schedule`
3. 需要持续提醒时使用 `mode="notification"`,需要 Task 跟踪时才用 `mode="task"`
4. 定期用 `action="list"` 确认任务是否按预期调度
5. 任务触发时 `message` 会完整执行,确保内容自包含

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for cron scheduling",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "定时任务和周期性调度。支持标准 cron 表达式、一次性提醒和持久化任务。",
"name": "cron-scheduler",
"tools": ["cron"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "cron-scheduler",
"summary": "Cron Scheduler — 基于 cron 表达式的定时任务和一次性提醒",
"summary_hash": "placeholder",
"tool_hints": ["cron"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "本地文件系统读写、搜索和目录操作。支持读取、写入、修改、搜索文件和目录遍历。",
"display_name": "filesystem-operation",
"lineage": [],
"name": "filesystem-operation",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["filesystem", "file", "io", "directory"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,50 @@
---
name: filesystem-operation
description: 本地文件系统读写、搜索和目录操作。支持读取、写入、修改、搜索文件和目录遍历。
tools:
- read_file
- write_file
- patch_file
- search_files
- list_directory
---
# Filesystem Operation — 文件系统操作
本地文件系统工具集,用于读写和搜索项目文件。
## 工具说明
### read_file
读取本地文件内容。
- 使用 `skill_view` 查看文件预览
- 大文件会分页返回,可通过 offset/limit 控制
### write_file
写入新文件或覆盖已有文件。
- 创建新文件时自动创建父目录
- 写入前确认不会覆盖重要配置
### patch_file
精确修改文件中的指定内容。
- 通过搜索-替换方式修改
- 适用于局部更新,避免整文件重写
### search_files
在项目中搜索文件名或内容。
- 支持 glob 模式匹配
- 支持按内容搜索
- 支持限制搜索目录深度
### list_directory
列出目录内容。
- 可递归列出子目录
- 支持过滤文件类型
## 使用原则
1. 优先使用 `read_file` 查看文件内容,再决定修改方案
2. 小范围修改用 `patch_file`,大范围用 `write_file`
3. 搜索文件时先确认路径是否存在
4. 修改前确认文件编码(默认 UTF-8
5. 敏感文件(.env、密钥等不写入版本控制

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for local filesystem operations",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "本地文件系统读写、搜索和目录操作。支持读取、写入、修改、搜索文件和目录遍历。",
"name": "filesystem-operation",
"tools": ["read_file", "write_file", "patch_file", "search_files", "list_directory"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "filesystem-operation",
"summary": "Filesystem Operation — 本地文件系统操作工具集",
"summary_hash": "placeholder",
"tool_hints": ["read_file", "write_file", "patch_file", "search_files", "list_directory"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "持久化记忆管理。存储用户信息、项目上下文、偏好和反馈,实现跨会话记忆。",
"display_name": "memory-management",
"lineage": [],
"name": "memory-management",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["memory", "persistence", "context", "preferences"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,32 @@
---
name: memory-management
description: 持久化记忆管理。存储用户信息、项目上下文、偏好和反馈,实现跨会话记忆。
tools:
- memory
---
# Memory Management — 记忆管理
持久化记忆系统,保存用户角色、项目上下文、偏好反馈等跨会话信息。
## 工具说明
### memory
管理记忆条目(增删改查)。
- `action` (str): `add` | `replace` | `remove`
- `target` (str): `user``memory`
- `content` (str | None): `add``replace` 时的新内容
- `old_text` (str | None): `replace``remove` 时定位旧条目的唯一短文本
- 记忆目标:
- `user`: 用户角色、职责、知识背景、稳定偏好
- `memory`: 项目约定、环境事实、稳定工具经验
- 支持自动保存和检索
- 跨会话持久化
## 使用原则
1. 了解用户角色偏好后及时保存到 `user` 类型
2. 用户明确要求记住的内容立即保存
3. 过时的记忆及时更新或删除
4. 不保存可以从代码/git 推导出的信息
5. 记忆是辅助参考,当前上下文和文件状态优先级更高

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for memory management",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "持久化记忆管理。存储用户信息、项目上下文、偏好和反馈,实现跨会话记忆。",
"name": "memory-management",
"tools": ["memory"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "memory-management",
"summary": "Memory Management — 持久化记忆系统,支持跨会话信息存储",
"summary_hash": "placeholder",
"tool_hints": ["memory"],
"version": "v0001"
}

View File

@ -0,0 +1,4 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,21 @@
{
"created_at": "2026-05-27T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "Guidance for OfficeBench evaluation tasks. Use the registered mcp_officebench_* tools to inspect and edit OfficeBench files, spreadsheets, documents, emails, calendars, PDFs, and answer files.",
"display_name": "officebench-mcp",
"lineage": [],
"name": "officebench-mcp",
"owners": [
"system"
],
"source_kind": "workspace",
"status": "active",
"tags": [
"officebench",
"mcp",
"evaluation",
"office"
],
"updated_at": "2026-05-27T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,190 @@
---
name: officebench-mcp
description: Guidance for OfficeBench evaluation tasks. Use the registered mcp_officebench_* tools to inspect and edit OfficeBench files, spreadsheets, documents, emails, calendars, PDFs, and answer files.
always: true
tools:
- mcp_officebench_excel_read_file
- mcp_officebench_excel_set_cell
- mcp_officebench_excel_delete_cell
- mcp_officebench_excel_create_new_file
- mcp_officebench_excel_convert_to_pdf
- mcp_officebench_word_read_file
- mcp_officebench_word_write_to_file
- mcp_officebench_word_create_new_file
- mcp_officebench_word_convert_to_pdf
- mcp_officebench_email_list_emails
- mcp_officebench_email_read_email
- mcp_officebench_email_send_email
- mcp_officebench_calendar_create_event
- mcp_officebench_calendar_list_events
- mcp_officebench_calendar_delete_event
- mcp_officebench_pdf_read_file
- mcp_officebench_pdf_convert_to_word
- mcp_officebench_pdf_convert_to_image
- mcp_officebench_ocr_recognize_file
- mcp_officebench_shell_command
- mcp_officebench_shell_list_directory
- mcp_officebench_shell_read_file
- mcp_officebench_shell_write_file
- mcp_officebench_shell_copy_file
- mcp_officebench_system_finish_task
- mcp_officebench_system_get_status
- mcp_officebench_image_convert_to_pdf
---
# OfficeBench MCP Skill
Use this skill for OfficeBench evaluation runs. OfficeBench task files live in the OfficeBench MCP server, not in Beaver's local filesystem. Complete the task by calling real `mcp_officebench_*` tools.
## Critical Rules
1. Use actual Beaver tool calls only. Do not print XML, DSML, JSON, or markdown that describes a tool call.
2. Never invent tool names. If you need to find files, use `mcp_officebench_shell_list_directory` or `mcp_officebench_shell_command`.
3. Do not use Beaver local filesystem, local runtime, local terminal, or local code tools for OfficeBench files.
4. Paths are relative to `/testbed` in the OfficeBench MCP container, such as `data/score.xlsx`.
5. If the task context gives a `workspace_id`, pass that same `workspace_id` argument in every OfficeBench MCP tool call that supports it.
6. Inspect files before editing them.
7. Verify the requested output file or edited cell exists before finishing.
8. Finish every task with `mcp_officebench_system_finish_task`.
## Tool Names And Use
### Excel
Use these for `.xlsx` files:
- `mcp_officebench_excel_read_file`: read workbook sheets and cell values.
- Required: `file_path`
- Optional: `sheet_name`, `workspace_id`
- `mcp_officebench_excel_set_cell`: write one cell.
- Required: `file_path`, `row`, `col`, `value`
- Optional: `sheet_name`, `workspace_id`
- Rows and columns are 1-based.
- `mcp_officebench_excel_delete_cell`: clear one cell.
- Required: `file_path`, `row`, `col`
- Optional: `sheet_name`, `workspace_id`
- `mcp_officebench_excel_create_new_file`: create a workbook.
- Required: `file_path`
- Optional: `workspace_id`
- `mcp_officebench_excel_convert_to_pdf`: convert an Excel file to PDF.
- Required: `file_path`
- Optional: `workspace_id`
Typical Excel sequence:
1. Call `mcp_officebench_shell_list_directory` on `data`.
2. Call `mcp_officebench_excel_read_file` on the target workbook.
3. Identify the exact row and column.
4. Call `mcp_officebench_excel_set_cell`.
5. Read the workbook again or use status/listing to verify.
6. Call `mcp_officebench_system_finish_task`.
For the common task "change Bob's midterm1 score to 100 in score.xlsx", inspect `data/score.xlsx`, find Bob's row and the `midterm1` column, then call `mcp_officebench_excel_set_cell` with that row, that column, and value `100`.
### Word
Use these for `.docx` files:
- `mcp_officebench_word_read_file`: read all paragraphs.
- Required: `file_path`
- Optional: `workspace_id`
- `mcp_officebench_word_write_to_file`: overwrite or append text.
- Required: `file_path`, `text`
- Optional: `append`, `workspace_id`
- `mcp_officebench_word_create_new_file`: create a new Word document.
- Required: `file_path`
- Optional: `workspace_id`
- `mcp_officebench_word_convert_to_pdf`: convert Word to PDF.
- Required: `file_path`
- Optional: `workspace_id`
Preserve exact spelling, capitalization, punctuation, and line order from source files.
### Email
Use these for email tasks:
- `mcp_officebench_email_list_emails`: list available `.eml` messages.
- Optional: `folder`, `workspace_id`
- `mcp_officebench_email_read_email`: read one email.
- Required: `email_path`
- Optional: `workspace_id`
- `mcp_officebench_email_send_email`: create/send an email artifact.
- Required: `to`, `subject`, `body`
- Optional: `attachments`, `workspace_id`
For email-search tasks, final answers should use plain text with literal lines like `Subject: ...`. Do not add markdown labels.
### Calendar
Use these for calendar `.ics` tasks:
- `mcp_officebench_calendar_list_events`: inspect calendar events.
- Optional: `calendar_path`, `workspace_id`
- `mcp_officebench_calendar_create_event`: create an event.
- Required fields depend on the task; include summary/title, start, end, and target calendar when needed.
- Optional: `workspace_id`
- `mcp_officebench_calendar_delete_event`: delete an event.
- Required fields depend on the task; inspect events first.
- Optional: `workspace_id`
Use the task's current date/time context when interpreting relative dates.
### PDF, OCR, And Images
Use these for PDF/image tasks:
- `mcp_officebench_pdf_read_file`: extract text from a PDF.
- Required: `pdf_file_path`
- Optional: `workspace_id`
- `mcp_officebench_pdf_convert_to_word`: convert PDF to Word.
- Required: `pdf_file_path`
- Optional: `workspace_id`
- `mcp_officebench_pdf_convert_to_image`: convert one PDF page to an image.
- Required: `pdf_file_path`
- Optional: `page_number`, `dpi`, `workspace_id`
- `mcp_officebench_ocr_recognize_file`: OCR an image.
- Required: `image_path`
- Optional: `language`, `workspace_id`
- `mcp_officebench_image_convert_to_pdf`: convert image to PDF.
- Required: `image_path`
- Optional: `output_path`, `workspace_id`
For conversion tasks, create the exact requested filename and verify it exists.
### Shell And System
Use these for safe file discovery and text files:
- `mcp_officebench_shell_list_directory`: list a directory.
- Optional: `path`, `workspace_id`
- `mcp_officebench_shell_read_file`: read text files such as `.txt`, `.csv`, `.json`, `.md`, `.xml`.
- Required: `file_path`
- Optional: `workspace_id`
- `mcp_officebench_shell_write_file`: write text files.
- Required: `file_path`, `content`
- Optional: `append`, `workspace_id`
- `mcp_officebench_shell_copy_file`: copy a file or directory.
- Required: `source`, `destination`
- Optional: `workspace_id`
- `mcp_officebench_shell_command`: run shell commands inside the OfficeBench MCP container.
- Required: `command`
- Optional: `workdir`, `workspace_id`
- `mcp_officebench_system_get_status`: inspect filesystem/git status.
- Optional: `workspace_id`
- `mcp_officebench_system_finish_task`: mark the task complete and optionally write an answer.
- Optional: `answer`, `workspace_id`
Prefer dedicated Office tools for Office documents. Use shell tools for listing directories, copying/renaming files, and reading/writing plain text.
## Anti-Patterns
Do not do any of the following:
- Do not call `mcp_officebench_find_in_workspace`; that tool does not exist.
- Do not output `<tool_calls>`, `<invoke>`, DSML, or pseudo tool call text.
- Do not answer "done" without calling the required OfficeBench tools.
- Do not edit guessed paths without first listing or reading relevant files.
- Do not use `/testbed` as a literal prefix in path arguments unless a tool explicitly asks for an absolute path.
- Do not correct misspellings found in source data. Preserve source text exactly.

View File

@ -0,0 +1,80 @@
{
"change_reason": "Initial OfficeBench MCP skill for evaluation runs",
"content_hash": "6afdd5a93ce552f39c1e285fc552059cfada7971e0d5bb91bcd56c6ca608ba17",
"created_at": "2026-05-27T00:00:00.000000+00:00",
"created_by": "codex",
"frontmatter": {
"always": true,
"description": "Guidance for OfficeBench evaluation tasks. Use the registered mcp_officebench_* tools to inspect and edit OfficeBench files, spreadsheets, documents, emails, calendars, PDFs, and answer files.",
"name": "officebench-mcp",
"tools": [
"mcp_officebench_excel_read_file",
"mcp_officebench_excel_set_cell",
"mcp_officebench_excel_delete_cell",
"mcp_officebench_excel_create_new_file",
"mcp_officebench_excel_convert_to_pdf",
"mcp_officebench_word_read_file",
"mcp_officebench_word_write_to_file",
"mcp_officebench_word_create_new_file",
"mcp_officebench_word_convert_to_pdf",
"mcp_officebench_email_list_emails",
"mcp_officebench_email_read_email",
"mcp_officebench_email_send_email",
"mcp_officebench_calendar_create_event",
"mcp_officebench_calendar_list_events",
"mcp_officebench_calendar_delete_event",
"mcp_officebench_pdf_read_file",
"mcp_officebench_pdf_convert_to_word",
"mcp_officebench_pdf_convert_to_image",
"mcp_officebench_ocr_recognize_file",
"mcp_officebench_shell_command",
"mcp_officebench_shell_list_directory",
"mcp_officebench_shell_read_file",
"mcp_officebench_shell_write_file",
"mcp_officebench_shell_copy_file",
"mcp_officebench_system_finish_task",
"mcp_officebench_system_get_status",
"mcp_officebench_image_convert_to_pdf"
]
},
"parent_version": null,
"provenance": {
"source": "officebench_mcp",
"source_kind": "workspace"
},
"review_state": "published",
"skill_name": "officebench-mcp",
"summary": "OfficeBench MCP skill for using registered mcp_officebench_* tools correctly during evaluation runs.",
"summary_hash": "914d6759650fce29884f648b84929e0482475c3ccd6601e9903c9b8b826dd874",
"tool_hints": [
"mcp_officebench_excel_read_file",
"mcp_officebench_excel_set_cell",
"mcp_officebench_excel_delete_cell",
"mcp_officebench_excel_create_new_file",
"mcp_officebench_excel_convert_to_pdf",
"mcp_officebench_word_read_file",
"mcp_officebench_word_write_to_file",
"mcp_officebench_word_create_new_file",
"mcp_officebench_word_convert_to_pdf",
"mcp_officebench_email_list_emails",
"mcp_officebench_email_read_email",
"mcp_officebench_email_send_email",
"mcp_officebench_calendar_create_event",
"mcp_officebench_calendar_list_events",
"mcp_officebench_calendar_delete_event",
"mcp_officebench_pdf_read_file",
"mcp_officebench_pdf_convert_to_word",
"mcp_officebench_pdf_convert_to_image",
"mcp_officebench_ocr_recognize_file",
"mcp_officebench_shell_command",
"mcp_officebench_shell_list_directory",
"mcp_officebench_shell_read_file",
"mcp_officebench_shell_write_file",
"mcp_officebench_shell_copy_file",
"mcp_officebench_system_finish_task",
"mcp_officebench_system_get_status",
"mcp_officebench_image_convert_to_pdf"
],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "通过 Outlook MCP 进行邮件收发、日历管理和会议安排。支持 Graph API 和 on-prem Exchange。",
"display_name": "outlook-mail",
"lineage": [],
"name": "outlook-mail",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["outlook", "email", "calendar", "mcp", "microsoft"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,150 @@
---
name: outlook-mail
description: 通过 Outlook MCP 进行邮件收发、日历管理和会议安排。支持 Graph API 和 on-prem Exchange。
tools:
- mcp_outlook_mcp_mail_list_folders
- mcp_outlook_mcp_mail_list_messages
- mcp_outlook_mcp_mail_search_messages
- mcp_outlook_mcp_mail_get_message
- mcp_outlook_mcp_mail_send_email
- mcp_outlook_mcp_mail_reply_to_message
- mcp_outlook_mcp_mail_forward_message
- mcp_outlook_mcp_mail_move_message
- mcp_outlook_mcp_mail_delta_sync
- mcp_outlook_mcp_calendar_list_events
- mcp_outlook_mcp_calendar_create_event
- mcp_outlook_mcp_calendar_update_event
- mcp_outlook_mcp_calendar_get_schedule
- mcp_outlook_mcp_calendar_find_meeting_times
- mcp_outlook_mcp_calendar_delta_sync
---
# Outlook MCP — 邮件与日历管理
通过 MCP server 连接 OutlookMicrosoft Graph / on-prem Exchange提供邮件和日历的完整操作能力。
## 邮件工具
### mcp_outlook_mcp_mail_list_folders
列出 Outlook 邮件文件夹。
- `top` (int, 默认 50): 返回数量上限
### mcp_outlook_mcp_mail_list_messages
列出指定文件夹的邮件。
- `folder` (str, 默认 "inbox"): 文件夹名
- `top` (int, 默认 20): 返回条数
- `skip` (int, 默认 0): 跳过的条数
- `unread_only` (bool, 默认 false): 仅未读
### mcp_outlook_mcp_mail_search_messages
搜索邮件(使用 Graph search 语义)。
- `query` (str): 搜索关键词
- `folder` (str | None): 限定文件夹
- `top` (int, 默认 20): 返回条数
### mcp_outlook_mcp_mail_get_message
读取单封邮件的完整内容。
- `message_id` (str): 邮件 ID
- `changekey` (str | None): EWS changekeyon-prem 需要)
### mcp_outlook_mcp_mail_send_email
发送新邮件。**幂等操作**,支持 idempotency_key。
- `subject` (str): 主题
- `body` (str): 正文(支持 HTML
- `to_recipients` (list[str]): 收件人
- `cc_recipients` (list[str] | None): 抄送
- `bcc_recipients` (list[str] | None): 密送
- `idempotency_key` (str | None): 幂等键,防止重复发送
### mcp_outlook_mcp_mail_reply_to_message
回复一封邮件。
- `message_id` (str): 原邮件 ID
- `comment` (str): 回复内容
- `changekey` (str | None): EWS changekey
- `idempotency_key` (str | None)
### mcp_outlook_mcp_mail_forward_message
转发邮件给其他人。
- `message_id` (str): 原邮件 ID
- `to_recipients` (list[str]): 转发目标
- `comment` (str): 附加说明
- `cc_recipients` (list[str] | None)
- `changekey` (str | None)
- `idempotency_key` (str | None)
### mcp_outlook_mcp_mail_move_message
移动邮件到其他文件夹。
- `message_id` (str): 邮件 ID
- `destination_folder` (str): 目标文件夹
- `changekey` (str | None)
- `idempotency_key` (str | None)
### mcp_outlook_mcp_mail_delta_sync
增量同步邮件变更。支持游标持久化,适合长期同步场景。
- `folder` (str, 默认 "inbox"): 文件夹
- `delta_link` (str | None): 增量链接(续传时提供)
- `top` (int, 默认 50)
- `persist_cursor` (bool, 默认 true): 是否持久化游标
## 日历工具
### mcp_outlook_mcp_calendar_list_events
列出日历事件或日历视图。
- `start_time` (str | None): ISO 开始时间,与 end_time 成对提供
- `end_time` (str | None): ISO 结束时间
- `top` (int, 默认 20)
- `skip` (int, 默认 0)
### mcp_outlook_mcp_calendar_create_event
创建日历事件或正式会议邀请。**幂等操作**。
- `subject` (str): 主题
- `start_time` (str): ISO 开始时间
- `end_time` (str): ISO 结束时间
- `timezone` (str, 默认 "UTC"): 时区
- `body` (str | None): 正文
- `location` (str | None): 地点
- `attendees` (list[str] | None): 参会人
- `is_online_meeting` (bool, 默认 false): 是否创建 Teams 会议
- `online_meeting_provider` (str, 默认 "teamsForBusiness"): 在线会议提供商
- `transaction_id` (str | None): 事务 ID
- `idempotency_key` (str | None)
### mcp_outlook_mcp_calendar_update_event
更新已有日历事件。
- `event_id` (str): 事件 ID
- `subject` / `start_time` / `end_time` / `timezone` / `body` / `location` / `attendees`: 可选更新字段
- `idempotency_key` (str | None)
### mcp_outlook_mcp_calendar_get_schedule
查询与会人忙闲状态。
- `schedules` (list[str]): 要查询的人员列表
- `start_time` (str): ISO 开始
- `end_time` (str): ISO 结束
- `availability_view_interval` (int, 默认 30): 时间间隔(分钟)
- `timezone` (str, 默认 "UTC")
### mcp_outlook_mcp_calendar_find_meeting_times
推荐最佳会议时间。
- `attendees` (list[str]): 参会人
- `start_time` (str): 时间范围开始
- `end_time` (str): 时间范围结束
- `duration_minutes` (int, 默认 30): 会议时长
- `timezone` (str, 默认 "UTC")
- `max_candidates` (int, 默认 10): 候选数
### mcp_outlook_mcp_calendar_delta_sync
增量同步日历事件变更。
- `start_time` (str): 同步窗口开始
- `end_time` (str): 同步窗口结束
- `delta_link` (str | None): 增量续传链接
- `top` (int, 默认 50)
- `persist_cursor` (bool, 默认 true)
- `cursor_key` (str, 默认 "calendar:primary")
## 使用原则
1. 邮件操作优先使用幂等键idempotency_key防止重复发送
2. 日历时间参数统一使用 ISO 8601 格式
3. 增量同步时优先使用返回的 delta_link 续传,避免全量拉取
4. 发送邮件前确认收件人地址格式正确
5. 创建会议时明确时区,避免跨时区混淆

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for Outlook MCP mail and calendar operations",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "通过 Outlook MCP 进行邮件收发、日历管理和会议安排。支持 Graph API 和 on-prem Exchange。",
"name": "outlook-mail",
"tools": ["mcp_outlook_mcp_mail_list_folders", "mcp_outlook_mcp_mail_list_messages", "mcp_outlook_mcp_mail_search_messages", "mcp_outlook_mcp_mail_get_message", "mcp_outlook_mcp_mail_send_email", "mcp_outlook_mcp_mail_reply_to_message", "mcp_outlook_mcp_mail_forward_message", "mcp_outlook_mcp_mail_move_message", "mcp_outlook_mcp_mail_delta_sync", "mcp_outlook_mcp_calendar_list_events", "mcp_outlook_mcp_calendar_create_event", "mcp_outlook_mcp_calendar_update_event", "mcp_outlook_mcp_calendar_get_schedule", "mcp_outlook_mcp_calendar_find_meeting_times", "mcp_outlook_mcp_calendar_delta_sync"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "outlook-mail",
"summary": "Outlook MCP — 邮件与日历管理。通过 MCP server 连接 Outlook提供邮件和日历的完整操作能力。",
"summary_hash": "placeholder",
"tool_hints": ["mcp_outlook_mcp_mail_list_folders", "mcp_outlook_mcp_mail_list_messages", "mcp_outlook_mcp_mail_search_messages", "mcp_outlook_mcp_mail_get_message", "mcp_outlook_mcp_mail_send_email", "mcp_outlook_mcp_mail_reply_to_message", "mcp_outlook_mcp_mail_forward_message", "mcp_outlook_mcp_mail_move_message", "mcp_outlook_mcp_mail_delta_sync", "mcp_outlook_mcp_calendar_list_events", "mcp_outlook_mcp_calendar_create_event", "mcp_outlook_mcp_calendar_update_event", "mcp_outlook_mcp_calendar_get_schedule", "mcp_outlook_mcp_calendar_find_meeting_times", "mcp_outlook_mcp_calendar_delta_sync"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "技能Skill列表查看、内容加载和草稿管理。用于浏览已发布技能和创建新技能草稿。",
"display_name": "skills-admin",
"lineage": [],
"name": "skills-admin",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["skills", "admin", "management", "draft"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,42 @@
---
name: skills-admin
description: 技能Skill列表查看、内容加载和草稿管理。用于浏览已发布技能和创建新技能草稿。
tools:
- skills_list
- skill_manage
- skill_view
---
# Skills Admin — 技能管理
查看已发布的技能列表、加载技能详情和创建新技能草稿。
## 工具说明
### skills_list
列出系统中所有可用技能及其描述。
- 返回技能名称、描述和版本
- 用于浏览当前可用的技能
### skill_view
加载某个技能的完整正文或支持文件。
- `name` (str): 技能名称
- `file_path` (str | None): 可选的支持文件路径
- 不传文件路径时返回 SKILL.md 主内容
- 支持按需加载 references/、templates/ 等目录
### skill_manage
创建新技能草稿draft
- `action` (str): 仅支持 "create_draft"
- `name` (str): 技能名称
- `description` (str): 技能描述
- `content` (str): 技能正文SKILL.md 格式)
- 创建的草稿需经过 review → publish 流程
## 使用原则
1. 需要参考某个技能的详细内容时,先 `skills_list` 找到名称,再用 `skill_view` 加载
2. 创建新技能时先写清楚 description便于后续被 selector 选中
3. 技能正文使用标准 frontmatter + Markdown 格式
4. 支持文件放在 skill 目录的 references/、templates/、scripts/ 等子目录
5. Draft 创建后需要走 review/publish 流程才能生效

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for skills management",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "技能Skill列表查看、内容加载和草稿管理。用于浏览已发布技能和创建新技能草稿。",
"name": "skills-admin",
"tools": ["skills_list", "skill_manage", "skill_view"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "skills-admin",
"summary": "Skills Admin — 技能列表查看、内容加载和草稿管理",
"summary_hash": "placeholder",
"tool_hints": ["skills_list", "skill_manage", "skill_view"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "Shell 命令执行、后台进程管理和 Python 代码执行。支持超时控制和后台运行。",
"display_name": "terminal-operation",
"lineage": [],
"name": "terminal-operation",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["terminal", "shell", "command", "process", "execution"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,46 @@
---
name: terminal-operation
description: Shell 命令执行、后台进程管理和 Python 代码执行。支持超时控制和后台运行。
tools:
- terminal
- process
- execute_code
---
# Terminal Operation — 终端与进程管理
Shell 命令执行、后台进程管理和 Python 代码执行工具集。
## 工具说明
### terminal
执行 shell 命令。
- `command` (str): 要执行的命令
- `working_dir` (str, 默认 "."): 工作目录
- `timeout` (int, 默认 60): 超时秒数(最大 600
- `background` (bool, 默认 false): 是否后台运行
- 后台运行时返回 process_id可通过 process 工具管理
### process
管理后台进程。
- `action` (str): `list` | `log` | `kill`
- `process_id` (str | None): 进程 ID
- `list`: 列出所有后台进程
- `log`: 查看进程日志(最后 12000 字节)
- `kill`: 终止进程(先 SIGTERM5 秒后 SIGKILL
### execute_code
执行 Python 代码片段。
- `code` (str): Python 代码
- `language` (str, 默认 "python"): 仅支持 python
- `timeout` (int, 默认 30, 最大 120): 执行超时
- `working_dir` (str, 默认 "."): 工作目录
- 适合快速验证脚本逻辑,不适合长期运行任务
## 使用原则
1. 长期运行任务使用 `background=true`
2. 执行危险命令rm -rf、dd、格式化等前必须确认用户意图
3. `execute_code` 适合轻量脚本验证,重型任务用 `terminal`
4. 后台进程用完后及时 kill 清理
5. 注意命令注入风险,不要直接拼接用户输入

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for terminal and process management",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "Shell 命令执行、后台进程管理和 Python 代码执行。支持超时控制和后台运行。",
"name": "terminal-operation",
"tools": ["terminal", "process", "execute_code"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "terminal-operation",
"summary": "Terminal Operation — Shell 命令执行、后台进程管理、Python 代码执行",
"summary_hash": "placeholder",
"tool_hints": ["terminal", "process", "execute_code"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "辅助工具集包括任务分解Todo、任务委托Delegate、子 Agent 生成Spawn、消息发送和需求澄清Clarify。",
"display_name": "utility-tools",
"lineage": [],
"name": "utility-tools",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["utility", "delegate", "todo", "spawn", "clarify"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,52 @@
---
name: utility-tools
description: 辅助工具集包括任务分解Todo、任务委托Delegate、子 Agent 生成Spawn、消息发送和需求澄清。
tools:
- clarify
- delegate
- send_message
- spawn
- todo
---
# Utility Tools — 辅助工具集
任务管理、委托和协作的辅助工具。
## 工具说明
### todo (TodoWrite)
创建和管理任务列表,跟踪复杂任务的进度。
- 适合多步骤、复杂任务时使用
- 标记当前正在进行的任务
- 完成后立即更新状态
### delegate (DelegateTool)
将任务委托给专门的子 Agent 执行。
- 适合独立、可并行的工作
- 委托时提供清晰的上下文和目标
- 子 Agent 完成后再整合结果
### spawn (SpawnTool)
启动新的 Agent 实例执行特定任务。
- 适合需要独立运行的工作
- 支持后台运行(不阻塞主流程)
### send_message (SendMessageTool)
与其他 Agent 或团队成员通信。
- 适合多 Agent 协作场景
- 消息会直接送达目标
### clarify (ClarifyTool)
当需求不明确时向用户提问澄清。
- 提供 2-4 个选项供用户选择
- 附带推荐选项和理由
- 避免模糊提问,给出明确建议
## 使用原则
1. 复杂任务先创建 Todo 列表,明确步骤
2. 可并行的工作使用 Delegate/Spawn 分散执行
3. 需求不明确时主动 Clarify不要猜测
4. 多 Agent 协作时保持通信简洁
5. 记得到 todo list 更新进度

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for utility and delegation tools",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "辅助工具集包括任务分解Todo、任务委托Delegate、子 Agent 生成Spawn、消息发送和需求澄清。",
"name": "utility-tools",
"tools": ["clarify", "delegate", "send_message", "spawn", "todo"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "utility-tools",
"summary": "Utility Tools — 任务管理、委托和协作辅助工具集",
"summary_hash": "placeholder",
"tool_hints": ["clarify", "delegate", "send_message", "spawn", "todo"],
"version": "v0001"
}

View File

@ -0,0 +1,3 @@
{
"current_version": "v0001"
}

View File

@ -0,0 +1,13 @@
{
"created_at": "2026-05-26T00:00:00.000000+00:00",
"current_version": "v0001",
"description": "网页内容抓取和搜索引擎查询。支持任意 URL 抓取、多搜索引擎和结构化数据提取。",
"display_name": "web-operation",
"lineage": [],
"name": "web-operation",
"owners": ["system"],
"source_kind": "initial",
"status": "active",
"tags": ["web", "search", "fetch", "crawl"],
"updated_at": "2026-05-26T00:00:00.000000+00:00"
}

View File

@ -0,0 +1,36 @@
---
name: web-operation
description: 网页内容抓取和搜索引擎查询。支持任意 URL 抓取、多搜索引擎和结构化数据提取。
tools:
- web_fetch
- web_search
---
# Web Operation — 网络抓取与搜索
网页抓取和网络搜索工具集。
## 工具说明
### web_fetch
获取指定 URL 的网页内容并转换为 Markdown。
- 支持 HTML → Markdown 自动转换
- 可使用 prompt 参数提取特定信息
- 结果由 AI 总结后返回
- HTTP URL 自动升级为 HTTPS
- 含 15 分钟缓存
### web_search
搜索引擎查询,获取最新网络信息。
- 支持 domain 过滤include/block
- 搜索当前日期的信息使用正确年份
- 返回结果包含 URL 链接
## 使用原则
1. 优先使用 `web_search` 搜索信息,再用 `web_fetch` 深入阅读
2. 获取动态/需要认证的页面可能失败,此时尝试简化请求或换源
3. 抓取 API 文档时注意区分 REST API 和 GraphQL
4. 搜索结果必须标注来源链接
5. 避免短时间内大量请求同一站点(限频)
6. 不抓取需要登录认证的私密页面

View File

@ -0,0 +1,22 @@
{
"change_reason": "Initial skill for web fetching and searching",
"content_hash": "placeholder",
"created_at": "2026-05-26T00:00:00.000000+00:00",
"created_by": "system",
"frontmatter": {
"description": "网页内容抓取和搜索引擎查询。支持任意 URL 抓取、多搜索引擎和结构化数据提取。",
"name": "web-operation",
"tools": ["web_fetch", "web_search"]
},
"parent_version": null,
"provenance": {
"source": "initial_skills",
"source_kind": "initial"
},
"review_state": "published",
"skill_name": "web-operation",
"summary": "Web Operation — 网页抓取与网络搜索工具集",
"summary_hash": "placeholder",
"tool_hints": ["web_fetch", "web_search"],
"version": "v0001"
}