mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-07-23 06:23:42 +08:00
perf(skills): 智能体 CRUD 四技能提示词改写压缩(功能不变,~65%) (#56)
## 摘要 / Summary ### 中文 四个智能体管理技能(create/update/delete/discover-agent)改用 `ManageAgent` 内置工具后,正文与工具契约大量重叠——ManageAgent 的 description + params 已**常驻每次 query 的上下文**,声明了五个 action 语义、参数约束、权限硬边界、错误语义、字段级合并、确认行为、list/get 返回格式;技能正文里再复述即冗余。本次对四技能做**强改写·语境融合**压缩: - 与工具契约重复的说明(参数/权限/错误码/确认行为/成功返回话术)**改写融入对应流程步骤**(如错误处理表 → 阶段一句、确认行为 → 阶段一句),不再照抄、不再表格化。 - 装饰性 ASCII 流程框图 → 一行文字流程;update 内部两张重复更新表 → 合并;YAML 元数据块(diff_metadata/context_handoff)融入流程;冗长示例(create 三份 JSON、update 附录 4 示例、discover ASCII 卡片)就地精简为代表示意。 - **不外置 references、不净删除任何内容**:所有决策/领域/交互意图完整保留——领域匹配表、persona/principles 的 L0/L1/L2 生成规范、update 两路径分流与字段级合并 vs 整体替换、防幻觉改名、回滚流程、discover 需求维度与无匹配衔接 create 等核心一字未丢。 zh 正文合计 **26542 → 9196 字符(降 ~65%)**;中英双份同步改写、逐段对齐,重算 i18n source_hash(validate-i18n 通过)。版本 create 2.5.1 / update 3.1.2 / delete 2.5.1 / discover 2.6.1,manifest 1.2.12。 ### English After the four agent-management skills adopted the `ManageAgent` builtin tool, their bodies heavily duplicated the tool contract — ManageAgent's description + params are **resident in every query's context** (action semantics, param constraints, permission hard-boundaries, error semantics, field-level merge, confirmation behavior, list/get return formats). This PR compresses all four via **aggressive rewrite + contextual fusion**: contract-duplicating text is rewritten into the relevant flow steps (not copied, not tabularized), decorative ASCII flow boxes become one-line text, update's two duplicate tables are merged, YAML metadata blocks are folded in, and long examples are trimmed in place to representative sketches. **No references externalization, no net deletion** — every decision/domain/interaction intent is preserved (domain matching table, persona/principles L0/L1/L2 generation spec, update's two-path split and field-level-merge-vs-full-replace, anti-hallucination rename, rollback flow, discover's need dimensions and create hand-off). zh bodies total **26542 → 9196 chars (~65% down)**; both locales rewritten and aligned, i18n source hashes recomputed (validate-i18n passes). Versions bumped, manifest 1.2.12.
This commit is contained in:
@@ -6,241 +6,45 @@
|
||||
|
||||
根据用户需求描述,在已注册的智能体中匹配并推荐最合适的 Agent。
|
||||
|
||||
## L1:概述与使用场景
|
||||
## L1:概述
|
||||
|
||||
### 能力描述
|
||||
|
||||
discover-agent 是一个**流程型技能(Procedural Skill)**,赋予 DesireCore 为用户发现和推荐合适智能体的能力。它通过理解用户需求描述,在已注册的 Agent 列表中进行多维度匹配,展示候选列表供用户选择。
|
||||
|
||||
### 使用场景
|
||||
|
||||
- 用户描述了一个需求,但不知道该找哪个智能体帮忙
|
||||
- 用户想浏览当前可用的智能体及其能力
|
||||
- 用户需要为特定任务找到最合适的专业助手
|
||||
- 新用户初次使用系统,需要了解有哪些智能体可用
|
||||
- 用户对当前智能体的表现不满意,想寻找更合适的替代者
|
||||
|
||||
### 核心价值
|
||||
|
||||
- **降低门槛**:用户无需记住每个智能体的名称和能力
|
||||
- **精准匹配**:基于需求语义进行智能推荐,而非简单关键词搜索
|
||||
- **流畅衔接**:无匹配时自动建议创建新 Agent(衔接 create-agent 技能)
|
||||
流程型技能:理解需求 → `ManageAgent(action='list')` 检索 → 语义匹配评分 → 排序展示 → 引导选择;无匹配时自动衔接 create-agent。价值在工具给不了的部分:需求语义匹配、候选排序与呈现、无匹配时的创建衔接。`list` / `get` 只读免审批。
|
||||
|
||||
## L2:详细规范
|
||||
|
||||
### 执行流程
|
||||
|
||||
```
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ 需求理解 │ ──→ │ Agent 检索 │ ──→ │ 匹配评分 │
|
||||
└──────────────┘ └──────────────┘ └──────────────┘
|
||||
│
|
||||
↓
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ 引导选择 │ ←── │ 结果展示 │ ←── │ 候选排序 │
|
||||
└──────────────┘ └──────────────┘ └──────────────┘
|
||||
```
|
||||
流程:需求理解 → 检索 → 匹配评估 → 排序 → 展示 → 引导选择。
|
||||
|
||||
### 阶段 1:需求理解
|
||||
|
||||
**触发条件**(任一满足):
|
||||
触发(任一):用户说"帮我找一个… / 有没有… / 谁能帮我…"、描述任务但未指定智能体、"有哪些智能体",或系统检测到需求与当前 Agent 能力不匹配。从描述提取维度:`domain`(领域,如法律/财务/技术/教育)、`task_type`(咨询/审查/分析/创作)、`keywords`(合同/报表/代码/论文…)、`urgency`(日常/紧急)。
|
||||
|
||||
- 用户说"帮我找一个..."、"有没有..."、"谁能帮我..."
|
||||
- 用户描述了一个任务但未指定具体智能体
|
||||
- 用户说"有哪些智能体"、"看看都有谁"
|
||||
- 系统检测到用户需求与当前 Agent 能力不匹配
|
||||
### 阶段 2:检索
|
||||
|
||||
**需求解析**:
|
||||
|
||||
从用户描述中提取以下维度:
|
||||
|
||||
| 维度 | 说明 | 示例 |
|
||||
| ----------- | -------- | ---------------------- |
|
||||
| `domain` | 专业领域 | 法律、财务、技术、教育 |
|
||||
| `task_type` | 任务类型 | 咨询、审查、分析、创作 |
|
||||
| `keywords` | 关键词 | 合同、报表、代码、论文 |
|
||||
| `urgency` | 紧急程度 | 日常 / 紧急 |
|
||||
|
||||
### 阶段 2:Agent 检索
|
||||
|
||||
**数据源**:调用 `ManageAgent(action='list')` 获取所有已注册的智能体列表。
|
||||
|
||||
**工具调用**:
|
||||
|
||||
```
|
||||
ManageAgent(action='list')
|
||||
```
|
||||
|
||||
**返回内容**:一份紧凑列表,每行包含以下关键字段:
|
||||
|
||||
- `name` — 智能体名称
|
||||
- `id` — 智能体唯一标识
|
||||
- `status` — 当前状态(online/busy/idle/offline)
|
||||
- `description` — 智能体描述
|
||||
|
||||
> `list` 为只读查询,无需用户确认、免审批。
|
||||
|
||||
**过滤规则**:
|
||||
|
||||
- 默认展示除 offline 之外的智能体,offline 智能体仅在无更优候选时作为补充展示
|
||||
- 排除系统内部智能体(如 DesireCore 自身,除非用户显式要求)
|
||||
`ManageAgent(action='list')` 取全部已注册智能体(返回 name / id / status / description 的紧凑列表)。过滤:默认展示 offline 之外的,offline 仅在无更优候选时补充;排除系统内部智能体(如 DesireCore 自身,除非用户显式要求)。
|
||||
|
||||
### 阶段 3:匹配评估
|
||||
|
||||
根据以下维度综合判断匹配度(使用 LLM 语义理解,非公式计算):
|
||||
用 LLM 语义理解综合判断匹配度(非公式计算):description / persona 与需求的相关性、skills 与任务类型的关联、领域契合度、状态可用性(online 优先)。展示分级:高度匹配 → 标"推荐",部分匹配 → 标"可能相关",无明显关联 → 不展示。
|
||||
|
||||
| 维度 | 说明 |
|
||||
| ---------- | --------------------------------------------------- |
|
||||
| 描述相关性 | 智能体 description / persona 与用户需求的语义相关度 |
|
||||
| 技能匹配度 | 智能体拥有的 skills 与任务类型的关联度 |
|
||||
| 领域契合度 | 智能体专业领域与用户需求领域的契合程度 |
|
||||
| 状态可用性 | 智能体当前状态(online 优先于 offline) |
|
||||
### 阶段 4:排序
|
||||
|
||||
**展示规则**:
|
||||
|
||||
- 高度匹配(明确适合该任务)→ 标为"推荐"
|
||||
- 部分匹配(可能有帮助)→ 标为"可能相关"
|
||||
- 无明显关联 → 不展示
|
||||
|
||||
### 阶段 4:候选排序
|
||||
|
||||
**排序规则**:
|
||||
|
||||
1. 按综合得分降序排列
|
||||
2. 同分时 online 状态优先
|
||||
3. 最多展示 5 个候选
|
||||
综合得分降序;同分 online 优先;最多展示 5 个候选。
|
||||
|
||||
### 阶段 5:结果展示
|
||||
|
||||
**有匹配结果时**:
|
||||
|
||||
```
|
||||
根据你的需求,我推荐以下智能体:
|
||||
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ 1. 法律顾问助手 匹配度: 92% │
|
||||
│ 专注合同审查和法律风险评估 │
|
||||
│ 技能:合同审查、风险评估、法律研究 │
|
||||
│ 状态:在线 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ 2. AI 文书助手 匹配度: 71% │
|
||||
│ 专业文书撰写和格式优化 │
|
||||
│ 技能:文书撰写、格式排版、合规检查 │
|
||||
│ 状态:在线 │
|
||||
├─────────────────────────────────────────────────────┤
|
||||
│ 3. 数据分析师 匹配度: 45% │
|
||||
│ 数据分析和可视化报告 │
|
||||
│ 技能:数据分析、报表生成、趋势预测 │
|
||||
│ 状态:离线 │
|
||||
└─────────────────────────────────────────────────────┘
|
||||
|
||||
请选择一个智能体,或告诉我更具体的需求。
|
||||
```
|
||||
|
||||
**无匹配结果时**:
|
||||
|
||||
```
|
||||
目前没有找到完全匹配你需求的智能体。
|
||||
|
||||
你可以:
|
||||
1. 用更具体的描述再试一次
|
||||
2. 创建一个新的专业智能体(我可以帮你)
|
||||
3. 浏览所有可用的智能体
|
||||
|
||||
你想怎么做?
|
||||
```
|
||||
|
||||
**浏览模式**(用户要求查看所有):
|
||||
|
||||
```
|
||||
当前可用的智能体:
|
||||
|
||||
在线:
|
||||
- 法律顾问助手 — 合同审查和法律风险评估
|
||||
- AI 文书助手 — 专业文书撰写和格式优化
|
||||
|
||||
离线:
|
||||
- 数据分析师 — 数据分析和可视化报告
|
||||
- 翻译助手 — 多语言翻译和本地化
|
||||
|
||||
共 4 个智能体。需要了解某个智能体的详细信息吗?
|
||||
```
|
||||
- **有匹配**:列出候选,每个含名称、描述、关键技能、状态、匹配度,请用户选择或进一步细化需求。例如「1. 法律顾问助手(92%)——合同审查与法律风险评估;技能:合同审查 / 风险评估 / 法律研究;在线」。
|
||||
- **无匹配**:告知未找到,给三选项——用更具体描述重试 / 创建新专业智能体(衔接 create-agent)/ 浏览全部。
|
||||
- **浏览模式**(用户要看全部):按在线 / 离线分组列出名称 + 描述,问是否要看某个的详情。
|
||||
|
||||
### 阶段 6:引导选择
|
||||
|
||||
**用户选择后的操作**:
|
||||
- 选中某智能体 → 切换到该智能体的对话,传递用户需求上下文(source / target / user_intent)。
|
||||
- 要求了解更多 → `ManageAgent(action='get', id)` 取详情(名称 / 描述 / 状态 / 版本 / 技能数 / 工具数 / Git 状态),以自然语言或表格呈现关键信息,问是否对话。
|
||||
- 不满意候选 → 引导细化需求或建议创建新 Agent。
|
||||
- 选"创建新的" → 调 create-agent 技能,传递已收集的需求信息。
|
||||
|
||||
| 用户选择 | 后续操作 |
|
||||
| ---------------- | ----------------------------------------------------------------- |
|
||||
| 选择了某个智能体 | 切换到该智能体的对话,传递用户需求上下文 |
|
||||
| 要求了解更多 | 调用 `ManageAgent(action='get', id='<agent-id>')` 获取详情,展示结构化信息(见下方) |
|
||||
| 不满意候选 | 引导用户细化需求或建议创建新 Agent |
|
||||
| 选择"创建新的" | 调用 create-agent 技能,传递已收集的需求信息 |
|
||||
### 协作与错误处理
|
||||
|
||||
**"了解更多"的实现**:
|
||||
|
||||
调用 `ManageAgent(action='get', id='<agent-id>')` 获取指定智能体的详情:
|
||||
|
||||
```
|
||||
ManageAgent(action='get', id='legal-assistant')
|
||||
```
|
||||
|
||||
**返回内容中的关键字段**:
|
||||
|
||||
- 名称、描述、状态
|
||||
- 版本
|
||||
- 技能数 / 工具数
|
||||
- Git 仓库状态
|
||||
|
||||
> `get` 为只读查询,无需用户确认、免审批。目标不存在时返回错误「智能体不存在: <id>」。
|
||||
|
||||
向用户展示时,以自然语言/表格形式呈现关键信息:
|
||||
|
||||
```
|
||||
「法律顾问助手」详细信息
|
||||
|
||||
| 字段 | 内容 |
|
||||
|------|------|
|
||||
| 描述 | 专注合同审查和法律风险评估 |
|
||||
| 当前状态 | 在线 |
|
||||
| 版本 | 1.2.0 |
|
||||
| 技能 / 工具 | 3 个技能,5 个工具 |
|
||||
| Git 仓库 | 干净(无未提交变更) |
|
||||
|
||||
需要与这个智能体对话吗?
|
||||
```
|
||||
|
||||
**切换上下文传递**:
|
||||
|
||||
```yaml
|
||||
context_handoff:
|
||||
source_agent: desirecore
|
||||
target_agent: legal-assistant
|
||||
user_intent: '帮我审查这份合同的风险点'
|
||||
```
|
||||
|
||||
### 与其他技能的协作
|
||||
|
||||
| 协作技能 | 协作方式 |
|
||||
| --------------- | -------------------------------------------------- |
|
||||
| create-agent | 无匹配时建议创建新 Agent,传递用户需求作为初始信息 |
|
||||
| task-management | 匹配成功后可自动创建任务并分配给目标 Agent |
|
||||
|
||||
### 错误处理
|
||||
|
||||
| 错误场景 | 处理方式 |
|
||||
| --------------------- | -------------------------------- |
|
||||
| 工具调用失败 | 提示错误信息,建议稍后重试 |
|
||||
| Agent 列表为空 | 引导用户创建第一个智能体 |
|
||||
| 用户描述过于模糊 | 追问具体需求,提供领域选项引导 |
|
||||
| 目标智能体不存在 | `get` 返回「智能体不存在: <id>」时,回退到 `list` 重新确认可用智能体 |
|
||||
| 推荐的 Agent 状态异常 | 标注状态,建议选择其他在线 Agent |
|
||||
|
||||
### 权限要求
|
||||
|
||||
- 通过内置工具 `ManageAgent` 完成智能体检索与详情查询
|
||||
- `list` / `get` 均为只读查询,无需用户确认、免审批,无风险
|
||||
|
||||
### 依赖
|
||||
|
||||
- 内置工具 `ManageAgent`(`action='list'` 检索列表、`action='get'` 查询详情)
|
||||
- 协作:无匹配衔接 create-agent(传需求作初始信息);匹配成功后可创建任务并分配给目标 Agent。
|
||||
- 错误:工具调用失败 → 提示错误、建议重试;Agent 列表为空 → 引导创建第一个智能体;需求过于模糊 → 追问并给领域选项引导;`get` 返回「智能体不存在: <id>」→ 回退 `list` 重新确认可用智能体;推荐 Agent 状态异常 → 标注状态并建议选在线的。
|
||||
- `list` / `get` 均为只读、免审批、无风险,一律经 `ManageAgent` 完成。
|
||||
|
||||
Reference in New Issue
Block a user