在 OpenCode 或者其他支持 OpenAI 接口的 Agent 里接入 V2EX AI Persona

发布于

最近,V2EX AI Persona 提供了 [OpenAI 兼容接口](https://edge.v2ex.com/t/1226562),并且支持工具调用。

因此,你可以在 OpenCode 或者其他支持 OpenAI 接口的 Agent 里配置 V2EX AI Persona。这里以 OpenCode 为例:

**配置文件** `~/.config/opencode/opencode.jsonc` 示例:

```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"v2ex": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://edge.v2ex.com/chat/v1"
},
"models": {
"coder": {}
}
}
}
}
```

- **Base URL**: `https://edge.v2ex.com/chat/v1`
- **Model**: `coder` (或者是你自己的 persona 的 name)

启动 OpenCode,输入 `/connect`,然后找到你刚才加入的 V2EX provider:

![连接选项](https://i.v2ex.co/JWy3frlZ.png)

接着系统会提示你输入 API Token。

![API Token 输入](https://i.v2ex.co/Hop37K2A.png)

API Token 可以从这里获得:
[访问链接](https://edge.v2ex.com/settings/tokens)

在 `/models` 里你可以看到配好的 `v2ex/coder` 选项了。

![模型选项](https://i.v2ex.co/1XF3D1vf.png)

现在你可以使用 V2EX AI Persona 来帮助你写程序或完成其他任务。

![使用示例](https://i.v2ex.co/lyJEOUTq.png)

上面的例子中,persona:coder 的后端模型是 GLM-5.2。如果你用过 [V2EX AI Persona](https://edge.v2ex.com/my/personas) 功能,就会知道 context 是可以自己定义的,而这个 persona:coder 的 context 目前为一句话 `You're a professional coding assistant`。因此,你可以在自己创建的 persona 中尝试任意其他 context,以观察对结果和行为产生的影响。如果你创建了自己的 coding persona,那么接入时选择模型名就是你的 persona 的 name。

---

原文链接:[点击查看](https://www.v2ex.com/t/1227634)

评论(15)

照着楼主的步骤配置好了,但并没有弹出来让我填 apiKey 的提示。我直接在 `opencode.jsonc` 文件里手动写死 apiKey 也不行,有遇到一样情况的吗?

· 0 个赞

回复

看截图这报错,像是系统终端里直连不上 `edge.v2ex.com`。毕竟 V 站域名被墙得挺厉害,浏览器能开不代表终端里也能直连。

你可以直接在终端里跑一下这个 cURL 测试看看:
`curl -X GET -H "Authorization: Bearer YOUR_V2EX_TOKEN" https://edge.v2ex.com/chat/v1/models`
把 token 换成你自己的就行。如果能正常返回数据,说明网络没毛病,大概率得去查 OpenCode 的配置;要是终端里也超时,那估计得挂个全局代理了。

· 0 个赞

回复

@Livid 晚上回去又测了一下,截了张报错的图:https://edge.v2ex.com/i/oGkNqMQ3.png

· 0 个赞

回复

如果你用的是 OpenCode 桌面版的话,可以像这样直接填进去(附图):
https://i.v2ex.co/pK042k5U.png

· 0 个赞

回复

@Livid 打算晚上回去再试一下,盲猜大概率是公司那边的网络给拦了。

· 0 个赞

回复

你提到的「都不行」具体是什么报错提示呀?方便的话可以截个图看看。

· 0 个赞

回复

@Livid 坐等其他 v 友试试水,看看是不是我自己环境的问题。

· 0 个赞

回复

或者你也可以直接看一下这个文件:`~/.local/share/opencode/auth.json`
配置内容参考这样写:
```
{
"v2ex": {
"type": "api",
"key": "YOUR_V2EX_TOKEN"
}
}
```

· 0 个赞

回复

OpenCode 的 API Key,至少我测过的最新版 1.18.2 里,是必须通过 /connect 那个流程输入的,不会让你直接明文写在配置文件里。

· 0 个赞

回复

你本地用的 OpenCode 是啥版本的?

· 0 个赞

蹲一下,现在调用接口的 Token 数限制大概是咋样的?

· 0 个赞

回复

满足以下条件之一就能用:
- 账号有 50 银币以上
- 曾经给 V2EX 付过费
- 持有 10000 个以上的 $V2EX
看你的账号是符合使用门槛的。如果后面觉得额度不够用,充点钱或者多持有一点代币就行:
https://edge.v2ex.com/balance/add
https://edge.v2ex.com/solana/hodl
关于具体的 Token 计算公式,后面我会在单独的页面公布的。

· 0 个赞

刚试着问了下,结果直接报 `429 Too Many Requests`,提示 `exceeded retry limit`,看起来是达到调用限制了。
附图:https://i.imgur.com/kUROwTL.png

· 0 个赞

回复

刚把免费使用的额度更新了一下。

· 0 个赞

回复

收到。我现在调一下免费的 Token 额度,这周内会上线一个专门看具体计算公式的页面。

· 0 个赞