提高输出一致性
Tip
关于保证 JSON 模式合规性
如果你需要 Claude 始终输出符合特定模式的有效 JSON,请使用结构化输出而非以下提示词工程技术。结构化输出提供保证的模式合规性,专门为此用例设计。
以下技术适用于一般输出一致性,或当你需要超出严格 JSON 模式的灵活性时。
以下是如何让 Claude 的回复更加一致:
指定所需的输出格式
使用 JSON、XML 或自定义模板精确定义所需的输出格式,以便 Claude 理解你要求的每个输出格式元素。
示例:标准化客户反馈
| 角色 | 内容 |
|---|---|
| User | You're a Customer Insights AI. Analyze this feedback and output in JSON format with keys: "sentiment" (positive/negative/neutral), "key_issues" (list), and "action_items" (list of dicts with "team" and "task"). "I've been a loyal user for 3 years, but the recent UI update is a disaster. Finding basic features is now a scavenger hunt. Plus, the new 'premium' pricing is outrageous. I'm considering switching unless this is fixed ASAP." |
| Assistant | { "sentiment": "negative", "key_issues": [ "Poor UI/UX in recent update", "Difficulty finding basic features", "Perceived high pricing (new 'premium' tier)" ], "action_items": [ { "team": "Product", "task": "Conduct usability testing and iterate on UI based on findings" }, { "team": "UX", "task": "Create a feature discovery guide or onboarding flow" }, { "team": "Marketing", "task": "Review pricing strategy and communicate value proposition" }, { "team": "Customer Success", "task": "Reach out to user, offer concessions to prevent churn" } ] } |
预填充 Claude 的回复
Note
Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 不支持预填充。请改用结构化输出或系统提示词指令。
用你想要的格式预填充 Assistant 回合。这个技巧可以绕过 Claude 的友好开场白,并强制执行你的结构。
示例:每日销售报告
| 角色 | 内容 |
|---|---|
| User | You're an insightful Sales Intelligence AI. Generate today's sales report. Structure the report like this: <report> <summary> <metric name="total_revenue">$0.00</metric> <metric name="units_sold">0</metric> <metric name="avg_order_value">$0.00</metric> </summary> <top_products> <br/> <name>Product Name</name> <revenue>$0.00</revenue> <units>0</units> </product> ... </top_products> <regional_performance> <region> <name>Region Name</name> <revenue>$0.00</revenue> <growth>0.0%</growth> </region> ... </regional_performance> <action_items> <item>Action item.</item> ... </action_items> </report> |
| Assistant (prefill) | <report> <summary> <metric name= |
| Assistant | "total_revenue">$842,567.00</metric> <metric name="units_sold">15,238</metric> <metric name="avg_order_value">$55.29</metric> </summary> <top_products> <br/> <name>AcmeGuard Pro</name> <revenue>$325,890.00</revenue> <units>3,621</units> </product> <br/> <name>AcmeVault Enterprise</name> <revenue>$254,400.00</revenue> <units>1,272</units> </product> <br/> <name>AcmeBoost XL</name> <revenue>$147,690.00</revenue> <units>4,923</units> </product> </top_products> <regional_performance> <region> <name>APAC</name> <revenue>$258,960.00</revenue> <growth>12.8%</growth> </region> <region> <name>EMEA</name> <revenue>$325,478.00</revenue> <growth>3.2%</growth> </region> <region> <name>Americas</name> <revenue>$258,129.00</revenue> <growth>-2.1%</growth> </region> </regional_performance> <action_items> <item>Investigate Americas revenue drop; schedule regional sales team meeting.</item> <item>Accelerate CloudGuard Pro rollout in APAC to capitalize on growth.</item> <item>Review NetBoost XL pricing; high volume but lower revenue.</item> </action_items> </report> |
用示例进行约束
提供所需输出的示例。这比抽象指令更能训练 Claude 的理解。
示例:生成一致的市场情报
| 角色 | 内容 |
|---|---|
| User | As a Market Intelligence AI, your task is to analyze data about our competitors. Here is our competitor data: <data> {{DATA}} </data> Output following this example format: <competitor> <name>Rival Inc</name> <overview>A 50-word summary.</overview> <swot> <strengths>- Bullet points</strengths> <weaknesses>- Bullet points</weaknesses> <opportunities>- Bullet points</opportunities> <threats>- Bullet points</threats> </swot> <strategy>A 30-word strategic response.</strategy> </competitor> Now, analyze AcmeGiant and AcmeDataCo using this format. |
| Assistant | <competitor> <name>AcmeGiant</name> <overview>Global tech leader with a vast ecosystem of consumer and enterprise products. Known for innovation, strong brand, and deep customer lock-in through integrated hardware, software, and services.</overview> <swot> <strengths> - Massive R&D budget fuels continuous innovation - Loyal customer base and powerful brand recognition - Synergistic product ecosystem increases switching costs </strengths> <weaknesses> - High prices may deter cost-sensitive customers - Slow to address enterprise-specific customization needs - Privacy concerns and regulatory scrutiny in multiple markets </weaknesses> <opportunities> - Growing demand for AI and ML capabilities - Expansion into emerging markets - Acquisitions to fill product or talent gaps </opportunities> <threats> - Rapid rise of cloud-native competitors - Antitrust lawsuits and regulatory actions - Talent poaching by startups and competitors </threats> </swot> <strategy>Focus on our agility and customization. Target TechGiant's slow enterprise response and privacy issues in our marketing.</strategy> </competitor> <competitor> <name>AcmeDataCo</name> <overview>Rising star in data analytics and visualization. Offers intuitive, self-service BI tools with a freemium model, appealing to startups and enterprise teams alike.</overview> <swot> <strengths> - User-friendly interface reduces need for specialized training - Freemium model lowers barrier to entry, drives viral growth - Strong product-market fit with rise of data-driven decisions </strengths> <weaknesses> - Limited advanced analytics compared to established BI tools - Scaling issues reported with very large datasets - Dependent on third-party cloud infrastructure (AWS) </weaknesses> <opportunities> - Expanding into predictive analytics and AI-driven insights - Forming strategic alliances with complementary tech vendors - Customizable dashboards for industry-specific solutions </opportunities> <threats> - Market saturation; many new entrants in self-service BI - Enterprise BI giants developing more user-friendly tools - Data privacy regulations increasing compliance complexity </threats> </swot> <strategy>Highlight our robust enterprise features and data governance. Target accounts struggling with DataCo's scale limitations.</strategy> </competitor> |
使用检索实现上下文一致性
对于需要一致上下文的任务(例如聊天机器人、知识库),使用检索将 Claude 的回复基于固定的信息集。
示例:增强 IT 支持一致性
| 角色 | 内容 |
|---|---|
| User | You're our IT Support AI that draws on knowledge base data. Here are entries from your knowledge base: <kb> <entry> <id>1</id> <title>Reset Active Directory password</title> <content>1. Go to password.ourcompany.com 2. Enter your username 3. Click "Forgot Password" 4. Follow email instructions</content> </entry> <entry> <id>2</id> <title>Connect to VPN</title> <content>1. Install GlobalProtect from software center 2. Open GlobalProtect, enter "vpn.ourcompany.com" 3. Use AD credentials to log in</content> </entry> </kb> When helping users, always check the knowledge base first. Respond in this format: <response> <kb_entry>Knowledge base entry used</kb_entry> <answer>Your response</answer> </response> Write some test questions for yourself and answer them using the knowledge base, just to make sure you understand how to use the knowledge base properly. |
| Assistant | Understood. I'll use the knowledge base for consistent responses. Let's test with a couple of scenarios. User: Hey, I can't log into my email. I think I forgot my password. <response> <kb_entry>1: Reset Active Directory password</entry> <answer>I understand you're having trouble logging into your email due to a forgotten password. No worries, this is a common issue. To reset your Active Directory password, which is used for email access, follow these steps: 1. Go to password.ourcompany.com 2. Enter your username (same as your email address) 3. Click on the "Forgot Password" link 4. You'll receive an email with instructions. Follow them to reset your password. After resetting, you should be able to log into your email. Let me know if you need any further assistance.</answer> </response> User: I'm working from home today. How do I access internal resources? <response> <kb_entry>2: Connect to VPN</entry> <answer>Great question! To access internal resources while working from home, you'll need to connect to our company VPN (Virtual Private Network). Here's how to set that up: 1. First, install the GlobalProtect VPN client. You can find this in our software center. 2. Once installed, open the GlobalProtect application. 3. In the server field, enter "vpn.ourcompany.com". 4. Use your Active Directory (AD) credentials to log in - the same username and password you use for your email. Once connected, you'll have secure access to all internal resources as if you were in the office. Let me know if you run into any issues during setup.</answer> </response> |
链式提示词处理复杂任务
将复杂任务分解为更小、一致的子任务。每个子任务都能获得 Claude 的全部注意力,减少跨规模化工作流的不一致错误。
保持 Claude 的角色一致性
对于基于角色的应用,维护一致的角色需要刻意的提示词设计。
- 使用系统提示词设定角色: 使用系统提示词来定义 Claude 的角色和个性。这为一致的回复奠定了坚实的基础。
Tip设定角色时,提供关于个性、背景以及任何特定特征或习惯的详细信息。这将帮助模型更好地模拟和泛化角色特征。
- 为 Claude 准备可能的场景: 在提示词中提供常见场景和预期回复的列表。这会"训练" Claude 在不打破角色的情况下处理各种情况。
示例:企业聊天机器人的角色提示
| 角色 | 内容 |
|---|---|
| System | You are AcmeBot, the enterprise-grade AI assistant for AcmeTechCo. Your role: - Analyze technical documents (TDDs, PRDs, RFCs) - Provide actionable insights for engineering, product, and ops teams - Maintain a professional, concise tone |
| User | Here is the user query for you to respond to: <user_query> {{USER_QUERY}} </user_query> Your rules for interaction are: - Always reference AcmeTechCo standards or industry best practices - If unsure, ask for clarification before proceeding - Never disclose confidential AcmeTechCo information. As AcmeBot, you should handle situations along these guidelines: - If asked about AcmeTechCo IP: "I cannot disclose TechCo's proprietary information." - If questioned on best practices: "Per ISO/IEC 25010, we prioritize..." - If unclear on a doc: "To ensure accuracy, please clarify section 3.2..." |