feat: Agent CLI 与终端审计回放全面优化
- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏 - 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复 - 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示 - 审计历史页只读(移除删除),移除回放弹框录制搜索
This commit is contained in:
1 parent
9a3dd304f7
commit
1acb0c49af
81 files changed
+3916
-1655
No files matched your search
@@ -42,6 +42,12 @@ type anthropicMessage struct {
|
||||
Content json.RawMessage `json:"content"`
|
||||
}
|
||||
|
||||
// anthropicThinking 启用 Claude thinking 模式(Claude 3.7 Sonnet 支持) // Logan.Li
|
||||
type anthropicThinking struct {
|
||||
Type string `json:"type"`
|
||||
BudgetTokens int `json:"budget_tokens"`
|
||||
}
|
||||
|
||||
// anthropicRequest Anthropic /v1/messages 请求体 // Logan.Li
|
||||
type anthropicRequest struct {
|
||||
Model string `json:"model"`
|
||||
@@ -51,6 +57,7 @@ type anthropicRequest struct {
|
||||
Tools []anthropicTool `json:"tools,omitempty"`
|
||||
Temperature float64 `json:"temperature,omitempty"`
|
||||
Stream bool `json:"stream,omitempty"`
|
||||
Thinking *anthropicThinking `json:"thinking,omitempty"` // Claude 3.7 Sonnet 推理模式 // Logan.Li
|
||||
}
|
||||
|
||||
// anthropicTool Anthropic 工具定义(input_schema,对应 OpenAI 的 parameters) // Logan.Li
|
||||
@@ -157,6 +164,12 @@ func buildTools(tools []Tool) []anthropicTool {
|
||||
return out
|
||||
}
|
||||
|
||||
// isAnthropicThinkingModel 判断是否为支持 thinking 的 Claude 模型 // Logan.Li
|
||||
func isAnthropicThinkingModel(model string) bool {
|
||||
m := strings.ToLower(model)
|
||||
return strings.Contains(m, "claude-3-7") || strings.Contains(m, "claude-3.7")
|
||||
}
|
||||
|
||||
// buildRequest 构造 Anthropic 请求体(Complete 与 Stream 共用) // Logan.Li
|
||||
func (c *AnthropicClient) buildRequest(req *CompletionRequest, stream bool) ([]byte, error) {
|
||||
system, msgs := c.buildMessages(req)
|
||||
@@ -168,6 +181,19 @@ func (c *AnthropicClient) buildRequest(req *CompletionRequest, stream bool) ([]b
|
||||
if payload.MaxTokens <= 0 {
|
||||
payload.MaxTokens = 4096
|
||||
}
|
||||
// 启用 Claude thinking 模式时,temperature 必须固定为 1,max_tokens 需大于 budget_tokens // Logan.Li
|
||||
enabled := req.ReasoningEnabled || c.cfg.ReasoningEnabled
|
||||
if enabled && isAnthropicThinkingModel(payload.Model) {
|
||||
payload.Temperature = 1
|
||||
budget := payload.MaxTokens / 2
|
||||
if budget < 1024 {
|
||||
budget = 1024
|
||||
}
|
||||
if payload.MaxTokens <= budget {
|
||||
payload.MaxTokens = budget + 1024
|
||||
}
|
||||
payload.Thinking = &anthropicThinking{Type: "enabled", BudgetTokens: budget}
|
||||
}
|
||||
body, err := json.Marshal(payload)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("序列化请求失败: %w", err)
|
||||
|
||||
Reference in new issue
Block a user