使用语义层自定义 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 逻辑硬编码进去,使系统变得脆弱并增加维护复杂度
- 过于模糊:只给出高层次指导,既缺乏具体信号,又错误地假设存在共享上下文
理想的抽象高度应当既足够具体,能有效引导行为,又足够灵活,让模型可以运用强有力的启发式方法。先在当前可用的最优模型上,从一个尽可能精简的提示起步,然后根据观察到的失败模式逐步加入清晰的指令。
使用结构化章节组织内容
使用 XML 标签或 Markdown 标题来创建清晰、便于浏览的独立章节:
提供多样且典型的示例
示例就像“一图胜千言”。与其在提示中塞进所有边缘情况,不如精心挑选一组多样且具有代表性的示例,以有效展现期望的行为。
保持精简但完整
- 只包含经常需要的指令
- 保持简洁——过大的上下文会因为“上下文腐蚀(context rot)”而降低性能
- 移除过时或很少使用的规则
- 同时要保证有足够的信息来引导期望的行为
提示
“最小化”并不一定意味着篇幅很短。你需要提供足够的细节,以确保代理遵循预期行为,只是要避免不必要的赘述。
示例:从原始数据计算指标
当指标需要经过特定计算而非直接访问列时,为 agent 提供指导:
示例:业务逻辑规则
定义领域特定的计算和分类:
示例:数据结构中的特殊情况
记录非标准的数据格式或历史遗留的 schema 设计:
示例:领域术语
将业务领域术语映射到技术实现: