<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>Benjamin Taoson · 赖建铭 · English</title>
  <subtitle>Benjamin Taoson（赖建铭）的个人网站。探索大模型、智能体与机器人学习，分享项目设计、实验结果与技术思考，连接交流、合作与教学。</subtitle>
  <link href="https://benjamindaoson.github.io/daoson_website/feed-en.xml" rel="self" type="application/atom+xml" />
  <link href="https://benjamindaoson.github.io/daoson_website/" rel="alternate" type="text/html" hreflang="en" />
  <updated>2026-10-12T12:18:36+08:00</updated>
  <id>https://benjamindaoson.github.io/daoson_website/feed-en.xml</id>
  <author>
    <name>Benjamin Taoson</name>
    <email>benjamindaoson@gmail.com</email>
  </author><entry>
      <title>Why I’m Building a Digital Employee System</title>
      <link href="https://benjamindaoson.github.io/daoson_website/posts/2026/06/05/why-build-digital-employee-system.en/" rel="alternate" type="text/html" />
      <published>2026-06-05T10:00:00+08:00</published>
      <updated>2026-06-05T10:00:00+08:00</updated>
      <id>https://benjamindaoson.github.io/daoson_website/posts/2026/06/05/why-build-digital-employee-system.en/</id>
      <author>
        <name>Benjamin Taoson</name>
      </author>
      <summary>The digital employee system is not a product launch. It is my long-term experiment for studying how agents move from demos to reliable workflows.</summary>
      <category term="AI" /><category term="agents" /><category term="engineering" />
      <content type="html" xml:base="https://benjamindaoson.github.io/daoson_website/posts/2026/06/05/why-build-digital-employee-system.en/">
        &lt;p&gt;I am building a digital employee system.&lt;/p&gt;

&lt;p&gt;Let me set the boundary first: this is not a mature product, and it is not a complete public case study yet. The repository, demo, and implementation details are still being organized. What I can share now is the direction, the problem context, the hypothesis I am testing, and the build notes I plan to publish next.&lt;/p&gt;

&lt;p&gt;I am writing this down because I increasingly believe the important question for AI agents is not whether they can produce an impressive demo. The question is whether they can complete a piece of work inside a real workflow in a way that is reliable, recoverable, and supervised.&lt;/p&gt;

&lt;h2 id=&quot;there-is-a-gap-between-demos-and-work&quot;&gt;There Is a Gap Between Demos and Work&lt;/h2&gt;

&lt;p&gt;Many agent demos look impressive. An agent can read files, call tools, write code, generate plans, and simulate a full task chain.&lt;/p&gt;

&lt;p&gt;But a working demo is not the same as a reliable system.&lt;/p&gt;

&lt;p&gt;Once agents enter a real workflow, the questions become much more concrete:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Are the task boundaries clear?&lt;/li&gt;
  &lt;li&gt;How does context move between agents?&lt;/li&gt;
  &lt;li&gt;When a tool call fails, does the system know where it failed?&lt;/li&gt;
  &lt;li&gt;Which parts of the state are still trustworthy?&lt;/li&gt;
  &lt;li&gt;Should the next step be automatic recovery or human review?&lt;/li&gt;
  &lt;li&gt;How is the result verified?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions are less flashy than model capability, but they decide whether an agent can move from a one-off demo to a repeatable system.&lt;/p&gt;

&lt;h2 id=&quot;what-i-mean-by-digital-employee&quot;&gt;What I Mean by Digital Employee&lt;/h2&gt;

&lt;p&gt;By digital employee, I do not mean “a chatbot that sounds more capable.”&lt;/p&gt;

&lt;p&gt;I mean a working system:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It receives a clear work objective.&lt;/li&gt;
  &lt;li&gt;It breaks the work into executable steps.&lt;/li&gt;
  &lt;li&gt;It calls tools to complete parts of the task.&lt;/li&gt;
  &lt;li&gt;It preserves state and recovers from failures.&lt;/li&gt;
  &lt;li&gt;It asks for human judgment when uncertainty matters.&lt;/li&gt;
  &lt;li&gt;It leaves a trace that can be reviewed and improved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, a digital employee is not a single model. It is a system made of models, tools, state, protocols, evaluation, and human checkpoints.&lt;/p&gt;

&lt;h2 id=&quot;the-hard-part-is-not-chat&quot;&gt;The Hard Part Is Not Chat&lt;/h2&gt;

&lt;p&gt;Chat ability matters, but it is not the part I care about most.&lt;/p&gt;

&lt;p&gt;The engineering questions matter more:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Coordination protocols&lt;/strong&gt;: how do agents divide work? Who plans, who executes, and who reviews?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tool reliability&lt;/strong&gt;: what happens when a tool call fails? When should the system retry, and when should it stop?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;State recovery&lt;/strong&gt;: if execution fails halfway through, which intermediate state can still be trusted?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Human review&lt;/strong&gt;: which steps must ask for human confirmation, and which can safely run automatically?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Result verification&lt;/strong&gt;: how does the system know it completed the work, instead of merely appearing to complete it?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these problems can be solved completely by a single prompt. They need system design, and they need many small experiments.&lt;/p&gt;

&lt;h2 id=&quot;current-state&quot;&gt;Current State&lt;/h2&gt;

&lt;p&gt;This project is currently active.&lt;/p&gt;

