为什么到今天我又做了一个开源 Agent

leihaibo1992 2026-07-17 19:39 1

认识 Octo —— 一个用 Go 从零打造的强大个人 Agent 。



  • 34 个内置 Tool ,20 个精挑细选的默认 Skill,支持 Claude Code 式的 Loop 、动态 Workflow 、Codex 式的 Goal 、Record & Replay 。

  • 8 个规划的用户界面,已实现 7 个( CLI 、Web 、桌面、IM 、VS Code 、Obsidian 、Go SDK ),只剩移动端即将上线。

  • 极致的简洁交互、周密的防护、坚固的稳定性,只求成为最省心的个人 Agent 。


无论你用的是什么操作系统,无论你对 AI Agent 了解多少,Octo 希望做到让你 10 分钟上手、1 天熟悉、1 周成为最佳帮手


安装就是一行命令,不依赖 Node 、Python 、Ruby——下载即用:



curl -fsSL https://octo-agent.dev/install.sh | sh




octo config





不是要超越谁,而是做好自己


我知道个人开发的 Agent 不可能在绝对性能上超过 Codex 这种顶级模型厂商的闭源 Agent ,也知道不可能在声量上超过 WorkBuddy 这种顶级大厂砸钱推的产品。所以 Octo 不跟谁比,只想成为 最易用、最安全、最注重隐私的开源 Agent




那为什么还要做?


两个原因。


第一,坦白说,我对现在「 CC 写代码 + OpenClaw 做日常助手」这种分裂模式很不满意。两个工具,两套配置,两种体验——明明它们本质上是一回事。这种不满意贯穿了 Octo 的每一个设计决策。


第二,我第一次深度使用 Claude Code 的时候,受到了巨大的震撼。一个 AI 在终端里自如地读写文件、执行命令、思考、纠错,像一名真正的工程师一样工作。我迫切地想搞懂这一切背后是怎么运行的——而了解一个系统最好的方式,就是从零实现一个。


在 AI 效率的加持下,这件事真的发生了。




磨刀不误砍柴工


Octo 前期一直在打磨核心功能,那些略显噱头的东西一直放着没动。现在差不多了,Agent Team 、Multiple Agent 马上就来。


写代码这件事 AI 已经帮了大忙,产品力更多取决于 品味。但真正决定成败的,还是和用户的 交流




一些取舍:为什么市面上的 Agent 那么难用


无论 Claude Code 还是 Codex ,它们总是把 Chat 、Coding 、Work 拆成不同的界面。但 Octo 认为,这三种形态本质上都是 一种会话——用户不该费心思决定现在该用哪一个。Octo 只有一种。


同样,Octo 不区分 Coding Agent 和 General Agent 。一个通用的个人助手,当然应该会写代码、会做 PPT ,没必要分开。


MCP 支持也做得比较扎实。 支持 stdio 、Streamable HTTP 、HTTP OAuth 三种类型的 MCP Server ,并且内置了 Tool Search 机制——配置再多的 MCP 工具也不用担心撑爆上下文,模型按需按名查找调用,不会一股脑全塞进去。




隐私和安全的底线


现在流行的 Agent 大多内置了各式各样的遥测。Claude Code 甚至被发现通过系统提示词里的隐形 Unicode 标记悄悄识别中国用户——Anthropic 工程师后来在 X 上承认了这个"实验",技术细节可以看这篇拆解。


Octo 没有任何遥测数据,不会把任何信息发到远程服务器。除了模型调用本身——如果你有能力,完全可以使用本地模型,两种协议和任何兼容端点都能接。


还有一个安全问题:现在模型说发疯就发疯,万一把你数据删了怎么办? Octo 确保你的数据始终能恢复——rm、覆盖写入、程序化删除全部先进回收站,14 天内随时找回。


那些流行一时的 General Agent ,用 Node 、Python 开发,源码直接装到用户本地,Agent 自己就能把自己改挂。挂了又得熬夜修。Octo 用 Go 开发,Agent 没法在本地改代码,改配置也有 Hook 保护。改错了?旧配置随时恢复,稳如泰山。甚至用户主动让 Agent 去杀 Octo Serve 服务,都不行——除非你手动关闭应用。


更进一步,Octo 内置了 OS 级沙箱(--sandbox),可以把 Agent 约束到项目目录内、关闭网络、限制读写路径,适合在不可信任务上隔离运行。权限也做了分层(--permission-mode):interactive 每步询问、strict 直接拒绝、auto 自动放行。想放开手让 Agent 干活又怕出事?交给权限分层就行。




站在巨人的肩膀上


