首页 教程 常见问题

13.18 Agent SDK 修改系统提示

动态修改 Agent SDK 中的系统提示——调整代理的行为、角色和输出风格。

系统提示的作用

系统提示定义了代理的基本行为:

基础系统提示

SYSTEM_PROMPT = """你是一个编程助手。
你的职责:
1. 帮助用户理解代码
2. 提供代码改进建议
3. 回答技术问题

不要:
1. 执行删除操作
2. 泄露敏感信息
3. 运行不确定的命令"""

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=2048,
    system=SYSTEM_PROMPT,
    messages=[{"role": "user", "content": "你好"}]
)

动态修改

def build_system_prompt(context):
    """根据上下文动态构建系统提示。"""
    parts = [BASE_SYSTEM_PROMPT]

    if context.get("task") == "review":
        parts.append(REVIEW_INSTRUCTIONS)
    elif context.get("task") == "debug":
        parts.append(DEBUG_INSTRUCTIONS)

    if context.get("language"):
        parts.append(f"使用 {context['language']} 回答。")

    return "\n\n".join(parts)

# 使用
context = {"task": "review", "language": "中文"}
system = build_system_prompt(context)
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    system=system,
    messages=[{"role": "user", "content": "审查这段代码"}]
)

缓存系统提示

系统提示会占用输入 token。使用 prompt caching 可以降低成本:

response = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=2048,
    system=[
        {
            "type": "text",
            "text": SYSTEM_PROMPT,
            "cache_control": {"type": "ephemeral"}
        }
    ],
    messages=messages
)

下一步