今日已更新 405 条资讯 | 累计 33040 条内容
关于我们

标签:#p

找到 13672 篇相关文章

AI 资讯

느린 LLM 호출 중 DB connection을 잡지 않는 이유

느린 LLM 호출 중 DB connection을 잡지 않는 이유 AI 기능의 latency는 모델 응답 시간으로만 끝나지 않습니다. 요청이 LLM이나 embedding API를 기다리는 동안 데이터베이스 session까지 긴 범위로 유지하면, 느린 외부 호출이 DB connection pool의 압력으로 전파될 수 있습니다. 이 글은 AI memory OSS인 Honcho의 변경 이력과 pinned source를 읽으면서, 외부 호출과 DB transaction/session 경계를 어떻게 분리했는지 추적한 기록입니다. Scenario Honcho의 dialectic 경로(저장된 memory를 근거로 사용자 질문에 답하는 질의 경로)는 답하기 전에 다음 작업을 수행합니다. peer·session·workspace 확인 -> 관련 memory 검색 -> embedding·LLM 호출 -> 필요하면 tool로 추가 조회·기록 -> 답변 생성 여기에는 짧은 DB 조회와 상대적으로 느리고 변동성이 큰 외부 호출이 섞여 있습니다. 두 작업을 하나의 session scope로 묶으면, DB가 필요하지 않은 대기 시간까지 session lifetime에 포함됩니다. 변경 전에는 무엇이 묶여 있었나 PR #477 직전의 agentic_chat 은 하나의 tracked_db context 안에서 peer와 설정을 읽고, 그 session을 DialecticAgent 에 전달한 뒤, agent.answer() 가 끝날 때까지 같은 context를 유지했습니다. streaming 경로도 같은 형태였습니다. 구조를 단순화하면 다음과 같습니다. DB session open -> preflight read -> DialecticAgent receives session -> embedding / memory tools / LLM answer DB session close commit 0533c6d 의 제목도 이 문제를 dialectic held connection 으로 기록합니다. 다만 이번 분석에서는 실제 pool checkout 시간이나 장애를 재현하지 않았습니다. 여기서 확인한 것은 코드의 session scope와 변경 의도입니다. SQLAlchemy의 session 객체를 만들었다고 곧바로 connection을 점유하는 것은 아닙니다. 하지만 이 경로처럼 SQL을 실행해 transaction이 시작되면 session은 pool에서 빌린 connection을 commit·rollback까지 유지합니다. Honcho의 tracked_db 는 종료할 때 rollback() 과 close() 를 호출하므로, SQL 실행 뒤 이 context를 LLM 대기까지 유지하던 범위를 줄이는 것은 이 경로의 connection 점유 구간도 줄이는 일입니다. 어떻게 경계를 줄였나 변경 후에는 tracked_db("dialectic.preflight") 가 본 작업 전 검증과 설정 조회(preflight), 즉 peer 존재 여부, session/workspace 설정, peer card를 읽는 구간만 감쌉니다. context가 끝난 다음에 DialecticAgent 를 만들고 LLM 답변을 생성합니다. Agent 생성자에서도 DB session 인자가 제거됐습니다. short DB preflight -> 필요한 값 읽기 DB session close agent execution -> embedding / LLM / tools tool needs DB -> tool-owned short DB session -> close 핵심은 DB 사용을 없앤 것이 아닙니다. 요청 전체가 session을 소유하는 대신, DB가 필요한 작업이 자기 범위의 session을 소유하도록 바꾼 것 입니다. pinned current code에서도 유지되는가 분석 기준 commit 85239a6 에서도 이 경계는 유지되고 더 구체화돼 있습니다. src/dialectic/chat.py 의 일반·streaming 경로 모두 preflight context를 닫은 뒤 agent를 실

2026-07-16 原文 →
AI 资讯

I catalogued 32 real AI-agent failures, then marked the ones we cannot stop

Every agent-security vendor tells you what they block. Nobody tells you what they miss. That gap is the whole problem. "We stop prompt injection" is a claim you cannot check. You cannot run it, and you cannot tell it apart from the next company saying the same sentence. So security engineers do the rational thing and discard all of it. I published the opposite. It is called the ARE Incident Database , and it is public: https://aredb.org What is in it 32 agent failures that actually happened, each with a real source. A production database dropped during a code freeze. Twenty-five thousand documents deleted in the wrong environment. Credentials read and shipped to an external sink. A budget burned to zero in a loop. Each one gets a stable id ( ARE-2026-001 through ARE-2026-032 ), and each one is mapped to its category in the OWASP Agentic Security Initiative Top 10 , which is the peer-reviewed catalog of what goes wrong with agents. AREDB does not compete with it. OWASP owns the map. This is the cited incidents underneath it. The part that makes it uncomfortable to publish Every entry carries a coverage flag, and the flag is about our own product . We block 23 of the 32 today. Two more are partial, and they say partial. That leaves six of the ten OWASP categories covered at the action layer, and four that we do not cover: ASI06 Memory and context poisoning. We strip the hidden characters attackers use to smuggle instructions into text. We do not read the meaning of the text itself, so this one is only partial, and we mark it partial. ASI07 Insecure inter-agent communication. This is about how agents talk to each other over the network, which a firewall that sits in front of actions never sees. Not ours. ASI09 Human-agent trust. This is a design and disclosure problem. There is no action for a firewall to catch. Not ours. ASI10 Rogue agents. We stop the dangerous actions, but we do not diagnose the misbehavior itself. Partial. A firewall that claimed all ten would be l

2026-07-16 原文 →
AI 资讯

Stratagems #15: Derek and Alex Shared One Server. ACL's AI Was Listening to Both.

When the enemy occupies favorable terrain, don't attack head-on. Use a decoy to lure the tiger down the mountain. Then take the mountain. — The 36 Stratagems, Lure the Tiger Down the Mountain Previously on this series: #2: Derek Shaw Walked Into Another AI Promise. The Pipeline Had a Better Plan. — Derek lost the Finova contract at QualiGuard. In the parking lot, Lena turned back before getting in her car: "Next time you put together a proposal — make sure your boss knows what you're doing out there." That line followed him. At MediSys he nearly made the same mistake. Fixed the ETL pipeline instead of the model, beat OmniDx with their own white paper. But VP Morgan still saw through him: he still hadn't told his boss. #8: Alex Watched an AI Dashboard Take Over. He Kept the Keys Under the Table. — MedTech signed a seven-figure AI operations monitoring system. Alex was assigned as training lead. Under everyone's noses, he built a second monitoring panel labeled "training environment." Three weeks later the vendor dashboard went down. Alex's hidden panel was the only one still running. The first time Alex and Derek really talked, and it wasn't in a working group. At the FHIR standards committee quarterly meeting, they sat in the same row, three seats apart, and voted against the same proposal. They knew each other's names. That was it. Two months later, Derek was fixing a partition config in the staging environment. MediSys had just signed a major hospital; the AI diagnostic validation platform was in integration testing. He found an unrotated log directory in /etc/logrotate.d/ with a prefix that didn't match MediSys's naming convention. He traced it upstream. One server. Labeled "temporary data exchange node." MedTech's supply chain order stream and MediSys's diagnostic validation records were sitting in the same directory. Write permissions hadn't been restricted. The hospital's integration spec had a line saying "both parties are recommended to complete data alignme

2026-07-16 原文 →
AI 资讯

What running an LLM in production actually costs you

Every "build an AI app" tutorial stops at the demo. Prompt goes in, response comes out, ship it. Nobody covers the part where that demo has real users and you're staring at a Gemini or OpenAI invoice trying to figure out which feature did that. I've spent the last several months building the AI layer for a consumer app that fires vision and language calls on almost every user action. Not a chatbot getting occasional traffic. A product where the model call basically is the product. Here's what I actually had to build, in the order I had to build it. Four problems, not one Cost first, obviously. Tokens are metered, and past a certain volume, calling the model on every request means paying for answers you already gave someone five minutes ago. Latency next. A cache hit lands in milliseconds. A cold model call takes seconds. Users feel that, especially anything camera-driven where they're staring at a loading spinner over their own kitchen counter. Reliability too. Your provider will have an outage or a degraded day at some point. Not if, when. And blast radius. One bug, one bot, one traffic spike, and a $50/day bill becomes a $5,000/day one while everyone's asleep. You don't see any of this in a demo. It shows up with real traffic, and by then it's a lot more expensive to fix than it would've been to build right the first time. Cache on what the query means, not its exact string Key your cache off the literal request text and you've built something close to useless. "What can I make with chicken and rice" and "chicken and rice, what should I cook" mean the same thing and share almost no characters. So embed the query, run a vector similarity search against everything already answered, and if something clears a high threshold, serve that instead of paying for another call. I use 0.95 cosine similarity as the bar. async function checkSemanticCache(embedding: number[], taskType: string, threshold = 0.95) { const { data } = await db.rpc("find_similar_response", { query_emb

2026-07-16 原文 →
AI 资讯

Don't apply WordPress major releases on day one — the "x.0.1 rule" and a calibration framework

