drive.google.com 置身钉内 14.34.50.pdf Google Drive file. 7.5万字,花了大概2小时看完了。 感觉这篇文章之于互联网职场人,就像《上海交通大学生存手册》之于大学生。推特上有很多用AI写这篇文章的摘要的,但大多管中窥豹,还是建议慢慢看看。 涉及到的方面有很多:如何思考产品、做产品、做好产品;在公司中有哪些问题需要克服、哪些是系统的问题无法克服;以及大厂是怎么样的 ······ 3 个帖子 - 3 位参与者 阅读完整话题
关于为什么要写这篇文章,大概是我昨天刷到短视频上很多内容,普通人应该如何抓住AI风口,做AI短剧?如同鸭老师所说赛道已趋近于饱和。创业开发个人AI团队?可是这玩意说实话一般人没多少资本并且大家真的懂商业模式吗,亦或者是能够具备在酒桌上谈笑风生的商务能力吗。在当下,在AI工具和各家大模型层出不穷又层层迭代的今天,我始终认为普通人想要抓住AI的风口,最保守的打法仍然是学到了AI之后去一家企业上班,工作,开展AI相关的工作,做一个业务型的类似AI售前工程师吧。也有人说为什么不直接去做AI应用开发岗,说实在的,如果纯做AI开发岗,对技术和学历的要求又太高了,不太适用于非科班出身并且中途转行的。综合来说,我更想要表达的是,我更偏向于去做一个业务——IT——AI之间的沟通桥梁,教会大家把你丢到企业以后,你如何快速的去上手完成你的工作,所以这一次我想写一下我个人对AI产品评估比较通用的流程,让大家大概有个印象,有一个大体的框架。 AI产品评估流程——5步流程法 1. 结果导向 :评判一个AI产品值不值得做,首先避不开的一定是项目价值,那要如何去评判呢。很简单,围绕着钱来展开,要么就是多赚钱,省钱,或者就是少赔钱。先说多赚钱,那首先就得能不能带动销量上的一个增长,第二优先级那就是省钱,也就是能够降本增效呗,比如每年节省多少人力,少发了多少工资。少赔钱就是过去业务可能存在某个风险点,现在这个产品解决了这个风险点,能让你少赔一点钱。以我上次那个客服质检Agent为例来说的话就是,能不能带动销量,很明显,如果能在聊天记录中挖掘到了消费者的需求,开发了新的产品,从而带动了GMV,就是有价值的。第二是省钱,过去可能我需要10个人完成的工作,我是不是可以只需要5个人来完成,其余的人是不是可以干别的,以后是不是可以不用招人了业务扩展以后,少发了工资也就是少发了钱。第三是少赔钱,过去业务流程上有某个风险点,比如说过去某个客服员工发脾气,对顾客一顿情绪发泄,导致客户流失,后续采用AI,规避掉了这种风险,避免了客诉,可以少赔一点钱。 通过标准:能有一项硬性指标,即可通过,例如带动间接增长100万,每日节省时间8小时,也就是1人力,可以有效减少损失50万之类的,项目期初为了立项,大体预估一个是可以的,但是不要太高。 2. 业务场景评估 :在通过第一步后,就开始下场进行需求调研,分为两个方面。其一是业务流程,开发完这个产品后,只是针对于个人或者部门去使用的单点产品,还是能够有效的改变现有流程,实现跨部门沟通协作,例如客服Agent项目里,过去是客服被动回复消息,现在开始角色变化,客服变为前沿的业务洞察,能够反哺研发部门和营销部门以及运营部门,形成一个跨部门协作沟通的流程。其二是该业务流程当中是否涉及很多认为主观判断因素,如果大部分都绕不开人为判断的话,也不建议上线,因为后续修改变动风险较高。 通过标准:只要是针对单个部门以上且主观判断的仅占全流程的20%,即可通过 3.接下来便是 数据流 了,第二条将的是业务流程,第三条就是数据是如何流转的,通常是分布在各个杂乱的业务系统,或者是Excel,或者是某几位老员工的经验,甚至是从第三方平台下载的,就需要考虑是否能获得稳定的数据来源了。 通过标准:如果是外接数据,API接口必须稳定,如果是企业内部数据,不得超过了3张手工表维护(也就是不能人为去判断填的数据不能超过3张,超过说明现有业务流程就是有问题的,理想情况下是所有数据都有线上化) 4. 产品稳定性 :其实也就是风险点,在上述工作都准备完成后,接下来就到了风险评估。一是是否能接受AI的稳定性,假如AI犯错了怎么办,要如何最短时间内预警发现,业务部门是否有应对方案,这个时候通常情况下是,建立数据质量监控看板,由业务部门去整理核心指标,如果有异常数据直接发送到飞书或者钉钉群聊。二是后续如果组织架构调整,业务流程变更,AI产品需要迭代的时候,成本高不高,要IT部门评估二开的费用。 通过标准:业务部门能出紧急应对方案,IT部门在产品开发的时候能有一定产品迭代方案。 (如果实在找不出也可以,但是需要IT领导和业务领导签字确认) 5. 组织风险预警 :也许这个产品真的很好,但是AI的诞生,公司里一定有同事是抗拒的,按照项目管理的说法是,要找出干系人,利益者,谁有可能会在整体项目进展的过程中,去卡你,而你至少需要获得一名大领导的支持站台,否则后续很难推进。(个人经验:项目开展前由各个业务负责人指派一个PO,明确跟考核挂钩,并且中途可以换人) 以上是我个人的一些经验,有的人会说,哎呦也要算一下ROI,投入产出比,其实个人的话不建议,因为你要是明确了你的ROI,就等于后续是给你自己挖坑,不要给业务那么大的预期,做好上面的这5点,差不多了,90%的企业是够用了。上面内容主要还是个人认为比较重要的5点,其他的不是问题,项目开展会遇到各种问题,加油吧各位佬有。 2 个帖子 - 2 位参与者 阅读完整话题
大家好,我是贾克斯。 这篇文章会稍微硬核一点。 但我会尽量写得让非研发同学也能看懂。 如果最近你关注 AI Coding ,应该会经常听到一个词。 Harness Agent 。 或者更完整一点,叫 Harness Engineering 。 这个词听起来很工程,很抽象。 但你可以先把它理解成一句话。 大模型很强,但它不能裸奔。 它像一匹跑得很快的马。 你不能只是拍拍它的屁股,然后说,兄弟,冲! 你得给它方向、边界、工具、反馈。 给它一个跑偏以后能被拉回来的机制。 这套东西,就是 Harness(哈尼斯) 它不是为了限制 AI ,而是为了让 AI 的能力变得更稳定、可控、可复用。 这套概念现在已经在 Claude Code 、Codex 、Qoder 这类 AI Coding Agent 里逐步落地。 类似 OpenAI 、Anthropic 这些团队,也都在讲同一件事:那就是: 人类掌舵,智能体执行。 这句话听起来很帅,但问题是,很多人听完以后,还是不知道怎么落地。 今天,我们就把这个 Harness Coding 在企业场景中如何运用的具体实践给分享一下。 / 什么是 Harness / 在此之前,请允许我先用一个真实的小案例,给大家讲清楚,到底什么是 Harness 。 如果这个概念前面不对齐,后续则无法深入到企业场景内的 Harness 实践,越到后面大家只会更加懵逼。 假设我们现在让 AI 去做一个媒体账号。 给它的前置系统提示词是: “你的人设是宝妈,目标是涨粉,核心指标是每篇帖子的阅读量、互动量和关注转化。” AI 收到这个提示词以后,就开始干活。 它很快发布了一篇帖子: 💬 “我家孩子 3 个月,但是不爱吃母乳怎么办?” 然后配了两张图。 到这里,AI 已经完成了两个动作: 前置,执行。 接下来进入第三步: 反馈。 帖子发出去 1 小时后,AI 去看数据,发现阅读量很低。 按照新账号起号的逻辑,一篇正常内容至少应该有上百阅读,但这篇只有几十。 于是 AI 开始复盘。 它发现,这篇内容太平了,没有足够强的吸引点。然后它把这个经验写进自己的经验库:“内容过于平淡,容易导致阅读量偏低。” 下一次发帖时,这条经验会重新进入它的前置说明里。 于是 AI 的新提示词就变成了: “你的人设是宝妈,你的任务是发布帖子吸引用户关注和评论。你的核心指标是涨粉量和每篇帖子的阅读量。 历史经验:上一篇帖子因为内容过于平淡,阅读量很差。下次需要提高标题和内容的吸引力。” 然后 AI 又开始执行。 这次它发了一篇更夸张的: 💬 “天塌啦!我家孩子每天能吃一头牛怎么办!快养不起了,呜呜。” 这篇发出去以后,数据确实很好。 1 小时内有 1 万阅读。 但是问题来了。 1 小时后,帖子被封了。 原因是:传播夸大事实的信息。 这时候 AI 又开始复盘。它发现,夸张标题确实能带来流量,但如果夸大事实,就很容易被平台判违规。 于是经验库里又多了一条: 夸张表达可以提升点击,但不能脱离事实,否则容易被封。 现在,AI 的经验库里已经有两条经验: 第一,内容太平淡,没有流量。 第二,夸大事实虽然有流量,但容易违规。 于是第三次发帖时,AI 开始调整策略。 它不再写平淡内容,也不再硬夸张,而是换成真诚路线: 💬 “做辣妈的第三年,我是如何一边带娃,一边保持状态的?” 这篇内容戳中了很多宝妈的真实痛点。 结果,帖子爆了。 AI 看到数据以后,发现这条路线有效,于是继续把经验写回去: 真诚表达真实痛点,更容易获得稳定流量。 到这里,一个很小的运营闭环就出现了。 前置、执行、反馈、经验沉淀,再回到前置。 这就是 Harness 的核心。 它不是让 AI 单次完成一个任务,而是让 AI 在一个系统里持续变好。 当然,刚才这个例子只是为了方便理解,真实系统要复杂得多。 比如: AI 拉到帖子数据以后,怎么判断这篇帖子是正常、偏差,还是爆了? AI 复盘的时候,怎么对标同类账号,而不是只看自己的感觉? AI 发现某个策略有效以后,怎么判断它是长期有效,还是只是碰巧踩中了流量? 这些问题,才是搭建 Harness 系统真正难的地方。 也就是说,Harness 的关键不只是“让 AI 干活”。 而是要给 AI 搭一套闭环: 任务怎么定义,过程怎么执行,结果怎么评估,经验怎么沉淀,下次怎么复用? 这才是 Harness 的核心。 / 企业级 Harness 实战 / 能看到这里的,想必已经对什么是 Harness 已经没有异议了。 那么接下来我们开始介绍本文的重点:企业级的 Harness Coding 实战应该怎么去做? 在真实的开发任务里,这个闭环会复杂很多。 因为写代码不是发一条帖子。 真实开发里有需求理解、架构边界、代码规范、接口契约、测试验证、日志排查、评审验收、多人协作。 任何一个环节没管住,AI 都可能开始偏航。 所以,如果我们想让 AI 真的参与企业级开发,不能只写一句: “你是一个资深研发工程师,请帮我完成这个需求。” 这不叫 Harness 。 这叫把一个非确定性的模型,直接扔进生产代码里裸奔。 真正的 Harness Coding 系统,至少要回答几个问题: 1. AI 开始写代码前,它从哪里理解需求? 2. 它依据什么项目规则做判断? 3. 它能不能自己查架构规范,而不是反手问人? 4. 它写完以后,谁来验证? 5. 验证失败以后,怎么回到正确轨道? 6. 这次踩过的坑,下次怎么不再踩? 这才是 Harness 架构要解决的问题。 而对于 AI Coding 的场景,这套架构则最少要有如下三层: 1. 人类需求层。 2. 工程契约层。 3. 代码执行层。 / 第一层,人类需求层 / 这一层解决的是:人类到底想要什么。 很多 AI Coding 失败,不是模型写不出代码,而是一开始需求就没有被说清楚。 人类在聊天窗口里随口说一句“帮我加个 X 接口”,AI 就开始实现。它看起来很勤奋,实际上很危险。 因为它不知道这个接口的业务边界是什么,不知道哪些字段必须兼容旧系统,不知道异常场景怎么处理,也不知道验收标准是什么。 所以在我们的 Harness 里,第一步不是让 AI 写代码。 第一步是让人类先把需求落成一个可以被交接的文档。 这个文档不需要写得像论文,但必须说清楚几件事: 这个需求为什么要做。 这次到底做什么,不做什么。 输入输出是什么。 业务流程是什么。 验收标准是什么。 这一步非常关键。 因为 Harness 的第一条原则就是: 人类负责想清楚方向,AI 负责把方向翻译成工程动作。 如果人类自己都没想清楚,AI 只会把不确定性放大。 / 第二层,工程契约层 / 当人类需求写清楚以后,也不能马上进入代码实现。 中间还需要一层翻译。 因为人类需求通常是业务语言,而代码实现需要工程语言。 比如人类说: 新增一个校验能力,失败时要给前端异常提示。 这句话对业务方来说够了,但对工程实现来说还不够。 AI 需要继续把它翻译成: 改哪个模块、新增什么接口、错误码怎么定义。 测试要覆盖哪些场景、哪些架构规则不能破坏、做到什么程度才算完成。 这一层,就是工程契约层。 在这一层里,AI 可以起草设计方案、任务拆分、接口契约和验收标准,但人类必须 Review 。 注意,这里不是人类逐行写设计文档,而是人类把关:方向对不对、边界有没有漏、验收标准是否可验证。 这个阶段的核心产物,不是代码,而是一份“写代码前的工程合同”。 它告诉后面的实现 Agent:你要交付什么、不能越过什么边界、交付后用什么证据证明完成。 / 第三层,代码执行层 / 只有前两层都对齐以后,AI 才能进入代码实现。 这一层才是真正的 Coding Agent 干活区。 但即使到了这里,也不是让一个 Agent 从头写到尾,然后自己宣布“完成了”。 我们需要把角色拆开。 一个负责规划。 一个负责实现。 一个负责评估。 并且还要有两个不同维度的评估器。 为什么? 因为同一个 AI 自己写、自己测、自己夸自己,很容易护短。 它会觉得:差不多了、应该没问题、这个边界场景可以不测。 这在真实工程里很危险。 所以我们要让实现者和评估者隔离。 实现 Agent 负责写代码和测试。 评估 Agent 负责站在外部视角审查它。 机器检查负责跑编译、单测、静态扫描、覆盖率。 人类负责最后看方向和关键证据。 这套分工听起来复杂,但本质很简单:不要让一个非确定性模型同时当运动员和裁判。 到了这里,一个企业级 Harness Coding 系统的基本骨架就出来了。 它不是一个 Prompt 。 它是一条流水线: 人类先写清楚需求。 AI 把需求翻译成工程契约。 人类审批契约。 AI 按契约实现。 机器跑自动化检查。 独立 Evaluator Agent 做审计。 审计到的偏航记录下来,沉淀回下一轮规则。 人类基于证据验收。 如果把上面这套链路压缩成一张图,大概是这样: 这张图看起来节点很多,但其实就一句话:需求先由人类想清楚,执行交给 AI ,结果必须被 Harness 验证。 该架构运行起来后的整套流程效果则是: 1. 团队先内部评审需求文档,确保团队内针对复杂需求是完全认知对齐的。 2. 把评审后的需求文档直接丢给 AI ,告诉它让他基于这套文档来实现。 3. AI 基于当前项目已有的前置架构和需求规范审核该文档并和人类基于该需求达成目标一致。 4. 人类批准开始干活后,AI 基于 Spec 驱动来把该需求转换为可执行的工程文档。 5. 人类审核该 Spec 文档是否对齐原始需求,审核完毕则开始允许 AI Coding 6. AI 基于 Spec 文档开发完毕后,开始自主调度 Harness Check 脚本验证当前代码变更是否符合测试覆盖率 80% 的标准、静态代码扫描是否存在 Bug 。 7. Harness Check 脚本执行不通过,则打回重新修改代码,审核通过则开始调度测试 Agent 和架构 Agent 进行需求验证。 8. 测试 Agent 基于 Spec 文档来检查 Coding 代码是否符合验收标准。 9. 架构 Agent 检查 AI 基于此次需求开发,是否破坏了项目架构的基本原则,比如:错误码规范、跨包调用等规范。 10. 双 Agent 验收通过,则最终呈现结果给到人类确认,验收失败,则打回让 AI 重新修复,只到 Agent 审核通过为止。 这就是目前我们团队内在用的开发方式。 如果硬要聊,这里面还有很多细节,比如: 你如何定义你的项目架构规范。 如何让双 Agent 打回次数过多时,把 AI 偏航记录给沉淀到文档中。 如何将上述的整个流程串联为一个自动化的流程,实现最终人类只要丢进去一个需求文档,其他的后续流程就全部自动化执行等等。 但其实上面这些问题都是非常小的问题,你只要能搞懂上述 Harness 架构的执行逻辑。 其他的单点问题则都是小问题,甚至于你完全可以把这些问题交给 AI 来帮你解决。 等你把这套流程给固化下来后,你会发现,企业级 Coding 竟然也如此简单。 事实上,企业级 Coding 未来也只会越来越简单。 不是因为代码本身变简单了。 而是因为越来越多复杂的执行过程,会被压进一套更清晰的工程流水线里。 到那个时候,真正重要的能力,就不再是“我能不能亲手写完这段代码”。 而是: 我能不能把一个模糊想法,变成一份清晰需求。 我能不能把需求,变成可执行的工程契约。 我能不能设计一套反馈系统,让 AI 犯错以后,下次永不再犯。 这才是 AI Coding 后半场真正要拼的东西。 以上。 如果觉得这篇文章还不错,欢迎一起探讨交流。 作者:贾克斯的平行世界。
前言: 本人使用GPT两年以上,订阅过plus,business,Pro 5x,Pro 20x。试过至少6个不同的IP,折腾过无数次,被风控的经验丰富。希望本文可以为大家提供一些关于OPENAI风控的思考,减少重复与杂乱的数据使得大家眼花缭乱,信息过载,甚至增加无谓的噪声。 转载请注明出处 风控解析————什么可能决定你是否被风控? 其实很简单,无非分为两类。一种是行为特征,一种是背景特征。前者指的是用户在使用中的行为特征,后者指的是用户在使用服务的非行为背景信息。我们来举例: 行为特征: 如短时间大量并发,咨询有关敏感信息与违规信息,多端同时大量使用,单次对话复杂度过高(常发生在Pro Extend Thinking的复杂对话中,指的是5.4超过2小时,5.5超过1小时的高负载任务),新注册帐号,支付方式,支付地区等等 背景特征: 如IP纯净度较低,机器和浏览器曾被标记过,地区与时区泄露,DNS泄露,空白浏览器指纹等等 风控解析————我怎么知道我被风控了? 对大众来说,绝大部分情况下的风控表现为降智。模型被路由到了低级模型。包括但不限于thinking模型不思考,Pro模型未显示Pro thinking或直接不思考,emoji的明显增多,询问模型给出的低级模型回答。但在近期风控的表现有了明显改变。一方面表现在heavy thinking的思考时长缩短,但juice值不变。因LLM本身缺乏鲁棒性所以难以量化智力,不做评价。默认认为thinking模型并没有向以往一样直接不思考,而是表现在Pro模型不思考。但也有可能是近期本人并没有遭遇严重风控所导致的。 还有一种风控表现为明显的提示或拒绝服务,这种主要是由于用户多次问答了高危问题导致的。 风控解析————被风控了怎么办? 我们需要具体情况具体分析。首先对于行为特征,一般静置能够有效解决问题。时间大概在12h~14天不等。对于背景特征,在解决背景特征本身的情况下,有的情况下可以即时恢复,有的也会在静置后恢复。 那有没有更快的办法呢?当然是有的。请注意,风控系统是综合的评估而不是孤立的评分。 举例:DMIT机房IP|指纹浏览器做时区和webrtc优化|因单次对话复杂度过高与并发导致pro模型路由到mini模型。 实验: 静置5h依然表现出Pro模型不思考。于是切换夏威夷家宽[qq.pw]。此时注意,本人使用的是NAT家宽,刷新出现了人机认证(此处可以体现出IP已被标记,背景特征较差),但立刻正常。 结论: 在行为特征导致的风控情况下,除了静置[静置本身也是在行为特征上下功夫],提升背景信息的质量也是在综合风控系统提升分数的核心。但背景信息特征并不完全取决于综合的风控值,与其本身的家宽属性也有关[可见家宽真的有用]。 [反之亦然,笔者曾经也用过这家的NAT家宽,但当时IP已经较差,被风控,加上笔者没有足够好的独立家宽VPS,静置了14天才恢复正常]。 有的朋友或许有疑问:那我咨询OPENAI反馈会怎么样呢?本人可以说是跟OPENAI客服对话的老手,我的答案很明晰,不可能。我因各种事务与OPENAI邮件多达小一百封。本人的对于OPENAI客服的评价是敷衍、不专业、懒惰、奸诈、狡猾…先来说说流程,在官方help的bot输入强烈的需要人工的请求,会让你留下邮箱,等待回复。这只是噩梦的开始。不出意外会由初级客服来和你协商,协商后会让你一遍遍重试换浏览器,清cookie等,即使你说你已经做过了依然还会让你再试。两三次对话后[其一天最多只回复一次邮件,如果休假就至少5天]。一周过去后,会让你开始提交账单截图、具体问题截图、浏览器信息、本地系统信息等等。来来回回几天后,又让你提供HAR。接下来会漫长的敷衍。当你怒发冲冠,邮件里面暴怒如雷后,她会将其转给所谓的"技术部门"。这需要至少5天,而后一般你的订阅已经到期了,他们会回复是因为您订阅到期的原因(多么荒谬,但他们就是这样),无法提供服务并强制关闭工单。如果没有到期,他们会说或许是由于VPN等的问题,并重新让你尝试更换浏览器,你据理力争之后他会说因为官网的状态没有问题,很抱歉无法帮到你。之后你再回复也没有用,就这样石沉大海知道工单自动关闭。 OPENAI是我见过最”恶毒”的客服,和最近的namecheap相当负责任的热情客服有了鲜明对比。别指望他们能从技术上帮你解决问题。 关于风控的经典担心————CODEX会降智吗? 据笔者的使用体验来看,不会,但是会限速。如果您的CODEX被降智,那更多可能是普遍的bug问题而不是您的账户风险。就像Android端,桌面端,CODEX都是分开的风控体系,但也有一定的关联性。CODEX的限速表现在首字token和整体速度下降,但很难完全跟本地网络质量和服务器高载的影响因素脱离,本身这种情况也并不多见。 逐点剖析————行为特征 1.单次复杂度过高: Pro Extend Thinking的复杂对话中,具体是5.4超过2小时,5.5超过1小时的高负载任务。其实具体分为两个部分:一个是思考时长[反映的是思考token耗费],一个是输入输出内容。为什么5.5是1小时,5.4是2小时呢?其实business的限制可以放更长一些。因为Pro订阅的模型token速度更快,business速度要慢,以及5.5的算力平台较新,token速度脱离套餐本身就更快。 举例:DMIT机房IP|指纹浏览器做时区和webrtc优化|因单次对话复杂度过高与并发导致pro模型路由到mini模型。 实验: 用deepresearch生成的报告在word长达45页,但本身只有1.5万字,主要是长图表。于是直接在deepresearch中选择复制到剪贴板,直接放入prompt里。此时立刻恢复正常。 结论: 输入内容本身也根据格式有关,其判定不仅取决于纯粹的token数,也综合包括不同文件的特征,比如word和pdf的页数,大小等。 2.新注册账号: 新注册账号是典型的高风险场景。新注册帐号建议至少7天后再开付费套餐或您的背景特征较优秀,也是完全没问题,但对背景特征(如IP)的要求就较高。 3.支付方式与地区: 低价区也是风控的高峰,但这里,OPENAI对于支付地区的权重远比支付方式要高得多。Anthropic对于支付方式和支付地区抓的都严[如果想要听后续可以出Anthropic版本]。OPENAI对于低价区的风控水平明显高于其他地区,比如土区、菲区,误杀也会显著增加。 逐点剖析————背景特征 1.IP质量: 这或许是全网争论最激烈的一个特征。到底要不要家宽?笔者的答案是取决于需求。如果你能接受偶尔的静置,同时并不是Pro套餐,使用率也不高或是主用codex。笔者认为一个不要太离谱的机房IP就足够,但即使网络有多个IP数据库来源也并不一定就是决定性因素。机房IP质量很好不意味着就不降智[比如邻居闹腾,被OPENAI标记等等],机房IP差[如digital ocean,臭名昭著的IP质量]也有正常使用的情况。尽可能选择好一点的原生机房IP足矣,但不值得太多的溢价。 但,如果您是重度使用者,有pro订阅,同时对业务稳定性要求极高[毕竟您也不想着急的时候没有AI用]。我推荐您购买家宽而不是双ISP机房。一方面家宽本身的网络性质权重就较高,所以如果您的需求没有那么高,足够好的质量的NAT是可以考虑的[前提是质量一定要足够好,但实际上比较难保证,包括笔者的qq.pw,邻居闹腾,而且很多人不会保护IP],但独立的家宽VPS或许是最终解。把其他背景特征完善,您会使用的非常愉快且稳定,全身心投入到价值产出中。 2.机器与浏览器被标记: 这种情况其实也并不多,因为很少人使用gpt的客户端,主要还是codex居多,但codex本身并不会引起风控。解决办法是不使用gpt客户端,换用指纹浏览器。当然,如果有极致需求,也可以像笔者一样,Hyper-V虚拟机运行。出问题重新换环境。 3.空白浏览器指纹: 该风控点不会单独作为一个拉分项,但尤其是背景特征较差情况下,新账户会显著增加风险。空白的浏览器指纹意味着高度可能的自动化脚本环境。建议如果无法改变背景特征的情况下,新的指纹先浏览一些网站,不建议一直用无痕模式的浏览器长期使用账号,否则也会累计风险。 基本上就是这些内容,笔者想到哪里写到哪里。基本也覆盖全了。如果有想看Anthropic的,笔者有空会写一篇。主要基于笔者本人的各种案例,因为两年来笔者被降智麻了。 总结OPENAI的风控系统,综合是最大的特色。无论是风控系统本身还是风控中的每个参数特征,无不是互相影响,综合决策的。没有绝对的风险,也没有绝对的安全。谢谢各位看到这里。 26 个帖子 - 9 位参与者 阅读完整话题
**这篇文章的 AI 优化版被人投诉灌水, ** 所以我从新找出我的策划原文,一字未改的版本。核心的思想还是在的 ——此文为本人原创心得,与大家共享 如何使用 OMO(oh my openagent)来提升开发速度和质量 首先介绍一下原因 就是有很多朋友想要学习一下我对这个 OM O在项目开发上面的使用 一个一个的解答比较麻烦 所以我就写了一篇这样的 文章来给 大家一起参考学习 第1步是需要搭建一个环境出来 这里可以链接一下我之前写的两篇文章 OpenCode CLI 接入 API-Switch:系列三 API-Switch——OMO的灵魂调度者 告诉大家如何使用正确的方法安装调配好 使用环境嗯 能够继续 下一步 一 首先简单介绍一下 oh my openagent 的一些基础的功能 这个可以在网上去查得到 不用太多 然后说一下 oMO为什么会 成为提升项目的开发速度和质量的原因 多AGENT协作 工作流式开发 避免单AGENT 开发中的一些缺陷 主要是在对话的过程中偏离边界 上下文无限制的增长 二 接下来就说我们怎么 做来达到目的 有以下几个关键点 1必须约束 智能体 对任何对话都要求进行评估和 分析 超过五步以上的 都必须以工作流的方式来执行 2对主脑进行限定 明确他的职责 他只是一个思考者 安排者和审核者 其他的工作必须交给 SUBAGENT 来完成 3复杂任务必须分解为独立的层次,对 不冲突的 开发流程 保持并行三个以上的滚动式开发 (具体并行数量看你手上的资源而定 ) 4要求AGENT a任何修改必须形成闭环:输入 → 执行 → 输出 → 验证 → 反馈, b每个任务 都必须以 目标—约束—执行—校正 分步执行 c输出必须能回流影响输入,形成自调节 d识别不确定性,在设计阶段处理 4点可以简单操作为要求 AGENT 学习“钱学森工程控制论作的核心思想” ,但是在他学习过程中 你要 纠正他的一下想法,避免学到模糊的概念 你也可以通过自己总结的一些成熟的想法 教会 AGENT 来适应你的开发理念 完成这个步骤以后 越是聪明的AGENT 执行的力度越好 那些傻傻的就不用说了 所以我们要求 主脑越强越好 用你手上最好的 具体如何操作 我在 API-Switch——OMO的灵魂调度者 这篇文章中 有比较详细的介绍 三,写一些在项目中的实际的操作 解释一下为什么会提 高开发的速度 越是大的项目越是可以拆分成不冲突的 过程 用并行的方式来提速 为什么会提高项目开发的质量 因为可以使用 多个 AGENT 多角度多方向的对项目进行 审核。不管你的主脑再强 他也会有思考的盲区和上下文的缺陷 通过1~2次的审核 能够很大程度的弥补 开发中出现的问题 提高开发的质量 四,总结 优点 越是大的项目 可以并行的 开发线越多。这就是提速的关键 。从多个角度 对开发进行审核 这是提高开发质量的关键 缺点 因为执行的中间环节很多 对小的项目和 修改 达不到提速的作用 但是能达到提高质量的作用 还有就是越稳定越快的 API资源 和强力的 AI模型 是提高速度和开发质量的 必备条件 9 个帖子 - 2 位参与者 阅读完整话题
看了这篇文章有感 tilert.ai 速度:大模型推理的下一个 Scaling Law 深度解析 TileRT 高性能推理引擎及 GLM-5.1 生产级实践。 再看看数据 Gemini 3.5 Flash - 289 token/s - 2026/05/20 GLM 5.1 HighSpeed - 400 token/s - 2026/05/22 SRAM 路线的 Groq 被 NVIDIA 收购了(2025/12/24)先不谈,大芯片路线的 Cerebras 才刚上市(2026/05/14),感觉是很大的利空啊,但股价好像没受到什么打击(? 本帖子仅代表个人观点,不构成投资建议,投资有风险,入市须谨慎。 5 个帖子 - 3 位参与者 阅读完整话题
参考这篇文章,昨天对最新版 Typora 进行了激活。 Typora【超便捷md文本编辑器】 安装与激活教程 但是我遇到了两个问题: 1、首次(后台没有 Typora 进程)打开 Typora 或使用 Typora 打开 md 文件,会自动弹出开发者工具。 2、我把前台窗口关闭后,再次点击打开其他 md 文件,无法打开(无法弹窗),任务管理器查看有 Typora 后台进程,把所有后台进程关闭后,再次打开其他 md 文件,这时才可以打开。 分析了下,确实脚本有些小问题: 自动弹 DevTools:来自 win.webContents.openDevTools({ mode: “detach” }) 关闭窗口后后台残留:来自把 electron.app.quit 覆盖成空函数,导致 Typora 主进程不退出 已经修好了,自取: const asar = require("asar"); const chalk = require("chalk"); const fs = require("fs"); const path = require("path"); const { execSync } = require("child_process"); const readlineSync = require("readline-sync"); const WinReg = require("winreg"); const { flipFuses, FuseV1Options, FuseVersion } = require("@electron/fuses"); function getInsertCode(EnableHookDebug, atobMachineCode, email, nowDateStr) { return ` /** Hook破解开始 */ const electron = require("electron"); // 是否启用劫持调试 const HookDebug = ${EnableHookDebug ? "true" : "false"}; // 调试日志定义 const LOG_PATH = ".\\\\Typora_Hook_Log.txt"; //fs.rmSync(LOG_PATH, { force: true }); function writeLog(...data) { const log = \`[\${new Date().toLocaleString()}] [Log] \${data.join( " " )}\\n------------------\\n\`; fs.appendFileSync(LOG_PATH, log); } // 调试模式只记录窗口创建,不改写 app.quit,也不自动打开 DevTools。 // 改写 app.quit 会让前台窗口关闭后主进程残留,双击 md 时 second-instance 无法正常唤起窗口。 if (HookDebug) { electron.app.on("browser-window-created", (_event, win) => { writeLog("【👀 监控】检测到 BrowserWindow 实例化!"); }); } // Hook fs 模块,重定向对 resources/app 目录的访问 // resources/app/ → resources/app.bak/ const fsPathFrom = /resources[\\\\/]app[\\\\/]/i; const fsPathTo = "resources\\\\app.bak\\\\"; const fsHook = {}; [ "readFileSync", "readFile", "statSync", "stat", "Stats", "StatsFs", "open", "openSync", ].forEach((property) => { fsHook[property] = fs[property]; fs[property] = function (filePath, ...args) { if (typeof filePath == "string" && fsPathFrom.test(filePath)) { const redirectPath = filePath.replace(fsPathFrom, fsPathTo); writeLog( \`[🛡️ fsHook] 程序试图 fs.\${property} 重定向 \${filePath} --> \${redirectPath}\` ); return fsHook[property].call(this, redirectPath, ...args); } writeLog(\`[🛡️ fsHook] 程序试图 fs.\${property} \${filePath}\`); return fsHook[property].call(this, filePath, ...args); }; }); const fsPromisesHook = {}; ["readFile", "open", "stat"].forEach((property) => { fsPromisesHook[property] = fs.promises[property]; fs.promises[property] = async function (filePath, ...args) { if (typeof filePath == "string" && fsPathFrom.test(filePath)) { const redirectPath = filePath.replace(fsPathFrom, fsPathTo); writeLog( \`[🛡️ fsHook/Promises] 程序试图 fs.promises.\${property} 重定向 \${filePath} --> \${redirectPath}\` ); return fsPromisesHook[property].call(this, redirectPath, ...args); } writeLog( \`[🛡️ fsHook/Promises] 程序试图 fs.promises.\${property} \${filePath}\` ); return fsPromisesHook[property].call(this, filePath, ...args); }; }); // IPC 通信进行监控 if (HookDebug) { const invokeFilter = ["document.addSnapAndLastSync", "document.setContent"]; const originalIpcMainHandle = electron.ipcMain.handle; electron.ipcMain.handle = function (channel, listener) { // writeLog(\`[IPC 注册] .handle 监听频道: "\${channel}"\`); const filter = !invokeFilter.includes(channel); return originalIpcMainHandle.call(this, channel, async (event, ...args) => { filter && writeLog( \`[👀IPC 请求] 收到 .invoke("\${channel}") 参数:\`, JSON.stringify(args) ); try { const result = await listener(event, ...args); filter && writeLog( \`[👀IPC 响应] .handle("\${channel}") 返回结果:\`, JSON.stringify(result) ); return result; } catch (error) { filter && writeLog(\`[👀IPC 错误] .handle("\${channel}") 执行出错:\`, error); throw error; } }); }; } const crypto = require("crypto"); const originalPublicDecrypt = crypto.publicDecrypt; crypto.publicDecrypt = function (key, buffer) { if (HookDebug) { writeLog("-------------------------------------------"); writeLog("【👀 监控】 crypto.publicDecrypt 被调用"); writeLog("Key:", key); writeLog("Buffer (Hex):", buffer.toString("hex")); } // return originalPublicDecrypt.call(this, key, buffer); // 直接返回伪造的明文 Buffer return Buffer.from( JSON.stringify({ deviceId: "${atobMachineCode.l}", fingerprint: "${atobMachineCode.i}", email: "${email}", license: "Cracked_By_DreamNya", version: "${atobMachineCode.v}", date: "${nowDateStr}", type: "DreamNya", }) ); }; // 劫持联网验证 electron.app.whenReady().then(() => { electron.protocol.handle("https", async (request) => { writeLog(\`[👀electron.net Request] \${request.method} \${request.url}\`); writeLog("request.url typeof:", typeof request.url, "value:", request.url); // 拦截目标请求,伪造响应 if (request.url === "https://store.typora.io/api/client/renew") { if (HookDebug){ writeLog(\`[🛡️ 拦截] 伪造激活验证响应: {success:true, msg: \${btoa("DreamNya")}}\`); } return new Response( JSON.stringify({ success: true, msg: btoa("DreamNya") }), { status: 200, headers: { "content-type": "application/json" }, } ); } if (HookDebug) { // 尝试打印 Request Body try { const reqClone = request.clone(); const reqBody = await reqClone.text(); if (reqBody) { writeLog('[electron.net Request Body]:', reqBody); } } catch { } // 其他请求正常转发 const response = await electron.net.fetch(request, { bypassCustomProtocolHandlers: true }); // 克隆响应用于日志 const resClone = response.clone(); resClone .text() .then((resText) => { writeLog(\`[👀electron.net Response] \${response.status} \${request.url}\`); writeLog('[electron.net Response Body]:', resText.substring(0, 500)); }) .catch((err) => { console.error('[electron.net Response Error]:', err); }); return response; } }); }); /** Hook破解结束 */ `; } let EnableBackup = false; // 是否备份原始文件 let EnableHookDebug = false; // 是否启用调试日志 const Typora_Installation_Path = "D:\\App\\Tool\\Typora"; const resourcesPath = path.join(Typora_Installation_Path, "resources"); const asarPath = path.join(resourcesPath, "app.asar"); const appDir = path.join(resourcesPath, "app"); const appBakDir = path.join(resourcesPath, "app.bak"); const asarBakPath = path.join(resourcesPath, "app.asar.bak"); const TyporaEXE = path.join(Typora_Installation_Path, "Typora.exe"); const LaunchDistJS = path.join(appDir, "launch.dist.js"); // 随机生成一个符合前端验证格式的注册码 function generateRegCode() { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let code = '+'; for (let i = 0; i < 8; i++) { code += chars.charAt(Math.floor(Math.random() * chars.length)); } code += '#'; return code; } function closeTyporaProcesses() { try { execSync("taskkill /F /IM Typora.exe"); console.log(chalk.green("已关闭所有 Typora.exe 进程")); } catch (e) { console.log(chalk.red("Typora.exe 未运行或关闭失败,请手动关闭后继续。")); } console.log( chalk.yellow( "已尝试自动关闭所有 Typora.exe 进程,如果未关闭请手动关闭后再运行此程序。" ) ); // 回车继续 console.log(chalk.cyan("请按回车键继续...")); readlineSync.question(); } function setRegValue(regKey, name, value) { return new Promise((resolve, reject) => { regKey.set(name, WinReg.REG_SZ, value, function (err) { if (err) reject(err); else resolve(); }); }); } function getNowDateStr() { const now = new Date(); const dd = String(now.getDate()).padStart(2, "0"); const mm = String(now.getMonth() + 1).padStart(2, "0"); const yyyy = now.getFullYear(); return `${mm}/${dd}/${yyyy}`; } const nowDateStr = getNowDateStr(); // 要求输入机器码和邮箱 console.log(chalk.cyan("请输入机器码: ")); const machineCode = readlineSync.question(); console.log(chalk.cyan("请输入邮箱: ")); const email = readlineSync.question(); // 询问是否开启备份(默认开启)与调试(默认关闭) console.log(chalk.cyan("请选择是否开启备份与调试选项:")); console.log(chalk.cyan("【建议开启】是否开启备份?(Y/N): ")); const backupAnswer = readlineSync.question(); console.log(chalk.cyan("【建议关闭】是否开启调试?(Y/N): ")); const debugAnswer = readlineSync.question(); EnableBackup = backupAnswer.toLowerCase() === "y"; EnableHookDebug = debugAnswer.toLowerCase() === "y"; // Base64 解码 function atob(str) { return Buffer.from(str, "base64").toString("utf-8"); } const atobMachineCode = JSON.parse(atob(machineCode)); console.log(chalk.yellow("deviceId: " + atobMachineCode.l)); console.log(chalk.yellow("fingerprint: " + atobMachineCode.i)); console.log(chalk.yellow("version: " + atobMachineCode.v)); // 关闭所有 Typora.exe 进程 closeTyporaProcesses(); console.log(chalk.green("==== 开始破解... ====")); async function main() { // 一、反反调试 console.log(chalk.yellow("一、正在进行反反调试操作...")); console.log(chalk.yellow("解包 asar")); await asar.extractAll(asarPath, appDir); console.log( chalk.yellow("复制 app 到 app.bak(递归复制)【应对完整性校验】") ); // 2. 复制 app 到 app.bak(递归复制) function copyDir(src, dest) { if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true }); for (const entry of fs.readdirSync(src, { withFileTypes: true })) { const srcPath = path.join(src, entry.name); const destPath = path.join(dest, entry.name); if (entry.isDirectory()) { copyDir(srcPath, destPath); } else { fs.copyFileSync(srcPath, destPath); } } } copyDir(appDir, appBakDir); console.log(chalk.yellow("移除 app.asar 文件")); // 3. 重命名 app.asar 为 app.asar.bak if (EnableBackup) { fs.renameSync(asarPath, asarBakPath); } else { fs.rmSync(asarPath, { force: true }); } console.log( chalk.yellow("修改 Typora.exe 的 fuse 配置,允许加载未打包的 app 目录") ); if (EnableBackup) { // 修改前先备份 fs.copyFileSync(TyporaEXE, `${TyporaEXE}.bak`); } // 修改fuse配置(同时会修改程序hash) flipFuses(TyporaEXE, { version: FuseVersion.V1, [FuseV1Options.OnlyLoadAppFromAsar]: false, }); console.log(chalk.green("反反调试操作完成!")); // 二、注入破解代码 console.log(chalk.yellow("二、正在注入破解代码到 launch.dist.js...")); // 读取原文件内容 let content = fs.readFileSync(LaunchDistJS, "utf-8"); // 查找第一个require语句后的分号 const requireRegex = /require\([^)]+\);/; const match = requireRegex.exec(content); if (match) { const insertPos = match.index + match[0].length; const insertCode = getInsertCode( EnableHookDebug, atobMachineCode, email, nowDateStr ); // 插入代码 content = content.slice(0, insertPos) + insertCode + content.slice(insertPos); fs.writeFileSync(LaunchDistJS, content, "utf-8"); console.log(chalk.green("成功插入破解代码到 launch.dist.js")); } else { console.log( chalk.red("未找到 require 语句,破解代码未插入launch.dist.js。") ); } console.log(chalk.green("注入破解代码完成!")); // // 三、注册激活 // console.log(chalk.yellow("三、正在注册激活...")); // try { // execSync(`start "" "${TyporaEXE}"`); // console.log(chalk.green("Typora 已启动!")); // } catch (e) { // console.log(chalk.red("Typora 启动失败,请手动打开。")); // } // const regCode = generateRegCode(); // console.log(chalk.green(`您的注册码为:${regCode}`)); // console.log(chalk.yellow("请复制并用于激活。")); // console.log(chalk.cyan("请按回车键继续...")); // // 关闭Typora进程 // closeTyporaProcesses(); // 三、修改注册表 console.log(chalk.yellow("三、正在修改注册表以关闭联网验证...")); // 修改注册表,尽量关闭联网验证 // 注册表路径 const regKey = new WinReg({ hive: WinReg.HKCU, key: "\\Software\\Typora", }); try { await setRegValue(regKey, "SLicense", "RHJlYW1OeWE=#0#1/1/2029"); console.log(chalk.green("SLicense 注册表字段写入成功")); await setRegValue(regKey, "IDate", nowDateStr); console.log(chalk.green("IDate 注册表字段写入成功")); } catch (err) { console.log(chalk.red("写入注册表失败:"), err); } console.log(chalk.green("==== 破解完成!使用愉快!====")); console.log(chalk.yellow("后续操作建议:\n")); const regCode = generateRegCode(); console.log(chalk.green(`\t1.您的注册码为:${regCode} 请复制并用于激活。`)); console.log(chalk.yellow("\t2. 关闭【自动检查更新】功能,防止被覆盖。")); console.log( chalk.yellow( "\t3. 关闭【Typora服务器使用国内服务器】功能,避免绕过联网验证失败。" ) ); } main(); 详细激活过程可以参考原帖。感谢大佬提供的脚本。 3 个帖子 - 2 位参与者 阅读完整话题
通过这篇文章 https://linux.do/t/topic/1617620,与大佬 @Hopper_Margart 私聊了好几次,写出了这份文档,已经实战两三次了,效果还不错,分享给大家 使用TDD-CLI在编码中如何更好提效.pdf (929.1 KB) 主要是文中的这种思想,收益颇丰。 1 个帖子 - 1 位参与者 阅读完整话题
昨天发的这个 2028:全球人工智能领导力的两种情景 随便看了下我还以为是AI写的 这文章里我用哈机密看了下 出现了三十多次意识形态词汇:民主、专制、独裁等等 除了一堆怪味意识形态入脑和反动词汇外 我还看到些非常难绷得 “闹钟恶意开源说是” “左右脑互搏了,恶意闭源” A/:“(哽咽)…我们的民主(哽咽)…会变成(哽咽)…什么样子” 3 个帖子 - 3 位参与者 阅读完整话题
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
最近 FDE(Forward Deployed Engineer) 很火, 也有不少的朋友好奇如何去做这个事情,如何找到方向,如何找到公司,以及这个行业怎么做,我在这里分享一些我自己一个月以来的经验给大家. FDE 才是未来: https://www.ha7ch.com/writing/fde-is-the-future 全网都在刷的 FDE ,到底是什么? (实操一个月后避坑指南): http://xhslink.com/o/5jIMW77AYUU 做 FDE 最爽的三个时刻: http://xhslink.com/o/51T0x4RWuwU FDE 和程序员的不同: http://xhslink.com/o/FLjHCMlNHI 说白了,FDE 就是在砸别人的饭碗: http://xhslink.com/o/AHG9NLpMxpf FDE 到底是怎么挣钱的?: http://xhslink.com/o/Lq3uDzFV48 FDE 可能是 非名校学生最大的机会: http://xhslink.com/o/4XptZadaeUK 大学生才是 FDE 的主力军: http://xhslink.com/o/2zTl7mLuTgx HA7CH 是 Builder 飞轮: http://xhslink.com/o/4IEuoPMUaXs HA7CH 第一家 FDE Incubator: http://xhslink.com/o/55myZI7s6q9
接上篇文章,我入职现在这家公司已经有三天了,但是入职后一直拖着不给我签合同,今天 hr 才来找我签合同,我一看合同条款中薪资写着基本薪资 2330 ,但是但是面试约定的是试用期 10k, 转正后 12k 。我提出了异议,薪资必须明确写在劳动合同中,这是我的底线,hr 今天早上来找我谈话表示公司无法为了我一个人去修改劳动合同条款,所有人都是这么签的。如果我觉得无法接受可以选择离开。而且他们的薪资是按 30 天算,而不是 22 天计算。感觉这家公司的管理太不规范了,从每个环节都透着不靠谱,期间还 PUA 我如果我们是大厂根本不会选你的。反正就是各种画饼。遇到这种情况我该留下还是现在就跑路啊,求 v 友们指点。。。
接上篇文章,我入职现在这家公司已经有三天了,但是入职后一直拖着不给我签合同,今天 hr 才来找我签合同,我一看合同条款中薪资写着基本薪资 2330 ,但是但是面试约定的是试用期 10k, 转正后 12k 。我提出了异议,薪资必须明确写在劳动合同中,这是我的底线,hr 今天早上来找我谈话表示公司无法为了我一个人去修改劳动合同条款,所有人都是这么签的。如果我觉得无法接受可以选择离开。而且他们的薪资是按 30 天算,而不是 22 天计算。感觉这家公司的管理太不规范了,从每个环节都透着不靠谱,期间还 PUA 我如果我们是大厂根本不会选你的。反正就是各种画饼。遇到这种情况我该留下还是现在就跑路啊,求 v 友们指点。。。
接上篇文章,我入职现在这家公司已经有三天了,但是入职后一直拖着不给我签合同,今天 hr 才来找我签合同,我一看合同条款中薪资写着基本薪资 2330 ,但是但是面试约定的是试用期 10k, 转正后 12k 。我提出了异议,薪资必须明确写在劳动合同中,这是我的底线,hr 今天早上来找我谈话表示公司无法为了我一个人去修改劳动合同条款,所有人都是这么签的。如果我觉得无法接受可以选择离开。而且他们的薪资是按 30 天算,而不是 22 天计算。感觉这家公司的管理太不规范了,从每个环节都透着不靠谱,期间还 PUA 我如果我们是大厂根本不会选你的。反正就是各种画饼。遇到这种情况我该留下还是现在就跑路啊,求 v 友们指点。。。
接上篇文章,我入职现在这家公司已经有三天了,但是入职后一直拖着不给我签合同,今天 hr 才来找我签合同,我一看合同条款中薪资写着基本薪资 2330 ,但是但是面试约定的是试用期 10k, 转正后 12k 。我提出了异议,薪资必须明确写在劳动合同中,这是我的底线,hr 今天早上来找我谈话表示公司无法为了我一个人去修改劳动合同条款,所有人都是这么签的。如果我觉得无法接受可以选择离开。而且他们的薪资是按 30 天算,而不是 22 天计算。感觉这家公司的管理太不规范了,从每个环节都透着不靠谱,期间还 PUA 我如果我们是大厂根本不会选你的。反正就是各种画饼。遇到这种情况我该留下还是现在就跑路啊,求 v 友们指点。。。
接上篇文章,我入职现在这家公司已经有三天了,但是入职后一直拖着不给我签合同,今天 hr 才来找我签合同,我一看合同条款中薪资写着基本薪资 2330 ,但是但是面试约定的是试用期 10k, 转正后 12k 。我提出了异议,薪资必须明确写在劳动合同中,这是我的底线,hr 今天早上来找我谈话表示公司无法为了我一个人去修改劳动合同条款,所有人都是这么签的。如果我觉得无法接受可以选择离开。而且他们的薪资是按 30 天算,而不是 22 天计算。感觉这家公司的管理太不规范了,从每个环节都透着不靠谱,期间还 PUA 我如果我们是大厂根本不会选你的。反正就是各种画饼。遇到这种情况我该留下还是现在就跑路啊,求 v 友们指点。。。