爱意满满的作品展示区。
leihaibo1992

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

  •  
  •   leihaibo1992 · 4 days ago · 1785 views

    认识 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

    35 replies    2026-07-21 22:17:00 +08:00
    leihaibo1992
        1
    leihaibo1992  
    OP
       4 days ago
    mesbbs
        2
    mesbbs  
       4 days ago
    膜拜,如果比较小白,也想学习 agent 开发,该怎么入手呢,有没有一些路径可参考
    mesbbs
        3
    mesbbs  
       4 days ago
    你这个 agent 大概多久完成的?
    xiaoz
        4
    xiaoz  
       4 days ago via Android
    golang 开发的,必须好评。看起来很棒,一会儿安装试一下。

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

    1. 它能不能托管 ssh 上的环境,比如服务器作为一个运行时,后续设备通过桌面端也能管理服务器上的项目。因为目前 linux 安装后好像没有类似的 web 界面
    2. 模型 provider 是否可以增加二级分组,比如选择渠道 1 再选择不同的模型,因为用中转站可能会在多个模型轮换,现在要到设置中去修改,不同的 provider 可能有不同的模型列表
    leihaibo1992
        9
    leihaibo1992  
    OP
       3 days ago
    @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
        10
    leihaibo1992  
    OP
       3 days ago
    @PowerDi 没有公网 ip ,可以用 ngrok 之类工具把本地服务暴露出去,我就是这样用的
    leihaibo1992
        11
    leihaibo1992  
    OP
       3 days ago
    @PowerDi 你是安装的桌面版吗,桌面版运行后,内部也会自动启动一个服务的,不用再单独运行 octo serve 命令了,直接在浏览器访问 http:/127.0.0.1:8088 就可以
    PowerDi
        12
    PowerDi  
       3 days ago
    @leihaibo1992 #9 很感兴趣,但是不会写 go 语言,纯靠 AI 的话怕质量不够可靠,我会尝试理解一下
    PowerDi
        13
    PowerDi  
       3 days ago
    @leihaibo1992 #11 我 windows 上先安装了桌面版。现在 linux 上我是用预编译版本安装的,现在跑起来 web 了。因为我有多个开发服务器,现在的方式可能我得通过记忆 ip+端口来访问。(当前也可以把各个服务器作为记忆给 octo 保存然后通过任务去派发,或者是变成 server/client 分别部署再集成到一个管理页面上)
    leihaibo1992
        14
    leihaibo1992  
    OP
       3 days ago
    @PowerDi 你可以尝试用 octo 来开发,我将我日常工作中总结的一套完整开发工作流直接内置在了 octo 里面,你用它来开发会有不错的效果,描述需求,grill-me -> tech-design ->implement->code-review
    期待收到你的 pr
    yafoo
        15
    yafoo  
       3 days ago via Android
    看你的介绍,感觉挺不错的,下周试试。另外一个项目叫 openagent ,也是 go 开发的,不知道你参考了没?那个我试用了,30Mb 单文件,我很喜欢,之前更新频繁,最近一周没更新。下周试试你的
    leihaibo1992
        16
    leihaibo1992  
    OP
       2 days ago
    @yafoo openagent 简单看了下介绍,和我这个不是一个路子。我这个是做个人助手的,主打开箱即用,然后我之前做了多年 ruby on rails 开发,受这个框架的影响比较多,“约定由于配置”,“主厨精选”,“元编程”是我的参考来源。简而言之,我做的是一个非常有个人倾向性( opinionated )的 agent 产品,把我自己这半年在公司用 claude code 实践出来的大量思考融入在了里面
    chnwine
        17
    chnwine  
       2 days ago
    我用 go 也写了一个(重写了之前的 agent), 但我没看到你这个 agent 最有亮点的场景是什么?
    leihaibo1992
        18
    leihaibo1992  
    OP
       2 days ago
    @chnwine 同行好。最亮点的场景就一个:**一个人用一个工具完成从写代码到日常办公的所有事情,中间不用切 Agent 。** 我在公司用 Claude Code 写代码 + OpenClaw 做日常,两套配置两种体验,本质上是同一件事,这让我不爽了大半年。 功能上说两个独家的:1. **Workflow 编排**——带 sub-agent 并发执行、失败缓存恢复。底层是 Ruby → mruby → wasm → wazero 的图灵完备 DSL ,三个视角并行审 diff 、多模块并行调研,主模型不发散。目前没有任何开源 Agent 有这个。2. **Record & Replay**——浏览器操作录成语义化事件流,不是坐标序列。选择器腐烂后回放引擎自动修:先关 cookie 弹窗,再拿失效选择器 + 页面摘要让 LLM 修复,修完直接写回磁盘。 但这些说实话只是「明面上做了别人没做的」。我更想聊一个你作为 Go Agent 开发者一看就会懂的点——这个项目的工程底线。 你写 Agent 的时候有没有碰到过这种事:模型突然觉得「我应该重启一下宿主进程」,然后一个 `kill` 把你的 serve 杀了? Octo 的解法是三道防线。**第一,拦得住**:terminal 工具在 exec 之前扫描命令文本,检测到宿主 PID 就直接拒绝,`pkill`、`killall`、`taskkill`、`Stop-Process` 全拦截,RE2 正则小心绕过 commit message 里的误杀。**第二,有正门**:真需要重启只有 `restart_server` 一扇门,钉死在 ask 档不可加白名单,重启前先把「我要重启了」送到你手上、drain 完所有在途 turn 进程才退。**第三,摔不坏**:supervisor 自动 respawn ; Agent 自己动手改 `~/.octo/config.yml` 的时候,写完当场触发 hook 校验,坏了直接怼回去:「你的修改没生效,修好之前别指望我」;读配置侧也有 last-good 缓存兜底,一个 YAML 笔误不会让整个 session 跌回默认值。拦得住、有正门、摔不坏。 这种程度的设计在 Octo 里不是孤例。回收站直接假设「模型一定会删错文件」来做——`rm`、`write_file`、`edit_file` 覆盖、程序化删除全部先进回收站,14 天可恢复。代码里内置了 ripgrep 和 uv ,Windows 安装包自动提示装 PowerShell 7 。系统提示词里注入了你当前环境的可用命令和路径。做这些事不是因为它叫 feature ,是因为用户不该为这些东西操心。 你的 Agent 侧重哪个方向?也很想看看,互相学习。
    leihaibo1992
        19
    leihaibo1992  
    OP
       2 days ago
    @chnwine 另外还提一下,octo 的 workflow 机制不是对 claude code dynamic workflow 的拙劣模仿,是适配于自身的一套独特机制,功能上也超越了 dynamic workflow 。browser record and replay 开箱即用,windowns ,macos ,linux 一视同仁。

    再补充一下我做 Octo 的初心:让普通用户、电脑小白也能用上顶级的 AI Agent 。 我从 3 月份折腾 OpenClaw ,4 月份折腾 Hermes ,亲自体验了这套玩意儿有多不好用。每个养虾修 bug 修到半夜 3 点的人肯定有共鸣,每个在地铁上跟 Agent 聊得好好的、Agent 自作主张重启了 gateway 挂了再也联系不上的人,肯定跟我一样想骂娘。 所以 Octo 的标准很简单:我老婆,一个文科生、在企业做法务,能不能在没有我帮忙的情况下自己把它跑起来、用来辅助工作。奔着这个标准,我做了桌面端应用,安装就能用;做了 `web_search` 工具,零配置默认走 Bing ,高阶用户自己换 Brave 、Tavily 的 key ;内置 20 个精挑细选的 Skill ,连 Python 依赖都靠内置的 `uv` 自己解决。就为了让一个 Windows 小白用户说一句「帮我做个 PPT 」「帮我处理一下这个 Excel 」中间不碰到任何障碍。 做一个 demo agent 容易,做一个好产品难。期待跟你多交流。
    chnwine
        20
    chnwine  
       2 days ago
    @leihaibo1992
    感谢你的认证回复, 我先解释下我为什么问那个问题, 因为我自己也写了难免不得不去考虑.

    1. 我们为什么用户解决了什么样的问题
    2. 市面上已经有致命的或者不知名的同类产品, 我们又好在了哪里的问题

    先不说我自己的答案, 我西岸冒昧评价下你的两个独家亮点:
    1. **Workflow 编排**: 我觉着像是对 agent 引擎的升级
    2. **Record & Replay**: 基于 workflow 的增强, 类似 RPA
    从技术角度看, 这两个是很花心思的亮点, 但是从用户角度看, 可能并不是那么直观.

    因为我做我那个 agent 的初衷是因为我服务的客户中, 很多用户有一个很明确的诉求‘提效’, RPA 在 AI 之前是一个很好的方案, 在提效这个点上我之前也想做录制来着, 但如果客户的场景不在浏览器可能录制重放就要做更多兼容. 所以我放弃了这个, 另一方面 computer use 、browser use 我觉得我技术能力不行, [抱脸]

    工程底线底线这块我懂的, 因为在用户的电脑上做命令执行, 做的好可能没有奖赏,做的不好干了'rm -rf /'的事情就不是一个可用性产品该有的样子. 这里用 docker\sandbox 等技术手段来保证安全, 我之前也为这种问题煞费苦心(windows/macos/linux 等同一个问题的不同平台).

    所以从我的感受, 我看到的是你是一个技术很厉害的人, 你解决了技术侧一些很典型的问题, 但我在用户的角度上看, 可能并不是那么直观.


    回到我自己提出的那两个问题, 我来为我的产品回答:

    1. 我大量设计参考 Cursor, 主打为数据工作者(Excel)提供一个简单方案, 在此之上解决了 excel\pdf\md 文件等预览的问题
    2. 非开发从业者其实不知道怎么配置环境什么的, 他们需要工具提效, 但还差着一个运行环境的问题, 我提供了这样一个工具

    但其实这两点我也没多大信心, 因为文件实时预览这个行为其他家的办公 agent 也都有, 我这也只能算微优化. 第二个非开发者写工具为自己提效, 这个命题成立不成立我都还在存疑, 如果成立也是那些本身就对自己有较高要求的人, 但这些人再对自己要求高一点可能都会使用开发工具了.

    以上, 感谢你的分享, 互相学习.
    chnwine
        21
    chnwine  
       2 days ago
    “做了 `web_search` 工具,零配置默认走 Bing ,高阶用户自己换 Brave 、Tavily 的 key ;内置 20 个精挑细选的 Skill ,连 Python 依赖都靠内置的 `uv` 自己解决。就为了让一个 Windows 小白用户说一句「帮我做个 PPT 」「帮我处理一下这个 Excel 」中间不碰到任何障碍。 做一个 demo agent 容易,做一个好产品难。期待跟你多交流。”
    我也不确定, 应该是先选用户选场景选问题, 再去给一个合适的方案. 还是应该先提前把功夫坐在他们看不到的地方, 我之前做法和你一样的

    “我老婆,一个文科生、在企业做法务,能不能在没有我帮忙的情况下自己把它跑起来、用来辅助工作。奔着这个标准,我做了桌面端应用,安装就能用;”
    你可以编译下我的那个代码, 装到电脑上检验下她更倾向用哪个🤣
    leihaibo1992
        22
    leihaibo1992  
    OP
       1 day ago
    @chnwine 我还是坚信把功夫花到用户看不到的地方,让用户在使用过程中,有一种“哇,它懂我”, “竟然还能这样”的感受,这才是一个好的产品,这才能得到用户真正的信任。但同样,宣传、噱头也不能少,这个时代,注意力太稀缺了,用户眼前一天可能闪过 10 几个同类产品,怎么抓住他们的眼球,这是一个问题,也是我在探索的方向。所以我硬是搞了一个八爪鱼的形象,凑了 8 个界面等于章鱼 8 条腿的梗。当前这是我第一篇推广的文章,先在 v2 试试水,后面我还会发几篇技术向的文章,每次只讲透一个点,v 站技术人多,看看能不能吸引到一些有共同看法的朋友参与进来,后期我还会转战小红书,那里才是真正的战场

    另外,你那个 agent 我一定要试试,也让我老婆反馈下,普通人视角的看法,共勉
    leihaibo1992
        23
    leihaibo1992  
    OP
       1 day ago
    @PowerDi 从昨天下午开始搞,到今天上午终于搞完了你提的二级分组功能,烧了 openrouter glm5.2 20 刀的 token.
    感谢你的反馈,希望你喜欢这个功能(最新版 v1.12.24)

    2c8cW62.png
    PowerDi
        24
    PowerDi  
       1 day ago
    @leihaibo1992 #23 刚加完班准备刷会 V 站就去用 octo 试着整理我的笔记知识库了,洗澡的时候还想了下 provider 的事情没想就做出来了,太牛了额
    PowerDi
        25
    PowerDi  
       1 day ago   ❤️ 1
    @chnwine #21 虽然现在是理念为王的时代,我觉得 agent 能解决的问题是一样的,但是走的路线对使用体验影响也很大。举个例子,现在很多云南餐厅,它们解决的都是同样的味型问题,但要把食客留下来最后还是要看你的烹饪手法。

    对,我的意思是我使用下来,简洁且直观是我愿意使用这个 agent 的原因。你也可以试试
    isAK47
        26
    isAK47  
       19h 9m ago
    咨询下 op ,gpt 中转站是用不了吗
    leihaibo1992
        27
    leihaibo1992  
    OP
       18h 58m ago via Android
    @isAK47 用的了啊,理论上任何 api 都能用。你的具体报错是什么
    isAK47
        28
    isAK47  
       18h 40m ago
    @leihaibo1992 找到原因了,需要填入具体的模型(比如 GPT-5.4 )才能开始连接,如果中转站有多个模型,那就要创建多个端点,是这样吧。之前使用 CCSwitch 一次性拉取多个模型,还不太适应
    isAK47
        29
    isAK47  
       16h 6m ago
    每次打开软件会自动执行/onboard ,这个也是会消耗 token 的
    leihaibo1992
        30
    leihaibo1992  
    OP
       15h 48m ago
    @isAK47 #29 怎么会,只有第一次才会呀,你能提个 issue 描述你的复现步骤吗
    leihaibo1992
        31
    leihaibo1992  
    OP
       15h 47m ago
    @isAK47 #28 不是啊,同一个端点下可以添加很多模型的
    isAK47
        32
    isAK47  
       15h 14m ago
    @leihaibo1992 已经提交了
    leihaibo1992
        33
    leihaibo1992  
    OP
       14h 14m ago
    @isAK47 #32 谢谢你的反馈
    leihaibo1992
        34
    leihaibo1992  
    OP
       10h 46m ago
    今天一个朋友反馈了一个优化,说希望增加消息定位条,便于他往上查找消息,我感觉这个建议特别好,下班后赶紧打开 claude design ,设计了一个牛逼的交互。已经发布上线,v1.12.27, 希望各位用户朋友喜欢。

    截屏 2026-07-21 22.10.41

    消息上下滚动会有动画,鼠标浮上去能预览消息
    leihaibo1992
        35
    leihaibo1992  
    OP
       10h 42m ago
    每条用户消息下面有 eidt 和 branch 按钮,可以试试哦。branch 特别适合干活干到一半,想探索好几个方向的时候使用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4365 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 00:59 · PVG 08:59 · LAX 17:59 · JFK 20:59
    ♥ Do have faith in what you're doing.