提示词插槽

Prompt slots 是以声明式方式塑造智能体系统提示词的会话选项。请把它们用于宿主级行为—— 角色设定、编码规范、输出风格——这些内容不应写在每次的用户 prompt 里。槽位只改变系统 提示词的边缘部分:运行时契约、仓库工具契约和安全边界始终保留,因此核心工具行为(读取、 写入、运行命令)不受影响。

共有五个文本槽位(下表列出 Node.js / Python 名称;Rust 使用 SystemPromptSlots::with_* 构建方法,Go 使用 PromptSlots 字段):

槽位对系统提示词的作用
role / role替换默认的身份说明行。
guidelines / guidelines加入 Guidelines 小节。
responseStyle / response_style替换默认的 Response Format 小节。
outputLanguage / output_language把面向用户的回复固定为某个 BCP-47 标签,如 zh-CN。
extra / extra逐字追加在末尾。

Rust 的 SystemPromptSlots 还提供 with_style,用于强制使用某种内置提示词风格。

基本用法

在打开会话时设置任意子集的槽位。它们会应用于该会话的每一轮对话。

Rust
Node.js
Python
Go
Rust
use a3s_code_core::{Agent, SessionOptions, SystemPromptSlots};
#[tokio::main]
async fn main() -> a3s_code_core::Result<()> {
let agent = Agent::new("agent.acl").await?;
let slots = SystemPromptSlots::default()
.with_role("发布就绪审查员")
.with_guidelines("先找阻塞项,再提改进;完成结论必须有命令证据。")
.with_response_style("简洁,发现优先");
let session = agent
.session_builder("/repo")
.options(SessionOptions::new().with_prompt_slots(slots))
.build()
.await?;
let result = session.send("这个仓库可以发布了吗?", None).await?;
println!("{}", result.text);
session.close().await;
agent.close().await;
Ok(())
}

逐个槽位说明

这些槽位彼此独立组合。仅设置角色的会话、带有严格准则的评审者、以及追加自由格式指令的 会话,使用的都是同一组选项。

Rust
Node.js
Python
Go

槽位用于定制角色设定与行为规则;它们不会禁用工具,也不会改变智能体的核心循环。请把 任务相关的请求保留在 send 消息中,而把应在会话每一轮都生效的行为交给这些槽位。

可运行版本位于 sdk/node/examples/skills/test_prompt_slots.ts。