ai-product-patterns

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

AI-Native Product Building

AI原生产品构建

When This Skill Activates

本技能的适用场景

Claude uses this skill when:
  • Integrating AI features (search, recommendations, generation, etc.)
  • Designing product experiences around AI capabilities
  • Implementing evals and quality measurement
  • Optimizing AI costs and latency
  • Building for model improvements over time
当Claude遇到以下场景时会启用本技能:
  • 集成AI功能(搜索、推荐、生成等)
  • 围绕AI能力设计产品体验
  • 实现评估用例与质量度量
  • 优化AI成本与延迟
  • 构建可随模型迭代的产品

Core Frameworks

核心框架

1. Build for Future Models (Source: Kevin Weil, CPO of OpenAI)

1. 面向未来模型构建(来源:OpenAI首席产品官Kevin Weil)

The Exponential Improvement Mindset:
"The AI model you're using today is the worst AI model you will ever use for the rest of your life. What computers can do changes every two months."
Core Principle:
  • Don't design around current model limitations
  • Build assuming capabilities will 10x in 2 months
  • Edge cases today = core use cases tomorrow
  • Make room for model to get smarter
How to Apply:
DON'T:
- "AI can't do X, so we won't support it"
- Build fallbacks that limit model capabilities
- Design UI that assumes current limitations

DO:
- Build interfaces that scale with model improvements
- Design for the capability you want, not current reality
- Test with future models in mind
- Make it easy to swap/upgrade models
Example:
Feature: "AI code review"

❌ Current-Model Thinking:
- "Models can't catch logic bugs, only style"
- Limit to linting and formatting
- Don't even try complex reasoning

✅ Future-Model Thinking:
- Design for full logic review capability
- Start with style, but UI supports deeper analysis
- As models improve, feature gets better automatically
- Progressive: Basic → Advanced → Expert review

指数级迭代思维:
"你如今使用的AI模型,会是你余生中用到的最差的AI模型。计算机的能力每两个月就会发生变化。"
核心原则:
  • 不要围绕当前模型的局限性做设计
  • 以未来能力将提升10倍的假设进行构建
  • 如今的边缘场景 = 未来的核心用例
  • 为模型能力的提升预留空间
实践方法:
DON'T:
- "AI can't do X, so we won't support it"
- Build fallbacks that limit model capabilities
- Design UI that assumes current limitations

DO:
- Build interfaces that scale with model improvements
- Design for the capability you want, not current reality
- Test with future models in mind
- Make it easy to swap/upgrade models
示例:
Feature: "AI code review"

❌ Current-Model Thinking:
- "Models can't catch logic bugs, only style"
- Limit to linting and formatting
- Don't even try complex reasoning

✅ Future-Model Thinking:
- Design for full logic review capability
- Start with style, but UI supports deeper analysis
- As models improve, feature gets better automatically
- Progressive: Basic → Advanced → Expert review

2. Evals as Product Specs (Source: Kevin Weil, OpenAI)

2. 评估用例作为产品规格(来源:OpenAI的Kevin Weil)

Test Cases = Product Requirements:
"At OpenAI, evals are the product spec. If you can define what good looks like in test cases, you've defined the product."
The Approach:
Traditional PM:
markdown
Requirement: "Search should return relevant results"
AI-Native PM:
javascript
// Eval as Product Spec
const searchEvals = [
  {
    query: "best PM frameworks",
    expectedResults: ["RICE", "LNO", "Jobs-to-be-Done"],
    quality: "all3InTop5",
  },
  {
    query: "how to prioritize features",
    expectedResults: ["Shreyas Doshi", "Marty Cagan"],
    quality: "relevantInTop3",
  },
  {
    query: "shiip prodcut",  // typo
    correctAs: "ship product",
    quality: "handleTypos",
  },
];
How to Write Evals:
1. Define Success Cases:
   - Input: [specific user query/action]
   - Expected: [what good output looks like]
   - Quality bar: [how to measure success]

2. Define Failure Cases:
   - Input: [edge case, adversarial, error]
   - Expected: [graceful handling]
   - Quality bar: [minimum acceptable]

3. Make Evals Runnable:
   - Automated tests
   - Run on every model change
   - Track quality over time
Example:
typescript
// Product Requirement as Eval
describe("AI Recommendations", () => {
  test("cold start: new user gets popular items", async () => {
    const newUser = { signupDate: today, interactions: [] };
    const recs = await getRecommendations(newUser);
    
    expect(recs).toIncludePopularItems();
    expect(recs.length).toBeGreaterThan(5);
  });

  test("personalized: returning user gets relevant items", async () => {
    const user = { interests: ["PM", "AI", "startups"] };
    const recs = await getRecommendations(user);
    
    expect(recs).toMatchInterests(user.interests);
    expect(recs).toHaveDiversity();  // Not all same topic
  });

  test("quality bar: recommendations >70% click rate", async () => {
    const users = await getTestUsers(100);
    const clickRate = await measureClickRate(users);
    
    expect(clickRate).toBeGreaterThan(0.7);
  });
});

测试用例 = 产品需求:
"在OpenAI,评估用例就是产品规格。如果你能通过测试用例定义‘好’的标准,你就已经定义了产品。"
实践方案:
传统产品经理的做法:
markdown
Requirement: "Search should return relevant results"
AI原生产品经理的做法:
javascript
// Eval as Product Spec
const searchEvals = [
  {
    query: "best PM frameworks",
    expectedResults: ["RICE", "LNO", "Jobs-to-be-Done"],
    quality: "all3InTop5",
  },
  {
    query: "how to prioritize features",
    expectedResults: ["Shreyas Doshi", "Marty Cagan"],
    quality: "relevantInTop3",
  },
  {
    query: "shiip prodcut",  // typo
    correctAs: "ship product",
    quality: "handleTypos",
  },
];
评估用例编写方法:
1. Define Success Cases:
   - Input: [specific user query/action]
   - Expected: [what good output looks like]
   - Quality bar: [how to measure success]

2. Define Failure Cases:
   - Input: [edge case, adversarial, error]
   - Expected: [graceful handling]
   - Quality bar: [minimum acceptable]

3. Make Evals Runnable:
   - Automated tests
   - Run on every model change
   - Track quality over time
示例:
typescript
// Product Requirement as Eval
describe("AI Recommendations", () => {
  test("cold start: new user gets popular items", async () => {
    const newUser = { signupDate: today, interactions: [] };
    const recs = await getRecommendations(newUser);
    
    expect(recs).toIncludePopularItems();
    expect(recs.length).toBeGreaterThan(5);
  });

  test("personalized: returning user gets relevant items", async () => {
    const user = { interests: ["PM", "AI", "startups"] };
    const recs = await getRecommendations(user);
    
    expect(recs).toMatchInterests(user.interests);
    expect(recs).toHaveDiversity();  // Not all same topic
  });

  test("quality bar: recommendations >70% click rate", async () => {
    const users = await getTestUsers(100);
    const clickRate = await measureClickRate(users);
    
    expect(clickRate).toBeGreaterThan(0.7);
  });
});

3. Hybrid Approaches (Source: Kevin Weil)

3. 混合方案(来源:Kevin Weil)

AI + Traditional Code:
"Don't make everything AI. Use AI where it shines, traditional code where it's reliable."
When to Use AI:
  • Pattern matching, recognition
  • Natural language understanding
  • Creative generation
  • Ambiguous inputs
  • Improving over time
When to Use Traditional Code:
  • Deterministic logic
  • Math, calculations
  • Data validation
  • Access control
  • Critical paths
Hybrid Patterns:
Pattern 1: AI for Intent, Code for Execution
javascript
// Hybrid: AI understands, code executes
async function processUserQuery(query) {
  // AI: Understand intent
  const intent = await ai.classify(query, {
    types: ["search", "create", "update", "delete"]
  });
  
  // Traditional: Execute deterministically
  switch(intent.type) {
    case "search": return search(intent.params);
    case "create": return create(intent.params);
    // ... reliable code paths
  }
}
Pattern 2: AI with Rule-Based Fallbacks
javascript
// Hybrid: AI primary, rules backup
async function moderateContent(content) {
  // Fast rules-based check first
  if (containsProfanity(content)) return "reject";
  if (content.length > 10000) return "reject";
  
  // AI for nuanced cases
  const aiModeration = await ai.moderate(content);
  
  // Hybrid decision
  if (aiModeration.confidence > 0.9) {
    return aiModeration.decision;
  } else {
    return "human_review";  // Uncertain → human
  }
}
Pattern 3: AI + Ranking/Filtering
javascript
// Hybrid: AI generates, code filters
async function generateRecommendations(user) {
  // AI: Generate candidates
  const candidates = await ai.recommend(user, { count: 50 });
  
  // Code: Apply business rules
  const filtered = candidates
    .filter(item => item.inStock)
    .filter(item => item.price <= user.budget)
    .filter(item => !user.previouslyPurchased(item));
  
  // Code: Apply ranking logic
  return filtered
    .sort((a, b) => scoringFunction(a, b))
    .slice(0, 10);
}

