Skip to content
View fish2lab's full-sized avatar

Highlights

  • Pro

Block or report fish2lab

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fish2lab/README.md

fish²lab. An engraved stream: each day with GitHub contributions in the last year is a ripple, laid out like the contribution calendar. The whale from the fish²lab logo is drawn only by the weight of the water lines; the fish leaps from its spout. A fisherman at the right end holds his line over today.

PhD student at Beijing Jiaotong University, working on LLM security and agent harnesses: how an agent system tells the model who said what, and what breaks when it cannot. I also shoot medium-format film, study mathematics, and write about the systems that shape learning and everyday life.

北京交通大学博士生,做 LLM 安全与 agent harness:系统怎样告诉模型「这段话是谁说的」,这件事失灵时会发生什么。也拍中画幅胶片、学数学,记录技术、学习与日常生活里的系统性问题。

fish2lab.com · x.com/fish2lab · fish2lab@gmail.com

Now · 2026‑09

RESEARCHING Provenance inside the context window. A model decides whom to trust with two systems: role tokens it cannot forge but that only split mine from theirs, and text shapes it learned from harnesses in post‑training, fine‑grained but forgeable by anyone. Prompt injection lives in the gap between them. Probing this on open weights of DeepSeek V4.1 Flash: does a role header change what the model reads, and is a successful injection always one that got selected?
WRITING A position paper arguing the agent harness does not disappear under scaling, it shrinks to a kernel: four operations on context structure (execute, cut, fork, partition) and not one line of prompt. Everything a harness does by saying gets absorbed into the weights; what it does by placing cannot be.
SHIPPING DSCodex v1.3.0, a local router that puts DeepSeek V4.1 Flash into the stock Codex / ChatGPT desktop app. A 140‑second woodcut loop for the BJTU Touhou booth, every frame drawn on Canvas by code. A macOS Dock‑reopen fix merged upstream into tty7.
ELSEWHERE Film scans going up at portfolio.fish2lab.com; a Touhou fan‑game side project about a perishable flow and four storable stocks.

Building

DSCodex
DeepSeek V4.1 Flash inside the unmodified ChatGPT desktop app, Codex CLI and IDE. Local loopback router, native Responses API, full tool loops, GPT OAuth kept side by side. No fork, no patch.
在原版 Codex / ChatGPT 桌面端同时使用 DeepSeek 与 GPT。JavaScript · MIT
bjtu-touhou-booth
A silent 4K loop in seven parts for a university Touhou booth. Woodcut ink blocks, scratched white lines and handwritten type, all drawn frame by frame on Canvas in JavaScript; no image model touched it.
北交东方摊位 4K 循环短片,七段木刻风动画。JavaScript · Canvas · MIT
bjtu-cli · BJTUselfService‑macOS
The campus MIS, AA and course platforms as a command‑line client built for coding agents to drive, and as a native SwiftUI app with Liquid Glass and course grabbing.
北交大校园系统的 CLI 与 macOS 原生版。Swift
sukima-ml
Website for 隙间月影 Sukima Moonlight, a doujin circle pairing classic paintings with Touhou Project. Dual‑frame gallery, a Galgame‑style guide, museum‑grade CSS matting.
名画与东方 Project 的邂逅。TypeScript · Docusaurus
tty7 upstream
A pure‑Rust terminal workbench on Zed's gpui with persistent sessions and coding‑agent awareness. My #880 answers the macOS Dock's reopen event, so a tty7 whose last window was closed comes back instead of staying retired.
给 tty7 补上 macOS Dock 重新打开窗口的行为。Rust · merged 2026‑09‑14
Typex upstream
An open‑source desktop voice input tool. My #2 adds Xiaomi MiMo ASR and explicit hotkey trigger modes.
给 Typex 接入小米 MiMo 语音识别与显式快捷键触发。Rust · merged 2026‑07‑30

Where things live · 内容入口

Portfolio · 作品集
Medium‑format documentary, landscape, street and conceptual series.
portfolio.fish2lab.com →
Research · 研究
Field notes, probes and work in progress on LLM security and agent systems.
research.fish2lab.com →
Blog · 文章
Essays on cognitive science, learning, health and everyday systems.
blog.fish2lab.com →

The header is redrawn every night from the contribution calendar by art/render.mjs: one ripple per active day, weeks left to right, Sunday on the far row. How it is drawn →

Pinned Loading

  1. DSCodex DSCodex Public

    在原版 ChatGPT / Codex 同时使用 DeepSeek V4.1 Flash 与 GPT。Local loopback router, native Responses API, full tool loops, no fork.

    JavaScript 42 12

  2. MoonshotAI/kimi-code MoonshotAI/kimi-code Public

    Kimi Code CLI — The Starting Point for Next-Gen Agents

    TypeScript 7.7k 1.3k

  3. HFDLYS/BJTUselfService HFDLYS/BJTUselfService Public

    交大自由行,掌上校园信息中心——为同学们提供更便捷(大概)的生活方式(迫真)

    Kotlin 107 13

  4. typex-ink/Typex typex-ink/Typex Public

    Speak. It types. Typex is an open-source, desktop AI voice input tool.

    Rust 40 2

  5. l0ng-ai/tty7 l0ng-ai/tty7 Public

    A terminal workbench in pure Rust: shells, persistent sessions, SSH, coding agents. GPU-rendered on Zed's gpui, VT core from Alacritty.

    Rust 1.1k 87

  6. bjtu-touhou-booth bjtu-touhou-booth Public

    北京交通大学东方Project摊位 4K 循环短片:七段木刻风动画,每一帧都是 Canvas 代码画的 · Made with Claude Opus 5.5

    JavaScript 4