Claude Code负责人本地开发流程:无Copilot离线Agent协作工作流
摘要:Claude Code负责人公开本地开发流程:不用Copilot、不联网、全靠本地Agent协作用AI辅助写代码,总会遇到网络延迟、隐私担忧、工具链割裂这些问题。Claude Code的负责人Boris Cherny最近在X上分享了他的日常做法:完全不用Copilot,不联网,所有工作都由本地Agent协作完成。不少硅谷工程师仔细看了他的终端截图,发现这不是在炫技,而是一套可以复现的AI自动...
Claude Code负责人公开本地开发流程:不用Copilot、不联网、全靠本地Agent协作
用AI辅助写代码,总会遇到网络延迟、隐私担忧、工具链割裂这些问题。Claude Code的负责人Boris Cherny最近在X上分享了他的日常做法:完全不用Copilot,不联网,所有工作都由本地Agent协作完成。不少硅谷工程师仔细看了他的终端截图,发现这不是在炫技,而是一套可以复现的AI自动化工作流。
他的工作流具体怎么做?
Boris的终端里运行着三个本地Agent,各司其职:
- 代码生成Agent:基于Claude模型,但完全离线,跑在本地的Ollama上。
- 测试Agent:自动监听代码文件变更,触发Jest测试并生成覆盖率报告。
- 部署Agent:检测到测试通过后,自动构建Docker镜像并推送到本地Registry。
一个关键细节:这三个Agent之间不通过HTTP API通信,而是用Unix管道和文件监听来传递数据。比如,代码生成Agent写完一个文件,测试Agent通过chokidar监听到这个变更,立刻启动测试——延迟低于200ms,比调用云端API快一个数量级。
这和Agent协议趋势有什么关系?
Boris的做法看起来有点“复古”,但实际上踩中了MCP(模型上下文协议)和A2A(Agent-to-Agent)协议正在解决的核心问题:
- MCP强调的“上下文本地化”:他的Agent直接读取本地文件系统、Git历史、项目依赖树作为上下文,能获取的信息比云端Agent深得多。
- A2A追求的“低耦合协作”:三个Agent通过标准输入输出流通信,任何一个Agent崩溃都不会影响整体——这正是A2A协议里“进程级隔离”的一种实践。
行业动向:LangChain最近推出的LocalAIAdapter、HuggingFace的transformers-agent本地模式,都指向同一个方向:把Agent的“身体”留在本地,只让“大脑”偶尔上云。
三个可以直接用的实战技巧
技巧1:用Named Pipe替代HTTP API
# 创建命名管道
mkfifo /tmp/agent_comm
# Agent A写入
echo "test_passed" > /tmp/agent_comm
# Agent B读取(阻塞式等待)
read status < /tmp/agent_comm好处:没有网络开销,进程间通信延迟极低,适合需要高频协作的场景。
技巧2:本地模型与云端模型的混合路由
# 判断任务该交给本地还是云端模型

def route_task(task):
if contains_sensitive_data(task): # 如果包含API密钥、客户数据等
return LocalOllamaAgent() # 走本地Llama3
else:
return ClaudeAPIAgent() # 复杂推理任务走云端实际效果:有电商团队采用类似方案后,每月API成本降低了超过70%,并且客户数据完全没有离开本地环境。
技巧3:用文件监听实现“无API协作”
const chokidar = require('chokidar');
const watcher = chokidar.watch('./src', {
ignored: /(^|[\/\\])\../, // 忽略隐藏文件
persistent: true
});
watcher.on('change', (path) => {
console.log(`检测到${path}变更,启动测试Agent...`);
spawn('node', ['./agents/test-agent.js', path]);
});实测效果:比轮询检测节省了大量CPU资源,从代码变更到测试启动的延迟从几秒降到了半秒左右。
需要注意的几个坑
- 上下文窗口限制:本地模型(如Llama3)通常只有8K上下文,需要设计一个上下文摘要Agent,定期压缩历史对话。
- 资源竞争:如果多个Agent同时读写同一个文件会冲突——使用文件锁(flock)或消息队列来解耦。
调试困难:建议给每个Agent定义统一的日志格式,方便追踪问题:
[2024-06-15 14:30:22][CodeAgent] 生成函数calculateTotal() → 耗时1.2s
可以立即开始的行动
- 今天就能试:用
mkfifo创建一个命名管道,让两个简单的脚本通过管道通信(很快就能跑通)。 - 本周可落地:在现有项目中引入
chokidar监听文件变更,实现“保存即测试”。 - 进阶方向:研究MCP协议中
local_resource字段的定义,尝试把本地Git仓库作为Agent可访问的上下文源。
核心思路:未来的AI开发可能不是“人+Copilot”,而是“人调度一组Agent”。Boris的工作流之所以引起关注,是因为他提前实践了一种更自主、更本地化的AI协作模式。