使用语义层自定义 Ask AI 聊天
Ask AI 聊天代理可以通过 AGENTS.md 进行自定义,从而理解你的特定业务逻辑、数据结构和领域知识——它是一个特殊的已保存查询,作为代理系统提示之上的语义层。
通过创建一个 AGENTS.md 文件,你可以提供自定义指令,这些指令会在每次会话开始时被注入,用于根据你组织独特的需求、计算规则和约定来引导 SQL 查询生成和数据分析。
工作原理
当你在 Cloud Console 中保存一个名为“AGENTS.md”的查询(区分大小写)时:
- 在发送消息时,Ask AI 聊天代理会自动加载该文件
- 文件内容会被放入一个结构化内容标签中,并注入到代理的 system prompt 中
- 这些指令会应用于该服务中的所有 Ask AI 聊天会话
创建 AGENTS.md
创建保存的查询
- 在 Cloud 控制台中创建一个新的查询
- 将其名称精确设置为:"AGENTS.md"(区分大小写)
- 在查询文本编辑器中编写自定义指令(不是实际的 SQL 语句)
- 保存该查询
最佳实践
将上下文视为有限资源
上下文十分宝贵——每个 token 都会消耗智能体的“注意力预算”。就像人类的工作记忆有限一样,随着上下文增长,语言模型的性能会逐渐下降。这意味着你需要找到规模最小的一组高信号 token,以最大化获得期望结果的概率。
找到合适的“高度”
在两个极端之间找到平衡:
- 过于具体:将脆弱的 if-else 逻辑硬编码进去,导致系统脆弱且维护复杂
- 过于空泛:只有高层指导,没有给出具体信号,或错误地假设已有共享上下文
理想的“高度”应当既足够具体,能有效引导行为,又足够灵活,让模型可以运用强大的启发式策略。先在可用的最佳模型上使用尽可能精简的 prompt 起步,然后根据观察到的失败模式补充清晰的指令。
使用结构化部分进行组织
使用 XML 标签或 Markdown 标题来创建清晰、易于浏览的独立部分:
提供多样且典型的示例
示例就像“胜过千言万语的图片”。与其在提示词中塞入每一个边界情况,不如精心挑选一组多样化的典型示例,以有效呈现期望的行为。
保持精简但完整
- 只包含经常需要的指令
- 保持简洁——过大的上下文会因“上下文腐蚀(context rot)”而降低性能
- 移除过时或极少使用的规则
- 确保信息足够,以引导出期望的行为
提示
精简不一定意味着篇幅很短。你需要提供足够的细节,以确保智能体(agent)能遵循预期行为,只是要避免不必要的冗长。
示例:从原始数据计算指标
当某些指标需要通过特定计算而不是直接读取列数据获得时,对代理进行相应的引导:
示例:业务逻辑规则
定义特定领域的计算和分类:
示例:数据结构中的特殊情况
记录非常规数据格式或历史遗留的 schema 设计决策:
示例:领域术语
将业务术语映射到具体的技术实现: