惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
A
Arctic Wolf
S
Securelist
O
OpenAI News
T
Threatpost
Forbes - Security
Forbes - Security
N
News and Events Feed by Topic
S
Secure Thoughts
H
Heimdal Security Blog
S
Security Affairs
P
Privacy International News Feed
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
T
Tailwind CSS Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hacker News: Ask HN
Hacker News: Ask HN
T
Troy Hunt's Blog
S
SegmentFault 最新的问题
腾讯CDC
V
Visual Studio Blog
Last Week in AI
Last Week in AI
H
Hacker News: Front Page
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Project Zero
Project Zero
WordPress大学
WordPress大学
NISL@THU
NISL@THU
博客园 - 【当耐特】
博客园 - Franky
Webroot Blog
Webroot Blog
博客园_首页
T
Tenable Blog
雷峰网
雷峰网
Google Online Security Blog
Google Online Security Blog
阮一峰的网络日志
阮一峰的网络日志
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
The Hacker News
The Hacker News

Python

哪位朋友帮忙用 mac 测试下我的 Python 脚本 - V2EX 用 GPT5.6 填了之前的坑:在线的 Python 编辑器和运行终端 - V2EX 为什么这段 cuda 的并行前缀算法不会数据竞争 - V2EX 怎么搞定纯 Python 代码解码 jpg 图片,要求无外部依赖 - V2EX 使用 kkRepo 搭建 Python PyPI 私服 - V2EX Python WebSocket 长连接到底怎么写才稳? - V2EX 小白求推荐人工智能学习的网课 humanize-text 一个开源的 AI 文本拟人化工具集 9.9 元起!跨境卖家疯抢的纯净住宅 IP 辣椒 HTTP,到底有多香? 从会议录音到知识库全自动:我把数百段录音做成了可 RAG 问答的 Wiki(附开源代码) CodexSaver:在不让 Codex 变笨的前提下,让它更便宜。 [开源] 我正在用 Python 复刻经典游戏红色警戒 2 有准确绘制缠论中枢的 Python 代码借鉴么 做了一个面向张量计算的语言,可从 Python 调用,支持显式索引和自动求导 - V2EX 把电脑伪装成电视,用 DLNA 投屏拿到视频号直播流地址 - V2EX 爬虫开发工作中,你们是如何基于 AI 进行提效的? - V2EX 发现 Python 一个有意思的小特性,发现很合适搞成面试题。问了 AI 都不行:),欢迎来挑战~ - V2EX 大型 Python 开源项目都不会对变量进行类型注解? - V2EX 使用 pycharm 开发 Python ,自定义代码风格,并实时提示 - V2EX 创造了 uv 的 Astral 公司被 OpenAI 收购 - V2EX 慎用 PyCharm Remote Development 功能 - V2EX Python 3.15 JIT 的最新进展,已经有大概 5%的性能提升了 - V2EX [开源] 做了个 feishu-docx,把飞书知识库变成 AI 更容易读写和管理的内容源,方便给 Agent 用 - V2EX 开源项目: clawOS 解决 openclaw 文件系统,一键安装 - V2EX 我用免费 A 股数据做了几个工具,欢迎一起开源! - V2EX 分享一个完全免费的中国 A 股数据获取库 - V2EX AI 应用(如 RAG)背景下,如何选择非关系型数据库 - V2EX Python 3.15 将引入一个很方便的语法: Unpacking in Comprehensions - V2EX clawOS 解决 openclaw 文件系统交互过于抽象问题 - V2EX [开源] pyruns - 给 Python 脚本加个 Web UI,管理批量实验任务 - V2EX 5090 本地部署 Dify+Blender+ComfyUI,求老哥协助打通链路 - V2EX 求解, PyInstaller 为什么在 GithubAction 上打包后体积比在本地大 5 倍(Mac arm 端) - V2EX 使用 Python 一键发推 - V2EX 在 Python 中复现 Race Condition [踩坑] A 股开盘把 Python 搞挂了,怒切 Go 重写行情网关 (附 pprof 分析 + 源码) - V2EX 有个视频网站学习的时候不点暂停或者视频学完,就一直没有任何包,也没有心跳包,也不会更新视频学习进度学时。 - V2EX 基于 Pydantic-Resolve 和 FastAPI-Voyager 的 Clean Architecture 实践 -- 一套面向复杂业务场景的 Python Web 开发方法论 - V2EX 学习能力不是很强 现在需要学 py 有什么好的推荐吗? - V2EX Python 有没有 subprocess 的替代品,被 subprocess 折腾死了. - V2EX 问个汉字处理的问题 - V2EX 有哪些 Python 3.14 Free-Threading 多线程性能分析方案? - V2EX 招募一位 FastAPI 工程师,作为技术伙伴 为什么 Python 的包管理这么难用,比 node 的 npm 难用一万倍,每次进入项目都要手动执行一下 conda activate xxx,难道就没有默认的 Python 项目级别的依赖吗? - V2EX 网上找了个流出的 Python 程序,想过下是否被污染了 都有什么推荐的办法啊? 有感于 Golang,如何用 3~5 个问题,识别 Python 开发者的技术素养? - V2EX fastapi tortoise orm 前端管理框架有哪个好用的 - V2EX 小白求教个循环导入的问题 - V2EX 用 Python 写了个异步 MCP Filesystem,小而简,欢迎拍砖 Neovim 的代码检查、补全问题 - V2EX 请教一个关于电报机器人的问题 - V2EX 帮你选择最快的 pip 镜像,告别安装慢 - V2EX hishel 升级 1.0.0 导致使用 pdm 项目构建失败 - V2EX 开源一个 Python JA3 请求库。可以自定义 JA3 指纹并且内置 1200 多个 JA3 指纹。 Arm64 安装 PyQt5/6,只能选 conda 吗? - V2EX Python 爬虫微框架 web-craft - V2EX 请教各位佬们一个奇怪的后端相关的技术问题 - V2EX 迭代器的实际应用场景是什么? 小白求问,刚接触编程领域有什么速成的方式学习吗,学基础阶段并不太想去系统学习. - V2EX 𝜋thon ( Python 3.14) Python 3.14 已发布 fastapi-router-viz, 可视化你的 API 内依赖关系 yfinance 获取数据总是 too many request 无法获取价格啊 小白求问,应聘 AI 算法工程师这类岗位应该有什么基础知识
我开源了 Python 版本的 pi-mono(OpenClaw 的底层组件) - V2EX
kangkona · 2026-02-25 · via Python

2 月份的朋友圈都被 OpenClaw 霸榜了,全世界都在“养虾”,各种玩法、各种接入、各种工作流分享刷屏。

看着 TypeScript 生态里各种“养虾底座”层出不穷;反观 Python 社区,大家要么在手搓一堆 if/else ,要么在和过度封装的沉重框架搏斗,实在有点冷清。

于是,我决定在开工第一天,正式开启 Python 圈的“养猪”事业——搞了个叫 pig-mono (🐷) 的开源项目。你可以把它理解成 pi-mono ( OpenClaw 的底座)在 Python 生态的对应版本。

GitHub 地址: https://github.com/kangkona/pig-mono (欢迎感兴趣朋友 Star 、提 Issues 、PR )

先讲清楚:pig-mono 想做什么?

在我眼里,Agent 应用的核心早就不只是“写 prompt”了,而是要把它当成一个可迭代、可测试、可部署的工程系统。

这也是 pig-mono 最核心的设计理念:为 Python 开发者提供一套标准的 Agent Harness (智能体运行与测试底座)。

不搞黑盒魔法,而是像传统的测试/运行底座一样,把不可控的 LLM “大脑”,与可控的工具( Hands )、记忆( State )、环境( Environment )彻底解耦。它的目标是:

统一 LLM 访问层:同一套 API 接 14 家 Provider (含 OpenRouter 、Bedrock 、DeepSeek 等)。 提供完整的 Agent 运行时:工具注册、工具参数校验、消息历史、状态管理、异步执行……能跑、好调、可复用。 打通真实世界的“入口”:CLI Coding Agent 、Web Chat UI 、多平台消息机器人( Slack/飞书/TG 等)。 Monorepo 模块化沉淀:按需安装、按需组合,绝不强买强卖。 未来扩展更多可直接插拔的、框架无关的 Agent 能力组件

核心模块速览:从哪里开始玩?

pig-mono 目前包含多个可独立安装的包(就像乐高积木): 包名

你会用它来做什么

pig-llm:统一 LLM API:complete/stream 、用量统计、失败重试/兜底等

pig-agent-core:Agent 运行时:工具系统、消息历史、状态保存/恢复、异步等

pig-coding-agent:交互式 Coding Agent CLI:读写文件、执行命令、重构、分析

pig-web-ui:Web Chat UI ( FastAPI )

pig-tui:终端 UI (更友好地交互/展示)

pig-messenger:多平台 Bot 框架:同一个 agent 接多消息平台

1 ) pig-llm:14 家大模型,1 套接口

如果你只想要一个“好用、能换、支持流式”的 LLM 客户端,这是最轻量的入口。 安装: pip install pig-llm

最小示例:

from pig_llm import LLM
llm = LLM(provider="openai", api_key="sk-...", model="gpt-4o-mini")
resp = llm.complete("What is the meaning of life?")
print(resp.content)

# 支持丝滑的流式输出
for chunk in llm.stream("Tell me a story"):
  print(chunk.content, end="", flush=True)

支持 OpenAI / Anthropic / Google / DeepSeek / OpenRouter / xAI 等 14 家,也可自定义。

2 ) pig-agent-core:走向标准化的 Agent Harness

很多 Agent 写到最后变成了:一堆手写 JSON schema ,外加“不知道为什么又忘了上下文”的玄学 bug 。更可怕的是——根本没法做自动化 Evals 。

说实话,要在 Python 生态里做一个 100% 完美的 Harness 还有很长的路要走,但 pig-agent-core 从第一天的底层设计,就是奔着这个愿景去的。它帮你把“大模型的文字接龙”包装成一个输入输出高度确定、随时可以打断/恢复的状态机:

解耦执行:LLM 只负责思考,Harness 负责安全的工具调度和参数校验(基于 Pydantic )。

状态与记忆分离:对话历史和内部状态支持序列化存取,随时可以 dump 成 JSON 恢复。这使得针对 Agent 的单测和回归测试终于成为可能。

安装: pip install pig-agent-core 定义工具(装饰器注册):

from pig_agent_core import Agent, tool

@tool(description="Get current weather for a location")
def get_weather(location: str) -> str:
  return f"Weather in {location}: Sunny, 72°F"
把工具塞进 Agent 然后跑起来:
from pig_llm import LLM

agent = Agent(
  name="WeatherBot",
  llm=LLM(provider="openai"),
  tools=[get_weather],
  system_prompt="You are a helpful weather assistant.",
)

response = agent.run("What's the weather in Paris?")
print(response.content)

它还支持: 消息历史:多轮对话追踪 异步:async/await 状态保存/恢复:例如把会话存成 JSON ,之后继续跑 参数校验:也支持用 Pydantic 定义工具参数模型

3 ) pig-messenger:一套 Agent 同时跑 Slack / Discord / Telegram / WhatsApp / 飞书

这是我个人最想补齐的一块:入口的多样性。 很多团队的 Agent 不是给“网页用户”用的,而是要进入消息平台,成为团队协作流的一部分。pig-messenger 提供一个统一的 MessengerBot ,再通过 Adapter 连接不同平台: 安装:

pip install pig-messenger # 基础
pip install pig-messenger[slack] # 带 Slack
pip install pig-messenger[all] # 全平台

Slack Bot 示例:

import os
from pig_messenger import MessengerBot
from pig_messenger.adapters import SlackAdapter
from pig_agent_core import Agent
from pig_llm import LLM

agent = Agent(
  llm=LLM(
    provider="openrouter",
    model="moonshotai/kimi-k2.5",
    api_key=os.environ["OPENROUTER_API_KEY"],
    ),
)
bot = MessengerBot(agent)
bot.add_platform(
  SlackAdapter(
    app_token=os.environ["SLACK_APP_TOKEN"],
    bot_token=os.environ["SLACK_BOT_TOKEN"],
  )
)
bot.start()

多平台并行跑(示意):

from pig_messenger.adapters import SlackAdapter, DiscordAdapter, TelegramAdapter
bot = MessengerBot(agent)
bot.add_platform(SlackAdapter(...))
bot.add_platform(DiscordAdapter(bot_token=os.environ["DISCORD_BOT_TOKEN"]))
bot.add_platform(TelegramAdapter(bot_token=os.environ["TELEGRAM_BOT_TOKEN"]))
bot.start()

4 ) pig-coding-agent:交互式 Coding CLI

如果你想体验“Agent 在本地真实干活”,可以从 pig-coding-agent 开始。 安装: pip install pig-coding-agent 启动交互式会话: $ pig-code 你可以把它当作一个“会读写文件、能执行命令、会分析和重构”的编程助手。项目 README 里给了一些典型用法,例如:

pig-code gen "Create a FastAPI hello world app"
pig-code analyze main.py
pig-code refactor main.py "Add type hints"

5 分钟上手:从源码开发( Monorepo ) 如果你想参与开发或直接从源码跑起来:

git clone
cd pig-mono

# 安装开发依赖
pip install -e ".[dev]"

# 安装所有 packages (可编辑模式)
./scripts/install-dev.sh

# 跑测试
./scripts/test.sh

你可能会问:为什么叫 “pig-mono”?

其实一开始想叫 py-mono (直白好懂,Python 版 pi-mono )。结果准备发包时发现名字在 PyPI 被占用了。

于是顺势改成了 pig-mono ,不仅顺理成章地开启了我的“养猪”事业,最重要的是,可以光明正大玩个谐音梗:

虾仁猪心( xiā rén zhū xīn )“

“虾人不是人,猪心却走心”, 就是这么离谱、但又很好记。 适合谁用? 我会把 pig-mono 推荐给三类人:

  • Python 主力军:想把类似 OpenClaw 的内核能力移植到自己业务系统里的人。

  • “反”重型框架者:不想被太重、太黑盒的 Agent 框架绑架,希望能像乐高一样自由扩展。

  • 多端部署需求者:要把同一个 Agent 塞进飞书、Slack 、Discord ,甚至自研 IM 的团队

结尾:如果你对它感兴趣

如果你觉得这个思路对你的胃口,欢迎去 GitHub 逛逛。领养一头你的专属赛博小猪(感兴趣朋友可以 Star 、提 Issues 、PR )!

项目地址: https://github.com/kangkona/pig-mono

也欢迎在评论区聊聊:你最想用 Agent 解决的“真实工作流”是什么?呼声高的场景,我直接用 pig-mono 写个可复用的示例发出来!