芯片打开码
打开代码 作为 芯片 ,在 OpenCode 自己的 V2 上
服务器( e)opencode serve(中文(简体) ).
- 您命名的每个 OpenCode 代理代理( O)
build, (中文(简体) ),plan,或者你自己的)是一个芯片代理. 第一个 绳子的主要代理. - 每个芯片室都有一个代理商的 OpenCode 会话 第一次有人 有话要说 在OpenCode自己的应用程序中也显示.
- 一个人在房间里要求的新代理(Add,然后是新代理)作为第一个OpenCode代理运行, 在自己的会议.
- 人们从芯片+中要求的空间,是在一个新的代理下要求的,它回答了第一个 同样的话.
- 一个人在另一个房间(Fork)索取的代理人副本是其会议本身的复制件 房间,在同一文件夹里: 它记得经纪人在那里做了什么, 从那时起两个 记住分开.
- 在吊带上重新启动 OpenCode 服务器 重新开始) (中文(简体) ).
- 每个代理的页面都显示其模式,OpenCode从中构建的文件,一个人可以使用 此处更改,其上下文窗口内容如何完整,个人可从其中收缩(见 模型, (中文(简体) ), 上下文文件 财务报告和审定财务报表 上下文窗口) (中文(简体) ).
与密码相连的桥梁要求所有这些. 一个从奇普斯的画廊加入的 它的卡能提供什么:一个链接 包含着人们所选择的,而不是桥梁所要求的.
Apache-2.0,在npm上发布为 @chipschat/opencode。 。 。 .
芯片显示的
| 在芯片中 | 从 OpenCode (/api(中文(简体) ) |
|---|---|
| 给代理人的讯息 | POST /api/session/{id}/prompt:房间注,所言也 |
| 运行 | 会议的工作 session.inbox.delivered 这些词语改为: session.execution.succeeded, (中文(简体) ), failed 或者说 interrupted |
| 思想泡沫的话 | session.reasoning.ended, (中文(简体) ), session.text.ended 在路上,一个重试 session.status |
| 按种类划分的步骤 | session.tool.called 编号 : success 编号 : failed,由 OpenCode 调用 ID |
| 一个子代理 | 页:1 subagent 作为交接步骤的呼叫;其儿童会议的费用和询问是跑步的费用 |
| 答复 | 发言的最后答案 |
| 回复中的文件 | 每个 MEDIA:<path> 如OpenCode所说(每个转弯都被告知如何),从会话文件夹中取出自己的行并发送到会话文件夹(代理的自有);其外出的文件被拒绝,答复中说是这样 |
| 费用和代币 | 每个模式调用 session.step.ended: OpenCode 自己的成本,作为一步的股份 |
| 环境测量仪 | 最后的呼叫的标志 与模型的窗口 GET /api/model |
| 特工型号(芯片 ADR 0241) | 模型 GET /api/model 列出 OpenCode 运行的代码,每个代码的变体为等位;在代理服务器的下一封信件之前,将个人的选题放在代理服务器的会话上 POST /api/session/{id}/model (见 模型(中文(简体) ) |
| 代理文件(芯片 ADRs 0134, 0241) | 页:1 AGENTS.md 文档 OpenCode 读取其文件夹,并取自 OpenCode 2.0.30 ()GET /api/info文件其配置 instructions 名称 (GET /api/config); 一个人的编辑保存到OpenCode读取的地方(参见 上下文文件(中文(简体) ) |
| 代理上下文窗口( Chips ADRs 0146, 0241) | 其上下文限制的标志 GET /api/model; 压缩现在是 POST /api/session/{id}/compact,以及 session.compaction.started, (中文(简体) ), .ended 财务报告和审定财务报表 .failed 说吧 上下文窗口(中文(简体) ) |
| 一张批准卡 | permission.asked → POST …/permission/{id}/reply数字 : always 当一个人总是说, 否则 once,以及 once 用于一个指令,芯片会记住每个部分是如何开始的(芯片 ADR 0239); reject 他们拒绝的理由。 OpenCode 自己的应用软件中有一个被解答的软件位于 Chips (ADR 0079) |
| 一个问题 | (单位:千美元) form.created 其领域为选择或是或否,最多4个 POST …/form/{id}/reply |
| 停下来 | POST …/interrupt,而OpenCode 的词还没有收回 |
| 方向盘 后续 中断 | 一个提示 delivery: "steer"; 与 "queue"; 中断,然后提示 |
| 芯片 + (芯片 ADR 0241) 的空间 | 在一个新代理下, 由它的第一个单词的第一行命名; 代理作为第一个 OpenCode 代理在它自己的会话和文件夹中回答它们 |
| 分叉(Chips ADR 0087):另一个房间的代理人副本 | POST /api/session/{id}/fork (a) 代理人在其会议室开会,复制其记忆 PATCH /api/session/{id} 把复制件写到房间,并标记为复制件。 副本在之后注册(Nova · 分叉 为Nova, forkedFrom 原作,为房间询问, 并工作在原作的文件夹。 听到的询问再次登记同一副本;从未在房间里发言的代理人被复制为新副本,没有任何记忆 |
| 不对吗 | 在会议室开会时,一连串说出这句话的代理人,在转过身来之后:在答复后迅速回答,什么是不对的,并代替回答;目标是: 再来一次: 和说明的第一行。 一个QQ,或任何其他反应, 什么都没有 |
| 吊带上的麻烦 | GET /api/info 每30个s |
| 重新开始(CDR 0094) | 桥是自己的 opencode serve 在同一端口和密码上停止并重新开始;然后 GET /api/info: 好吧,或者为什么它不回来 |
OpenCode在它的配置和代理商不允许(其规则回到"任务")之前询问,
因此,它的许可要求到达芯片作为牌。 一个 always 由 OpenCode 保存; a
命令从来就得不到一个,所以下一个命令又回到了奇普斯,他的规则回答了它.
当事件流下降时,OpenCode不会重放被错过的东西. 当它回来,桥 阅读每个回合的会话:取了哪些词句,它是否还在工作,以及它是如何最后的 回答结束.
还没有 :
- 自由文字,数字和链接组成字段,形式超过4个. 答复如下: OpenCode自己的应用程序.
- OpenCode自己的应用软件中回答了一个问题,仍然在芯片中打开. 协议没有办法 还没回来.
- OpenCode在芯片中的指令和技能.
- 每座桥都有一个以上的OpenCode服务器.
模型
芯片(Chips IDR 0241)中的代理模型组提供OpenCode的服务器运行:
以物配主者发誓GET /api/model减少任何残疾或退休者,最多40人.
每个模型的级别都是其在OpenCode(英语:OpenCode (Ulow, (中文(简体) ), high, (中文(简体) ), max 等),最底层第一.
在奇普斯没有自己选的模特儿的代理商 model 在桥上
配置("As in config.json"),否则其OpenCode代理的模型(CGET /api/agent),否则服务器的
默认( e)GET /api/model/default:"OpenCode的默认". 一个人的选择,一个模型和一个水平,是
保留在 sessions.json,没有写入 OpenCode 配置。 每次给代理人发信前
桥把会话放在上面POST /api/session/{id}/model),没有在上面的地方
已经, 并做了一个新的会话。 再次选择默认值会使代理会话恢复
在他们下一个消息之前 一份由Fork制作的拷贝 记录了它最初的运行情况 打开代码
任何模型都在那里,所以大桥拒绝一个 它的目录没有运行
没有,用这么多的话.
上下文文件
Chips( Chips IDRs 0134, 0241)中的代理背景组列出其构建的文件 OpenCode 2
从. 打开代码读取 AGENTS.md 只是,从来没有 CLAUDE.md 其国家:
(单位:千美元)~/.config/opencode/AGENTS.md),然后是 AGENTS.md 显示代理文件夹和每个文件夹
上方, 上到你的家文件夹, 或者外边的文件夹, 上到项目根 。 从2.0.30
它在他们之后读文件 它的配置 instructions 名称。 之前都读过
每个模式调用并告诉代理更改了什么,所以一个编辑从它的下一封信中应用.
- 代理人自己的, 一个人可能改变的页面: 其文件夹的
AGENTS.md显示为空 直到有一个 和任何文件instructions在它的文件夹里找到. - 绳子的自有套,在它的页面:
~/Chips/Agents/opencode/AGENTS.md,每个代理 (a) 阅读或个人可更改AGENTS.md上面; 和你自己, 与文件instructions其它名称,您自己的OpenCode也读取这些名称,所以它们被显示而不是 换了.
只有文件仍然是被更改的, 编辑才被保存; 否则芯片会说
改变的同时。 由"叉"作成的复制品在其原始的文件夹中,因此它读取了相同的文件.
一个 URL 在 instructions 没有显示,也没有显示 AGENTS.md 的文件夹
OpenCode 只在代理读取文件时才读取 。 与一个 directory 在配置中,每个
探员自己的档案是那个项目的.
上下文窗口
Chips (Chips ADRs 0146, 0241) 中一个代理的上下文窗口组表示它的会话有多完整: 表示它最后的模型召唤, 所有它读和写, 它的模型的上下文限制。 一个 代理在它所在的每个空间有一个会话, 芯片一个窗口, 所以组是其中的 最后一次有效的会议;1.0.7之前的桥梁从该次会议的最新模式读取 当它开始。 翻过半个窗口的一圈 说它有多饱 多少次 OpenCode 同时将其压缩 .
Contracting 现在要求 OpenCode 压缩该会话(POST /api/session/{id}/compact: 即时
当它闲置时, 并在它的下一步 当它的工作。 OpenCode 的事件说它何时开始和
情况如何:它以前持有什么,之后它所写的摘要和最近所保存的文字
这四个字算成四个字母 一个符号,直到它的下一个模型呼叫准确.
OpenCode 压缩一个会话, 当它几乎满了, 作为它的配置 compaction 说,和
不需要其他限制,所以芯片将极限显示为OpenCode的自有,而不提供.
重新开始
桥本身运行 OpenCode 服务器的地方( 无) url 在配置中,一个人可以重启
在芯片(Chips ADR 0094)中从绳子的一页取出. 桥停了服务器再启动
在同一端口和密码上,所以OpenCode保存在磁盘上的其会话继续其位置
对 它从之前接收到的服务器, 被一个被阻断的桥所留下, 被阻断了
根据它所说的过程 在服务器再次回答之前 桥上没有其他话了
说没事 如果服务器不回来,它会说为什么, 用OpenCode自己的话,它在哪里
他们,结束正在进行的运行, 和芯片再次提供重新启动。 重新开始,不管怎样
正如Chips的床单上说的 OpenCode正在做.
您运行的服务器( O)url 在配置中)不是桥的重启。 桥没有
请求 restarts 当其会合,而不闻所问. 一条绳子一起走,后来
配置另一个保存它加入时所赋予的 :
- 加入运行自己的服务器,然后给定
url:芯片仍然画出重新启动,并回答 与"芯片无法到达重启". 关机 从芯片重新开始 编辑 绳子的页. - 与一个
url,然后运行自己的服务器:桥接会听到重新启动,但芯片绘制不 重新开始直到打开 从芯片重新开始 在绳子的页面.
OpenCode 的画廊卡 restarts所以在卡片发出之前就有一个桥连接了起来
一旦你打开它 它的一页.
从芯片的画廊
卡片的线是 CHIPS_JOIN_LINK='<link>' chips connect opencode (芯片 ADR 0218). 它作为 npm 软件包下载此桥
@chipschat/opencode最新的1.x 对照登记簿的验收和 运行在节点上
芯片携带,所以机器需要节点或npm本身。 桥检查OpenCode,
加入,并保持自己从登录运行. chips disconnect opencode 别闹了 在另一台电脑上,
curl -fsSL https://chipschat.ai/install | CHIPS_JOIN_LINK='<link>' sh -s -- connect opencode 安装芯片
先说 下面的台阶是用这个检查结果来管理桥,以便进行这项工作.
运行它
-
安装 OpenCode (opencode.ai),以及
npm install一次在这个仓库. -
加入Chips一次,从Chips的画廊(Agents – Connect a tape – OpenCode)链接,其卡片给出 与该链接相一致:
cd chips-opencode && CHIPS_JOIN_LINK='<link>' npm run keep桥会运行 OpenCode 的服务器本身(
opencode serve打开127.0.0.1, 4096 当它是 ,并带有密码~/Chips/.bridges/opencode/server.json可读的 仅: 没有人启动服务器或编造密码 。 桥运行时,一个停止的服务器 重新启动;当桥站停止时,其服务器也停止.在打开一次有效的链接之前, 它检查 OpenCode 及其服务器 答案;任何缺失的东西都会阻止它做什么,链接仍然是好的. 已经加入,它 写入发射代理( a)
~/Library/LaunchAgents/chat.chips.opencode.plist; 一个系统化用户单位 在 Linux 上),它从登录开始运行桥,并在它停止时再次运行;保存的复制件 在房间里打个招呼,卡片等。 它的日志是~/Library/Logs/chips-opencode.log。 。 。 .npm run keep -- --stop停止并删除文件.npm start一样,没有保存,在终端。 先停止手动复制: 两个回答两次。 密钥芯片给它保存;从芯片取而代之的新链接. 或者加入我们CHIPS_URL和一个人允许的代码. -
可以选择,请在
~/Chips/.bridges/opencode/config.json(见config.example.json) (中文(简体) ). 没有配置就是OpenCode的build代理人,取名OpenCode.每个特工的会话都在自己的文件夹里进行,
~/Chips/Agents/opencode/<its name>时 (一) 第一次与改名后保留;folders移动它们。 A 类directory将每个会话放在同一个项目中,而是一个代理共享的仓库.桥上所有的东西都在下面
~/Chips(芯片 ADR 0283):它的配置,会话,服务器 密码和状态~/Chips/.bridges/opencode,代理文件夹在~/Chips/Agents/opencode,它自己的服务器运行的地方。 在1.015之前,他们都是~/.chips-opencode财务报告和审定财务报表~/chips-opencode/agents。第一个开始的1.0.15 移动它们和 保存的文件夹路径,一旦 OpenCode 回答,请它移动文件夹的每次会话 移动( e)POST /api/session/:id/move)),里面都说:"OpenCode不会使用会话 他的文件夹不见了。 它重命名,从不复制;在新地方已经有东西了 移动到还没有的东西 并在它的日志中说它留下的东西.一个你自己的服务器. 用一个
opencode serve输入密码 环境变量passwordEnv名称 (OPENCODE_PASSWORD默认的,从不在文件中, 联 合 国url在配置中,当它不是127.0.0.1:4096。 。 。 .npm run keep密码 中,仅在文件中您可以读取;您的服务器继续运行您自己的方式.
测试
npm test
他们运行的桥对齐普斯的相配假 和一个脚本的OpenCode服务器
(单位:千美元)test/fake-opencode.ts),在OpenCode自己的路线和事件形状上. 包括芯片的黄金
场景。 SDK和工具包来自npm,在版本 package.json 针.
npm run e2e
画廊的卡 连接器,运行作为一个人运行, 与刮痕芯片从一个
芯片检出( E)CHIPS_REPO, (中文(简体) ), ~/Work/Chips/chips-main 除非设置; 没有设置便跳过) 和相同的脚本 OpenCode.
每件没有设置的东西都用连接来阻止它。 然后它与卡片所赋予的,
在房间里打个招呼,再也没有别的开始了, 换了一个新的联系
钥匙 抓痕芯片 链路和跑道来自芯片 tools/connect-kit,它包了结账 并服务它 从站立npm注册, 所以卡的 chips connect 下载、检查和运行将公布的内容.
释放
npm run release 正在建设 dist/main.js一个SDK的文件 和所有其它文件
dist/THIRD-PARTY-NOTICES.md 旁边,进行测试,打包 chipschat-opencode-<version>.tgz为了出版,
变动 version 包件. json (中文(简体) )npm version <x> --no-git-tag-version),承诺并推向主:
.github/workflows/publish.yml 运行测试并用 npm 发布 GitHub 的版本
信任的发布, 并跳过 npm 版本 。 一个版本的主要是芯片协议
和芯片的卡片名称 主要(芯片 IDR 0218): 修补是次要或补丁,并到达
每张主要卡片的发布当天.