# 自定义策略
当内置策略（总结、语义记忆、用户偏好、情景记忆、程序性记忆）不满足需求时，可以创建自定义策略来定义自己的记忆提取逻辑。
#### 什么是自定义策略
内置策略的记忆提取逻辑由平台预定义，用户无法修改提取规则和输出格式。自定义策略则将提取逻辑完全交给用户定义------用户编写提示模板（Prompt），告诉模型从对话中提取什么内容、以什么格式输出。平台负责按触发条件调用模型执行提取，并将结果存入长期记忆。
自定义策略可以与内置策略同时启用，互不影响。例如：同时启用语义记忆策略（内置）和一个提取订单信息的自定义策略，Agent既能记住事实知识，又能记住业务数据。
#### 新增自定义策略
1. 登录[AgentArts智能体平台](https://console.huaweicloud.com/agentarts/#/home/overview)。
2. 在左侧导航栏选择"托管与运行 \> 记忆库 "，进入记忆库界面。
3. 单击记忆库名称，查看记忆库详情。
4. 在"基本信息"页签，在"长期记忆提取策略"区域，单击"新增自定义策略"，通过基础模型和提示模板自定义记忆处理。
5. 配置策略信息后单击"确定"。 
   - 策略名称：自定义策略名称，策略名称不可重复。命名规则：包含a-z、A-Z、0-9 和 (中划线）等有效字符，最多可包含 48 个字符。
   
   - 策略类型：选择策略类型，然后配置抽取（Extraction）、整合（Consolidation）和反思（Reflection）的提示词模板。提示词模板是自定义策略的核心，决定了模型从对话中提取什么内容、以什么格式输出结果。提示模板的质量直接决定记忆提取的效果。
     请根据页面展示的实际内容配置。
     - 抽取 Extraction：从大量数据中提取关键信息和重要特征，可以使用默认用户提示或创建自定义提示。
     
     - 整合 Consolidation：将提取出的信息进行汇总、合并和优化，确保信息的完整性和一致性，可以使用默认用户提示或创建自定义提示。
     
     - 反思 Reflection：系统对过去的经验、行为或数据进行分析和总结，以提取有价值的信息和洞察的过程。
       
   
   
   
   
 
#### 提示词模板编写原则
| 原则      | 说明                            |
|:---|:---|
| 明确提取目标 | 清晰描述要从对话中提取什么类型的信息，避免模糊表述。  |
| 定义输出格式 | 给出明确的JSON结构示例，要求模型严格按格式输出。    |
| 提供正例  | 给出1-2个输入对话和期望输出的示例，帮助模型理解期望。  |
| 说明忽略内容 | 明确指出哪些内容不需要提取，减少噪声记忆。         |
| 控制输出长度  | 单条记忆不宜过长，建议在提示模板中限定输出字段的数量或长度。 |
   
以下是一个提取订单信息的自定义策略提示模板示例：
```
你是一个记忆提取助手。请从以下对话中提取订单相关信息。
提取规则：
1. 只提取明确的订单信息，包括：订单号、商品名称、数量、金额、下单时间。
2. 如果对话中没有订单信息，返回空结果。
3. 忽略与订单无关的闲聊内容。
4. 多个订单分别输出，不要合并。
输出格式（严格按以下 JSON 结构输出，不要添加任何其他文本）：
{
  "orders": [
    {
      "order_id": "订单号",
      "product": "商品名称",
      "quantity": "数量",
      "amount": "金额",
      "order_time": "下单时间"
    }
  ]
}
示例：
输入对话：用户说"我刚下了一个订单，订单号 A12345，买了 2 台笔记本电脑，一共 12000 元，今天下午下的单。"
期望输出：
{
  "orders": [
    {
      "order_id": "A12345",
      "product": "笔记本电脑",
      "quantity": "2",
      "amount": "12000",
      "order_time": "今天下午"
    }
  ]
}
```
#### 适用场景
**行业特定知识提取**
内置策略面向通用对话设计，无法识别行业术语和专业概念。自定义策略可以通过提示模板让模型按行业标准提取信息。
| 行业   | 提取内容               | 示例                                  |
|:---|:---|:---|
| 医疗 | 症状描述、诊断结论、用药记录       | 从问诊对话中提取"患者主诉：头痛 3 天；既往用药：布洛芬"      |
| 法律   | 案件类型、法律条款引用、当事人诉求 | 从法律咨询中提取"案件类型：合同纠纷；引用法条：合同法第 94 条" |
| 金融  | 交易类型、金额、风险等级          | 从理财对话中提取"产品类型：基金；申购金额：5 万元"       |
   
**结构化信息提取**
当需要从对话中提取结构化业务数据（而非自然语言摘要）时，自定义策略可以定义精确的字段结构。
| 场景   | 提取字段             | 用途                          |
|:---|:---|:---|
| 订单管理  | 订单号、商品、数量、金额、状态  | Agent 记住用户的订单历史，后续查询时直接引用 |
| 工单系统   | 工单号、问题类型、处理状态、责任人 | Agent 跟踪用户的问题处理进展          |
| CRM | 客户姓名、公司、联系方式、需求标签  | Agent 积累客户画像，提供个性化服务       |
   
