news 2026/4/25 18:37:31

AI代理统一管理平台Agent Deck:从终端复用器到智能驾驶舱的演进

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI代理统一管理平台Agent Deck:从终端复用器到智能驾驶舱的演进

1. 项目概述:为什么我们需要一个AI代理的“驾驶舱”?

如果你和我一样,同时开着Claude Code、Gemini CLI,可能后台还挂着个OpenCode,那你一定经历过这种混乱:十几个终端标签页在任务栏上挤成一团,你根本分不清哪个窗口在跑哪个项目,哪个AI助手正在“思考”,哪个又在等你输入。想切换个上下文,得靠肉眼在一堆长得差不多的终端里大海捞针。这感觉就像在同时指挥一支没有指挥部的乐队,每个乐手都在自己的小隔间里演奏,而你只能靠猜来协调。

这就是Agent Deck要解决的问题。它不是一个简单的终端复用器,而是一个专为AI编码代理设计的“任务控制中心”。你可以把它想象成飞行员面前的综合航电显示屏,或者数据中心里的监控大屏。在一个统一的终端用户界面里,你能看到所有正在运行的AI会话的实时状态、它们所属的项目组、消耗的成本,并能通过快捷键在毫秒级内完成切换、分叉、管理和监控。

我最初接触这个项目,是因为被多项目并行开发的效率瓶颈逼得没办法。传统的tmuxscreen能解决窗口管理,但解决不了“AI感知”问题。你无法一眼看出哪个Claude会话在等待你的批准,哪个Gemini已经完成了任务。Agent Deck在底层确实基于tmux,但它往上构建了一层完整的抽象:状态智能检测、会话分叉继承、MCP服务器池化管理、成本追踪仪表盘,甚至还有能帮你自动监控其他会话的“指挥家”守护进程。它把零散的AI工具整合成了一个有组织、可观测、可操作的系统。

这个工具适合任何在日常开发中重度依赖AI编码助手的开发者。无论你是独立开发者,还是团队中的技术负责人,当你管理的AI会话超过3个时,Agent Deck带来的秩序感和效率提升就会变得非常明显。接下来,我会带你深入它的核心设计、手把手完成部署配置,并分享我在实际使用中积累的一系列实战技巧和避坑指南。

2. 核心架构与设计哲学拆解

Agent Deck的设计目标很明确:统一管理,深度集成,零配置干扰。它不是要取代你现有的AI工具,而是要为它们提供一个高效、透明的运行环境。理解其背后的设计思路,能帮你更好地驾驭它,甚至根据自身工作流进行定制。

2.1 基于Tmux的会话隔离与状态感知

Agent Deck选择tmux作为底层基石,这是一个非常务实的选择。tmux提供了稳定的、持久的终端会话管理能力,会话在后台运行,即使你关闭了终端窗口也不会中断。Agent Deck为每个AI代理会话创建一个独立的tmux会话(命名格式为agentdeck_*),这实现了完美的进程隔离。

但它的核心创新在于状态感知。一个普通的tmux窗口,你只能看到它“在运行”。而Agent Deck通过智能轮询,能精确识别出每个AI代理的实时状态:

  • 运行中(● 绿色):代理正在处理任务,比如Claude在生成代码。
  • 等待中(◐ 黄色):代理需要你的输入或批准,这是最需要你关注的信号。
  • 空闲中(○ 灰色):代理已就绪,等待新指令。
  • 错误(✕ 红色):会话进程异常退出或发生错误。

这个状态检测不是简单的进程存活检查。对于Claude Code,它通过解析特定的输出模式和临时文件来判断;对于其他工具,则通过可配置的正则表达式匹配。这种设计让你在TUI中一眼就能掌握全局,把注意力精准地投向需要干预的会话。

2.2 会话分叉:探索性编程的利器

“分叉”是Agent Deck里我最喜欢的功能之一。在传统的线性对话中,如果你想尝试另一种实现方案,要么开一个新会话从头开始,要么在原有对话中冒险修改,弄乱了还不好回退。

Agent Deck的会话分叉功能,让你可以基于任何一个Claude对话的完整历史,瞬间创建一个新的、独立的会话分支。按下f快速分叉,或者按F自定义名称和分组。新会话继承了父会话的所有上下文,但之后的对话走向完全独立。这完美契合了探索性编程和A/B测试的需求。你可以让一个AI尝试方案A,另一个分叉会话来尝试方案B,互不干扰,最终择优合并。

实操心得:我经常在重构关键模块时使用分叉。主会话按计划推进,同时分叉出两三个会话来尝试不同的设计模式或库。这极大地降低了尝试新思路的心理成本和操作成本。

2.3 MCP与技能的管理哲学:配置与运行态分离

Model Context Protocol和Claude Skills极大地扩展了AI助手的能力,但管理它们是个麻烦事。不同的项目可能需要不同的MCP服务器(比如这个项目需要联网搜索,那个项目需要数据库连接)。频繁修改全局配置文件既繁琐又容易出错。

Agent Deck引入了“池化”和“运行时附着”的概念。你只需要在~/.agent-deck/config.toml定义一次你的MCP服务器和技能。在TUI中,通过MCP管理器(按m)和技能管理器(按s),你可以像开关灯一样,为单个会话动态地“附着”或“剥离”这些能力。Agent Deck会自动处理配置的注入和会话的重启。

MCP Socket池更是资源管理的点睛之笔。当你在多个会话中启用同一个MCP服务器(如brave-search)时,默认每个会话都会启动一个独立的MCP进程,内存占用线性增长。启用Socket池(pool_all = true)后,所有会话共享同一个MCP进程的Unix Socket连接,实测能将MCP内存占用降低85%-90%。池化进程崩溃后,连接代理会在约3秒内自动重连,保证了服务的韧性。

2.4 指挥家:让AI管理AI

“指挥家”是Agent Deck中最具前瞻性的功能。它是一个持久运行的、高权限的AI代理会话,其唯一任务就是监控和管理你其他所有的“子”会话。

你可以创建多个指挥家,比如一个负责监控“工作”配置下的所有运维任务,另一个负责“个人”项目。指挥家会持续观察子会话的状态变化。当它检测到某个子会话从“运行中”变为“等待中”或“错误”时,它可以基于预设的策略(写在POLICY.md里)尝试自动响应。例如,如果只是一个简单的权限确认,指挥家可能直接帮你点了“允许”。如果问题复杂,它会将情况总结并“上报”给你——通过Telegram或Slack机器人。

这实际上构建了一个简单的AI运维层。你把日常的、重复性的会话监控和初级响应委托给指挥家,自己只处理需要更高判断力的异常。结合通知栏(等待中的会话会显示在tmux状态栏)和全局搜索,你实现了从被动响应到主动、分层管理的转变。

3. 从零开始部署与深度配置指南

理论讲完了,我们动手把它装起来,并按照生产级的标准进行配置。我会涵盖所有主流平台和细节。

3.1 系统准备与安装

Agent Deck支持macOS、Linux和Windows(通过WSL)。我强烈推荐使用WSL2以获得完整的功能支持,包括Docker沙箱。

一键安装(推荐)这是最快捷的方式。安装脚本会自动检测你的系统,下载对应的预编译二进制文件,并放置到~/.local/bin(或/usr/local/bin)。

curl -fsSL https://raw.githubusercontent.com/asheshgoplani/agent-deck/main/install.sh | bash

安装完成后,需要将~/.local/bin加入你的PATH环境变量(如果尚未加入):

# 对于 bash/zsh 用户,添加到 ~/.bashrc 或 ~/.zshrc echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc

现在,运行agent-deck命令即可启动TUI。

其他安装方式

  • Homebrew (macOS/Linux):
    brew install asheshgoplani/tap/agent-deck
  • Go 安装:
    go install github.com/asheshgoplani/agent-deck/cmd/agent-deck@latest
  • 从源码构建:
    git clone https://github.com/asheshgoplani/agent-deck.git cd agent-deck make install # 需要 Go 1.24+ 环境

安装后验证首次运行agent-deck,它会初始化必要的目录结构(~/.agent-deck/)并尝试配置tmux。如果遇到tmux相关问题,可以参考后面的故障排除部分。

3.2 核心配置文件详解

Agent Deck的配置中心是~/.agent-deck/config.toml。这个文件不是必须的,但进行深度定制离不开它。我们来拆解几个关键部分。

基础工具配置你需要告诉Agent Deck你的AI工具安装在哪里。默认情况下,它会尝试在PATH中寻找。如果你的工具安装在非标准位置,可以这样指定:

[tools] # 指定 Claude Code 的可执行文件路径 claude = "/opt/homebrew/bin/claude" # 指定 Gemini CLI 的路径 gemini = "/usr/local/bin/gemini" # 对于其他工具,如 codex,同样可以指定 codex = "~/codex-cli/codex"

