0

0

重度使用 opencode 后引发的一些关于 agent 的感想

心靈之曲

心靈之曲

发布时间:2026-01-05 19:19:02

|

900人浏览过

|

来源于php中文网

原创

重度使用 opencode 后引发的一些关于 agent 的感想

转载自:https://www.php.cn/link/62b395526e160d2e25c4b910ea419a90 作者:PingCAP 联合创始人兼 CTO 黄东旭

最近高强度使用了 opencode 与 oh-my-opencode,在一个并不简单的实际任务中,我对 Agent 系统的认知经历了一次显著的跃迁。

任务目标非常明确:

为 TiKV 重新构建一层兼容 PostgreSQL 协议的 SQL 接口层,需至少能通过基础测试,包括 dvdrental 兼容性测试和 TPCC 简化版。

这相当于重写 TiDB 的 SQL 层——我清楚这项工作的难度。即便只是让 TPCC 跑通,我们团队当初也耗时约两个月。

最终成果令我震惊:项目地址在此:https://www.php.cn/link/0f3839dc22ff5ad19a6b74203fac591f

我原本预估它“能做”,但必然需要大量时间投入与反复调试;结果却出乎意料:仅用一个下午,消耗约 100 多万 token(得益于我是多个 Agent 平台的 Pro Max 用户,全程未额外付费)。

这是我第一次真切意识到:编写代码的成本已趋近于零,哪怕面对数据库、操作系统、编译器这类传统意义上的复杂系统(对当前 AI 而言,其实反而是结构清晰的“简单项目”)。

下面分享这段实践过程中的几点体悟。

Context Engineering 并不是堆 Prompt

在转向 opencode 之前,我已长期使用 Claude Code、Gemini Pro、Codex 等工具

从表象看,它们都具备 agentic loop + tool use 的 CLI 形态。

坦白讲,底层模型能力本身已无本质差异,均属各家顶尖水准。

但在真实交付质量上,体验落差极为明显。

问题根源不在模型,而在 context engineering。不少人误以为“套壳”毫无技术含量,但我的切身体会是:其中门道极深……

真正高效的 context engineering,是将以下要素持续、结构化、稳定地注入系统:

  • 清晰但不过度琐碎的目标定义(由人设定)
  • 可执行、可追踪的分步计划(由 Agent 拆解)
  • 明确的工程边界与硬性约束(由人划定)
  • 历史决策链与潜在假设(由 Agent 维护)
  • 支撑长上下文不发散的中间状态锚点(由 Agent 构建)

例如,当我切换至 opencode + oh-my-opencode 后,所用模型完全一致,行为却天差地别。同样是 agentic loop、同样支持 tool use,但复杂工程的交付质量完全不在同一维度。

oh-my-opencode 中一个让我倍感舒适的设计是:

它并不迷信“单一大模型最强即最优”,而是将多个一线模型有机整合进统一工作流。这个思路其实不难想到——三个臭皮匠胜过一个诸葛亮,更何况是三位顶级诸葛亮?

实际效果远超预期。

未来的能力天花板,未必取决于单个模型规模的继续膨胀,而更可能来自:多模型(顶级档位)协同 + context engineering + 稳健循环机制的整体架构设计。

不中断,比“更聪明”重要

另一个常被忽视却至关重要的维度是:

无缝连续的工作流(non-interruptive flow)

许多 Agent 系统在 “思考 → 执行 → 报错 → 等待人工确认” 的环节中频繁打断。上下文虽在,但工作流已然断裂。

目前我主要借助 ralph-loop 来缓解这一问题:让 Agent 在一个可控、稳定的闭环中持续推进(持续消耗 token),

phpweb1.0 美化简洁版
phpweb1.0 美化简洁版

phpweb1.0基于php+mysql+smarty开发的企业解决方案,总体感觉简洁快速,适合小型企业的建站方案,也适合初学者学习。 之前发布过phpweb1.0的原始版本,仅提供大家交流和学习,但很多的爱好者提出了一些不足和好评,本不想继续开发1.0,因为2.0已经开发完毕而且构架与1.0完全不同,但是有些使用者喜欢这种简洁和简便,应大家的要求,美化和优化了一些不足之处。后台更加简洁美观。

下载

人类只需在关键节点介入(通常是最终验收阶段),而非被迫充当“每一步的指令下达者”。

一旦中断大幅减少,变化立竿见影:工程节奏开始逼近真实开发的连续性,人的认知负荷显著降低。事实上,AI 当前已足够聪明,工具也足够成熟,效率瓶颈早已转移到人侧。

给人的界面同样重要

同样是 TUI,opencode 的交互体验明显优于 CC,我认为核心在于一点:

用户需要的是掌控感(sense of control)

优秀的交互设计应始终让人清晰知晓:

  • 系统当前正在做什么(实时展示 thinking 过程与 todo 列表)
  • 它为何如此决策(提供推理依据或上下文引用)
  • 我何时、以何种方式可以介入(明确标注干预入口与时机)

一旦用户陷入“向 Agent 下达指令→等待结果→再下指令”的被动循环,体验注定糟糕。

真正优秀的 Agent 系统,应把复杂性封装在代码逻辑与运行闭环中,

而将决策权、节奏主导权与信任感,通过精巧的界面设计交还给人。

当前最差的体验:Infra

如果必须指出当前体验中最薄弱的一环,

那仍是 infra 层:

  • 沙箱 / 运行时环境配置
  • 数据库及依赖服务的启动与管理
  • 测试环境搭建、fixture 注入、数据初始化
  • 本地开发与 CI 流水线的一致性保障

这些任务高度重复、上下文碎片化、且天然难以被 Agent 理解与调度。即使模型已能把“写代码”这件事做到极致,只要卡在 infra 上,整个工程节奏仍会被强行拖慢。

下一阶段决定体验上限的关键,并非 opencode 这类工具本身,

而是 opencode + infra abstraction 的深度融合。

当沙箱、数据库、测试框架、CI/CD 等全部成为系统可感知、可调度、可版本化的一等公民,而非一堆靠人工拼接的脚本时,Agent 才能真正从“写代码的助手”,进化为“持续驱动工程落地的自主系统”。

opencode for XXX,很快就会到来

程序员或许是最早感知 AGI 来临的群体。无论我们是否愿意接受,“职业写代码”这一角色正加速消亡。但也不必过度焦虑——人类不再靠体力狩猎后,依然会去健身房锻炼;作为一种思维训练与兴趣实践,“古法编程”将持续存在。

但从近期编程 Agent 的演进速度来看,我判断:

  • Context engineering 是高度可迁移的能力
  • 模型能力正快速趋于标准化
  • 更多 token,意味着更强的综合智能

换言之,同样的“食材”(LLM),搭配不同的“厨子”(Claude Code / Open Code),产出截然不同的“菜肴”。而你本人最初输入的 prompt(目标意图)可能从未改变。

我们很快将迎来 opencode for XXX、opencode for YYY 这类垂直领域专用 Agent 系统。

底层模型完全可以一致,但凭借差异化的上下文组织策略,它们将展现出如专业系统般的独特行为范式。

届时,“通用大模型是否足够强”将不再是核心命题,真正决定成败的关键将是:

谁更擅长构建一个长期、稳定、可持续运转的上下文系统。

源码地址:点击下载

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

676

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

346

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1090

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

356

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

674

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

571

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

411

2024.04.29

漫蛙2入口地址合集
漫蛙2入口地址合集

本专题整合了漫蛙2入口汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.5万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号