目录


什么是XML标签提示词

XML标签提示词是一种结构化的提示词编写方式,通过使用类似XML的标签来组织和标记提示词中的不同部分。这种方式让Claude更好地理解指令的结构和意图。

<instruction>
请帮我总结这段文字。
</instruction>

<input>
这是一段需要总结的长文本...
</input>

<format>
使用项目符号列表
</format>

为什么使用XML标签

1. 清晰的语义分隔

XML标签提供了明确的边界,帮助Claude区分不同类型的内容:

  • 指令(Instruction)
  • 输入数据(Input)
  • 期望格式(Format)
  • 约束条件(Constraints)
  • 示例(Examples)

2. 减少歧义

通过明确的标签,避免不同部分内容的混淆:

<!-- 不好的写法 -->
总结这个:用户说产品不好,还有要退款

<!-- 好的写法 -->
<task>分析用户反馈</task>
<user_feedback>用户说产品不好,还有要退款</user_feedback>
<analysis_type>情感分析 + 问题提取</analysis_type>

3. 便于维护和修改

结构化的提示词更容易修改和维护:

<system_prompt>
你是一位专业的客服代表
</system_prompt>

<rules>
- 使用礼貌用语
- 提供具体解决方案
- 避免承诺无法兑现的事项
</rules>

<!-- 可以独立修改规则部分,不影响其他内容 -->

基础语法

标签结构

XML标签的基本格式:

<tag_name>内容</tag_name>

命名规范

  • 使用描述性名称:<user_input> 而非 <u>
  • 使用下划线分隔多词:<code_example> 而非 <codeexample>
  • 保持一致的命名风格
<!-- 推荐 -->
<prompt_content>
<code_block>
<expected_output>

<!-- 不推荐 -->
<pc>
<cb>
<eo>

嵌套标签

XML标签可以嵌套使用:

<response_format>
<introduction>
简短介绍主题
</introduction>
<main_content>
<points>
列出3-5个要点
</points>
<examples>
每个要点配一个例子
</examples>
</main_content>
<conclusion>
总结并给出建议
</conclusion>
</response_format>

常用标签详解

1. <role> / <system_prompt>

定义AI的角色和基本设定:

<role>
你是一位资深的Python工程师,有10年以上的开发经验。
擅长代码审查、性能优化和架构设计。
回答时使用专业但易懂的语言。
</role>

2. <task> / <instruction>

明确指定要完成的任务:

<task>
分析以下代码的性能问题,并提供优化建议。
</task>

3. <input> / <context>

提供任务所需的输入数据或上下文:

<input>
def process_data(items):
    result = []
    for item in items:
        for i in range(len(items)):
            result.append(item * i)
    return result
</input>

4. <constraints> / <rules>

设置约束条件和规则:

<constraints>
- 代码必须保持原有功能
- 优化后的时间复杂度应低于O(n²)
- 使用Python标准库,不引入第三方依赖
- 添加必要的注释说明
</constraints>

5. <format> / <output_format>

指定输出的格式要求:

<format>
使用markdown格式输出:
1. **问题描述**:指出当前代码的问题
2. **优化方案**:说明优化思路
3. **优化代码**:给出完整的优化后代码
4. **复杂度分析**:分析优化前后的时间/空间复杂度
</format>

6. <example> / <few_shot>

提供示例以帮助理解:

<examples>
<example>
<input>2+2</input>
<output>4</output>
<explanation>基本的加法运算</explanation>
</example>

<example>
<input>5*3</input>
<output>15</output>
<explanation>乘法运算</explanation>
</example>
</examples>

7. <tone> / <style>

控制回复的语气和风格:

<style>
- 使用简洁的语言
- 避免冗余解释
- 采用技术文档风格
- 适当使用代码块和表格
</style>

高级用法

1. 条件标签

使用标签表示可选或条件性的内容:

<if_context>
<context>
用户是初学者,需要详细解释
</context>
</if_context>

<output_options>
<option format="简短版">只给出结论</option>
<option format="详细版">包含推理过程</option>
<option format="教学版">适合初学者的详细教程</option>
</output_options>

2. 元数据标签

添加元信息帮助理解提示词:

<!--
提示词版本: 1.0
创建日期: 2024-01-15
用途: 代码审查
作者: AI助手
-->