Claude多账户配置这是解决多环境隔离的利器。你可以为不同的工作场景(公司项目、个人项目、开源贡献)配置不同的Claude账户和配置。

[claude] # 全局默认的Claude配置目录 config_dir = "~/.claude" [profiles.work] # “work” 配置档的描述 description = "For company projects" [profiles.work.claude] # 覆盖全局配置,指向工作专用的Claude配置 config_dir = "~/.claude-work" [profiles.personal] description = "For personal projects" # personal配置档使用全局的claude配置,即 ~/.claude

使用-p参数来指定配置档启动:agent-deck -p work。这样,在“work”配置档下创建的所有Claude会话,都会使用~/.claude-work下的API密钥和设置,与你的个人账户完全隔离。

MCP服务器定义在这里集中定义你所有可用的MCP服务器。定义后,就可以在TUI中按需启用了。

# 定义MCP服务器 [[mcp_servers]] name = "brave-search" command = "npx" args = ["@modelcontextprotocol/server-brave-search", "--api-key", "YOUR_BRAVE_API_KEY"] [[mcp_servers]] name = "filesystem" command = "npx" args = ["@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"] [[mcp_servers]] name = "github" command = "npx" args = ["@modelcontextprotocol/server-github", "--token", "YOUR_GITHUB_TOKEN"]

重要提示:将API密钥等敏感信息直接写在配置文件中存在安全风险。更佳实践是使用环境变量,例如args = ["...", "--api-key", "${BRAVE_API_KEY}"],并在运行Agent Deck前设置好环境变量。

Docker沙箱配置为了安全地运行不可信的AI生成代码,Docker沙箱功能非常有用。

[docker] # 默认在新会话中启用Docker沙箱 default_enabled = false # 建议先设为false,熟悉后再按需开启 # 将主机的SSH认证信息挂载到容器内,方便git操作 mount_ssh = true # 会话结束时自动清理容器。设为false可用于调试。 auto_cleanup = true # 使用自定义的Docker镜像(需包含必要的开发工具) # image = "my-custom-dev:latest"

启用沙箱后,AI代理将在独立的容器中运行,其文件系统是只读的,只有你的项目目录会以读写模式挂载进去。这能有效防止AI意外修改系统文件或安装恶意软件。

成本追踪配置如果你关心AI助手的开销,成本仪表盘是必备功能。

[costs] # 成本数据保留天数 retention_days = 90 [costs.budgets] # 设置预算,达到80%会警告,100%会强制停止新会话(实验性功能) daily_limit = 20.00 # 每日上限20美元 weekly_limit = 100.00 # 每周上限100美元 monthly_limit = 300.00 # 每月上限300美元 [costs.pricing.overrides] # 如果你使用的模型不在内置列表中,或价格有变,可以在此覆盖 "claude-3-5-sonnet-20241022" = { input_per_mtok = 3.0, output_per_mtok = 15.0 }

3.3 工作树工作流实战

Git工作树是Agent Deck管理多分支并行开发的秘密武器。它允许你在同一个仓库的多个分支上同时工作,而无需来回stashcheckout

基本操作

# 在当前目录创建一个新的工作树,并基于此启动一个Claude会话 agent-deck add . -c claude --worktree feature/auth-overhaul --new-branch

这条命令做了几件事:

  1. 在仓库中创建一个名为feature/auth-overhaul的新分支。
  2. 为该分支创建一个独立的工作树目录。
  3. 在该工作树目录中启动一个新的Claude会话。

默认情况下,工作树会创建在仓库的同级目录(sibling模式),例如/path/to/repo-feature-auth-overhaul。你也可以在配置中改为subdirectory模式,让工作树创建在仓库内的.worktrees/目录下。

工作树设置脚本Git会忽略工作树中的.gitignore文件。如果你的项目有.env.mcp.json等包含环境变量或本地配置的文件,它们不会被自动复制到新工作树。为此,你可以在项目根目录创建.agent-deck/worktree-setup.sh脚本:

