Competitor Analysis
When asked to analyze competitors:
- Identify the top 3-5 competitors in the target segment
- For each competitor, assess:
- Product positioning and key differentiators
- Pricing model and tiers
- Target audience and market share estimates
- Strengths and weaknesses
- Create a comparison matrix
- Identify gaps and opportunities for differentiation
两个字段都有明确的工程含义:
- **`name`**:技能唯一标识,这里为 `competitor-analysis`,与技能目录名保持一致(目录见 [skills/competitor-analysis/](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/skills/competitor-analysis/?utm_source=gitcode_repo_files))。
- **`description`**:技能的“广告位”。它既说明技能做什么(Analyze competitors in a given market segment),又显式列出了**触发短语**(Trigger on: competitive landscape, competitor analysis, market comparison, competitive positioning)。模型正是靠这段描述判断“当前用户请求该不该调用此技能”。
### 源码印证:frontmatter 是如何被解析的
技能的解析逻辑在 [skills 中间件](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/libs/deepagents/deepagents/middleware/skills.py?utm_source=gitcode_repo_files) 中。从源码结构看,关键行为有四点,都与上面这份文件严格对应:
1. **frontmatter 缺失或非法会直接跳过**。解析函数用正则匹配 `---` 之间的 YAML 块,若找不到合法 frontmatter,只记录 warning 并跳过该技能文件([skills.py#L397-L401](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/libs/deepagents/deepagents/middleware/skills.py?utm_source=gitcode_repo_files#L397-L401))。
2. **`name` 和 `description` 是必填项**。解析时两者都取 `str(...).strip()`,任一为空即跳过该技能并告警 “missing required 'name' or 'description'”([skills.py#L417-L420](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/libs/deepagents/deepagents/middleware/skills.py?utm_source=gitcode_repo_files#L417-L420))。这解释了为什么示例文件的 frontmatter 恰好只有这两个字段——它们是最小合法集。
3. **可选字段还有 `allowed-tools`、`compatibility`、`metadata`、`license`**([skills.py#L448-L469](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/libs/deepagents/deepagents/middleware/skills.py?utm_source=gitcode_repo_files#L448-L469))。competitor-analysis 未声明 `allowed-tools`,即表示不额外限制工具,与它“纯推理 + 生成报告”的技能定位相符。
4. **渐进式披露(progressive disclosure)**。中间件注入系统提示时明确写着:*“you see their name and description above, but only read full instructions when needed”*([skills.py#L737](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/libs/deepagents/deepagents/middleware/skills.py?utm_source=gitcode_repo_files#L737))。也就是说,Agent 平时只看到 `name: competitor-analysis` 及其 description;只有请求命中触发条件时,才会读取完整正文并按四步流程执行。这正是把“触发词”写进 description 的原因——它承担了一级路由的职责。
## 正文设计:四步竞品分析工作流
技能正文是一份编号明确的执行清单,四步环环相扣:
| 步骤 | 动作 | 产出 |
|------|------|------|
| 1 | 在目标细分市场中识别 3–5 家头部竞争对手 | 竞品短名单 |
| 2 | 对每家竞品逐一评估:产品定位与关键差异化点、定价模型与档位、目标客群与市场份额估计、优势与劣势 | 单竞品画像 |
| 3 | 构建对比矩阵(comparison matrix) | 横向可比的表格化结论 |
| 4 | 识别差异化缺口与机会点(gaps and opportunities) | 可直接输入 GTM 策略的可执行洞察 |
这个写法有两条值得借鉴的模式:
- **“When asked to …”的条件式开头**。正文不是一段泛泛的角色扮演,而是绑定触发场景的行为规范,与 frontmatter 的 Trigger 短语互相呼应。
- **子项粒度可控**。第 2 步把“评估”拆成定位、定价、客群份额、优劣势四个固定维度,保证不同运行之间的输出结构一致,便于第 3 步的矩阵化汇总——对下游(如 GTM 策略章节)而言是可预期的结构化输入。
## 技能如何被用到:deploy-gtm-agent 的完整链路
competitor-analysis 不是一个孤立技能,而是 [deploy-gtm-agent 示例](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/README.md?utm_source=gitcode_repo_files) 中 supervisor 级技能。该示例是一个用 `deepagents deploy` 部署的 GTM(go-to-market)策略 Agent,协调一个**同步**的 market-researcher 子 Agent 和一个**异步**的 content-writer 子 Agent:市场研究阻塞等待结果后再写策略,内容创作在后台运行、就绪后并入最终方案。
### 1. 目录结构与配置
示例的实际目录为:
examples/deploy-gtm-agent/ ├── AGENTS.md # Supervisor Agent 指令 ├── agent.json # 部署配置(模型) ├── README.md ├── skills/ │ └── competitor-analysis/ │ └── SKILL.md # 本文档主角:竞品分析技能 └── subagents/ └── market-researcher/ ├── AGENTS.md ├── agent.json └── skills/ └── analyze-market/ └── SKILL.md
- **Supervisor 模型配置**:[agent.json](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/agent.json?utm_source=gitcode_repo_files) 声明 `name: deepagents-deploy-gtm-agent`,运行时模型为 `openai:gpt-5.4-nano`。
- **子 Agent 配置**:[subagents/market-researcher/agent.json](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/subagents/market-researcher/agent.json?utm_source=gitcode_repo_files) 使用 `openai:gpt-5.4-mini`,描述为“Researches market trends, competitors, and target audiences to inform GTM strategy”。
### 2. Supervisor 如何委派竞品分析
[顶层 AGENTS.md](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/AGENTS.md?utm_source=gitcode_repo_files) 定义了工作流:
1. 收到要发布的产品/功能后,先把市场研究委派给 market-researcher 子 Agent——明确列举的任务包括 **competitor analysis**、TAM/SAM/SOM 估算、受众分群;
2. 用研究结果制定覆盖定位、定价、渠道选择的 GTM 策略;
3. 通过 content-writer 异步子 Agent 发起所需的营销物料创作;
4. 监控异步任务并把交付物整合进最终 GTM 计划。
同时给出三条约束:所有建议必须基于 market-researcher 的研究数据;策略要附清晰理由与证据;给 content-writer 的内容简报必须包含目标受众、关键信息与语气指引。也就是说,competitor-analysis 产出的对比矩阵与机会点,会作为“研究数据”直接进入策略制定环节。
### 3. 子 Agent 侧的呼应技能
market-researcher 自带一个姊妹技能 [analyze-market/SKILL.md](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/subagents/market-researcher/skills/analyze-market/SKILL.md?utm_source=gitcode_repo_files),frontmatter 同样是 `name` + 带 Trigger 短语的 `description`(Trigger on: market analysis, market size, TAM SAM SOM, market opportunity, industry analysis),正文六步:界定市场边界 → 估算 TAM/SAM/SOM(含方法论)→ 关键趋势与增长驱动 → 绘制竞争格局 → 进入壁垒评估 → 给出机会总结与明确建议。
对比两个技能可以看到清晰的分工:**analyze-market 管“市场有多大、趋势是什么”,competitor-analysis 管“对手是谁、差距在哪”**。子 Agent 的 [AGENTS.md](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/subagents/market-researcher/AGENTS.md?utm_source=gitcode_repo_files) 还规定了交付规范:把完整 Markdown 报告写入 `/memories/subagents/market-researcher/market-research-report.md`,其余结构化字段仅作摘录,并在返回中给出 `full_report_path`——这让长报告与短摘要分离,避免污染上下文,是部署型 Agent 中处理长输出的实用做法。
## 部署与调用
按 [README](https://gitcode.com/GitHub_Trending/de/deepagents/blob/c71cd511841358c318b8fa6aa3222ecfd7890a64/examples/deploy-gtm-agent/README.md?utm_source=gitcode_repo_files) 的操作步骤:
1. **准备密钥**:`OPENAI_API_KEY`(模型访问)与 `LANGSMITH_API_KEY`(deploy 必需)。README 建议复制 `.env` 并填入密钥。
2. **一键部署**:
```bash
deepagents deploy
README 说明:subagents/ 下定义的子 Agent 会在部署时被发现并自动接线;同理,skills/ 下的技能(即 competitor-analysis)随 Agent 一并部署。
3. 在 LangSmith 中验证:部署后打开 Agent,README 给出的测试提示词恰好覆盖技能触发场景,例如 “Help us position our vector database product against Pinecone and Weaviate” ——这类“对标某几家竞品”的请求会命中 competitor-analysis 的触发词。
4. 通过 SDK 查询:
from langgraph_sdk import get_client
client = get_client(url="https://<your-deployment-url>")
thread = await client.threads.create()
async for chunk in client.runs.stream(
thread["thread_id"], "agent",
input={"messages": [{"role": "user", "content": "Build a GTM plan for our new Python SDK for AI agents"}]},
stream_mode="messages",
):
print(chunk.data, end="", flush=True)
部署 URL 在 LangSmith 的 Deployments 页面查看。
适用前提:该示例依赖 LangSmith 部署能力与 OpenAI 模型端点(openai:gpt-5.4-nano / openai:gpt-5.4-mini),更换模型需修改各自的 agent.json。
复刻一份同类技能:可复用模板
结合上面源码级的解析约束,编写一个新技能的最小模板如下:
---
name: my-skill-name
description: >-
One line stating what the skill does.
Trigger on: phrase one, phrase two, phrase three.
---
# My Skill Title
When asked to …:
1. Step with an explicit, checkable output
2. Step with fixed evaluation dimensions
3. Step producing a comparison/structured artifact
4. Step ending in actionable recommendations
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0631
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
video-shotcraftAI宣传片skill,使用 Remotion 制作电影级产品视频:提供106 张镜头配方卡和可复用的视频魔板。适用于 Claude Code 与 Codex以及所有其他智能体Markdown00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python09
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00