mirror of
https://github.com/lWolvesl/claw-code.git
synced 2026-04-02 19:01:52 +08:00
fix: remove debug logs, set model-specific max_tokens (opus=32k, sonnet/haiku=64k)
This commit is contained in:
1
.claude/sessions/session-1775009583240.json
Normal file
1
.claude/sessions/session-1775009583240.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"messages":[{"blocks":[{"text":"Explain what Rust is in exactly 3 sentences.","type":"text"}],"role":"user"},{"blocks":[{"text":"Rust is a systems programming language focused on safety, speed, and concurrency, designed to provide memory safety without relying on a garbage collector. It achieves this through its ownership system, which enforces strict rules about how memory is accessed and shared at compile time, eliminating entire classes of bugs like data races and dangling pointers. Rust has gained widespread adoption for building performance-critical software such as operating systems, game engines, web browsers, and command-line tools.","type":"text"}],"role":"assistant","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":2383,"output_tokens":102}}],"version":1}
|
||||||
1
.claude/sessions/session-1775009651284.json
Normal file
1
.claude/sessions/session-1775009651284.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"messages":[{"blocks":[{"text":"Say hello","type":"text"}],"role":"user"},{"blocks":[{"text":"Hello! 👋 How can I help you today?","type":"text"}],"role":"assistant","usage":{"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"input_tokens":2958,"output_tokens":16}}],"version":1}
|
||||||
@@ -311,9 +311,6 @@ impl AnthropicClient {
|
|||||||
request: &MessageRequest,
|
request: &MessageRequest,
|
||||||
) -> Result<reqwest::Response, ApiError> {
|
) -> Result<reqwest::Response, ApiError> {
|
||||||
let request_url = format!("{}/v1/messages", self.base_url.trim_end_matches('/'));
|
let request_url = format!("{}/v1/messages", self.base_url.trim_end_matches('/'));
|
||||||
let resolved_base_url = self.base_url.trim_end_matches('/');
|
|
||||||
eprintln!("[anthropic-client] resolved_base_url={resolved_base_url}");
|
|
||||||
eprintln!("[anthropic-client] request_url={request_url}");
|
|
||||||
let request_builder = self
|
let request_builder = self
|
||||||
.http
|
.http
|
||||||
.post(&request_url)
|
.post(&request_url)
|
||||||
@@ -321,16 +318,6 @@ impl AnthropicClient {
|
|||||||
.header("content-type", "application/json");
|
.header("content-type", "application/json");
|
||||||
let mut request_builder = self.auth.apply(request_builder);
|
let mut request_builder = self.auth.apply(request_builder);
|
||||||
|
|
||||||
eprintln!(
|
|
||||||
"[anthropic-client] headers x-api-key={} authorization={} anthropic-version={ANTHROPIC_VERSION} content-type=application/json",
|
|
||||||
if self.auth.api_key().is_some() {
|
|
||||||
"[REDACTED]"
|
|
||||||
} else {
|
|
||||||
"<absent>"
|
|
||||||
},
|
|
||||||
self.auth.masked_authorization_header()
|
|
||||||
);
|
|
||||||
|
|
||||||
request_builder = request_builder.json(request);
|
request_builder = request_builder.json(request);
|
||||||
request_builder.send().await.map_err(ApiError::from)
|
request_builder.send().await.map_err(ApiError::from)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,17 @@ use serde_json::json;
|
|||||||
use tools::{execute_tool, mvp_tool_specs, ToolSpec};
|
use tools::{execute_tool, mvp_tool_specs, ToolSpec};
|
||||||
|
|
||||||
const DEFAULT_MODEL: &str = "claude-opus-4-6";
|
const DEFAULT_MODEL: &str = "claude-opus-4-6";
|
||||||
const DEFAULT_MAX_TOKENS: u32 = 32;
|
fn max_tokens_for_model(model: &str) -> u32 {
|
||||||
|
if model.contains("opus") {
|
||||||
|
32_000
|
||||||
|
} else if model.contains("sonnet") {
|
||||||
|
64_000
|
||||||
|
} else if model.contains("haiku") {
|
||||||
|
64_000
|
||||||
|
} else {
|
||||||
|
16_384
|
||||||
|
}
|
||||||
|
}
|
||||||
const DEFAULT_DATE: &str = "2026-03-31";
|
const DEFAULT_DATE: &str = "2026-03-31";
|
||||||
const DEFAULT_OAUTH_CALLBACK_PORT: u16 = 4545;
|
const DEFAULT_OAUTH_CALLBACK_PORT: u16 = 4545;
|
||||||
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
@@ -1046,7 +1056,7 @@ impl LiveCli {
|
|||||||
.with_base_url(api::read_base_url());
|
.with_base_url(api::read_base_url());
|
||||||
let request = MessageRequest {
|
let request = MessageRequest {
|
||||||
model: self.model.clone(),
|
model: self.model.clone(),
|
||||||
max_tokens: DEFAULT_MAX_TOKENS,
|
max_tokens: max_tokens_for_model(&self.model),
|
||||||
messages: vec![InputMessage {
|
messages: vec![InputMessage {
|
||||||
role: "user".to_string(),
|
role: "user".to_string(),
|
||||||
content: vec![InputContentBlock::Text {
|
content: vec![InputContentBlock::Text {
|
||||||
@@ -1970,7 +1980,7 @@ impl ApiClient for AnthropicRuntimeClient {
|
|||||||
fn stream(&mut self, request: ApiRequest) -> Result<Vec<AssistantEvent>, RuntimeError> {
|
fn stream(&mut self, request: ApiRequest) -> Result<Vec<AssistantEvent>, RuntimeError> {
|
||||||
let message_request = MessageRequest {
|
let message_request = MessageRequest {
|
||||||
model: self.model.clone(),
|
model: self.model.clone(),
|
||||||
max_tokens: DEFAULT_MAX_TOKENS,
|
max_tokens: max_tokens_for_model(&self.model),
|
||||||
messages: convert_messages(&request.messages),
|
messages: convert_messages(&request.messages),
|
||||||
system: (!request.system_prompt.is_empty()).then(|| request.system_prompt.join("\n\n")),
|
system: (!request.system_prompt.is_empty()).then(|| request.system_prompt.join("\n\n")),
|
||||||
tools: self.enable_tools.then(|| {
|
tools: self.enable_tools.then(|| {
|
||||||
|
|||||||
Reference in New Issue
Block a user