青雲的博客

Article

Orca:一个 DeepSeek 原生的终端 Coding Agent

· 8 分钟阅读

前言

过去一年我做了不少 Agent:Blade Code(类 Claude Code 的 CLI)、Blade Agent SDK(抽取出来的通用能力集)。它们都跑在 Claude、GPT 这类海外模型上。

但有件事一直在我脑子里:DeepSeek 这么便宜、这么能打,围绕它的 Agent 工具却几乎是空白。

于是有了 Orca —— 一个用 Rust 写的、DeepSeek 原生的终端 Coding Agent。

GitHub 地址:https://github.com/echoVic/blade-deepseek

npm install -g @blade-ai/orca
export DEEPSEEK_API_KEY=sk-...
orca exec "fix this test"

为什么是 DeepSeek?

我做这个项目的动机其实很简单,就四点:

1. 我相信 DeepSeek 的发展。 从 V2 到 V4,它在推理和代码能力上的进步是肉眼可见的。1M 上下文、原生 reasoning,这些已经足够支撑一个严肃的 Coding Agent。

2. 它足够便宜。 Agent 是 Token 消耗大户——多轮循环、工具结果回灌、长上下文,跑一个稍微复杂的任务动辄几十万 Token。在 Claude 上一天就能烧掉不少钱,而 DeepSeek 的价格让”把 Agent 当日常工具用”这件事真正成立。对个人开发者和中小团队,这是决定性的。

3. 围绕它的 Agent 生态相对空白。 Claude Code、Codex、Gemini CLI 都绑死自家模型。而 DeepSeek 这边,大多数人只能用 Cline、Continue 这类”接任意 OpenAI 兼容 API”的通用客户端——它们对 DeepSeek 并不是原生的,reasoning token 的处理、工具调用的边角行为、上下文压缩策略,都没有针对 DeepSeek 去打磨。这是一个真实存在的空缺。

4. 我想帮国模生态做点事,也想跑通一个商业闭环。 模型再强,也需要好用的上层工具把能力释放出来。与其等别人来填这个空,不如自己动手。如果能顺手验证一条”国产模型 + 好工具”的可持续路径,那就更好了。

一句话:不是”又一个能接 DeepSeek 的 Agent”,而是”最懂 DeepSeek 的 Agent”。

Orca 是什么

Orca 是一个本地终端 Coding Agent,核心是一个多轮 Agent 循环:

prompt → 模型 → tool_call → 执行 → 回灌结果 → 下一轮(最多 128 轮)

它不是 demo,是冲着”能当主力工具用”去做的。目前已经实现的能力:

🔄 多轮 Agent 循环 + SSE 流式

完整的 prompt → 推理 → 工具调用 → 执行 → 反馈循环,通过 Server-Sent Events 实时输出 DeepSeek 的 reasoning 和 content 增量,你能看到模型”边想边做”的过程。

🧠 1M 上下文自动压缩

针对 DeepSeek V4 的百万 Token 上下文做了管理:达到 80% 阈值时自动压缩,保留系统提示和最近消息,并为响应预留空间。长任务不会因为上下文爆炸而中断。

🛡 分级审批策略

读操作永远放行;写文件、执行 shell 这类有副作用的动作,按模式决定是否需要确认:

  • suggest —— 交互式确认(默认)
  • auto-edit —— 自动批准编辑
  • full-auto —— 全自动

🧩 内置工具集

read_filelist_filesgrep(ripgrep)、basheditwrite_filegit_statusweb_search,以及 subagentWorkflowupdate_planupdate_goal。也支持用 TOML 描述符在 ~/.orca/tools/ 下注册自定义工具。

👥 子 Agent

同步的子 Agent 循环共享父级的工作区、模型配置和审批策略,跑完把精炼结果交回父级——适合把一个大任务拆给”实习生”去并行推进。

🎯 持久化目标模式(Persistent Goal)

TUI 里用 /goal 设定一个长期目标,Orca 会在每一轮成功后自动开启下一轮,直到目标完成、被阻塞、暂停或达到上限。目标按 session 持久化,进程重启也不丢。

/goal ship the refactor       # 创建目标并开始
/goal pause                    # 暂停自动续跑
/goal resume                   # 恢复
/goal clear                    # 清除

📜 会话历史

文本模式下自动保存 JSONL 转录,支持 list / show / search / rename / archive / delete,以及 resume / fork 续接和 zstd 压缩。

orca history list
orca exec --resume latest "continue the refactor"
orca exec --fork latest "try another approach"

⚙️ 工作流 + Hooks

orca workflow run 跑 JavaScript 编写的动态工作流;Hooks 系统支持 session_startpre_tool_usepre_compact 等事件,可以 deny / modify / inject,把 Orca 嵌进你自己的流程里。

为什么用 Rust

  • 单二进制分发:npm、curl、GitHub Releases 三条线,装好即用,没有运行时依赖。
  • 启动快、占用低:当作日常命令行工具,冷启动几乎无感。
  • 稳定:定位是一个能长期维护的基础设施,而不是快速试错的玩具。

支持的平台:macOS(Apple Silicon / Intel)、Linux(x64 / ARM64)。

快速开始

# 安装
npm install -g @blade-ai/orca
# 或
curl -fsSL https://orcaagent.dev/install.sh | sh

# 配置
export DEEPSEEK_API_KEY=sk-...

# 跑任务
orca exec "fix this test"
orca exec --approval-mode full-auto "refactor the auth module"
orca exec --model deepseek-v4-pro "explain this codebase"
orca exec --verifier "cargo test" "fix the failing test"

# 直接进交互式 TUI
orca

模型默认 auto:主循环用 deepseek-v4-pro,辅助任务用 deepseek-v4-flash,在效果和成本之间取平衡。

配置文件放在 ~/.orca/config.toml

model = "auto"
api_key = "sk-..."
base_url = "https://api.deepseek.com"

适用场景

  1. 日常编码:修 bug、写测试、重构、解释代码库
  2. 成本敏感的高频使用:把 Agent 当作每天都开的工具,而不是偶尔奢侈一下
  3. 长任务:依赖持久化目标模式 + 1M 上下文跑多轮自动推进
  4. 嵌入自有流程:通过 JSONL 事件流、Hooks、工作流接进 CI 或脚本

总结

Orca 是我对一个判断的下注:国产大模型已经够强、够便宜,缺的是真正懂它的上层工具。

它专注做好几件事:

  • DeepSeek 原生——围绕它的推理和工具调用语义打磨,而不是套一层通用兼容封装
  • 能用——完整的多轮循环、审批、上下文管理、会话历史,不是 demo
  • 便宜——让”把 Agent 当日常工具”在成本上真正成立
  • ——Rust 单二进制,装好即用

如果你也在用 DeepSeek 写代码,欢迎试试 Orca。也欢迎 Star、Issue 和 PR——这条路我想和更多人一起走。

相关链接

Keep Reading

相关文章

评论