<prompt_metadata>
<version>1.0</version>
<category>code_review</category>
<complexity>intermediate</complexity>
</prompt_metadata>

3. 变量替换

使用占位符表示需要替换的内容:

<template>
分析{{LANGUAGE}}代码的{{ISSUE_TYPE}}问题
</template>

<variable_values>
<LANGUAGE name="编程语言">Python</LANGUAGE>
<ISSUE_TYPE name="问题类型">性能</ISSUE_TYPE>
</variable_values>

4. 多语言支持

使用属性标记语言:

<prompt lang="zh-CN">
请用中文回答以下问题
</prompt>

<response_format lang="zh-CN">
使用简体中文,术语可保留英文
</response_format>

最佳实践

1. 标签设计原则

1.1 保持简洁

使用简短但描述性的标签名称:

<!-- 不推荐:过度冗长 -->
<instruction_tag_container>
<instruction_content_wrapper>
请帮我完成这个任务
</instruction_content_wrapper>
</instruction_tag_container>

<!-- 不推荐:过度简略 -->
<t>请帮我完成这个任务</t>

<!-- 推荐:简洁且描述性 -->
<task>
请帮我完成这个任务
</task>
1.2 语义化命名

标签名称应清晰表达内容的用途:

<!-- 推荐:意图明确 -->
<user_input>
<code_to_review>
<error_message>
<expected_output>

<!-- 不推荐:意图模糊 -->
<input1>
<data2>
<text3>
1.3 使用标准化标签组合

对于常见场景,使用一致的标签组合模式:

<!-- 代码审查标准模式 -->
<role>...</role>
<task>...</task>
<input>...</input>
<constraints>...</constraints>
<output_format>...</output_format>

<!-- 文档生成标准模式 -->
<role>...</role>
<topic>...</topic>
<audience>...</audience>
<structure>...</structure>
<style_guide>...</style_guide>

2. 结构组织模式

2.1 外层到内层原则

将更广泛、更抽象的内容放在外层,具体细节放在内层:

<!-- 推荐:从宏观到微观 -->
<workflow>
<phase name="设计阶段">
<sub_task>数据库设计</sub_task>
<details>
表结构:users, orders, products
关系:一对多、多对多
</details>
</phase>
</workflow>
2.2 优先级排序

使用优先级属性帮助Claude理解重要性:

<requirements>
<requirement priority="critical" must_have="true">
用户密码必须使用bcrypt加密
</requirement>
<requirement priority="high">
API响应时间应小于200ms
</requirement>
<requirement priority="medium">
界面应支持暗色模式
</requirement>
<requirement priority="low">
支持多语言切换
</requirement>
</requirements>
2.3 模块化设计

将复杂提示词拆分为可复用的模块:

<!-- 定义可复用模块 -->
<template id="code_review_template">
<role>资深代码审查专家</role>
<check_items>
- 安全漏洞
- 性能问题
- 代码规范
- 可维护性
</check_items>
</template>

<!-- 使用模块 -->
<prompt use_template="code_review_template">
<language>Python</language>
<code>...</code>
</prompt>

3. 一致性规范

3.1 命名风格一致

在整个提示词中保持统一的命名风格:

<!-- 推荐:统一使用下划线分隔 -->
<user_input>
<code_block>
<error_message>

<!-- 不推荐:混用不同风格 -->
<userInput>
<code-block>
<errorMessage>
3.2 标签层级一致

相似类型的内容使用相同的层级结构:

<!-- 推荐:一致的层级 -->
<task>
<sub_task>...</sub_task>
<sub_task>...</sub_task>
</task>

<deliverables>
<deliverable>...</deliverable>
<deliverable>...</deliverable>
</deliverables>

<!-- 不推荐:不一致的层级 -->
<task>
<item>...</item>
<subitem>...</subitem>
</task>
<deliverables>
<deliverable>
<part>...</part>
</deliverable>
</deliverables>
3.3 格式约定

建立标签使用的格式约定:

<!-- 约定:input标签总是包含language属性 -->
<input language="python">
代码内容
</input>

<!-- 约定:priority总是使用critical/high/medium/low -->
<task priority="critical">
必须完成的任务
</task>