AI + 传统代码:
"不要所有功能都用AI。在AI擅长的场景使用AI,在传统代码更可靠的场景使用传统代码。"
AI适用场景:
  • 模式匹配、识别
  • 自然语言理解
  • 创意生成
  • 模糊输入处理
  • 可随数据迭代优化的场景
传统代码适用场景:
  • 确定性逻辑
  • 数学计算
  • 数据校验
  • 权限控制
  • 核心关键路径
混合模式:
模式1:AI识别意图,代码执行操作
javascript
// Hybrid: AI understands, code executes
async function processUserQuery(query) {
  // AI: Understand intent
  const intent = await ai.classify(query, {
    types: ["search", "create", "update", "delete"]
  });
  
  // Traditional: Execute deterministically
  switch(intent.type) {
    case "search": return search(intent.params);
    case "create": return create(intent.params);
    // ... reliable code paths
  }
}
模式2:AI为主,规则兜底
javascript
// Hybrid: AI primary, rules backup
async function moderateContent(content) {
  // Fast rules-based check first
  if (containsProfanity(content)) return "reject";
  if (content.length > 10000) return "reject";
  
  // AI for nuanced cases
  const aiModeration = await ai.moderate(content);
  
  // Hybrid decision
  if (aiModeration.confidence > 0.9) {
    return aiModeration.decision;
  } else {
    return "human_review";  // Uncertain → human
  }
}
模式3:AI生成候选,代码过滤排序
javascript
// Hybrid: AI generates, code filters
async function generateRecommendations(user) {
  // AI: Generate candidates
  const candidates = await ai.recommend(user, { count: 50 });
  
  // Code: Apply business rules
  const filtered = candidates
    .filter(item => item.inStock)
    .filter(item => item.price <= user.budget)
    .filter(item => !user.previouslyPurchased(item));
  
  // Code: Apply ranking logic
  return filtered
    .sort((a, b) => scoringFunction(a, b))
    .slice(0, 10);
}

4. AI UX Patterns

4. AI UX模式

Streaming:
javascript
// Show results as they arrive
for await (const chunk of ai.stream(prompt)) {
  updateUI(chunk);  // Immediate feedback
}
Progressive Disclosure:
[AI working...]  →  [Preview...]  →  [Full results]
Retry and Refinement:
User: "Find PM articles"
AI: [shows results]
User: "More about prioritization"
AI: [refines results]
Confidence Indicators:
javascript
if (result.confidence > 0.9) {
  show(result);  // High confidence
} else if (result.confidence > 0.5) {
  show(result, { disclaimer: "AI-generated, verify" });
} else {
  show("I'm not confident. Try rephrasing?");
}
Cost-Aware Patterns:
javascript
// Progressive cost
if (simpleQuery) {
  return await smallModel(query);  // Fast, cheap
} else {
  return await largeModel(query);  // Slow, expensive
}

流式输出:
javascript
// Show results as they arrive
for await (const chunk of ai.stream(prompt)) {
  updateUI(chunk);  // Immediate feedback
}
渐进式展示:
[AI working...]  →  [Preview...]  →  [Full results]
重试与优化:
User: "Find PM articles"
AI: [shows results]
User: "More about prioritization"
AI: [refines results]
置信度标识:
javascript
if (result.confidence > 0.9) {
  show(result);  // High confidence
} else if (result.confidence > 0.5) {
  show(result, { disclaimer: "AI-generated, verify" });
} else {
  show("I'm not confident. Try rephrasing?");
}
成本感知模式:
javascript
// Progressive cost
if (simpleQuery) {
  return await smallModel(query);  // Fast, cheap
} else {
  return await largeModel(query);  // Slow, expensive
}

