首页 教程 常见问题

13.17 Agent SDK 斜杠命令

在你的自定义代理应用中实现斜杠命令——提供便捷的快捷操作。

什么是斜杠命令

斜杠命令是以 / 开头的快捷指令,触发特定的操作而不是普通对话。

实现斜杠命令

SLASH_COMMANDS = {
    "/help": lambda: "可用命令:/help, /clear, /model, /context",
    "/clear": lambda: (messages.clear(), "会话已清除"),
    "/model": lambda: switch_model(),
    "/context": lambda: show_context_usage(),
}

def process_input(user_input):
    """处理用户输入,检查是否是斜杠命令。"""
    if user_input.startswith("/"):
        command = user_input.split()[0]
        handler = SLASH_COMMANDS.get(command)
        if handler:
            return handler()
        return f"未知命令: {command}"

    # 普通消息,发送给代理
    return run_agent(user_input)

def switch_model():
    """切换模型的交互处理。"""
    models = ["claude-sonnet-4-20250514", "claude-opus-4-0-20250414"]
    print("可用模型:")
    for i, model in enumerate(models):
        print(f"  {i+1}. {model}")
    choice = input("选择: ")
    current_model = models[int(choice) - 1]
    return f"模型已切换到: {current_model}"

扩展命令

# 带参数的命令
SLASH_COMMANDS["/set-max-tokens"] = lambda n: set_max_tokens(int(n))
SLASH_COMMANDS["/save-session"] = lambda: save_session(messages)
SLASH_COMMANDS["/load-session"] = lambda: load_session()

下一步