&lt;p&gt;I am organizing three directions:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;task boundaries and context handoff between agents&lt;/li&gt;
  &lt;li&gt;recovery behavior after failed tool use&lt;/li&gt;
  &lt;li&gt;human checkpoints and system boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have not packaged this as a product, and I have not published a specific repository yet. That boundary matters. If I cannot explain what the system can and cannot do, I should not present it as a finished result.&lt;/p&gt;

&lt;h2 id=&quot;what-i-want-to-validate-next&quot;&gt;What I Want to Validate Next&lt;/h2&gt;

&lt;p&gt;The next step is to clarify the system before showing more interface.&lt;/p&gt;

&lt;p&gt;I want to document:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;what the current prototype can actually do&lt;/li&gt;
  &lt;li&gt;which steps still require human review&lt;/li&gt;
  &lt;li&gt;how the system responds when tool calls fail&lt;/li&gt;
  &lt;li&gt;which implementation details can be public&lt;/li&gt;
  &lt;li&gt;whether a more specific repository or small demo can be opened&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These notes should become part of the build log, not remain private thoughts.&lt;/p&gt;

&lt;h2 id=&quot;why-this-is-worth-doing-long-term&quot;&gt;Why This Is Worth Doing Long Term&lt;/h2&gt;

&lt;p&gt;I believe AI agents will change work not because of one impressive demo, but because many reliability details slowly become stronger:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;clearer boundaries&lt;/li&gt;
  &lt;li&gt;recoverable failures&lt;/li&gt;
  &lt;li&gt;better human checkpoints&lt;/li&gt;
  &lt;li&gt;traceable work&lt;/li&gt;
  &lt;li&gt;systems that can be maintained over time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is also why I am building this site. It is not meant to present a perfect image. It is meant to turn judgment, experiments, and writing into a long-term research system.&lt;/p&gt;

&lt;p&gt;The digital employee system is only one experiment, but it will be one of my most important build objects for the next phase.&lt;/p&gt;
      </content>
    </entry><entry>
      <title>Building a Modern Frontend Project with Vite</title>
      <link href="https://benjamindaoson.github.io/daoson_website/posts/2026/05/20/vite-modern-frontend.en/" rel="alternate" type="text/html" />
      <published>2026-05-20T10:00:00+08:00</published>
      <updated>2026-05-20T10:00:00+08:00</updated>
      <id>https://benjamindaoson.github.io/daoson_website/posts/2026/05/20/vite-modern-frontend.en/</id>
      <author>
        <name>Benjamin Taoson</name>
      </author>
      <summary>From zero, step by step, to a clean, fast, maintainable frontend dev environment.</summary>
      <category term="frontend" /><category term="tools" />
      <content type="html" xml:base="https://benjamindaoson.github.io/daoson_website/posts/2026/05/20/vite-modern-frontend.en/">
        &lt;p&gt;This note records how I set up a clean, fast, maintainable frontend
experiment with Vite. It is a practical setup note, not a complete framework
tutorial.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Tools should serve thought, not the other way around.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;why-vite&quot;&gt;Why Vite&lt;/h2&gt;

&lt;p&gt;Vite leans on the browser’s native ES Modules support, so dev mode skips
bundling entirely — and startup feels instant. Compared to the traditional
Webpack flow, the wins are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Cold start drops from &lt;strong&gt;seconds&lt;/strong&gt; to &lt;strong&gt;milliseconds&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;HMR is essentially instant; the bigger your project, the more obvious the gap&lt;/li&gt;
  &lt;li&gt;TypeScript, JSX, and CSS preprocessors work out of the box&lt;/li&gt;
  &lt;li&gt;Production builds use Rollup, with smaller output than Webpack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The terminal output below shows what &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm run dev&lt;/code&gt; looks like — note the 187ms
startup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/posts/vite-modern-frontend/dev-server.svg&quot; alt=&quot;Vite dev server terminal output&quot; /&gt;
&lt;em&gt;Vite dev server · cold start in 187ms&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;getting-started&quot;&gt;Getting started&lt;/h2&gt;

&lt;p&gt;A single command bootstraps a new project:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;npm create vite@latest my-app &lt;span class=&quot;nt&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--template&lt;/span&gt; vue-ts
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;my-app
npm &lt;span class=&quot;nb&quot;&gt;install
&lt;/span&gt;npm run dev
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Open &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://localhost:5173&lt;/code&gt; and you’ll see the default page.&lt;/p&gt;

&lt;p&gt;I am not embedding a video demo here yet. If I record a real project walkthrough,
I will link it from Elsewhere or add it to the article later.&lt;/p&gt;

&lt;h2 id=&quot;common-configuration&quot;&gt;Common configuration&lt;/h2&gt;

&lt;p&gt;Here’s the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;vite.config.ts&lt;/code&gt; I keep around:&lt;/p&gt;

&lt;div class=&quot;language-typescript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;defineConfig&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;vite&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;vue&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;@vitejs/plugin-vue&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;fileURLToPath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;URL&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;node:url&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;defineConfig&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;vue&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()],&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;resolve&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fileURLToPath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;./src&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;meta&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;server&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;3000&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;closing&quot;&gt;Closing&lt;/h2&gt;

&lt;p&gt;Tools change. The shape of the problem doesn’t. I hope this saves you a few
of the potholes I’ve stepped in. Drop me an email if you’ve found a sharper
approach — I’d love to hear it.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Written in May 2026. Corrections welcome.&lt;/em&gt;&lt;/p&gt;
      </content>
    </entry></feed>
