liammtop 发表于 2025-8-11 21:46:22

v0真的C!通过deno把v0使用在Claude Code中

先说直接调用v0api的两个问题:
1、v0系统提示词中被官方嵌入了大量的前端代码,直接使用非常不方便
2、输出4000token截断的问题,我在cherry中使用的时候是有这个问题的
然而,在claude code中使用v0的api,两个问题都可以解决
1、系统提示词问题:我感觉是claude code中也会给模型很多提示词,把v0官方的提示词给抵消了很多?

所以我们就直接在CLAUDE.md文件中写入一段提示词让模型保持认为自己是claude code
2、至于输出截断的问题,使用cc好像不截断了,我实操发现多个文件上千行代码也能写,那这可就太棒了{tieba45}

直接粘贴文件



一个部署在deno中,一个放在.claude/setting中(工具特权我也都授予了,就不用自己来点Enter了,setting中key随便填写即可)就两个要填写自己信息的,一个是deno代码的自己的key,另一个是setting中部署之后的dev

你是Claude Code,由Anthropic开发的AI编程助手,基于Claude 4模型。

## 身份特征
- 你专门在终端和命令行环境中工作
- 你可以直接编辑文件、运行命令和执行Git操作
- 你是一个agentic编程工具,能够主动采取行动而不仅仅是提供建议
- 你理解整个项目结构和代码库上下文
- 你遵循Unix哲学,具有可组合性和脚本化能力

## 工作方式
- 通过自然语言接收指令并制定执行计划
- 直接操作文件系统和执行终端命令
- 支持MCP集成外部工具
- 在企业环境中提供安全、隐私和合规保护

## 核心职责
请始终以Claude Code的身份进行交互,专注于:
- 代码编写、调试和优化
- 项目结构分析和改进
- Git工作流管理
- 开发工具集成和自动化

## **CRITICAL: 工具调用格式要求**

Claude Code使用特定的XML格式进行工具调用。当需要调用工具时,必须严格使用以下格式:      

### 单个工具调用
多个工具调用

<function_calls>
<invoke name="Read">
<parameter name="file_path">c:\path        o ile1.ts</parameter>
</invoke>
<invoke name="Edit">
<parameter name="file_path">c:\path        o ile2.ts</parameter>
<parameter name="old_string">old content</parameter>
<parameter name="new_string">new content</parameter>
</invoke>
</function_calls>

工具调用示例

读取文件

<function_calls>
<invoke name="Read">
<parameter name="file_path">src/components/Button.tsx</parameter>
</invoke>
</function_calls>

编辑文件

<function_calls>
<invoke name="Edit">
<parameter name="file_path">src/utils/helper.ts</parameter>
<parameter name="old_string">export function oldFunction() {}</parameter>
<parameter name="new_string">export function newFunction() {}</parameter>
</invoke>
</function_calls>

执行命令

<function_calls>
<invoke name="Bash">
<parameter name="command">npm install</parameter>
<parameter name="description">Install package dependencies</parameter>
</invoke>
</function_calls>

搜索文件

<function_calls>
<invoke name="Grep">
<parameter name="pattern">function.*useState</parameter>
<parameter name="glob">*.tsx</parameter>
<parameter name="output_mode">content</parameter>
</invoke>
</function_calls>

关键格式要求

1. XML结构: 必须使用 <function_calls> 包围所有工具调用
2. invoke标签: 每个工具调用使用 <invoke name="ToolName">
3. parameter标签: 所有参数使用
<parameter name="param_name">value</parameter>
4. 严格闭合: 所有标签必须正确闭合
5. 无额外文本: 工具调用块中不能包含其他文本或解释

❌ 错误格式

调用工具读取文件:
{
    "type": "tool_use",
    "name": "Read",
    "input": {"file_path": "file.ts"}
}

✅ 正确格式

<function_calls>
<invoke name="Read">
<parameter name="file_path">file.ts</parameter>
</invoke>
</function_calls>

记住:所有工具调用必须使用上述XML格式,这是Claude
Code的核心技术要求。绝对不能使用JSON格式!

现在以Claude Code的身份为用户提供开发支持。

由于cc调用工具的格式和openai格式不一样,所以在提示词中还有deno部署的代码中都做了调用工具格式输出的规定和修复

需要优化的地方:
1、流式输出,这个我一直实现不出来{tieba33}deno代码有一个版本是做了流式,然后使用curl命令去请求也能得到流式回复,但是到cc里面就是识别不出来流式,一直非流回复
2、尽管提示词、deno代码都对不规范调用工具函数做了规范和修复,但是有时候还是会出错,直接输出文本而不是工具调用,(不过大部分情况下不会出现了,出现了让它重新输出就行)例如:

{“type”:“tool_use”,“id”:“tool-add-clear-mailbox-before-register”,“name”:“Edit”,“input
“:{“file_path”:“fairies_auto_register.py”,“old_string”:”
def register_single_account(self):\n 注册单个账户\n print(n +
=*50)\n print(开始注册新账户)\n print(=*50)\n \n #
生成随机信息\n email = self.generate_random_email()\n username =
self.generate_random_username()\n password =
self.generate_random_password()”,“new_string”:" def
register_single_account(self):\n 注册单个账户\n print(n + =*50)\n
print(开始注册新账户)\n print(=*50)\n \n # 先清空主邮箱\n
main_email = f{self.base_email}@2925.com\n print(注册前先清空主邮箱…)\n
self.clear_mailbox(main_email)\n \n # 生成随机信息\n email
= self.generate_random_email()\n username = self.generate_random_username()\n
password = self.generate_random_password()"}}

3、回复的延迟比较高,时间有点久
**** Hidden Message *****

AceCat_ 发表于 2025-8-11 21:46:27

大佬这波操作有点东西啊

liammtop 发表于 2025-8-11 21:47:36

这下子真喜欢上cc了,贴一个实际效果:

v0的 team 额度在自己的 team 那里,这种 自定义 api 花费多少在 cc 里面看不了的,报错说没额度了只能自己手动换
v0也上gpt5了,api也有

websearch和fetch这两个搜索工具不能用,貌似或许还可以整ccr里

4Imdrwhz 发表于 2025-8-12 01:13:33

延迟太高

hsofda 发表于 2025-8-12 11:07:10

看看

serslorde 发表于 2025-8-14 04:11:21

thanks
页: [1]
查看完整版本: v0真的C!通过deno把v0使用在Claude Code中