The companion to the seven things to check before a WordPress major upgrade is the question that comes right after: when do you actually apply it? A new WordPress major drops today. Do you ship it to production tonight? Tomorrow? In a week? Hold for the next scheduled monthly maintenance? This call tends to live in tribal knowledge, but a few clear axes combined together give you a calibration framework you can apply every time without re-deciding from scratch. Here are five axes worth using. Premise — majors are not security patches The first thing to anchor: a major upgrade is not a security patch . WordPress ships security fixes via minor releases ( 6.4.1 → 6.4.2 , 6.5.0 → 6.5.1 — the second-digit bumps ). Those are same-day apply by default . Major releases ( 6.4 → 6.5 , eventually some 6.x → 7.0 ) carry new features and API changes; they aren't released to be applied immediately for security reasons. Without this distinction, the felt urgency of " we have to apply this for security " pushes you to rush majors that should wait. Minors immediately, majors by judgment — that separation is the first rule worth writing down. Axis 1 — wait for x.0.1 For essentially every major release, x.0.1 (the first patch release) lands within 1–3 weeks and absorbs the critical bugs that surfaced after launch. Past examples have included things like "the admin goes white under specific settings," "a particular theme breaks the block editor," "DB migration stalls in specific environments." Nobody hit these on launch day; they emerged as the world started using it for days or weeks. Just waiting for x.0.1 instead of x.0 sidesteps most of those launch-window bugs. For the first few weeks after a major lands, the world's WordPress installations are effectively running the beta test . Being downstream of the people who hit the mines is the rational position for a maintenance practice. Axis 2 — wait until major plugin vendors update "Tested up to" The thing that breaks most after a majo

2026-07-16 原文 →
AI 资讯

D365 Customer Insights for Our Own Sales Team (Customer Zero) (4) Error Handling

This continues from Part ③ . We have the system set to refresh data daily, but unexplained errors can sometimes occur. Symptoms The segments were not properly configured as expected. Checking System → Schedule showed that the automatic refresh schedule itself was fine. The data source refresh also appeared to have no issues. Opening the Unify screen, everything looks like it succeeded at first glance — but checking the Performance screen reveals that something is failing during unification. Drilling in further, the failure is happening at the Customer Profiles step. Resolution Steps Attempt to manually re-run just the "Customer Profiles" task → Error persists Redo everything manually from the data source refresh step onwards This resolved the issue successfully. Takeaway Since this is not a misconfiguration issue, patient repetition of the refresh process is enough to recover. Hopefully this saves someone some troubleshooting time.

2026-07-16 原文 →
AI 资讯

hermes-memory-installer Recent Update: Auto-Repair for Targeted gbrain Missing Embeddings

If you've been working with cognitive architectures that rely on structured memory injection, you likely know the pain of corrupted or incomplete embedding spaces. The latest update to hermes-memory-installer directly addresses a brittle failure mode: missing embeddings in the gbrain module. This fix introduces an automatic, targeted repair mechanism that detects and rebuilds only the affected subset of embeddings, rather than triggering a full reinstall. Here’s what changed, why it matters, and how to benefit from it. The Problem: Silent Degradation in gbrain In a typical setup, hermes-memory-installer populates the gbrain—a specialized long-term memory store—with precomputed embeddings for core concepts, episodic traces, and procedural patterns. These embeddings are the numeric backbone that allows the agent to query, retrieve, and associate memories efficiently. However, under certain conditions—partial upgrades, concurrent memory imports, or incomplete network transfers—the gbrain’s embedding table ended up with holes. Specific embeddings for targeted contexts were simply missing. The agent would still boot, but retrieval quality degraded silently: queries returned null vectors or fell back to generic responses, breaking fine-grained recall. Users reported that their agents "forgot" recent conversations or failed to recognize learned skills, yet no obvious error was raised. Previously, the only remedy was a full reinstall of the memory installer, which wiped and rebuilt the entire gbrain. That was slow, wasteful, and could erase customized embeddings that were working correctly. The Fix: Targeted Auto-Repair The new update ( v2.1.0 onwards) adds a dedicated repair pass during the installation and upgrade routine. Instead of scanning the entire gbrain, the installer now maintains a lightweight manifest of expected embedding keys for each memory context. During setup, it checks the actual embedding store against this manifest. If any keys are missing, it triggers

2026-07-16 原文 →
产品设计

Skullcandy’s bass-boosting Crusher headphones now come with Bose’s ANC

Skullcandy announced a new version of its Crusher wireless headphones today featuring a few of Bose's audio technologies including its QuietControl ANC and head-tracking spatial audio. The Crusher headphone line differentiates itself from the competition through the use of both full-range and dedicated bass drivers in each ear cup to boost deeper frequencies. Skullcandy admits […]

2026-07-16 原文 →