为啥简单问题也强行输出小作文

#9
by qwq95195 - opened

image

image
一个很简单的问题。4.1居然给我回了一篇小作文 ,反而是sonnet5简单明了

下面是4.1的回复
现在情况清楚了。我建议不要往那个 prefix 里装——那是 DSH 自己的运行时,dsh 命令就住在那儿,混装第三方全局包有风险(升级/清理时容易被连带影响)。

更干净的做法是给 pi 单独一个全局目录。


结论先说

你这个项目 pi(Pi Agent Harness) 不是一个"部署到服务器"的东西——它是一个 终端编码 agent CLI。所以「装成全局 CLI 工具日常使用」的正确姿势是:

推荐:用官方 npm 包全局安装到独立 prefix

# 1. 建一个 pi 专属的全局目录
export PI_NPM_PREFIX="$HOME/.local/pi"
mkdir -p "$PI_NPM_PREFIX"

# 2. 安装(用独立 cache 避开你那个坏掉的 ~/.npm)
npm install -g --ignore-scripts \
  --prefix "$PI_NPM_PREFIX" \
  --cache /tmp/npm-cache-pi \
  @earendil-works/pi-coding-agent

# 3. 加进 PATH(写进 ~/.zshrc 持久化)
export PATH="$PI_NPM_PREFIX/bin:$PATH"

# 4. 验证
pi --version

然后配置模型:

export ANTHROPIC_API_KEY=sk-ant-...   # 或 DeepSeek/OpenAI 等
pi

首次进交互界面后可以 /login 选订阅登录,/model 切模型。


三个必须告诉你的坑

1. 你的 ~/.npm cache 是坏的(但和 root 无关)

npm 报错说"cache 里有 root 文件,请 sudo chown",这是误报——我查过了,~/.npm 里一个 root 文件都没有,全是你的 qwq:staff,也没有 ACL 和特殊 flags。

真正原因是 ~/.npm/_cacache/tmp/ 里三个残留文件连你自己都删不掉(rmOperation not permitted),npm 写不进去就套用了那个误导性的报错文案。

所以别去跑 sudo chown -R 501:20 ~/.npm —— 治不了病,还可能把属主搞乱。

正解就是上面那样传 --cache /tmp/npm-cache-pi 绕开。想根治的话,在普通终端(不是这个沙箱里)执行:

rm -rf ~/.npm/_cacache/tmp/*

如果普通终端也删不掉,才考虑 sudo rm -rf ~/.npm/_cacache/tmp/*(只删 tmp,不要 chown 整个目录)。

2. 别装进 DSH 的运行时

你的 npm config get prefix 是:

/Users/qwq/.obai/runtimes/nodejs/node-v24.14.0-darwin-arm64

这是 DeepSeek Harness 自己的 Node 运行时,dsh 本体就在里面。直接 npm i -g 会往 lib/node_modules 里塞 pi 和它的一堆依赖,将来 DSH 升级或你清理运行时的时候容易互相污染。用 --prefix 隔离最稳。

3. Node 版本要求 ≥ 22.19.0

你的运行时是 v24.14.0,npm 11.9.0,满足要求,没问题。


另外两条路(按需选)

A. 想在项目里开发 / 改源码跑

cd /Users/qwq/Documents/pi
npm install --ignore-scripts --cache /tmp/npm-cache-pi
npm run build          # 联网刷新模型数据后构建全部包
# 或 npm run build:offline  用现有模型数据离线构建

./pi-test.sh           # 从源码直接跑,任意目录都行

B. 想要免 Node 的独立二进制

curl -fsSL https://pi.dev/install.sh | sh

或从 GitHub release 的 source archive 自己构建(README 里有 scripts/build-binaries.sh 的用法)。


补充说明

  • 仓库里 packages/serverpackages/client 只是 coding-agent 的内部 RPC 依赖devDependencies),不是要部署的 Web 服务,别被名字误导。
  • pi 默认没有权限系统,以你的用户身份全权运行。如果你的使用场景需要边界,README 指向 packages/coding-agent/docs/containerization.md 的三种容器化方案。
  • 项目根目录的 .pi/ 是仓库自带的扩展/skill/prompt 配置,装全局后 pi 自己的配置在 ~/.pi/agent/

要我直接帮你把上面那套安装执行掉吗?

需要注意:~/.local/pi 在当前沙箱策略(workspace-write,只允许写 /Users/qwq/Documents/model)之外,执行时会触发一次权限申请。你也可以自己复制到终端跑,效果一样。

现在它非常的gpt味道。感觉是拿gpt做奖励导致的。然后,文字越长,奖励就会越多,奖励的时候没有告诉gpt要限定这块;或者gpt确实偏好长度高给高分。

@likewendy 啰嗦也就算了,它的判断结果居然还是错的,就离谱。明明一行命令就能安装,也不会冲突。

@likewendy 啰嗦也就算了,它的判断结果居然还是错的,就离谱。明明一行命令就能安装,也不会冲突。

我有两种说法:

  • 模型的幻觉,还是不够训练有素
  • 确实会冲突,但是,你当前的环境没冲突,冲突出现在其他环境下。这种情况人类也无法分辨,只会记得有可能冲突,但并非100%冲突。

Sign up or log in to comment