#!/bin/sh # Agent Deck会在创建工作树后自动执行此脚本 # AGENT_DECK_REPO_ROOT: 主仓库的路径 # AGENT_DECK_WORKTREE_PATH: 新工作树的路径 echo "Setting up worktree at $AGENT_DECK_WORKTREE_PATH" # 复制环境文件 for f in .env .env.local .mcp.json config/local.json; do if [ -f "$AGENT_DECK_REPO_ROOT/$f" ]; then cp "$AGENT_DECK_REPO_ROOT/$f" "$AGENT_DECK_WORKTREE_PATH/$f" echo "Copied $f" fi done # 你还可以在这里运行其他初始化命令,比如安装特定依赖 # cd "$AGENT_DECK_WORKTREE_PATH" && npm install --no-audit

记得给脚本加上执行权限:chmod +x .agent-deck/worktree-setup.sh

完成与清理当某个功能开发完成并合并后,你可以清理对应的工作树和会话:

# 合并分支、删除工作树并移除会话 agent-deck worktree finish "My Auth Session" # 定期清理那些已经不存在对应分支的“孤儿”工作树 agent-deck worktree cleanup

4. 高级功能与集成实战

掌握了基础,我们来探索那些能让你的工作流产生质变的高级功能。

4.1 构建你的指挥家网络

指挥家不是魔法,它是一套精密的配置。我们来搭建一个监控“工作”配置档的指挥家。

第一步:初始设置

agent-deck -p work conductor setup ops --description "监控所有工作项目会话"

首次运行会引导你进行设置:

  1. 命名与描述:我们已经通过参数提供了。
  2. 选择AI代理:默认使用Claude Code,你也可以选择--agent codex
  3. Telegram集成(可选):如果你提供Bot Token和Chat ID,指挥家就能通过Telegram Bot向你发送通知和接收指令。
  4. Slack集成(可选):同样,提供Bot Token、App Token和Channel ID即可。

完成后,会在~/.agent-deck/conductor/ops/下生成指挥家的专属目录和配置文件。

第二步:定义指挥家身份与策略指挥家的行为由几个Markdown文件定义:

  • CLAUDE.md(或AGENTS.md): 定义指挥家的“身份”。告诉它“你是谁”、“你的职责是什么”。例如:“你是ops,一个为‘工作’配置档服务的指挥家。你的任务是监控所有属于‘工作’配置档的AI会话。当会话状态变为‘等待中’或‘错误’时,你需要根据策略决定是自动处理还是上报。”
  • POLICY.md: 定义自动化策略。这是核心。例如:“如果会话‘backend-api’因‘文件权限不足’而等待,且用户在过去一小时内已批准过类似操作,则自动批准。否则,总结问题并上报给用户。”
  • LEARNINGS.md: 指挥家会在这里记录它的决策和结果,用于后续改进。

第三步:远程控制一旦集成了Telegram或Slack,你就可以远程管理了。

  • Telegram: 向你的Bot发送ops: 检查 frontend 会话的状态
  • Slack: 在指定的频道中,以ops:开头发送消息,或使用/ad-status/ad-sessions等斜杠命令。

多个指挥家协作:你可以为不同的项目组创建不同的指挥家。例如,一个ops监控核心服务,一个ci专门监控与CI/CD相关的构建和测试会话。

4.2 成本仪表盘:让AI开销一目了然

成本追踪是Agent Deck的另一个杀手级功能。它通过钩子(hook)机制,在Claude Code每次完成一轮对话时,解析其生成的转录文件(transcript),提取出使用的模型和token数量,然后根据内置的(或你配置的)价格表计算费用。

启动Web仪表盘

agent-deck web

默认在http://127.0.0.1:8420打开一个精美的Web界面。这里提供了比TUI中按$键更丰富的视图:

  • 总览:今日、本周、本月的总花费和Token使用趋势图。
  • 会话排行:哪个会话/项目最“烧钱”。
  • 模型分布:你的钱主要花在了Opus、Sonnet还是Haiku上。
  • 分组视图:按项目组查看开销。

数据同步与导出如果你在安装Agent Deck之前就已经在用Claude Code,历史数据不会自动出现。需要手动同步:

agent-deck costs sync

这个命令会扫描你配置的Claude转录文件目录,回溯计算历史成本。数据可以导出为CSV或JSON,方便你进行更深入的分析或报表制作。

预算告警实践预算功能目前标记为“未经验证”,但配置思路值得了解。在config.toml中设置预算后,当某个分组或全局花费达到限额的80%时,TUI和Web界面会出现警告。达到100%时,理论上应该阻止新会话的创建。在实际使用中,我主要用它来做成本预警,真正的控制还需要结合个人的消费习惯。

4.3 深度集成:Claude技能与自定义工具

Claude技能池管理Agent Deck对Claude Skills的管理采用了“池”的概念。只有放在~/.agent-deck/skills/pool/目录下的技能,才会出现在TUI的技能管理器(按s)列表中。这确保了技能列表的确定性和可管理性。

操作流程:

  1. 将你常用的技能克隆或链接到池目录。
  2. 在TUI中,选中一个Claude会话,按s
  3. 用空格键切换技能的“附着”状态。
  4. 应用更改,Agent Deck会将会话当前激活的技能列表写入项目下的.agent-deck/skills.toml,并自动在.claude/skills中创建对应的符号链接,最后重启Claude会话使其生效。

这种设计实现了技能的项目级配置,并且配置可以被版本控制(.agent-deck/skills.toml)。

支持任意终端工具Agent Deck的架构是开放的。除了官方支持的Claude Code、Gemini CLI、OpenCode、Codex,你可以在配置文件中定义任何命令行AI工具。

[[tools.custom]] name = "my-llm-tool" # 在TUI中显示的名称 command = "python" args = ["/path/to/my/llm_wrapper.py", "--model", "local-llm"] # 定义如何检测该工具的状态 status_pattern = '^(Thinking|Waiting|Ready|Error):' # status_pattern 是正则表达式,用于从工具输出中匹配状态行

定义好后,你就可以像使用内置工具一样,通过agent-deck add . -c my-llm-tool来创建会话。这为集成本地模型、私有化部署的AI服务打开了大门。

5. 日常使用技巧、问题排查与优化

经过一段时间的密集使用,我积累了一些能极大提升体验的技巧,也踩过一些坑。

5.1 高效使用TUI的快捷键流

TUI的快捷键设计得很密集,形成肌肉记忆后效率飞升。这是我的常用操作流:

  1. 全局概览:启动agent-deck后,一眼扫过所有会话的状态(绿、黄、灰、红)。
  2. 快速聚焦:看到黄色(等待中)的会话,直接按对应行号或Enter键切入。
  3. 会话导航:在会话内,Ctrl+b松开后按d可以 detach(回到TUI主界面),而不是关闭会话。
  4. 搜索与过滤:按/进行模糊搜索。更常用的是状态过滤:!只看运行中的,@只看等待中的,#只看空闲的。这能快速缩小关注范围。
  5. 批量操作:先按v进入可视模式,用j/k选择多个会话,然后可以按M批量移动分组,或按d批量删除。
  6. 通知栏跳转:如果有会话在等待,tmux状态栏会显示⚡ [1] frontend [2] api。在tmux中,按Ctrl+b松开,再按数字键(如1),就能直接跳转到那个等待的会话,极其方便。

5.2 常见问题与解决方案

问题一:启动Agent Deck后,TUI是空的,看不到任何会话。

  • 检查:首先确认你是否已经用agent-deck add命令创建过会话。TUI默认只管理由它自己创建的会话。
  • 检查Tmux服务器:运行tmux list-sessions,查看是否有agentdeck_开头的会话。如果没有,可能是tmux服务问题。尝试tmux start-server
  • 检查配置文件:确保~/.agent-deck/config.toml中的工具路径配置正确,特别是[tools]部分。

问题二:状态检测不准确,会话总是显示“空闲”或“错误”。

  • 原因:这通常是因为Agent Deck无法正确解析你使用的AI工具的输出。不同版本的工具输出格式可能有细微差别。
  • 解决
    1. 手动附加到有问题的tmux会话查看原始输出:tmux attach -t agentdeck_你的会话名
    2. 观察工具的输出中是否有明确的状态标识(如 “> Thinking…”, “[WAITING]”)。
    3. config.toml中为该工具自定义status_pattern。例如,如果工具输出 “Status: RUNNING”,则配置status_pattern = '^Status: (RUNNING|WAITING|IDLE|ERROR)'
    4. 参考官方文档的 Troubleshooting 部分。

问题三:MCP服务器附加失败,或Socket池连接不上。

  • 检查MCP命令:首先在终端中直接运行你在config.toml中定义的MCP命令,确保它能独立启动并监听端口。
  • 检查权限:确保Agent Deck有权限在~/.agent-deck/mcp/下创建Unix Socket文件。
  • 查看日志:Agent Deck的日志通常输出到标准错误。你可以通过agent-deck --debug 2> agent-deck.log启动,然后查看agent-deck.log文件获取详细错误信息。
  • 禁用Socket池:如果问题仅出现在池化模式,可以暂时在配置中设置pool_all = false回退到独立进程模式,以确定是否是池化代理的问题。

问题四:Docker沙箱会话无法访问网络或主机资源。

  • 网络:默认的Docker沙箱使用bridge网络,通常可以访问外网。如果不行,检查主机防火墙或Docker的DNS配置。
  • SSH密钥:确保配置中mount_ssh = true,并且你的SSH密钥位于默认位置(~/.ssh)。Agent Deck会尝试将它们挂载到容器内。
  • 文件权限:容器内进程的用户(通常是root)可能与主机用户UID不同,导致对挂载的项目目录写入权限问题。确保项目目录对主机用户是可读写的。

问题五:指挥家不响应或频繁请求权限。

  • 检查策略文件:确认POLICY.md是否足够清晰。过于模糊的指令会导致指挥家缺乏自信,从而频繁上报。
  • 启用危险模式:如果指挥家总是在执行任何操作前都请求批准,可能是因为Claude的安全限制。在~/.agent-deck/config.toml中为指挥家会话单独设置allow_dangerous_mode = true(或在指挥家的meta.json中设置dangerous_mode: true),然后重启指挥家:agent-deck session restart conductor-ops
  • 查看任务日志:检查~/.agent-deck/conductor/ops/task-log.md,这里记录了指挥家的所有决策和行动,是调试的第一手资料。

5.3 性能优化与资源管理

  • 减少轮询间隔:状态检测依赖轮询。如果你的会话非常多(>20个),默认轮询间隔可能会带来一些开销。可以在配置中微调polling_interval_ms,但不要设得太短,以免过度消耗CPU。
  • 善用分组:将相关会话放入同一个分组(在创建或移动时按M)。在TUI中,你可以折叠/展开分组,让界面更清爽。成本仪表盘也支持按组查看,便于财务核算。
  • 定期清理:使用agent-deck worktree cleanup清理孤儿工作树。对于已经完成且无需保留的会话,及时删除以减轻TUI的列表负担。
  • 会话命名规范:为会话起一个清晰的名字(如feat/user-authbugfix/api-500),这能让搜索和全局管理变得非常容易。养成好习惯,后续会省下大量时间。

Agent Deck本质上是一个生产力杠杆。它通过解决AI代理泛滥带来的管理复杂度,让你能更专注地利用AI能力本身,而不是把时间浪费在窗口切换和状态确认上。从简单的会话管理,到高级的指挥家自动化,它提供了一套可扩展的体系。我个人的体会是,一旦适应了这种“驾驶舱”式的工作流,就很难再回到过去那种杂乱无章的多终端状态了。它带来的不仅是效率提升,更是一种对并行AI工作负载的“掌控感”。如果你正在多个项目中使用AI编码助手,花点时间配置和熟悉Agent Deck,投资回报率会相当高。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 18:37:29

Psycopg 3 COPY操作完整指南:如何高效进行批量数据传输

Psycopg 3 COPY操作完整指南:如何高效进行批量数据传输 【免费下载链接】psycopg New generation PostgreSQL database adapter for the Python programming language 项目地址: https://gitcode.com/gh_mirrors/ps/psycopg Psycopg 3是新一代PostgreSQL数据…

作者头像 李华
网站建设 2026/4/25 18:34:56

大气层系统1.7.1:为Nintendo Switch解锁无限可能的完整指南

大气层系统1.7.1:为Nintendo Switch解锁无限可能的完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 你是否想过让你的Switch游戏机拥有更多功能?大气层系统&…

作者头像 李华
网站建设 2026/4/25 18:34:10

终极解析:Super Mario 64 中的圆柱映射纹理坐标生成算法

终极解析:Super Mario 64 中的圆柱映射纹理坐标生成算法 【免费下载链接】sm64 A Super Mario 64 decompilation, brought to you by a bunch of clever folks. 项目地址: https://gitcode.com/gh_mirrors/sm6/sm64 Super Mario 64 作为任天堂经典 3D 平台游…

作者头像 李华
网站建设 2026/4/25 18:29:22

dubbo系统学习总结

Dubbo 系统学习总结学习背景: 3–5 年开发经验项目中正在使用 Dubbo目标:从“会用”到“理解设计与架构取舍”一、Dubbo 的核心定位 一句话定义:Dubbo 是一个面向接口、以 RPC 为核心、内建服务治理能力的高性能分布式服务框架。关键特征&…

作者头像 李华