Decision Tree: When to Use AI

决策树:何时使用AI

FEATURE DECISION
├─ Deterministic logic needed? ────YES──→ TRADITIONAL CODE
│  (math, validation, access)
│  NO ↓
├─ Pattern matching / NLP? ────────YES──→ AI (with fallbacks)
│  (understanding intent, ambiguity)
│  NO ↓
├─ Creative generation? ───────────YES──→ AI (with human oversight)
│  (writing, images, ideas)
│  NO ↓
├─ Improves with more data? ───────YES──→ AI + ML
│  (recommendations, personalization)
│  NO ↓
└─ Use TRADITIONAL CODE ←──────────────────┘
   (More reliable for this use case)
FEATURE DECISION
├─ 是否需要确定性逻辑?────是──→ 传统代码
│  (数学计算、数据校验、权限控制)
│  否 ↓
├─ 是否涉及模式匹配/自然语言处理?────是──→ AI(搭配兜底方案)
│  (意图识别、模糊输入处理)
│  否 ↓
├─ 是否为创意生成场景?────是──→ AI(搭配人工审核)
│  (文案创作、图像生成、创意构思)
│  否 ↓
├─ 是否可随数据迭代优化?────是──→ AI+机器学习
│  (推荐系统、个性化服务)
│  否 ↓
└─ 使用传统代码 ←──────────────────┘
   (该场景下传统代码更可靠)

Action Templates

行动模板

Template 1: AI Feature Spec with Evals

模板1:带评估用例的AI功能规格

markdown
undefined
markdown
undefined

AI Feature: [Name]

AI Feature: [Name]

What It Does

What It Does

User goal: [describe job to be done] AI capability: [what AI makes possible]
User goal: [describe job to be done] AI capability: [what AI makes possible]

Evals (Product Spec)

Evals (Product Spec)

Success Cases

Success Cases

javascript
test("handles typical user query", async () => {
  const input = "[example]";
  const output = await aiFeature(input);
  expect(output).toMatch("[expected]");
});

test("handles edge case", async () => {
  // Define edge cases as tests
});
javascript
test("handles typical user query", async () => {
  const input = "[example]";
  const output = await aiFeature(input);
  expect(output).toMatch("[expected]");
});

test("handles edge case", async () => {
  // Define edge cases as tests
});

Quality Bar

Quality Bar

  • Accuracy: [X%]
  • Latency: [<X ms]
  • Cost: [<$X per 1000 calls]
  • Accuracy: [X%]
  • Latency: [<X ms]
  • Cost: [<$X per 1000 calls]

Hybrid Approach

Hybrid Approach

  • AI handles: [list]
  • Traditional code handles: [list]
  • Fallback: [when AI uncertain]
  • AI handles: [list]
  • Traditional code handles: [list]
  • Fallback: [when AI uncertain]

Model Improvement Plan

Model Improvement Plan

  • Today's capability: [current]
  • Expected in 3 months: [future]
  • Design accommodates: [how UI scales]
undefined
  • Today's capability: [current]
  • Expected in 3 months: [future]
  • Design accommodates: [how UI scales]
undefined

Template 2: AI Cost Optimization

模板2:AI成本优化方案

markdown
undefined
markdown
undefined

AI Feature: [Name]

AI Feature: [Name]

Cost Structure

Cost Structure

  • Model: [GPT-4, Claude, etc.]
  • Cost per call: [$X]
  • Expected volume: [X calls/day]
  • Monthly cost: [estimate]
  • Model: [GPT-4, Claude, etc.]
  • Cost per call: [$X]
  • Expected volume: [X calls/day]
  • Monthly cost: [estimate]

Optimization Strategies

Optimization Strategies

1. Caching

1. Caching

  • Cache common queries
  • Cache user context
  • Expiry: [duration]
  • Cache common queries
  • Cache user context
  • Expiry: [duration]

2. Model Routing

2. Model Routing

  • Simple queries → small model
  • Complex queries → large model
  • Threshold: [define]
  • Simple queries → small model
  • Complex queries → large model
  • Threshold: [define]

3. Batching

3. Batching

  • Group similar requests
  • Process in batches
  • Update frequency: [timing]
  • Group similar requests
  • Process in batches
  • Update frequency: [timing]

4. Prompt Optimization

4. Prompt Optimization

  • Minimize token count
  • Reusable system prompts
  • Structured outputs (JSON)
  • Minimize token count
  • Reusable system prompts
  • Structured outputs (JSON)

5. Hybrid Approaches

5. Hybrid Approaches

  • Rules-based preprocessing
  • AI only when needed
  • Fallback to deterministic
undefined
  • Rules-based preprocessing
  • AI only when needed
  • Fallback to deterministic
undefined

Template 3: AI UX Implementation

模板3:AI UX实现方案

markdown
undefined
markdown
undefined

Feature: [Name]

Feature: [Name]

UX Patterns

UX Patterns

Streaming Response

Streaming Response

javascript
// Show results as they arrive
for await (const chunk of stream) {
  appendToUI(chunk);
}
javascript
// Show results as they arrive
for await (const chunk of stream) {
  appendToUI(chunk);
}

Loading States

Loading States

  • Initial: "Thinking..."
  • Progress: "Analyzing..." (if possible)
  • Complete: [show results]
  • Initial: "Thinking..."
  • Progress: "Analyzing..." (if possible)
  • Complete: [show results]

Error Handling

Error Handling

  • Model error: "Something went wrong, try again"
  • Timeout: "This is taking longer than expected..."
  • Rate limit: "Too many requests, please wait"
  • Model error: "Something went wrong, try again"
  • Timeout: "This is taking longer than expected..."
  • Rate limit: "Too many requests, please wait"

Confidence Display

Confidence Display

  • High (>0.9): Show results directly
  • Medium (0.5-0.9): Show with disclaimer
  • Low (<0.5): Ask user to clarify
  • High (>0.9): Show results directly
  • Medium (0.5-0.9): Show with disclaimer
  • Low (<0.5): Ask user to clarify

Refinement Loop

Refinement Loop

  • Show initial results
  • "Refine" button
  • Conversational refinement
undefined
  • Show initial results
  • "Refine" button
  • Conversational refinement
undefined

Quick Reference Card

快速参考卡片

🤖 AI Product Checklist

🤖 AI产品构建检查清单

Before Building:
  • Evals written (test cases = product spec)
  • Hybrid approach defined (AI + traditional code)
  • Model improvement plan (design for future capabilities)
  • Cost estimate (per call, monthly)
  • Quality bar defined (accuracy, latency, cost)
During Build:
  • Implementing streaming (for responsiveness)
  • Adding confidence indicators
  • Building retry/refinement flows
  • Caching common queries
  • Fallbacks for failures
Before Ship:
  • Evals passing (quality bar met)
  • Cost within budget
  • Error states handled
  • Model swappable (not locked to one provider)
  • Monitoring in place

构建前:
  • 已编写评估用例(测试用例=产品规格)
  • 已定义混合方案(AI+传统代码)
  • 已制定模型迭代规划(面向未来能力设计)
  • 已完成成本估算(单次调用、月度成本)
  • 已定义质量标准(准确率、延迟、成本)
构建中:
  • 已实现流式输出(提升响应速度)
  • 已添加置信度标识
  • 已构建重试/优化流程
  • 已缓存常见查询
  • 已实现故障兜底方案
上线前:
  • 评估用例全部通过(达到质量标准)
  • 成本控制在预算内
  • 错误场景已处理
  • 模型可替换(不绑定单一供应商)
  • 已部署监控机制

Real-World Examples

实际案例

Example 1: OpenAI's ChatGPT Memory

案例1:OpenAI的ChatGPT记忆功能

Challenge: Users want persistent context
AI-Native Approach:
  • Built for models that would improve memory
  • Started simple, designed for sophisticated future
  • Evals: "Remembers facts across sessions"
  • Hybrid: Explicit memory + AI interpretation
Result: Feature improves as models improve

挑战: 用户需要持久化对话上下文
AI原生方案:
  • 面向未来模型的记忆能力构建
  • 初始版本简洁,为后续复杂功能预留空间
  • 评估用例:“跨会话记住用户信息”
  • 混合方案:显式记忆+AI语义理解
结果: 功能随模型能力提升而自动优化

Example 2: AI Search Implementation

案例2:AI搜索实现方案

Challenge: Traditional search missing intent
Hybrid Approach:
javascript
async function search(query) {
  // Traditional: Exact matches (fast, cheap)
  const exactMatches = await traditionalSearch(query);
  if (exactMatches.length > 10) return exactMatches;
  
  // AI: Semantic search (smart, expensive)
  const semanticResults = await aiSearch(query);
  
  // Hybrid: Combine and rank
  return dedupe([...exactMatches, ...semanticResults]);
}

挑战: 传统搜索无法理解用户真实意图
混合方案:
javascript
async function search(query) {
  // Traditional: Exact matches (fast, cheap)
  const exactMatches = await traditionalSearch(query);
  if (exactMatches.length > 10) return exactMatches;
  
  // AI: Semantic search (smart, expensive)
  const semanticResults = await aiSearch(query);
  
  // Hybrid: Combine and rank
  return dedupe([...exactMatches, ...semanticResults]);
}

Example 3: Cost Optimization

案例3:成本优化方案

Challenge: AI costs too high
Solution:
  • Cached 80% of common queries
  • Routed simple queries to small model
  • Batched recommendations (not real-time)
  • Reduced cost 10x while maintaining quality

挑战: AI调用成本过高
解决方案:
  • 缓存80%的常见查询
  • 简单查询路由至轻量模型
  • 推荐请求批量处理(非实时)
  • 在保持质量的前提下将成本降低10倍

Common Pitfalls

常见误区

❌ Mistake 1: AI for Everything

❌ 误区1:所有功能都用AI

Problem: Using AI where traditional code is better Fix: Use hybrid approach - AI where it shines, code where it's reliable
问题: 在传统代码更合适的场景强行使用AI 解决: 采用混合方案——AI用于擅长的场景,代码用于可靠场景

❌ Mistake 2: Designing for Current Limitations

❌ 误区2:围绕当前模型局限性设计

Problem: "Models can't do X, so we won't support it" Fix: Build for future capabilities, room to grow
问题: “模型做不到X,所以我们不支持这个功能” 解决: 面向未来能力构建,为后续迭代预留空间

❌ Mistake 3: No Evals

❌ 误区3:未设置评估用例

Problem: Subjective quality, no measurement Fix: Evals as product specs - define good in test cases
问题: 产品质量标准主观,无法量化度量 解决: 将评估用例作为产品规格,用测试用例定义“好”的标准

❌ Mistake 4: Ignoring Costs

❌ 误区4:忽略成本控制

Problem: Expensive AI calls without optimization Fix: Cache, batch, route to smaller models

问题: 无节制使用AI导致成本过高 解决: 采用缓存、模型路由、批量处理等优化手段

Related Skills

相关技能

  • zero-to-launch - For AI-first MVP scoping
  • quality-speed - For balancing AI quality vs latency
  • exp-driven-dev - For A/B testing AI features
  • metrics-frameworks - For measuring AI quality

  • zero-to-launch - 用于AI优先的MVP规划
  • quality-speed - 用于平衡AI质量与延迟
  • exp-driven-dev - 用于AI功能的A/B测试
  • metrics-frameworks - 用于AI质量度量

Key Quotes

关键引用

Kevin Weil:
"If you're building and the product is right on the edge of what's possible, keep going. In two months, there's going to be a better model."
On Evals:
"At OpenAI, we write evals as product specs. If you can define good output in test cases, you've defined the product."
On Model Improvements:
"The AI model you're using today is the worst AI model you will ever use for the rest of your life."

Kevin Weil:
“如果你正在构建的产品刚好触达当前AI能力的边界,别停下。两个月后,就会有更强大的模型出现。”
关于评估用例:
“在OpenAI,我们将评估用例作为产品规格。如果你能通过测试用例定义合格输出的标准,你就已经定义了产品。”
关于模型迭代:
“你如今使用的AI模型,会是你余生中用到的最差的AI模型。”

Further Learning

拓展学习

  • references/openai-ai-first-philosophy.md - Full AI-native methodology
  • references/evals-examples.md - Sample evals for common features
  • references/hybrid-patterns.md - AI + traditional code patterns
  • references/ai-cost-optimization.md - Cost reduction strategies
  • references/openai-ai-first-philosophy.md - 完整AI原生方法论文档
  • references/evals-examples.md - 常见功能的评估用例示例
  • references/hybrid-patterns.md - AI+传统代码模式文档
  • references/ai-cost-optimization.md - 成本优化策略文档