文章

羊羽的AI-Native周报(2)

羊羽的AI-Native周报(2)

微信开放了消息API,注意:不是企业微信

微信 Bot API 技术解析:腾讯 iLink 协议首次合法开放

可以用接口给自己的微信发消息了,要知道,这个能力之前只能通过逆向 iPad/网页微信 api来实现,还容易被封号。

现在官方直接下场提供了官方 api !

除了对接龙虾,这个能力的想象空间非常大,已经有大量相关的开源组件了!

比如:

  1. GitHub - formulahendry/wechat-acp: Bridge WeChat chat messages to any ACP-compatible AI agent
  2. GitHub - chenhg5/cc-connect: Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex)

整体交互流程:

sequenceDiagram
    actor 用户 as 微信用户
    participant Bot as Bot服务
    participant iLink as iLink服务器

    rect rgb(245, 247, 250)
        Note over 用户,iLink: 1. 登录
        Bot->>iLink: 获取登录二维码
        iLink-->>Bot: 返回二维码
        用户->>iLink: 扫码并确认登录
        Bot->>iLink: 查询登录状态 [轮询]
        iLink-->>Bot: 返回当前登录状态
    end

    rect rgb(250, 248, 245)
        Note over Bot,iLink: 2. 接收消息
        loop 长轮询拉取消息
            Bot->>iLink: 发起消息拉取请求
            iLink-->>Bot: 返回新消息或等待超时
        end
    end

    rect rgb(245, 250, 246)
        Note over Bot,iLink: 3. 回复消息
        Bot->>iLink: 根据收到的会话上下文发送回复
        iLink-->>Bot: 返回发送结果
    end

唯一就是只能被动回复消息,有问才能有答!不过一问可以有多答。

OPC(一人公司)技术底座:Supabase

Supabase 是一个有免费额度的 BaaS 服务。

什么叫BaaS?

BaaS (Backend as a Service) 是一种云服务模型,旨在让开发者专注于前端/客户端业务。它将后端功能(如数据库、身份认证、文件存储、推送通知)封装为标准的 API 或 SDK。

开发者无需搭建服务器、管理数据库或编写复杂的中间件逻辑,即可实现完整的应用后端功能,极大地提升了研发效率与交付速度。

有了BaaS支撑,一般情况下,我们只需要写前端代码。可以用来快速的、低成本的落地自己的idea~

不用买机器、不用搭数据库、不用自己买域名做LB~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 核心逻辑:数据库即 API
export const TodoList = () => {
  const [data, setData] = useState([]);

  // 1. 直接查库
  const load = async () => setData(await supabase.from('todos').select('*'));

  // 2. 直接入库 (无须编写后端路由)
  const add = async (val) => await supabase.from('todos').insert({ text: val });

  return (
    <div onClick={() => add('新任务')}>
      {data.map(item => <p>{item.text}</p>)}
    </div>
  );
};

前端React/Vue 组件中,直接操作后端BaaS数据库,平台透明实现数据隔离/数据ACL。

还有很多其他有免费额度的平台,比如:

  1. Cloudflare
  2. Vercel
  3. upstash

总之,先白嫖验证想法!

TUI常用快捷键

终端里的 ctrl+a/e/f/b/p/n/w 等快捷键来自 GNU Readline 库,基于 Emacs 键位风格,bash/zsh 及大多数 CLI 应用均支持;

macOS 系统级文本框(飞书、Safari、备忘录等)也原生支持,因为Cocoa 文本系统内置了这套绑定。

背起来、用起来吧!

快捷键常见含义作用说明
Ctrl+A移动到行首将光标快速移动到当前输入行的开头。
Ctrl+E移动到行尾将光标快速移动到当前输入行的末尾。
Ctrl+F向前移动一个字符光标向右移动一个字符,等价于”前进”。
Ctrl+B向后移动一个字符光标向左移动一个字符,等价于”后退”。
Ctrl+P上一条历史记录在命令历史中切换到上一条,常用于找回之前输入的命令。
Ctrl+N下一条历史记录在命令历史中切换到下一条,通常和 Ctrl+P 配合使用。
Ctrl+W删除前一个单词删除光标前的一个单词,适合快速修改输入内容。

CLAUDE.md @指令 嵌入内容

研究了下 ClaudeCode的记忆文件的处理,根据claude-code开源代码~

假设你的项目中存在以下两个文件:

文件 A: **CLAUDE.md**

1
2
3
4
# 星火计划项目指南
- 使用 Python 3.10+
- 所有函数必须包含类型注解
@path docs/conventions.md

文件 B: **docs/conventions.md**

1
2
3
# 代码规范
- 命名:变量使用 snake_case,类名使用 PascalCase
- 文档:所有公有方法必须写 Docstring

最终拼接的系统提示词结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<system-reminder>
# claudeMd

Contents of CLAUDE.md (项目主指令):
# 星火计划项目指南
- 使用 Python 3.10+
- 所有函数必须包含类型注解
@path docs/conventions.md

Contents of docs/conventions.md (代码规范):
# 代码规范
- 命名:变量使用 snake_case,类名使用 PascalCase
- 文档:所有公有方法必须写 Docstring

Keep the above context in mind when answering the following user messages.
</system-reminder>

挺有意思的,可以自行感受下hhhh

需要注意:

  1. SKILL.md 里不可以 @ 其他文件。
  2. 窗口输入的prompt可以使用 @ 指令,不过实现原理有差异,感兴趣可以自己摸索下。

CLAUDE.md @指令示例截图

SKILL动态装载原理

本质上就是一个Tool~

工具定义如下:

SKILL工具定义截图

工具描述翻译如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
在主对话中执行技能

当用户要求您执行任务时,请检查是否有任何可用技能与之匹配。技能提供专门的能力和领域知识。

当用户引用"斜杠命令"或 /<something>(例如 /commit、/review-pr)时,他们指的是某项技能。请使用此工具来调用它。

如何调用:
- 使用此工具并提供技能名称和可选参数
- 示例:
    - skill: "pdf" - 调用 pdf 技能
    - skill: "commit", args: "-m 'Fix bug'" - 带参数调用
    - skill: "review-pr", args: "123" - 带参数调用
    - skill: "ms-office-suite:pdf" - 使用完全限定名称调用

重要提示:
- 可用技能列在对话的系统提示消息中
- 当技能与用户请求匹配时,这是一个阻塞性要求:在生成任何关于该任务的其他回复之前,必须先调用相关的技能工具
- 绝不要在未实际调用此工具的情况下提及某项技能
- 不要调用已经在运行的技能
- 不要将此工具用于内置 CLI 命令(如 /help、/clear 等)
- 如果你在当前对话轮次中看到 <command-name> 标签,则该技能已经加载 - 请直接遵循说明,而不要再次调用此工具

那么,怎么便捷的抓包看大模型接口交互呢?我来教你:

打开claude配置文件

1
code ~/.claude/settings.json

修改协议类型

修改settings.json截图

看到没?https改成http!

使用你熟悉的抓包工具

我用Wireshark!

Wireshark截图

1
http.host contains "ep"
本文由作者按照 CC BY 4.0 进行授权