为 Databricks LLM 模型仿真 Claude Code 后端(含 MCP、Git 工具和 Prompt 缓存)

发布: (2025年12月4日 GMT+8 14:40)
6 min read
原文: Dev.to

Source: Dev.to

介绍

Claude Code 很快就成为我最喜欢的仓库感知 AI 工作流工具之一。它能够理解你的代码库、浏览文件、汇总差异、运行工具,并通过简单的 CLI 与 Git 集成。

问题所在: 官方的 Claude Code 后端只能与 Anthropic 托管的模型配合使用。如果你想使用 Databricks 托管的 Claude 模型、通过 Azure 的 Anthropic 端点路由请求、添加本地工具和模型上下文协议(MCP)服务器、启用提示缓存,或自行运行后端进行实验,就会束手无策。

解决方案: Lynkr,一个自托管的兼容 Claude Code 的代理。
GitHub:

Lynkr 的功能

Lynkr 是一个 HTTP 代理,能够:

  • 模拟 Claude Code 后端。
  • 将请求转发至 Databricks 或 Azure Anthropic。
  • 接入工作区工具、Git 辅助、提示缓存和 MCP 服务器。

你仍然使用普通的 Claude Code CLI,只需把它指向自己的后端:

Claude Code CLI → Lynkr → Databricks / Azure Anthropic / MCP tools

核心特性

提供商适配器

  • 内置对两种上游提供商的支持:Databricks(默认)和 Azure Anthropic
  • 请求会被标准化,使 CLI 收到符合 Claude 风格的响应。

仓库智能

  • 为工作区构建轻量级 SQLite 索引,捕获:
    • 符号定义与引用
    • 框架与依赖提示
    • 语言混合检测
    • Lint/测试配置发现
  • 生成 CLAUDE.md 摘要,为模型提供结构化的项目上下文。

Git 工作流集成

  • 类似 Claude Code 的 Git 辅助:
    • statusdiffstagecommitpushpull
    • 差异审查摘要
    • 发布说明生成
  • 策略守卫(环境变量):
    • POLICY_GIT_ALLOW_PUSH
    • POLICY_GIT_REQUIRE_TESTS
    • POLICY_GIT_TEST_COMMAND

提示缓存

  • 基于提示签名的本地 LRU+TTL 缓存:
    • 加速重复提示
    • 减少 Databricks/Azure 令牌消耗
    • 防止重复执行相同的分析步骤
  • 调用工具时自动绕过缓存,以防产生不安全的副作用。

MCP 编排

  • 自动发现 MCP 清单,启动服务器,使用 JSON‑RPC 包装,并将所有工具暴露给助手。
  • 可选的 Docker 沙箱在需要时隔离 MCP 工具。

工作区工具

  • 仓库索引与符号搜索
  • 差异审查
  • 测试运行器
  • 文件 I/O 实用工具
  • 轻量级任务追踪器(TODO 存储在 SQLite 中)

完全透明

  • 所有活动均使用结构化的 Pino 日志记录,包括:
    • 请求/响应追踪
    • 仓库索引器事件
    • 提示缓存命中/未命中
    • MCP 注册表诊断

架构概览

代码库故意保持小而易于 hack——所有内容都位于 src/ 目录下。

安装 Lynkr

先决条件

  • Node.js 18+
  • npm
  • Databricks 或 Azure Anthropic 凭证
  • (可选)用于 MCP 沙箱的 Docker
  • (可选)Claude Code CLI

安装方式

# 从 npm
npm install -g lynkr

# Homebrew
brew tap vishalveerareddy123/lynkr
brew install lynkr

# 从源码
git clone https://github.com/vishalveerareddy123/Lynkr.git
cd Lynkr
npm install

配置代理

为上游提供商(Databricks 或 Azure Anthropic)以及所需的策略标志设置相应的环境变量。以下是 Azure Anthropic 的示例:

export ANTHROPIC_API_KEY=your_key_here
export ANTHROPIC_ENDPOINT=https://anthropic.azure.com/anthropic/v1/messages
export PROVIDER=azure_anthropic

接入 Claude Code CLI

本地运行 Lynkr(默认端口 8080),并让 Claude Code 指向它:

lynkr start --port 8080

配置 Claude Code 使用代理,例如:

export CLAUDE_CODE_ENDPOINT=http://localhost:8080

随后在你的仓库中照常运行 CLI;所有工具调用、聊天、差异和导航都会通过 Lynkr 进行。

示例:调用工具

curl -X POST http://localhost:8080/v1/messages \
  -H "Content-Type: application/json" \
  -d '{
        "model": "claude-2.1",
        "messages": [{"role":"user","content":"Summarize the recent diff"}]
      }'

故障排查要点

症状可能原因解决办法
缺少路径工具参数错误检查传递给工具的文件/路径是否正确
Git 命令被阻止未设置 POLICY_GIT_ALLOW_PUSH导出 POLICY_GIT_ALLOW_PUSH=true
未发现 MCP 服务器清单位置缺失确保 MCP 清单文件位于工作区根目录或已配置的路径
提示缓存未生效请求中使用了工具工具调用会自动绕过缓存;移除工具调用后再测试缓存
Web fetch 返回 HTML 框架不支持 JS 执行使用 JSON API 替代 HTML 页面

路线图

  • 按文件的线程化差异评论
  • 差异风险评分
  • LSP 桥接以实现更深层的语言理解
  • 声明式 “技能” 层
  • 历史覆盖率和测试仪表盘

我为何构建它

我热爱 Claude Code 的用户体验,但需要:

  • 完全本地执行
  • 能够接入 Databricks 与 Azure Anthropic
  • 自定义工具和 MCP 服务器
  • 对内部行为的完整可视化
  • 在不受平台限制的情况下快速实验

如果你正在探索 Databricks 或 Azure 上的 AI 辅助开发,并希望对后端拥有更多控制权,Lynkr 可能会对你有帮助。

GitHub:
欢迎贡献、提出想法和报告问题。

Back to Blog

相关文章

阅读更多 »

🌑 进入黑暗:Soulbound Codex

演示图片 https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2...