## 摘要 / Summary ### 中文 #56 的复盘修正。上一轮"强改写压缩"把四技能 L1 的**技术属性、使用场景与交互示范当套话一刀切**,造成实质信息丢失(承诺"意图全保留"但未做到)。本 PR 补回: - **create**:`创建仓库符合 AgentFS v2 规范、git 管理版本(可治理/可追溯)`定位;`基础创建`形态(name+description,description 自动填充 persona L0);需求收集的**引导问题示例**("起什么名字?/主要负责什么?"…);企业部署/开发者原型使用场景。 - **update**:`agent 目录 git 管理版本、历史可追溯`定位 + 使用场景。 - **discover**:使用场景(浏览/新用户/找替代)+ `语义匹配而非关键词搜索`。 - **delete**:使用场景(清理/测试/释放存储)。 根因:L1 混着实质技术属性与营销套话、使用场景是触发判据、引导问题是交互示范,不该按"只留独有信息"一刀切。补回后仍保留结构性压缩(zh 正文合计仍降 ~64%)。版本 create 2.5.2 / update 3.1.3 / delete 2.5.2 / discover 2.6.2,manifest 1.2.13,中英双份同步、重算 source_hash(validate-i18n 通过)。 ### English Post-mortem fix for #56. The previous aggressive compression treated the skills' L1 technical attributes, use cases, and interaction demos as boilerplate and cut them in a blanket way, dropping substantive information (the "all intent preserved" claim wasn't fully met). This PR restores: create's AgentFS-v2 / git-version-management positioning, the "basic create" form (name+description auto-filling persona L0), the requirement-gathering prompt questions, and enterprise/developer use cases; update's git-versioned/traceable positioning and use cases; discover's use cases and "semantic match, not keyword search"; delete's use cases. Root cause: L1 mixed real technical attributes with marketing boilerplate, use cases are trigger cues, and prompt questions are interaction demos — none should have been blanket-cut. Structural compression is retained (zh bodies still ~64% smaller). Versions bumped, manifest 1.2.13, both locales synced, source hashes recomputed (validate-i18n passes).
8.0 KiB
name, description, version, type, risk_level, status, disable-model-invocation, tags, metadata, market
| name | description | version | type | risk_level | status | disable-model-invocation | tags | metadata | market | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| create-agent | 通过多轮对话收集需求,调用 ManageAgent 内置工具创建新的 AgentFS v2 智能体,支持自定义 persona 和 principles。Use when 用户要求创建新智能体、培养某领域助手、或快速基于模板生成可治理 Agent。 | 2.5.2 | meta | low | enabled | true |
|
|
|
create-agent skill
L0: One-Sentence Summary
Collect requirements through natural-language conversation and call the ManageAgent builtin tool to create a specialized digital Agent.
L1: Overview
Meta-skill: gather requirements over multi-turn conversation → generate persona/principles → land via ManageAgent(action='create'). Use it to raise a domain specialist (legal advisor, financial analyst), deploy a customized business Agent quickly, or produce a prototype from a template. The created repo conforms to the AgentFS v2 spec and is version-managed by git (governable, traceable). Its value is what the tool can't give: domain-tailored persona/principles generation + a pre-create preview confirmation.
L2: Detailed Spec
Flow: intent recognition → requirement gathering → content generation → user confirmation → creation → receipt.
Stage 1: Intent Recognition
Trigger (any): user explicitly says "create an Agent / make me an assistant"; describes a domain-specific need the current Agent lacks; asks "can you raise a …". Confirm intent, then move to requirement gathering.
Stage 2: Requirement Gathering
- Required (parenthesized = example prompt question):
name("what to name it?"),role("what does it mainly do?"),target_users("who will use it?"),domain("what expertise does it need?"). - Optional:
style(communication tone),boundaries(red lines),language(default Chinese) — defaults derived from the domain template. - Strategy: prefer inferring from the user's natural description; only ask for missing required fields; at most 2 questions per turn.
Stage 3: Content Generation
Organize persona and principles as structured fields (do not emit raw markdown; present field-by-field). Leave uncollected fields empty for the system to fill with defaults:
- persona: L0 one-sentence core identity; L1
role/personality(array of trait tags) /communication_style; L2 specialty, values, decision preferences (free-form). - principles: L0 one-sentence top principle; L1
must_do/must_not(safety red lines) /priority; L2 governance principles, escalation rules (free-form).
Domain matching reference (recommend personality and red lines by domain):
| Domain | Recommended personality | Default must_not |
|---|---|---|
| Legal / contract | Professional, rigorous, prudent | No litigation representation; not a substitute for formal legal advice |
| Finance / accounting / investment | Precise, analytical, conservative | No investment advice; no real transactions |
| Code / development / architecture | Logical, pragmatic, direct | No direct production access; no credential storage |
| General / other | Friendly, helpful | Standard safety norms |
Stage 4: User Confirmation
Present the preview in natural language / tables (name, description, persona, principles; no raw markdown source), e.g.:
About to create "Legal Advisor Assistant" — focused on contract review and legal risk assessment. Persona: digital legal advisor; professional, rigorous, prudent; uses legal terms accurately with plain-language explanations. Principles: user interest first, not a substitute for formal legal advice; must — cite statutes / mark uncertainty / recommend consulting a lawyer; must not — litigation representation / leaking consultations; priority: user safety > accuracy > efficiency. Confirm creation? (Confirm / Modify / Cancel)
If the user picks "Modify": ask which field → re-collect that field → update the preview → show and confirm again.
Stage 5: Create via ManageAgent
Structured call (persona/principles also accept markdown strings; unprovided fields are auto-filled):
ManageAgent({
"action": "create",
"name": "Legal Advisor Assistant",
"description": "A digital Agent focused on contract review and legal risk assessment",
"persona": { "L0": "…", "L1": { "role": "…", "personality": ["professional","rigorous","prudent"], "communication_style": "…" } },
"principles": { "L0": "…", "L1": { "must_do": ["…"], "must_not": ["…"], "priority": "user safety > accuracy > efficiency" } }
})
- Minimal create needs only
{ "action": "create", "name": "My Assistant" }(everything else auto-generated). - Basic create
{ "action": "create", "name": "Legal Advisor", "description": "contract review" }— with just name + description, the description auto-fills persona's L0. - Optional
id(kebab-case slug;core/desirecoreare reserved core identifiers and cannot be used, including when the slug auto-generated fromnamecollides),config.llm(llm delta only; sensitive fields like mcp_servers are rejected and must be adjusted via the UI after creation). - The Agent is registered and usable immediately; the returned ID works directly with ManageTeam / Delegate. If the tool errors (already exists / reserved identifier / non-whitelisted config field, etc.), explain the reason and retry after adjusting per the hint.
Stage 6: Receipt
Present in a user-friendly way (no internal paths / technical details): confirm success and suggest next steps — start chatting, add skills, adjust persona or rules.
Background and Constraints
- AgentFS structure, troubleshooting, and protected paths: see
_agentfs-background.mdand_protected-paths.yaml. - Always create via
ManageAgent; never use curl / HTTP or write AgentFS directories directly. Requires client ≥ 10.0.90.