AGENTS, WORKFLOWS VÀ CHATBOTS - SỰ KHÁC BIỆT THỰC TẾ
Định nghĩa từ vựng
Hệ thống agentic: Hệ thống mà language model tự trị theo đuổi một mục tiêu. Nó cảm nhận context, lựa chọn hành động, gọi tools, và lặp lại cho đến khi hoàn thành.
Workflow xác định: Nhà phát triển viết luồng kiểm soát tại thời điểm thiết kế, model chỉ điền nội dung. Luồng được cố định trước.
Agent tự trị: Hoạt động mà không cần hướng dẫn từng bước từ con người, tự đưa ra quyết định lập kế hoạch để đạt mục tiêu cao cấp.
Tính tự trị: Tồn tại trên một phổ - từ được giám sát đầy đủ đến hoàn toàn tự trị. Hầu hết các hệ thống thực tế nằm ở giữa.
Chatbot vs Agentic System
Chatbot hội thoại:
Nhận tin nhắn của bạn và tạo phản hồi
Vòng lặp hoàn chỉnh chỉ vậy
Không có cơ chế để mở file, gọi API, hoặc ghi nhớ gì ngoài context window hiện tại
Là các generator text không trạng thái cơ bản
Thích hợp cho tác vụ hội thoại nhưng không thể thực hiện hành động trong thế giới thực
Yêu cầu tool use: Khi bạn muốn hệ thống thực hiện hành động trong thế giới thực, bạn cần tool use và một thứ gì đó quyết định khi nào và cách nào để sử dụng những công cụ đó.
Workflow vs Agent
Workflow xác định:
Nhà phát triển viết mọi bước, mọi nhánh, mọi vòng lặp trước khi hệ thống chạy
LLM có thể được liên quan tại nhiều điểm
LLM không bao giờ quyết định điều gì xảy ra tiếp theo - điều đó là cố định
Hệ thống agentic:
Luồng kiểm soát xuất hiện tại thời điểm inference
Model nhìn vào context hiện tại, quyết định công cụ nào gọi, quan sát kết quả, sau đó quyết định làm gì tiếp
Việc quyết định runtime này là đặc tính xác định agentic
Điều này làm cho agents khó kiểm tra hơn và có rủi ro cao hơn
Action Environment Gap
Vấn đề cơ bản: Language model chỉ có output là tokens. Nó tạo text nhưng không có khả năng tự động đọc file, thực thi code, truy vấn database, hoặc quan sát bất cứ điều gì xảy ra ngoài lệnh inference hiện tại. Không có bộ nhớ lâu dài, không có tác dụng phụ, không có vòng lặp phản hồi.
Giải pháp: Tool use - layer runtime lấy structured output của model, thực thi hành động được yêu cầu, và đưa kết quả trở lại context như một observation.
Bốn trụ cột của vòng lặp agentic
Perception: Model đọc context - messages, injected data, kết quả từ tool calls trước
Selection: Nó quyết định action/tool nào gọi dựa trên state mục tiêu hiện tại
Execution: Runtime gọi tool đó và capture kết quả
Iteration: Kết quả được đưa vào context như observation, model lập kế hoạch bước tiếp theo
Vòng lặp này tiếp tục cho đến khi điều kiện kết thúc được đáp ứng: mục tiêu đạt được, giới hạn được chạm, hoặc lỗi cần escalation.
Định nghĩa tools bằng schema: tên, mô tả tự nhiên, specification tham số
Khi Claude tạo phản hồi và xác định tool cần thiết, nó phát ra structured tool call output thay vì plain text
Runtime chặn đó, thực thi hàm hoặc API call thực tế, và trả về kết quả như observation trong context window tiếp theo
Quy tắc thực tế: Trường description là phần quan trọng nhất của schema. Claude chọn tools dựa trên độ phù hợp của description với task. Mô tả mờ = chọn tool không đáng tin cậy.
Ba mẫu cần ghi nhớ
Tool use: Khả năng chung - bất cứ khi nào model phát ra structured call mà runtime thực thi
Prompt chaining: Kỹ thuật workflow cụ thể - output của một LLM call trở thành input của call tiếp theo. Nó trông agentic nhưng chuỗi là cố định bởi nhà phát triển
Action environment gap: Khái niệm - ranh giới giữa những gì model tạo ra và những gì thực sự xảy ra trong thế giới
Khi nào xây dựng hệ thống agentic?
Câu trả lời trung thực: Ít thường xuyên hơn bạn nghĩ.
Chọn workflow: Nếu các bước để hoàn thành task có thể được viết trước, deterministic workflow thường là lựa chọn tốt hơn. Nó dự đoán được, có thể kiểm tra, và dễ kiểm tra hơn.
Chọn agent: Agents tỏa sáng khi đường dẫn đến mục tiêu không thể được fully prescripted, khi hệ thống cần thích ứng dựa trên kết quả trung gian
Nhưng cánh cửa autonomy cao hơn = rủi ro cao hơn: Hệ thống agentic có thể thực hiện hành động với hậu quả thế giới thực. Sai lầm có thể lan truyền qua nhiều bước trước khi ai đó nhận thấy.
Từ vựng
Tool definition: Schema bạn truyền cho model tại inference time. Nó có tên, mô tả tự nhiên, và parameter specification. Model đọc điều này để tìm hiểu tool làm gì và liệu nó có áp dụng cho task hiện tại không.
Tool call: Structured output mà model phát ra khi quyết định sử dụng tool. Không phải plain text - formatted object chứa tên tool và JSON argument object.
Observation: Những gì trở lại sau khi runtime thực thi call. Nó được inject vào context window tiếp theo và model sử dụng nó để lập kế hoạch bước tiếp theo.
Giai đoạn 1: Model quyết định tool cần thiết và phát ra structured tool call output thay vì tiếp tục với plain text
Giai đoạn 2: Runtime chặn output đó và thực thi hàm hoặc API call cơ bản
Giai đoạn 3: Kết quả được capture và định dạng như observation message
Giai đoạn 4: Observation được inject vào context window tiếp theo. Model sau đó merge những gì nó học và quyết định làm gì tiếp
Chu kỳ này có thể lặp lại hàng chục lần trong một task agentic. Hiểu nó ở mức chi tiết này là cần thiết để debugging khi điều gì đó sai.
Workflow vs Agent (chính xác hơn)
Workflow pre-scripted: Nhà phát triển quyết định tại design time tools nào chạy và theo thứ tự nào. Model có thể điền parameter nhưng không bao giờ chọn tool. Chuỗi là cố định.
Hệ thống agentic model-driven: Model lựa chọn tools tại inference time dựa trên những gì nó cố gắng thực hiện ngay bây giờ. Chuỗi không được biết trước. Nó thay đổi qua các runs dựa trên context và kết quả trung gian.
Việc chọn runtime này là đặc tính xác định của hành vi agentic. Một hệ thống có nhà phát triển kiểm soát tool order là workflow - điểm dừng - ngay cả khi nó liên quan đến LLM ở mọi bước.
Là một trong những yếu tố được đánh giá thấp nhất trong độ tin cậy agentic.
Khi Claude cần quyết định có sử dụng tool hay không, nó đọc description, không implementation
Description mơ hồ (ví dụ: "processes data") = không có cơ sở chọn đáng tin cậy
Description chính xác (ví dụ: "queries the inventory database by product skew and returns current stock count") = Claude có thể chính xác phán đoán khi tool áp dụng
Quy tắc thực tế: Viết descriptions mà non-engineer có thể hành động. Mô tả tool làm gì, inputs nó mong đợi, và nó trả về cái gì. Không mô tả nó hoạt động bên trong như nào.
Root cause phổ biến: Poor descriptions là nguyên nhân gốc thường gặp nhất của agents gọi tool sai hoặc bỏ qua tool chúng nên sử dụng.
Công cụ theo chức năng
Data access tools: Cho phép model đọc từ thế giới - fetching web page, querying database, reading file, pulling from knowledge base
Computation tools: Cho phép model làm những thứ mà pure text generation không thể - running code in sandbox, parsing structured data, executing calculation
External API tools: Cho phép model viết vào thế giới - sending message, creating calendar event, updating record, triggering downstream workflow
Những danh mục này có latency profiles khác nhau, failure modes khác nhau, và risk surfaces rất khác nhau. Biết tool rơi vào danh mục nào là bước đầu tiên để đánh giá rủi ro của nó.
Giai đoạn Observation
Đây là nơi agentic loop giành được tên của nó. Plain pipeline thực thi các bước theo trình tự và dừng. Agent nhìn vào những gì trở lại và quyết định làm gì tiếp dựa trên điều đó.
Kết quả tool thành công: Xác nhận tiến độ. Model đi về phía trước
Lỗi: Triggers replanning. Model có thể thử lại với parameters khác, thử alternative tool, hoặc quyết định cần escalate
Kết quả một phần: Có thể prompt follow-up tool call để thu thập thêm thông tin trước khi tiếp tục
Phản hồi động này đối với feedback thế giới thực là điều làm cho agentic systems khả năng hơn fixed pipelines cho open-ended tasks. Nó cũng làm cho chúng khó kiểm tra hơn vì hành vi phụ thuộc vào observations runtime không phải lúc nào cũng dự đoán được.
Ba khái niệm Runtime cần biết
Tool result injection: Quá trình lấy output của tool và append vào conversation như message, để model có thể đọc nó trong context window tiếp theo
Parallel tool calls: Xảy ra khi model phát ra multiple tool call outputs trong single response. Runtime có thể thực thi independent tools concurrently và return all observations cùng nhau, làm giảm latency
Tool call loop: Full iterative cycle - call, execute, observe, respond, repeat. Hầu hết agentic frameworks thực hiện vòng lặp này tự động nhưng hiểu nó một cách rõ ràng giúp bạn đặt stop conditions và timeouts thích hợp
Cảnh báo: Mà không có well-defined termination condition, agent có thể loop vô hạn.
Web search: Model gọi search tool, runtime queries search API, model nhận list of ranked results như observation
File read and write: Model đọc document, tạo edits, viết updated content trở lại disk qua separate tool calls
Code execution: Model viết Python snippet, sandboxed interpreter chạy nó, standard output trả về như observation
Mỗi cái có distinct failure surface khác nhau.
VÒNG LẶP AGENTIC - PERCEPTION, REASONING, ACTION, OBSERVATION
Định nghĩa Cốt Lõi
Agentic loop: Repeating perceive-plan-act-observe cycle. Không phải one-shot call and response. Model đọc context của nó, chọn action, chạy nó, nhận kết quả, sau đó quyết định có tiếp tục hay dừng.
Tool use: Làm cho action phase thực tế. Model phát ra structured call, runtime thực thi nó, kết quả trở lại như observation.
Dynamic planning: Tại sao vòng lặp mạnh mẽ. Model không theo fixed script. Nó cập nhật kế hoạch ở mỗi turn dựa trên những gì nó vừa học.
Bốn Giai Đoạn
Giai Đoạn 1 - Perception: Model đọc mọi thứ hiện tại trong context window. Điều này bao gồm original instructions, conversation history, documents loaded at startup, và - một cách quan trọng - mọi tool result đã tích lũy cho đến nay. Model sử dụng tất cả cái đó để tìm hiểu nơi nó ở trong task, những gì đã được làm, thông tin nào có sẵn, những gì vẫn chưa biết.
Nếu context window là working memory của agent, thì perception là hành động đọc từ bộ nhớ đó. Không phải passive - model tích cực xác định relevant signals trước nền của tất cả mọi thứ khác trong context.
Giai Đoạn 2 - Reasoning: Khi model biết cái gì có sẵn, nó quyết định làm gì tiếp. Đây là nơi dynamic planning xuất hiện. Agent không chạy fixed workflow nơi bước ba luôn theo sau bước hai. Nó cân nhắc những gì nó vừa cảm nhận chống lại original goal và hỏi: action nào sẽ di chuyển tôi gần hơn đến solution?
Đôi khi câu trả lời rõ ràng. Đôi khi agent phải làm việc thông qua ambiguity. Model có thể nhận ra rằng prior search trả về incomplete data và quyết định refine query trước khi tiếp tục.
Yếu tố chính: Reasoning là adaptive. Nếu situation thay đổi kể từ last iteration, plan có thể thay đổi luôn. Sự linh hoạt này chính xác là cái làm cho agentic systems khả năng hơn simple pipelines.
Giai Đoạn 3 & 4 - Action và Observation: Hai phía của cùng một coin. Trong action phase, model phát ra structured tool call - có thể gọi search, API, chạy code interpreter, query database, hoặc viết final response. Tool call là moment agent reach out đến external world.
Observation là gì trở lại. Runtime thực thi tool, nhận kết quả, inject kết quả đó vào context window. Giờ agent có thông tin mới mà nó không có trước đó. Observation đó là những gì next perception phase sẽ đọc.
Hai giai đoạn này liên kết chặt chẽ. Mỗi action nên tạo meaningful observation, và mỗi observation nên inform next decision.
Context Window - Working Memory
Là nơi agent giữ state trong session. Tại start, nó giữ inputs, system prompt, user's request, initial documents.
Khi vòng lặp chạy, actions tích lũy. Tool calls xếp chồng lên nhau trong context. Observations tích lũy luôn. Mỗi kết quả runtime trả về được append. Intermediate reasoning hay planning thoughts của model thêm vào total.
Vấn đề: Context capacity quan trọng cho agents. Long-running agent có thể điền context window nếu nó tạo nhiều tool calls mà không summarize hoặc prune.
Data Flow & Feedback
Perception surfaces những gì trong context cho reasoning phase. Reasoning tạo action selection dựa trên view đó. Action tạo observation được trả về context, sau đó perception đọc context được cập nhật ở start của iteration tiếp theo.
Output của mỗi phase là input của phase tiếp theo. Đây không phải linear pipeline - đây là feedback loop. Feedback cho phép agent course correct, retry khi tool fails, revise approach khi data nó mong đợi khác với data nó thực sự nhận.
Ví Dụ Thực Tế - Research Agent
Người dùng yêu cầu agent tóm tắt recent findings trên một chủ đề.
Perception: Agent đọc query và nhận thấy không có prior search results trong context chưa
Reasoning: Nó quyết định chạy search
Action: Nó gọi search API tool với targeted query
Observation: Runtime trả về list of article summaries và inject vào context
Vòng lặp restart:
Perception: Agent đọc kết quả và nhận thấy one source trông highly relevant
Reasoning: Nó quyết định fetch full text của article đó
Và cứ thế tiếp... Mỗi iteration tạo progress về phía goal và plan của agent phát triển dựa trên những gì nó tìm thấy
LOOP CONTROL - STOPPING, ITERATING, VÀ ESCALATING
Từ vựng
Termination condition: Tiêu chí rõ ràng khiến vòng lặp dừng. Mà không có nó, vòng lặp không có lý do để kết thúc.
Turn budget: Hard limit set trong orchestration layer trên bao nhiêu iterations agent được phép chạy. Nó là programmatic guard, không phải hint.
Escalation: Controlled handoff từ agent đến human operator hoặc fallback system khi agent không thể tạo progress thêm.
Ba khái niệm này hoạt động cùng nhau. Termination condition nói với agent khi nó xong, turn budget nói runtime khi buộc stop, escalation là gì xảy ra khi không có cái nào đó đủ để giải quyết situation cleanly.
Bốn Lý Do Agentic Loop Nên Dừng
Task complete: Agent tạo final output và không còn gì để làm. Đây là happy path
Error threshold reached: Nếu agent hit quá nhiều consecutive failures, tiếp tục ít khi giúp và thường làm tệ hơn
Budget exhausted: Turn limit hoặc token budget set bởi orchestrator đã được reach. Loop halts programmatically bất kể task state
Stop signal: Orchestrator hoặc user rõ ràng nói với agent dừng
Tất cả bốn cái này phải được xử lý. Agent chỉ kiểm tra task completion sẽ tiếp tục chạy qua ba kịch bản khác mà không dừng.
Infinite Loops - Common Failure Mode
Là một trong những failure modes phổ biến nhất trong agentic systems. Xảy ra theo một vài cách:
Missing stop condition: Agent không bao giờ quyết định task complete nên nó tiếp tục
Always failing tools: Broken API call trả về error mỗi lần, retried mà không limit
Circular reasoning: Model revisits same decision point iteration sau iteration mà không new information để break cycle
Không có cái nào trong số này là exotic edge cases. Chúng là predictable failure modes xuất hiện trong normal development.
Fix ở mỗi case: Explicit termination conditions và hard caps on iterations, baked in trước agent chạy - không added sau khi điều gì đó sai.
Turn Budgets
Là primary programmatic defense chống lại runaway loops. Chúng thuộc về runtime layer, không model.
Bạn không nên dựa trên model để đếm iterations của chính nó và quyết định dừng. Orchestrator tracks iteration count. Nó enforces limit. Khi budget exhausted, runtime halts execution và surfaces bất cứ progress nào được tạo cho đến điểm đó.
Tiêu chuẩn thực hành: Setting reasonable max iterations limit trước agent starts. Cái gì là reasonable phụ thuộc vào task:
Điểm quan trọng: Số lượng được chọn có chủ ý, không left open-ended. Bounded loops auditable. Unbounded loops liabilities.
Progress vs Spinning
Là phân biệt đáng dành thời gian cho, vì spinning trông giống như activity mà không thực sự nó.
Agent making progress: Tạo new observation. Mỗi iteration advance về phía goal. Mỗi tool call trả về different data. Scope của problem narrows. Có gì được làm.
Spinning agent: Repeats similar actions mà không new results. Tool calls trở về same errors. Plan không thay đổi. Context window grows nhưng gap giữa current state và goal state không shrink. Agent tạo tokens và consume API calls mà không thực sự di chuyển forward.
Nhận diện pattern này là bước đầu tiên để dừng nó.
Detecting Spinning
Cần deliberate instrumentation. Đơn giản nhất:
Compare successive observations. Nếu hai consecutive tool calls trả về nearly identical results - đó là signal
Track repeated tool calls với identical parameters. Nếu agent gọi same search query ba lần liên tiếp - điều gì sai
Monitor gap giữa goal state và current state qua turns. Nếu gap không closing sau nhiều iterations - agent có lẽ stuck
Không cần phải phức tạp. Thậm chí simple counter flagging khi last n observations identical đủ để catch hầu hết spinning cases trước chúng run up API bill.
Iteration vs Escalation
Khi agent hit problem, nó có hai options: Iterate với new information hoặc escalate đến human/fallback system.
Iteration hợp lý: Khi có new data để làm việc với, different approach để thử, hoặc khi error recoverable. Có thể first search query quá rộng. More targeted query có thể nhận better results.
Escalation hợp lý: Khi agent reach authorization boundary, khi nó lack information cần để proceed, hoặc khi human judgment call yêu cầu.
Quan trọng: Boundary giữa iterate và escalate là explicit trong design của agent. Escalation không phải failure - nó là designed safety valve. Agent escalates gracefully trustworthy hơn agent keeps cycling và hoping things improve.
Tại sao Loop Control Là Reliability Concern
Runaway agents có thể exhaust API quotas và generate unexpected costs
Agents không escalate khi nên có thể tạo unrecoverable decisions, taking actions user sẽ dừng nếu họ biết
Agents mà không defined exit conditions khó reason about, audit, hoặc debug
Proper termination conditions làm agent behavior predictable. Khi điều gì sai, bạn có thể nhìn vào logs và hiểu chính xác tại sao agent dừng, nó cố gắng làm gì, nó ở đâu bị stuck.
KHI WORKFLOWS VƯỢT TRỘI HƠN AGENTS
Định Nghĩa
Deterministic workflow: Fixed, developer-authored sequence của steps. Control flow, conditional branches, loops all specified tại design time. Không điều gì bất ngờ bạn ở runtime vì bạn viết mỗi quyết định trước.
Agentic system: Ngược lại. LLM quyết định actions nào lấy, trong thứ tự gì, để theo đuổi goal. Bạn không fully control chuỗi đó.
Prompt chaining: Simplest workflow pattern - passing one call's output trực tiếp như input đến next. Linear, testable, easy để debug.
Trade-off Cốt Lõi
Mọi architectural decision xuống đến một question: Cái task này yêu cầu runtime judgment không?
Điều mà practitioners thường miss: Hầu hết real tasks rơi gần hơn workflow end của spectrum. Appeal của agents real nhưng chọn chúng khi workflow sẽ work thêm token cost và operational risk mà không thêm meaningful capability.
Workflows vs Agents - Side by Side
Workflows:
Agents:
Dynamic control flow
Adaptive behavior
Capability ceiling cao hơn
Nhưng cost, latency, failure surface cao hơn
Debugging agentic reasoning trace significantly khó hơn reading structured workflow execution log
Ba Quick Checks Trước Reaching Cho Agent
Input format predictable và well-defined tại lúc bạn build system?
Output format known và testable lại clear specification?
Mỗi processing step có thể specified tại design time mà không requiring runtime judgment từ model?
Khi tất cả ba true - workflow right answer. Bạn không leaving capability trên table bằng chọn workflow. Bạn making deliberate engineering choice cho lower cost, faster execution, system team có thể actually reason about và fix confidently khi cái gì inevitably goes wrong ở production.
Năm Core Workflow Patterns (theo Anthropic documentation)
Prompt chaining: Sequential LLM calls, mỗi output feeds next step
Routing: Classifier step directs input đến right specialized prompt hoặc sub-agent
Parallelization: Multiple LLM calls run simultaneously với results collected tại fan-in step
Orchestrator sub-agent: Controlling component decomposes goal và delegates đến specialized workers
Evaluator optimizer: One call generates output, another evaluates nó, looping cho đến quality criteria met
Mỗi pattern giải quyết distinct structural problem và mỗi cái vẫn workflow. Không yêu cầu full autonomy và unpredictability define true agentic system.
Routing và Parallelization
Routing workflow: Sử dụng classifier - sometimes LLM, sometimes simple rule - để sort inputs trước processing. Topology fixed ngay cả khi router call language model. Control flow still authored tại design time nên vẫn fully auditable.
Parallelization: Fans work qua multiple concurrent calls và collects results tại synchronization point trước proceeding. Cả hai patterns scale đến complex workloads và production traffic volumes và vì control flow vẫn authored tại design time, cả hai remain fully auditable.
Ba Practical Levers Workflows Consistently Win
Token cost: Workflows tạo fewer unplanned LLM calls. Mỗi step scoped nên token usage predictable và budgetable trước deploy
Latency: Bạn control sequencing trực tiếp. Steps có thể pipelined hoặc deliberately parallelized nơi nó make sense. Agents introduce variable latency từ replanning loops bạn didn't anticipate và can't fully predict advance
Reliability: Deterministic steps individually testable isolation. Workflow fail - failure localized một specific identifiable step. Agentic trace - root cause có thể buried bất cứ nơi trong long và complex reasoning chain
Khi Không Over-index Trên Agents
Agent overhead - bao gồm extra token spend, dynamic planning loops, harder để audit execution traces - chỉ justified khi task genuinely can't be prescripted.
Agents increase token spend trên mỗi single task run, không just occasionally
Mỗi autonomous decision LLM tạo là potential failure point bạn didn't explicitly design cho hoặc anticipate
Debugging agentic traces takes significantly more engineering time hơn reading structured workflow execution log
Principle: Reach cho agents chỉ khi workflows demonstrably fall short. Đó không phải limitation. Đó disciplined professional engineering practice.
CHỌN ĐÚNG ARCHITECTURE
Định Nghĩa
Incremental complexity: Start với simplest architecture mà works và thêm agent behavior chỉ nơi workflows demonstrably fail để meet task requirements.
Orchestrator: Controlling component decompose goal, delegate sub-tasks đến sub-agents hoặc tools, synthesize final result.
Over-engineering: Trap của adding agentic autonomy mà costs more tokens, introduces more operational risk, creates harder-to-audit execution paths - tất cả mà không delivering proportional capability benefit.
Quy Tắc Thứ Nhất
Start với least complex solution mà solves problem. Simple prompt chain beats complex agent cho bất cứ scoped, well-defined task.
Simplicity giảm cost, giảm latency, giảm number of ways things có thể go wrong ở production.
Practical reality: Bạn có thể always thêm agent behavior sau nếu workflow turns out insufficient cho edge cases hoặc expanding requirements. Nhưng starting với complex agentic system rồi cố gắng simplify nó significantly harder. Complexity easy để add hơn remove từ running production system.
Khi Nào Agentic Complexity Justified?
Watch cho ba clear signals:
Goal open-ended và can't fully pre-specified tại design time. Bạn có thể describe gì success looks like nhưng bạn can't enumerate mỗi step cần để get there
Tool sequence unpredictable. Bạn don't know tại design time tools nào system cần call hoặc trong thứ tự gì
Task requires dynamic replanning mid-execution vì earlier steps produced unexpected results mà change path forward
Nếu không có ba conditions này apply đến task - workflow almost certainly better choice.
Reliability vs Adaptability - Central Trade-off
Workflows give you:
Agents give you:
Dynamic behavior xử lý open-ended goals
Higher capability ceiling cho genuinely complex tasks
Nhưng variable cost, harder audit, broader failure surface harder anticipate tại design time
Question không bao giờ which better abstract - luôn which set of properties matches cái task actually requires.
Ba Trade-off Axes
Cost vs Capability: Agents spend more tokens per task run nên phải justify spend với capability genuinely require ngay bây giờ - không capability might eventually want someday
Auditability vs Flexibility: Workflows fully auditable step by step, agents trade some auditability cho runtime flexibility that's sometimes necessary
Reliability vs Adaptability: Workflows fail predictably tại specific identifiable steps, agents có thể adapt dynamically nhưng introduce variable failure modes harder anticipate và reproduce testing
Incremental Approach
Right way để introduce agent behavior là incrementally, không all at once.
Build và validate workflow version của system trước, rồi run nó lại real inputs và identify specific step nơi workflow breaks down hoặc fails để handle required variation.
Có thể routing logic fails trên unusual edge cases. Có thể synthesis step needs more flexibility hơn bất cứ fixed prompt nào provide.
Replace chỉ specific step đó với agent behavior, leaving rest workflow intact và auditable.
Approach này keeps system simple như task allows, và tạo clear, reviewable record tại sao mỗi architectural decision was made.
Ba Concrete Scenarios
Workflow Scenario: Extracting structured data từ fixed format document. Input predictable, output schema known. Prompt chain với validation handles này cleanly và efficiently.
Agent Scenario: Researching và synthesizing topic từ open-ended web sources. Goal unbounded, tool sequences unpredictable tại design time. Agent với planning right architectural choice.
Hybrid Scenario: Routing customer inquiries đến specialists, rồi synthesizing responses. Fixed routing feeds vào dynamic synthesis step - combining routing workflow với focused agent.
Bốn Diagnostic Questions
Khi evaluating task mới:
Mỗi step có thể authored tại design time mà không runtime judgment?
Output format known và testable lại clear specification?
Task require system select tools dynamically dựa trên results nó hasn't seen yet?
Failure tại one step require dynamic recovery hơn simple fixed fallback?
Nếu answer no đến hai hoặc more - agentic complexity likely warranted. Nếu answer yes đến tất cả bốn - bạn have workflow.
Framework Conclusion
Framework không about finding most powerful architecture available. Nó about finding right one cho specific problem bạn actually solving.
Start với simplest architecture mà solves problem
Add complexity chỉ nơi workflows fail
Evaluate cost, auditability, reliability, adaptability lại cái task requires
Mark của well-designed system: Using exactly much complexity như task demands - không extra