ClickHouse Assistant 聊天 agent 可通过 AGENTS.md 进行自定义,从而理解你的特定业务逻辑、数据结构和领域知识。AGENTS.md 是一种特殊的已保存查询,可作为叠加在 agent 系统提示之上的语义层。
通过创建 AGENTS.md 文件,你可以提供自定义指令。这些指令会在每次对话开始时注入,用于根据你的组织特有的需求、计算方式和约定来指导 SQL 查询生成和数据分析。
当你在 Cloud Console 中保存一个名为 “AGENTS.md” (区分大小写) 的查询后:
- 发送消息时,ClickHouse Assistant 聊天 agent 会自动加载此文件
- 文件内容会被放入结构化内容标签中,并注入 agent 的系统提示
- 这些指令会应用于该服务中的所有 ClickHouse Assistant 聊天对话
创建已保存查询
- 在 Cloud Console 中创建一个新查询
- 将名称准确设置为:“AGENTS.md” (区分大小写)
- 在查询文本编辑器中编写自定义说明 (不是实际的 SQL)
- 保存查询
添加说明
请使用清晰、可执行的语言来组织说明。包括:
- 业务规则和计算逻辑
- 数据结构指导
- 领域专用术语
- 常见查询模式
- 性能优化规则
上下文十分宝贵——每一个标记都会消耗智能体的“注意力预算”。就像人类的工作记忆有限一样,随着上下文变长,语言模型的表现也会逐渐下降。这意味着你需要找到尽可能少但信号最强的一组标记,以最大限度提高获得预期结果的可能性。
在两个极端之间把握平衡:
- 过于具体:硬编码脆弱的 if-else 逻辑,既容易出问题,也会增加维护复杂度
- 过于模糊:只给出高层次指导,无法提供明确的信号,或错误地假定存在共享上下文
理想的抽象层级应该足够具体,能够有效引导行为;同时也要足够灵活,让模型可以运用有效的启发式方法。先在当前可用的最佳模型上使用一个尽量精简的提示词,再根据观察到的失败模式补充清晰的指令。
使用 XML 标签或 Markdown 标题创建清晰、便于浏览的分节:
示例就像“胜过千言万语的图片”。与其把所有边缘情况都塞进 prompt,不如精心挑选一组重点明确、类型多样的示例,清晰展现预期行为。
- 仅包含常用的说明
- 保持简洁——上下文过大会因“上下文腐化”而导致性能下降
- 删除过期或很少使用的规则
- 确保提供足够的信息来引导所需的行为
精简不一定意味着简短。你需要提供足够的细节,确保 agent 按预期行为执行,同时避免不必要的冗长。
当指标需要经过特定计算,而不能直接访问列时,请指导 agent:
定义特定业务领域的计算和分类:
说明非常规的数据格式或历史遗留的 schema 设计决策:
将业务术语对应到技术实现: