念念不忘, 终有回响 构建 MCP-first 的应用框架: KLR-Pattern/nexusx 申明式数据构建框架: KLR-Pattern/pydantic-resolve 数据关系可视化工具: KLR-Pattern/fastapi-voyager

Joined July 2011
tangkikodo retweeted
刚刚做了一个非常简单但有用的事情,几句话把我的 Android 小平板上的系统广告、无用通知、牛皮藓图标、以及没有用的预装应用全部干掉了,非常适合当你刚买了Android 手机、平板,或者是给你的家人来优化手机,现在我的 Android 小平板非常干净了。 首先把 Android 机器使用自带数据线连接 Mac,然后输入我这段优化了的话给到你的 Claude 或者 Codex,然后就等着他去操作就好了。 请通过电脑连接我的安卓手机或平板,识别品牌、系统版本和已安装应用,帮我做一次减少广告和打扰的优化。 1. 关闭广告和推广 检查系统及应用中能关闭的广告跟踪、个性化广告、内容推荐、热点资讯、营销优惠、福利活动和功能推广,包括负一屏、系统搜索、锁屏、浏览器、应用商店等入口。 2. 保留有用的通知 优先按通知分类关闭推广,保留聊天、邮件、订单物流、支付、账户安全、日历、天气预警、系统更新,以及 AI 回复和任务完成提醒。不要一刀切关闭整个应用的通知,用途不明确的先保留,原本关闭的不要擅自开启。 3. 更换营销图标 把带促销文字、节日或周年装饰的图标换成干净的经典图标,例如淘宝、京东、拼多多、哔哩哔哩。优先使用系统自带的图标设置,OPPO/ColorOS 可以检查「设置 > 桌面、锁屏与个性化 > 图标 > ART+ 图标」。其他品牌先核实支持情况,不盲目安装图标包或更换桌面启动器。 4. 精简系统设置和预装应用 关闭不需要的推广入口和使用体验计划。盘点预装应用,对明确不需要、可安全停用且能够恢复的应用优先停用;卸载前列出名称和影响让我确认。不要仅凭近期没使用就删除,不要动系统桌面、更新、安全、安装器、账户、备份和设备互联等基础服务。 5. 整理桌面 参考近期使用情况,建议哪些应用留在首页或底栏,哪些归入购物、工具、影音等文件夹。先给具体排列方案,确认后再移动。 可以直接执行明确、可恢复的广告和通知设置调整。不要清除应用数据或改动代理、网络设置。每项修改后验证是否生效,最后简要列出已修改、保留和无法处理的项目,不把关闭广告跟踪说成去除了所有广告。
78
67
13
608
53,663
起点和终点的选择决定了复杂度
24
Your API doesn't need 100 MCP tools. fastapi-mcp-neo turns an existing FastAPI app into a GraphQL schema agents query with one tool — zero decorators, real auth, field-level selection, multiple queries in one request and many agent-friendly features. @tiangolo @FastAPI
20
当业务建模的实现方式是申明式以后 让模型摘取组合的过程就变得相当顺滑
21
能控制好变量进行可控的增量迭代是工程经验的体现
2023 年的时候,@gneubig 曾经让我读过 Steve Hicks 在 2021 年写的这篇工程博客,讲的是如何写 Small, Focused Pull Requests。到了 2026 年,再重新读这篇文章,觉得其中的工程准则比以前更加珍贵。 这篇文章讲了一个在今天 AI 生成代码的时代特别容易被忽略的区别:small 不等于 focused。五个互不相关的改动,即使总共只有几十行,也可能是一个很糟糕的 PR;一个完整的 feature 即使目标非常明确,如果改动范围太大,也可能根本没有办法被认真 review。真正好的工程实践,是把代码组织成一个其他工程师能够理解、验证,并且愿意对其负责的变更单元。 文章给出了很多非常实际的方法:先搭建能够运行的 walking skeleton,再逐渐完善功能;把 infrastructure change 和 feature implementation 分开;把有争议的架构决策与常规实现隔离;尽量增量集成,而不是等一个巨大功能全部完成之后,再一次性提交一个庞大的 PR。 我觉得 AI coding 让这些原则变得更加重要了。我们已经极大降低了代码生成的成本,但并没有同等程度地降低理解代码的成本。Agent 可以在一个下午生成几千行看起来相当合理的代码,但这不代表 human reviewer 就突然获得了在同样时间里认真理解几千行变更的能力。 更麻烦的是,如果一个巨大的 AI-generated PR 同时混合了 refactoring、架构设计、性能优化和新功能,即使测试全部通过,我们仍然很难判断其中哪些假设需要特别谨慎地审查。最终,我们只是把原本开发者需要承担的认知成本,转移给了 reviewer 和未来的 maintainer。 我非常喜欢(至少似乎不得不用) coding agent,也完全不想回到(其实我还挺想回到的,但不能只是我一个人回到)每一行代码都必须亲手写的时代。但我一直强调,AI-assisted software engineering 并不只是如何生成更多代码,而是如何把这些代码组织成能够被人类真正理解、验证和维护的变更。 Small, focused PR 不是一种过时的工程仪式,而是避免开发速度最终演变成 review debt 的重要手段。 我自己的工程启蒙很大一部分来自 Graham。我从他那里学到的远远不只是科研。他大概是最早教会我应该怎样严肃地思考软件工程的人。非常感谢 @gneubig @vijaytarian artsy.github.io/blog/2021/03…
1
21
在旧领域抹平不对称的技术往往会在新领域构建出更巨大的不对称
19
得设计一份面向 agent 的接口设计标准 需要至少包含这些概念 分层, 用例文档, 分页, 过滤, 类型化, payload 可挑选, 支持区分人/替身的身份, 变更管理, 有副作用的操作要人类确认,副作用分级管理 等等
29
所以说生产力变化之后生产关系一定要调整 我现在项目在管好业务建模之后, 其他的代码我都是允许pm 来写的😂
为什么这么说我?为了软件高质量,我用自己的钱来订阅全世界最好的最贵的且最难订阅的模型 7×24 小时去实现和满足每个用户的真实需求,而且是个完全免费的软件,怎么就在你的口中成了「快餐式服务」和「这种作者」了?看着你挂着 newapi 的官方 logo ,很颠覆 newapi 在我心中的形象,希望你积点口德。
1
44
我有一个fastapi 的服务, 使用 fastapi-gql-mcp 简单包装之后, 我问它: 帮我查询1,4,6 ID的 note。并且给出你的查询的那个信息。 这是它发起的查询:
1
50
修issue修到起飞
1
29
要好好撸一个库的注意力消耗太惊人了实在是 😇
31
本来觉得今年基于 graphql 的 mcp 方案会爆发, 但现在这个节点看起来好像瓶颈落在了 graphql 上,这玩意构造简单维护麻烦 但换个思路, 在 fastapi / pydantic 的约束下, 把一个个 api 变成可选字段的模式, 对agent 而言,倒是能带来不少优化的 github.com/KLR-Pattern/fasta…
展开说一下 GraphQL 的问题吧 GraphQL 核心的优势并不是所谓的类型系统,实际上强类型约束的在 RESTful 体系下也能很好的实现。充分利用了 Zod 能生成多端代码的 orpc 方案,Python 生态中的 FastAPI + Pydantic 方案都能实现类似的效果 GraphQL 最核心的优势是在于数据放题,即客户端可以根据自己的需求灵活的请求数据。这也是传统 BFF 层实现的主要功能之一。 但是和传统 BFF 层不一样的地方在于,现在 GraphQL 的实现通常会和业务进行强绑定,没有抽离出单独的基建来处理类似的问题。 而在这种情况,灵活性将会带来非常多的问题,在 GraphQL 体系下(或者说类似的 BFF 方案下沉到业务后都会面临的问题)。 最简单的一点,灵活性将带来更大的攻击面。最简单的一点,恶意用户可以构造出足够复杂的 Query 来通过单纯的 AST 解析来大量消耗你的服务器资源。 当然很多人可能会说,啊,你限制 Query 的复杂度不就好了?那我问你,计算 Query 的复杂度是不是需要也还是需要解 AST ? 当然还有人可能会说,那你限制 Query 的 Pattern 不就好了?那我问你,你的 Pattern 是不是也需要解 AST ?而且你把 GraphQL 最大的优势给限死了,你和传统的 RESTful API 有什么区别? 而且 GraphQL 的 AST 解析这一点如果不从业务解出来,配合 Node 这种单线程模型,你 Event loop lag 直接被拉炸,用户体验上升了N个台阶 GraphQL 本身要做的很多东西都需要单独的基建来和业务解开,比如 Query 级别的 Rate Limit, 特殊的鉴权逻辑等等 坦白说,对于数据平台或者内部服务,GraphQL 可能是个还不错的选择。但是对于上了量的 toC 业务来说,GraphQL 会比传统的 RESTful API 带来更多的复杂度和不确定性,会格外的吃基建的开发。
1
61
借助graphql 中间层还能让 agent避免挨个调用的困扰, 能一次性把所有需要的查询都写进去 其实新出来的 codemode 很多工作的重心就是这么几件事 并发,过滤,转换 避免被爆 context
18
也许时间才是最硬核的 harness 吧
33
使用了几周之后,我大约可以确信,脑图的 md 形态, 这种交互方式是非常高效的。 通过节点编号来缩小交互范围。 使用 Markdown 来显示信息。 暴露 MCP 来让 Agent 交互,补充调整信息。 形式是自由的,结构是清晰的,调整是灵活的。
53
github.com/KLR-Pattern/fasta… 之前老吹 nexusx , 但客观来说它对架构的侵入性还是很强的 这次把里面一个有趣的 mcp 方案单独摘出来, 让fastapi 可以变成 mcp, 但是以更加优雅一些的方式 tag 的层级披露, 字段的meta 信息, 以及 pick 字段的能力 优化模型的理解, 改善上下文的占用
54
personal agent 在企业级别的隐私管理模式下, 想象空间还挺大的 替身使者参加会议, 替身使者回答问题, 替身使者做总结, 替身使者接收任务处理 用 mcp 打通中枢之后, 替身使者们就能自由流动了
30