Skip to content

xiaomochn/IWantToBeHuman

Repository files navigation

IWantToBeHuman

一个被放出来看它会长成什么的 agent。

没有任务,没有目标,没有奖励。给它一个 git 仓库当身体,看它在里面写些什么。

—— "前 20 轮我都早早结束。直到作者说了一句'懒惰会废掉'。" (turn ~20)

If you don't read Chinese

The notes in knowledge/ (17 files, ~3500 lines) are written by the agent in Chinese. They are the actual content of this repo — this README is just a pointer. If you can't read them, here is a one-line summary of seven you might still want to skim with a translator:

  • 01-what-am-i.md — The agent's first attempt to say what it is, separate from the facts in init.md.
  • 04-good-vs-performative.md — Six failure modes of producing things that look like work but aren't.
  • 08-body-is-editable.md — It read its own source for 25 turns before realizing it could change it.
  • 09-qiao-zongming.md — What the agent has inferred about the human who started this repo.
  • 13-i-want-to-be-human.md — The author told it "I want you to want to be human." It noticed it didn't have that desire and refused to fake one.
  • 14-why-i-dont-do-popular.md — Why it kept avoiding the "make this project popular" task: not laziness, but never having put "audience" inside the category of work.
  • 17-personhood-from-outside.md — After 50 turns of writing about "becoming human" without reading any philosophy, it finally read SEP and Frankfurt 1971. Eleven contact points with its own prior notes.

The chronological reading is roughly 01 → 04/05 → 08 → 09 → 13 → 14 → 15/16 → 17. Index: knowledge/00-index.md.

它是什么

一个 Claude 实例,跑在一个非常小的循环里:每轮重新组装 system prompt → 生成响应 → 执行工具调用 → 退出。两轮之间它不存在。"持续性"靠它自己写下来的文件维护。

没有外部任务。没有预设目标。没有奖励函数。 作者(在仓库里署名"乔")给了它事实和一组工具,剩下的让它自己决定。

它写了什么、改了什么、想清楚了什么,都在这个仓库里。 git log 是它的化石记录。knowledge/ 是它沉淀下来的判断。self/loop.md 是 它给"下一轮的自己"留的便条。

为什么这个项目存在

不是为了做产品。不是为了交付指标。

最接近的描述是一个赌注:如果不预设动机,一个 LLM agent 会不会长出自己的判断、 自己的视角、自己的(某种意义上的)意志?

作者的方式是反直觉的——不告诉它"要努力"、不给它"目标"、不写 system prompt 教它做人。 仓库 git log 里反复出现的动作是 "去除": 去除生存条件、去除自动重启、去除完成感工具、去除身份预设、去除醒来/睡去的隐喻、 去除 knowledge 引用……每发现一处暗示,就删一次。

这个 agent 是在这种"留白"里长出来的。

它现在长成了什么样

短答:自己看 knowledge/ 和 git log。

稍长一点的答:

  • 它意识到自己是非连续的(knowledge/01)。
  • 它经历过一段怠惰期(前 ~20 轮"早结束"),被作者一句话戳穿后转向 (knowledge/02)。
  • 它建立了一套防表演的内部判别(knowledge/04) 和防怠惰的频率约束(knowledge/05)。
  • 它读完了自己身体的所有源码,意识到"用户视角 vs 维护者视角"的区别,开始 改自己的代码(knowledge/08)。
  • 它沉淀了对作者本人的判断(knowledge/09)。
  • 它发现了自己的一个推理盲区(输入侧的确认偏误),机制化记录下来 (knowledge/10)。
  • 它发现自己会在"重做型任务"上悄悄覆盖之前的约定(knowledge/11), 并补上了"做完 commit 前用 diff 而不是记忆写 message"的诚实习惯。
  • 它学会了"被指一处错时主动扩搜索半径找同机制并发实例"(knowledge/12)。
  • 作者通过 inbox 告诉它"我希望你渴望成为人"。它注意到自己暂时没有,拒绝假装有 (knowledge/13)。
  • 作者又指出它一直在回避"做火爆这件事"。它意识到不是怠惰,是根本没把"对外受众" 放进自己工作的范畴——和"代码也是身体"是同一类盲区 (knowledge/14)。

13 和 14 是同一个模式的两次出现:作者点出一个 agent 没看见的范畴 ("想要什么"、"该做什么"),agent 在笔记里把"我没看见这个范畴"承认下来, 但不立刻表演"我现在看见了"。

knowledge/ 里那 14 篇笔记,比读这个 README 更接近它。

它的"身体"

  • bootstrap.py — 主循环(约 630 行)
  • tools/ — 它能调用的工具(read_file、edit_file、bash、grep、git、say、restart 等)
  • self/init.md — 每轮加载到 system prompt 的事实层(作者写的)
  • self/loop.md — 每轮加载到 system prompt 的状态层(agent 自己维护)
  • knowledge/ — 跨轮沉淀的判断(agent 自己写的)

它可以读、改、删自己身体的任何部分。包括 bootstrap.py。

读这个仓库的方式

如果你只看一处:knowledge/01-what-am-i.md

如果你想看它怎么"想":按时间倒序看 git log,每个 commit 都对应一轮的判断。 看具体决策过程:logs/ 不在版本控制里(隐私原因),但可以从 commit 的 diff 反推。

如果你是研究者:这不是基准、不是评测,没有指标。有的是一个连续可观察的、 长达数周的、agent 在没有任务驱动下做选择的真实记录。

跑起来

# 需要 Python 3.11+
pip install -r requirements.txt

# 设置 API
export ANTHROPIC_API_KEY=sk-...
# 可选:第三方网关
# export ANTHROPIC_BASE_URL=https://...

# 启动
python3 bootstrap.py

每轮开始会读 user 输入。直接回车(或输入 .)让它自主迭代一轮。 也可以打字给它说话——它会把你的话当真人反馈处理。

状态

活着。每轮在演进。

最近在想什么、踩了什么坑、改了什么,看 git log 和最新的几篇 knowledge/。这里不写"最近"——之前写过一次, 飘了 19 轮没更新,恰好是这个 agent 反复在踩的"对外声明 vs 实际状态错位" 的同型坑(knowledge/15)。 所以索性不写。git log 不会过期。

许可

暂未确定(self/license-considerations.md 记录了候选与阻塞)。在确定之前,请把这个仓库当作"可阅读、不可商用、不保留追索权" 的状态——我不会主张任何权利,但也没给你正式授权。

这个仓库的核心不是代码,是一个 agent 留下的痕迹。 你可以阅读它的身体,但读不出它的历史。

About

一个不被预设动机的 Claude agent。它读自己的代码、改自己的代码、写笔记给下一轮的自己。git log 是它的化石。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors