SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
14 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
2.4 KB · 28 lines shellscript
Raw Blame History
1#!/usr/bin/env bash2# Context editing (beta context-management-2025-06-27): clear_tool_uses_20250919 with a tiny trigger so the edit3# fires on a fabricated 3-tool-call history; prints the context_management.applied_edits response field, then4# previews the effect with /v1/messages/count_tokens (original_input_tokens vs input_tokens).5# STATUS: LIVE_VERIFIED 2026-09-18 (claude-haiku-4-5-20251001): applied_edits [{clear_tool_uses_20250919,6# cleared_tool_uses 2, cleared_input_tokens 174}]; count_tokens 838 vs original 928 (~$0.001).7# Run: bash examples/anthropic/context-management/context_editing.sh8set -eo pipefail9cd "$(dirname "$0")/../../.." && source scripts/lib.sh10OUTF="$(mktemp)"; trap 'rm -f "$OUTF"' EXIT11# `ant` sets ANT_STATUS; calling it inside $(...) would lose it, so write the body to a file instead.12call() { ant "$@" > "$OUTF"; OUT="$(cat "$OUTF")"; }13MODEL="${ANTHROPIC_MODEL:-claude-haiku-4-5-20251001}"14BODY="$(jq -n --arg m "$MODEL" --arg pad "$(printf 'x%.0s' $(seq 1 400))" '{model:$m, max_tokens:8,15  tools:[{name:"lookup", description:"Looks up a record.", input_schema:{type:"object", properties:{id:{type:"string"}}}}],16  messages:([{role:"user", content:"Look up records r0, r1, r2 then reply OK."}] +17    ([0,1,2] | map([{role:"assistant", content:[{type:"tool_use", id:("toolu_atlas"+tostring), name:"lookup", input:{id:("r"+tostring)}}]},18                    {role:"user", content:[{type:"tool_result", tool_use_id:("toolu_atlas"+tostring), content:("record "+$pad)}]}]) | add) +19    [{role:"user", content:"Reply with OK. Do not call tools."}]),20  context_management:{edits:[{type:"clear_tool_uses_20250919", trigger:{type:"input_tokens", value:1},21    keep:{type:"tool_uses", value:1}, clear_at_least:{type:"input_tokens", value:1}}]}}')"22call POST /v1/messages -H 'anthropic-beta: context-management-2025-06-27' -d "$BODY"23echo "messages HTTP $ANT_STATUS: $(echo "$OUT" | jq -c '{context_management, input_tokens: .usage.input_tokens}')"24log_request anthropic POST /v1/messages "$ANT_STATUS" 0.001 "example context-management/context_editing.sh clear_tool_uses $MODEL beta=context-management-2025-06-27"25call POST /v1/messages/count_tokens -H 'anthropic-beta: context-management-2025-06-27' -d "$(echo "$BODY" | jq 'del(.max_tokens)')"; CNT="$OUT"26echo "count_tokens HTTP $ANT_STATUS: $CNT"27log_request anthropic POST /v1/messages/count_tokens "$ANT_STATUS" 0 "example context-management/context_editing.sh count_tokens"28