提示词开发指南
Nexent 将内置提示词 YAML 放在 sdk/nexent/core/prompts/。Backend 收集业务数据并选择模板,SDK 加载资源和渲染带参数的字段。
文件与接口
- 语言资源位于
zh/和en/,下一层按agent、meta、evaluation、tool等用途分类。两种语言的相对路径一一对应,文件名不重复语言后缀。meta/保存用于生成提示词、Agent 和技能草稿的元提示词。 - Agent 模板位于
zh/agent/和en/agent/,主、子角色分别使用agent_manager.yaml、agent_worker.yaml。聊天标题生成使用agent/generate_chat_title.yaml。主、子角色模板的顶层字段为system_sections、对应角色的阶段字段和final_answer。 - 人在回路、上下文摘要和答案校验策略分别保存在两种语言的
agent/human_interaction.yaml、agent/context_summary.yaml、agent/answer_verifier.yaml。中文摘要和校验策略是对原英文资源的简译。 load_prompt(language, relative_path)根据语言目录下的相对路径加载独立的模板映射,例如load_prompt("zh", "agent/human_interaction")。路径也可写为agent/human_interaction.yaml。render_prompt_text(source, parameters)渲染带参数的 Jinja 文本。- Backend 服务按语言、用途和文件名直接调用 SDK。用户自定义提示词生成模板仍由数据库管理,内置默认值来自 SDK YAML。
参数
调用方将本轮实际值传给 SDK 渲染接口。Agent 运行时的 duty、constraint、few_shots 和角色任务等值由配置或会话提供。NL2Agent、技能创建及其他工作流也按当前任务传入工具名、技能草稿或文档内容。缺少必需的 Jinja 参数会报错,避免把未渲染的模板占位符原样发给模型。
扩展模板
- 在 SDK 提示词目录的语言和功能子目录添加 YAML,例如
zh/evaluation/judge.yaml。保留该工作流现有字段名和占位符。 - 在调用处使用资源的语言和相对路径;已有 Agent 模板继续通过 SDK 的 bundle 校验。元提示词使用
meta/nl2agent.yaml和meta/nl2skill.yaml。 - 为动态字段增加参数渲染测试,为资源增加包内加载测试。SDK 的
pyproject.toml声明了两级子目录内的 YAML package data。 - 用对应 Backend 服务的测试核对最终消息内容、语言选择和用户模板覆盖顺序。