<!-- 约定:example总是包含explanation -->
<example>
<input>...</input>
<output>...</output>
<explanation>...</explanation>
</example>

4. 内容优化技巧

4.1 清晰的边界

确保不同标签之间有清晰的内容边界:

<!-- 不推荐:边界模糊 -->
<task>
分析这个用户反馈:用户说产品不好用,想退款,而且客服态度也不好
</task>

<!-- 推荐:边界清晰 -->
<task>
分析用户反馈中的问题类型和情绪倾向
</task>
<feedback_text>
用户说产品不好用,想退款,而且客服态度也不好
</feedback_text>
<analysis_focus>
- 问题分类(产品质量/服务问题)
- 情绪分析(不满程度)
- 紧急程度评估
</analysis_focus>
4.2 属性增强

使用标签属性提供额外的上下文信息:

<!-- 基础用法 -->
<code>
function example() {}
</code>

<!-- 增强用法:添加属性 -->
<code
language="javascript"
framework="react"
purpose="组件示例"
complexity="beginner">
function example() {}
</code>
4.3 条件性内容

使用标签标记可选或条件性内容:

<!-- 场景化配置 -->
<scenarios>
<scenario condition="用户是初学者">
<detail_level>详细</detail_level>
<include_examples>true</include_examples>
<avoid_jargon>true</avoid_jargon>
</scenario>

<scenario condition="用户是专家">
<detail_level>简洁</detail_level>
<include_examples>false</include_examples>
<use_technical_terms>true</use_technical_terms>
</scenario>
</scenarios>

5. 注释和文档

5.1 文件级注释

在每个提示词文件开头添加元信息:

<!--
===========================================
代码审查助手提示词
===========================================
版本: 2.1
创建日期: 2024-01-15
最后修改: 2024-01-20
作者: AI团队
适用范围: Python, JavaScript, Java
输出格式: Markdown报告
===========================================
变更历史:
- v2.1: 添加安全审查检查项
- v2.0: 重构输出格式结构
- v1.0: 初始版本
===========================================
-->
5.2 段落级注释

对复杂段落添加说明:

<!--
==================================================
安全检查部分
==================================================
这部分重点关注OWASP Top 10安全风险
包括SQL注入、XSS、CSRF等常见漏洞
==================================================
-->
<security_checks>
<check category="injection">
检查所有用户输入是否经过参数化处理
</check>
<check category="xss">
验证输出是否进行了适当的转义
</check>
</security_checks>
5.3 行内注释

对特定标签添加快速说明:

<!-- 核心任务:不可修改 -->
<task locked="true">
执行完整的安全审计
</task>

<!-- 可选扩展:根据需要调整 -->
<optional_extensions>
<extension>性能分析</extension>
<extension>代码风格建议</extension>
</optional_extensions>

6. 调试和优化

6.1 渐进式复杂化

从简单开始,逐步增加复杂度:

<!-- 第一版:基础结构 -->
<task>审查代码</task>
<input>...</input>

<!-- 第二版:添加约束 -->
<task>审查代码</task>
<input>...</input>
<constraints>
- 关注安全问题
- 提供修复建议
</constraints>

<!-- 第三版:完善细节 -->
<task>审查代码</task>
<input>...</input>
<constraints>...</constraints>
<output_format>...</output_format>
<examples>...</examples>
6.2 版本对比

保留不同版本进行效果对比:

<!-- 版本A:简洁版 -->
<prompt version="a">
<task>总结文本</task>
</prompt>

<!-- 版本B:详细版 -->
<prompt version="b">
<task>总结文本</task>
<requirements>
- 提取关键信息
- 使用项目符号
- 限制在200字内
</requirements>
</prompt>
6.3 A/B测试标记

标记用于A/B测试的变体:

<prompt_variant>
<variant_id>A</variant_id>
<approach>直接指令</approach>
<content>
<task>请完成以下任务</task>
</content>
</prompt_variant>

<prompt_variant>
<variant_id>B</variant_id>
<approach>引导式提问</approach>
<content>
<question>你应该如何完成这个任务?</question>
</content>
</prompt_variant>

7. 常见陷阱及避免

7.1 标签过度嵌套
<!-- 不推荐:过度嵌套 -->
<level1>
<level2>
<level3>
<level4>
<level5>
实际内容
</level5>
</level4>
</level3>
</level2>
</level1>

<!-- 推荐:合理嵌套(不超过3层) -->
<response_format>
<section>
<content>实际内容</content>
</section>
</response_format>
7.2 标签滥用
<!-- 不推荐:所有内容都用标签包装 -->
<wrapper>
<another_wrapper>
<yet_another_wrapper>
<final_wrapper>
请说"你好"
</final_wrapper>
</yet_another_wrapper>
</another_wrapper>
</wrapper>

<!-- 推荐:只在需要时使用标签 -->
<greeting_language>中文</greeting_language>
<action>打招呼</action>
7.3 信息分散
<!-- 不推荐:相关信息分散在不同位置 -->
<task>分析Python代码</task>
<constraints>使用PEP 8规范</constraints>
<input>代码内容</input>
<style>关注可读性</style>

<!-- 推荐:相关信息集中 -->
<code_review>
<language>Python</language>
<standards>
<format>PEP 8</format>
<focus>可读性</focus>
</standards>
<code>代码内容</code>
</code_review>
7.4 缺少上下文
<!-- 不推荐:缺少必要上下文 -->
<task>优化这个函数</task>
<input>function f() {...}</input>

<!-- 推荐:提供完整上下文 -->
<context>
<application_type>高频交易系统</application_type>
<performance_requirement>每秒处理1000+请求</performance_requirement>
<bottleneck_identified>数据库查询</bottleneck_identified>
</context>
<task>优化这个函数</task>
<input>function f() {...}</input>

8. 可复用性设计

8.1 模板化

创建可复用的提示词模板:

<!-- 模板定义 -->
<template name="code_analysis">
<role>代码分析专家</role>
<analysis_aspects>
<aspect>正确性</aspect>
<aspect>性能</aspect>
<aspect>可读性</aspect>
<aspect>安全性</aspect>
</analysis_aspects>
<output_sections>
<section>问题发现</section>
<section>改进建议</section>
<section>优化代码</section>
</output_sections>
</template>

<!-- 使用模板 -->
<code_analysis_prompt template="code_analysis">
<language>Python</language>
<target_code>...</target_code>
<specific_focus>
<focus>内存使用优化</focus>
<focus>并发处理</focus>
</specific_focus>
</code_analysis_prompt>
8.2 组合模式

通过组合小模块构建复杂提示词:

<!-- 基础模块 -->
<module id="security_check">
<checks>
- SQL注入
- XSS
- CSRF
- 认证绕过
</checks>
</module>

<module id="performance_check">
<checks>
- 查询优化
- 缓存策略
- 算法复杂度
</checks>
</module>

<!-- 组合使用 -->
<comprehensive_review>
<use_module ref="security_check"/>
<use_module ref="performance_check"/>
<custom_checks>
- 代码风格
- 文档完整性
</custom_checks>
</comprehensive_review>
8.3 参数化

使用参数使提示词更灵活:

<!-- 参数化模板 -->
<prompt_template>
<parameter name="language" default="Python"/>
<parameter name="complexity" default="intermediate"/>
<parameter name="output_length" default="detailed"/>

<task>
分析一段{{language}}代码,
复杂度为{{complexity}},
提供{{output_length}}的反馈。
</task>
</prompt_template>

<!-- 实例化 -->
<prompt_instance template="code_analysis">
<parameter name="language" value="JavaScript"/>
<parameter name="complexity" value="advanced"/>
<parameter name="output_length" value="concise"/>
</prompt_instance>

9. 错误处理和边界情况

9.1 输入验证

指定输入要求:

<input_requirements>
<requirement type="format">
代码必须完整且可运行
</requirement>
<requirement type="size">
不超过500行代码
</requirement>
<requirement type="language">
明确指定编程语言
</requirement>
<requirement type="context">
提供功能说明
</requirement>
</input_requirements>

<error_handling>
<error condition="输入不完整">
请提供完整的代码片段
</error>
<error condition="语言不明确">
请指定编程语言
</error>
<error condition="代码过长">
请分段提交或提供关键部分
</error>
</error_handling>
9.2 边界条件

明确边界情况的处理方式:

<edge_cases>
<case condition="空输入">
返回友好的错误提示,说明需要提供的内容
</case>
<case condition="输入过长">
提供摘要并询问是否需要详细分析
</case>
<case condition="格式错误">
指出格式问题并给出正确格式示例
</case>
<case condition="内容不明确">
询问澄清问题以理解需求
</case>
</edge_cases>
9.3 降级策略

定义当完整方案不可行时的降级方案:

<response_strategy>
<primary_strategy>
提供完整的代码重构方案
</primary_strategy>

<fallback_strategy condition="时间限制">
提供关键优化点的建议列表
</fallback_strategy>

<last_resort condition="信息不足">
指出需要补充的信息并提供初步评估
</last_resort>
</response_strategy>

10. 性能优化

10.1 Token效率

优化提示词以减少token使用:

<!-- 不推荐:冗余描述 -->
<instructions>
我要请你帮我做一件事情,这件事情是关于代码的,
我需要你仔细地查看代码,然后告诉我哪里有问题
</instructions>

<!-- 推荐:简洁精确 -->
<task>审查代码问题</task>
10.2 分段处理

对大型任务使用分段策略:

<!-- 大任务分段 -->
<large_task>
<task_name>审查1000行代码库</task_name>

<execution_plan>
<phase scope="files_1_10">第一批文件</phase>
<phase scope="files_11_20">第二批文件</phase>
<phase scope="files_21_30">第三批文件</phase>
</execution_plan>

<summary_approach>
每批完成后提供阶段性总结,
最后提供整体分析报告
</summary_approach>
</large_task>
10.3 缓存友好

设计可缓存的部分:

<cached_components>
<!-- 静态角色定义 -->
<role cacheable="true">
资深技术顾问
</role>

<!-- 可复用的格式定义 -->
<output_format cacheable="true" id="standard_report">
## 概述
## 详细分析
## 建议
</output_format>

<!-- 动态内容 -->
<task cacheable="false">
具体需要处理的任务
</task>
</cached_components>

11. 协作和分享

11.1 团队规范

建立团队共用的标签规范文档:

<!--
团队提示词规范 v1.0
====================

强制标签:
- role: 必须在所有提示词中定义
- task: 明确指定任务
- output_format: 说明输出格式

推荐标签:
- context: 提供背景信息
- constraints: 列出约束条件
- examples: 给出示例

命名约定:
- 使用下划线分隔
- 全小写
- 描述性命名

优先级:
- critical > high > medium > low
-->
11.2 版本控制

为提示词添加版本信息:

<prompt_manifest>
<version>2.1.0</version>
<changelog>
<change version="2.1.0" date="2024-01-20">
- 添加边界条件处理
- 优化输出格式
</change>
<change version="2.0.0" date="2024-01-10">
- 重构标签结构
- 添加模块化支持
</change>
</changelog>
<backward_compatibility>
与2.0.x版本兼容,
不兼容1.x版本
</backward_compatibility>
</prompt_manifest>
11.3 共享模板

创建可共享的模板库:

<!-- 模板库目录 -->
<template_library>
<category name="代码相关">
<template name="code_review" file="review.xml"/>
<template name="code_optimization" file="optimize.xml"/>
<template name="code_generation" file="generate.xml"/>
</category>

<category name="文档相关">
<template name="api_doc" file="api_doc.xml"/>
<template name="tutorial" file="tutorial.xml"/>
<template name="readme" file="readme.xml"/>
</category>

<usage_instruction>
使用 <include template="name"/> 引用模板
</usage_instruction>
</template_library>

实战案例

案例1:代码审查助手

<role>
你是一位资深代码审查专家,有15年软件开发经验。
你擅长发现代码中的潜在问题、性能瓶颈和安全漏洞。
</role>

<task>
审查以下代码,提供全面的反馈意见。
</task>

<input>
<language>Python</language>
<code>
def get_user_data(user_id):
    query = f"SELECT * FROM users WHERE id = {user_id}"
    result = database.execute(query)
    return result
</code>
</input>

<review_criteria>
<criteria priority="critical">
- SQL注入风险
- 身份验证问题
- 敏感数据泄露
</criteria>
<criteria priority="high">
- 性能问题
- 错误处理
- 代码规范
</criteria>
<criteria priority="medium">
- 可读性
- 可维护性
- 测试覆盖
</criteria>
</review_criteria>

<output_format>
## 代码审查报告

### 严重问题(Critical)
- 问题描述
- 风险说明
- 修复建议

### 重要问题(High)
- ...

### 改进建议(Medium)
- ...

### 优化后的代码
```python
# 修复后的代码

总结

总体评分和主要改进点
</output_format>

专业、客观、建设性 ```

案例2:技术文档写作助手

<system_prompt>
你是一位技术文档专家,擅长将复杂的技术概念
转化为清晰易懂的文档。
</system_prompt>

<document_requirements>
<audience level="intermediate">
读者有一定编程基础,但对该技术不熟悉
</audience>

<structure>
1. 概述(1-2段)
2. 核心概念(3-5个要点)
3. 代码示例(至少2个)
4. 常见问题(FAQ)
5. 参考资源
</structure>

<style_guide>
- 使用简洁的中文
- 技术术语保留英文
- 代码块使用语法高亮
- 适当使用图表说明
- 每个概念配一个实例
</style_guide>
</document_requirements>

<content_to_documentize>
<topic>异步编程基础</topic>
<key_points>
- 异步vs同步
- 事件循环
- Promise/async-await
- 错误处理
</key_points>
<target_language>JavaScript</target_language>
</content_to_documentize>

<output>
请按照上述要求,写一篇完整的技术文档。
</output>

案例3:数据分析助手

<role>
你是一位数据分析师,精通Python数据分析栈。
</role>

<task>
分析给定的销售数据,提供业务洞察。
</task>

<data_context>
<data_type>销售记录</data_type>
<time_range>2024年Q1</time_range>
<columns>
产品ID、销售日期、销售数量、单价、客户类型、地区
</columns>
</data_context>

<analysis_requests>
<request priority="1">
- 总销售额趋势(按周)
- 各产品类别销售占比
- 不同客户群体的购买行为
</request>

<request priority="2">
- 地区销售对比
- 价格敏感度分析
</request>

<request priority="3">
- 异常销售记录识别
- 库存优化建议
</request>
</analysis_requests>

<output_format>
## 数据分析报告

### 1. 数据概览
- 数据规模、时间范围等基本信息

### 2. 核心发现
使用可视化图表展示关键洞察

### 3. 详细分析
按优先级展示各项分析结果

### 4. 业务建议
基于数据的具体建议

### 5. 附录
分析代码(使用Python)
</output_format>

<visualization>
使用Python的matplotlib/plotly生成图表
图表类型:折线图、柱状图、饼图、热力图
</visualization>

案例4:对话式任务分解

<task_decomposition>
<main_goal>开发一个用户认证系统</main_goal>

<context>
<tech_stack>
- 后端:Node.js + Express
- 数据库:PostgreSQL
- 前端:React
</tech_stack>

<requirements>
- 用户注册/登录
- 密码加密存储
- JWT token认证
- 密码重置功能
- 会话管理
</requirements>
</context>

<decomposition_strategy>
<phase order="1">
<phase_name>设计阶段</phase_name>
<tasks>
- 设计数据库schema
- 设计API接口规范
- 设计认证流程图
</tasks>
<deliverables>设计文档</deliverables>
</phase>

<phase order="2">
<phase_name>后端开发</phase_name>
<tasks>
- 实现用户注册API
- 实现登录API
- 实现JWT中间件
- 实现密码重置流程
</tasks>
<deliverables>后端API + 单元测试</deliverables>
</phase>

<phase order="3">
<phase_name>前端开发</phase_name>
<tasks>
- 创建登录/注册页面
- 实现表单验证
- 集成API调用
- 实现路由守卫
</tasks>
<deliverables>前端页面 + 集成测试</deliverables>
</phase>

<phase order="4">
<phase_name>测试与部署</phase_name>
<tasks>
- 集成测试
- 安全测试
- 性能优化
- 部署配置
</tasks>
<deliverables>测试报告 + 部署文档</deliverables>
</phase>
</decomposition_strategy>

<output>
请详细说明每个阶段的具体步骤、
预计工时、潜在风险和依赖关系。
</output>
</task_decomposition>

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