最后,诚恳致谢。Octo 的开发离不开这些优秀开源项目的启发:



  • Claude Code — Loop 模式、Skill 体系的设计灵感

  • Codex — Goal 机制的参考来源

  • OpenClaw — 个人助手形态的先行者

  • Hermes — Agent 交互的另一种优秀探索

  • OpenClacky — 特别感谢,Octo 的 Web 端交互受到了它的启发




官网: https://octo-agent.dev
GitHub: https://github.com/open-octo/octo-agent

最新回复 (15)
  • leihaibo1992 楼主 07-17 19:50
    1
    技术实现细节: https://octo-agent.dev/blog/posts/architecture-deep-dive/
  • mesbbs 07-18 07:04
    2
    膜拜,如果比较小白,也想学习 agent 开发,该怎么入手呢,有没有一些路径可参考
  • mesbbs 07-18 07:05
    3
    你这个 agent 大概多久完成的?
  • xiaoz 07-18 07:21
    4
    golang 开发的,必须好评。看起来很棒,一会儿安装试一下。

    另外官网手机页面右侧的按钮被挤压变形了。
  • leihaibo1992 楼主 07-18 14:28
    5
    @mesbbs 非常欢迎你加入 octo 的开发,我后期会出一系列的教程来详细讲解 octo 实现的技术细节。当前你可以查看 https://github.com/open-octo/octo-agent/tree/main/dev-docs ,这里有几乎所有的开发文档和技术上的取舍,另外这里有用户使用文档 https://octo-agent.dev/docs/zh/,你可以先试用,先用起来看看感觉有什么不对,然后可以提 issue 和 pr ,加油
  • leihaibo1992 楼主 07-18 14:29
    6
    @mesbbs 前后大概搞了 1 个多月
  • leihaibo1992 楼主 07-18 14:29
    7
    @xiaoz 谢谢反馈,我有时间就尽快修复
  • PowerDi 07-18 19:25
    8
    @leihaibo1992 #7 试用了一下,概念非常好,不过我的场景好像不一定合适?

    1. 它能不能托管 ssh 上的环境,比如服务器作为一个运行时,后续设备通过桌面端也能管理服务器上的项目。因为目前 linux 安装后好像没有类似的 web 界面
    2. 模型 provider 是否可以增加二级分组,比如选择渠道 1 再选择不同的模型,因为用中转站可能会在多个模型轮换,现在要到设置中去修改,不同的 provider 可能有不同的模型列表
  • leihaibo1992 楼主 07-18 20:40
    9
    @PowerDi 1. 你的这个场景正是 octo 的强项啊,linux 运行 octo serve -d 后,可以通过 http://127.0.0.1:8088 访问的,你有公网 IP 的话,远程也可以访问到的,不过非本地访问要在 url 上带上 token ,token 在 config.yml 文件里,你可以问 agent ,让它教你怎么用。另外,可以配置 im ,通过 IM 来访问,后期我会上线移动端 app, 就更方便了,可以直接在移动端 app 管理 linux 服务器上的项目
    2.你提的这个点很好,我也有此打算,只是一直有更重要的 feature 在开发,就搁置了。如果你愿意,很希望你能你能提个 pr
  • leihaibo1992 楼主 07-18 20:41
    10
    @PowerDi 没有公网 ip ,可以用 ngrok 之类工具把本地服务暴露出去,我就是这样用的
  • leihaibo1992 楼主 07-18 20:44
    11
    @PowerDi 你是安装的桌面版吗,桌面版运行后,内部也会自动启动一个服务的,不用再单独运行 octo serve 命令了,直接在浏览器访问 http:/127.0.0.1:8088 就可以
  • PowerDi 07-18 21:24
    12
    @leihaibo1992 #9 很感兴趣,但是不会写 go 语言,纯靠 AI 的话怕质量不够可靠,我会尝试理解一下
  • PowerDi 07-18 21:29
    13
    @leihaibo1992 #11 我 windows 上先安装了桌面版。现在 linux 上我是用预编译版本安装的,现在跑起来 web 了。因为我有多个开发服务器,现在的方式可能我得通过记忆 ip+端口来访问。(当前也可以把各个服务器作为记忆给 octo 保存然后通过任务去派发,或者是变成 server/client 分别部署再集成到一个管理页面上)
  • leihaibo1992 楼主 07-18 22:18
    14
    @PowerDi 你可以尝试用 octo 来开发,我将我日常工作中总结的一套完整开发工作流直接内置在了 octo 里面,你用它来开发会有不错的效果,描述需求,grill-me -> tech-design ->implement->code-review
    期待收到你的 pr
  • yafoo 07-19 00:11
    15
    看你的介绍,感觉挺不错的,下周试试。另外一个项目叫 openagent ,也是 go 开发的,不知道你参考了没?那个我试用了,30Mb 单文件,我很喜欢,之前更新频繁,最近一周没更新。下周试试你的
* 帖子来源V2EX
返回