ToCode
Open in Telegram
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Show more1 419
Subscribers
No data24 hours
+17 days
-430 days
Posts Archive
1 419
๐ ืื ืขืืืื ืฆืจืื ืืืืขืืช ืงืืืื?
ื 2026 ืกืืื ื ืงืืืื ืืืืขืื ืืืชืื ืืืืขืืช ืงืืืื ืืืืืช ืืืชืจ ืืืืชื ื ืื ืืืืขืื. ื ืืกืืชื ืืช ืื - ืืคืจืืืคื:
explain the commit
1. what changed?
2. why?
3. what's still left to do for this issue?
ืขื ืืงืืืื ืฉืขืฉืืชื ืืื:
https://github.com/ynonp/langlets-rails/commit/c07821619789ce2c814f9056088f0b083c7e92c7
ื ืชื ืื ืืกืืจ ืืจืื ืืืชืจ ืืื ืืืืืืง ืืื ืฉืื ื ืืชืืชื ืืืืืขืช ืืงืืืื. ืืื ืื ืืืืืจ ืื ืฉืืงืืืื ืืื ืืืื ืืื 4 ืฉืื ืืืื ื ืคืจืืื, ืืฉืืืืขืช ืืงืืืื ืืืืจืช ืขื ืฉืื ืื ืืื. ืื ืฉืืงืจื ืืช ืืงืื ืขื ืืืกืืจ ืฉื ื AI ืืงืื ืืกืืจ ืืจืื ืืืชืจ ืืื ืืื ืงืจื ืฉื.
ืืขืืฉืื ืืฉืืื ืืืืชืจืช ืืื ืืชืืืืืช ืืืืชืืช.
ืืื ืื ืืชืช ื AI ืืืชืื ืืช ืืืืขืช ืืงืืืื ืืืืช ืืจืืฉ ืืืจืืฅ ืืืชืจ ืืืจ? ืื ืืืขื ืืืชืื ืืืืขืืช ืงืืืื ืื ืืืืืงืืช ืืขืฆืื? ืืืงืจื ืืืืืื ืืืืขืช ืืงืืืื ืฉืื ืื ืืืชื ืืืืืงืช ืื ื ืชืชื ื AI ืืืชืื ืืื ืคืืฆ'ืจืื ืืืงืืื ืืืืคืชื ืืื ืืื ืืงืจืื ืืขืืืง. ืื ืืืช ืฉืืืช ืืขืืืื ืืจืืจ ืฉืืื ืขื ืืืื.
ืืื ืืืจืืช ืฉ AI ืืชืืจ ืืืคื ืื ืงืจื ืืงืืืื, ืืื ืื ืืืืข ืืช ืืงืื ืืงืกื ืืืืืชื, ืืช ืืกืืื ืืืืืชืืช ืืืืื ืืืคืชื ืืืืงื ืืช ืืงืื ืืื. ืืื ืื ืืืืข ืืืื ืืืคืฆืืืช ืืืจืืช ืืืงืชื, ืื ืืฉืืชื ืฉืขืืื ืืืฉืชืืฉ, ืื ืืฉืชืืฉ ืื ืื ืืฉืชืืฉ ืืกืืฃ, ืืงืืฆืืจ ืืช ืื ืืืกืืื ืฉื ืืคืืฆ'ืจ.
ื 2026 ืืืืขืช ืงืืืื ืื ืฆืจืืื ืืกืคืจ ืื ืงืจื. ืืื ืขื ืืืืืื. ืืื ืืื ืื ืฆืจืืื ืืกืคืจ ืืช ืกืืคืืจ ืืจืงืข. ืืืืขืช ืงืืืื ืืืื ืืื ืืื ืืืื ืช ืืื ืฉืืืงืืช ืืืชื ื ืืฉืจ ืืืืชื ืจืืข ืืืื ืื ืืืืื ื ืืืืืฃ ืืืืงื ืืช ืืงืื ืืื. ืืื Context Dump ืฉื ืื ืฉืืฉื ืืื ืืืื ืืืืืื ืฉืื ืืืื.
ืืจืื ืคืขืืื ืืืื ืืฉืื ืืืืืช. ืกืืื ืืงืืืื ืืืชืื ืืืืขืืช ืงืืืื ืืืืืืืืืช ืืขื ืฃ ืืฉืื. ืืจืืข ืฉืื ืืืื ืื ื ืขืืืจ ืขื ืจืืืืืก, ืืืืจ ืืืื ืงืืืืืื ืืื ืืขืื ืืฉืืขืืช ืืชืืืื ืืคืืชืื, ืืืชื ืืื ืืืืขืืช ืงืืืื ืืฉืืขืืชืืืช ืืืืจืง ืืช ืื ืืืชืจ. ืื "ืืื ืชืืงื ืชื ืืช ืื" ืื "ืื ืืื ืฉืืืจ", ืืื "ืืื ืืืืงื ืืช ืื", "ืื ืืื ืืืคืฉืจืืืืช ืืืืจืืช" ืืืคืืื ืื ืืืืืง ืืืงืื ืจืื ืืืืจ ืืฉืืื ืืืืื ืขื ืืืื.1 419
ืืฉืื ืื ื ืขืืืืื ืขื ืกืืื ืงืืืื ืื ืื ื ืืื ืืกืื ืฉืืชืฃ ืื ืฆืคืื ืืืืฉื. ืจืื ืืืื ืฉืืชืฃ ืื ืืขืืืจ ืื ื ืืืชืื ืงืื ืืืจ ืืืชืจ ืืืื ืืืชืจ ืืื ืืฉืืื ืืืืืื ืื ืืืจืืืื ืืื ืฉืืืจืื ืื ืืืฉืืจื.
ืืืืจืื ืืืจืืืืื ืฉืขืืื ื ืืฉืื ืื ืืืืื ืืขืืืื ืืฉืืืคืช:
1. ืงืจืืชื ืืื ื ืืืื ืื ืฉืืจื ืฉืืกืืื ืืชื, ืืื ืืชืืืื ืืคืจืืืงื ืฉืื ืืื ืืืฆืจืช ืืขืืืช ืืืืื ืืืฉืืช.
2. ืืกืืื ืจืฅ ืืกืืืื ืืืืืืช - ืื ืื ืืื ืืืืื ืืฉืืืจ ืืืจืื ืืื ืื ืืืืืช ืืขืฉืืช ื ืืง ืืืืชื.
ืืืืืื ืจ ืืืื ืืืืฉื ืืฉืืืข ื ืืืจ ืืืจืืื ืขื ืื ืืืงืจืื ืืืื ืืืืืืืืช ื ืืกืคืืช. ืืืืื ืื ืืืฆืืจืฃ ืืืื ื ืืงืืฉืืจ:
https://www.tocode.co.il/talking_ai
1 419
๐ ืืกืื ืืช ืืืจืฆืช ืกืืื ื ืงืืืื ืขื ืืืืื ื ืฉืื ื
ืกืืื ืื ืืืืื ืืืคืจื ืกืืื ื ืงืืืื ืื ืืชืืื ื ืืจืืฉืื ื ืฉืืืชืงื ืช ืืงื ื ืืืื ืืืื ืืฉืืชื ืืืืชื ืืื ื ืืืจืื ืืกืืืช. ืืฃ ืืื ืื ืืืื ืืืขืช ืืจืืฉ ืื ืกืืื ืืงืืืื ืืขืฉื ืืชืืืื ืืืืืขื ืืืื. ืืืคืืื ืื ืืืฉืฃ ืืืชื ื ืืกืื ืืช ืืืืื ืืฉืืขืืชืืืช ืืขืืืื ืขื ืกืืื ื ืงืืืื.
ืืืื ื ืจืื ืืื ืืืืืืืช ืืืคืชืขืืช ืืืื ืืงืจืืช ืืืืืื ืจ ืืฉืืืข ืฉืืขืกืืง ืืืืืืช ืืืืข ืืขืืื ืืกืืื ืื ืืืืืื.
โ ืืจืขืืช ืืืืื ืฉืคื
ืืงืืจ:
https://ron.stoner.com/how-i-won-a-championship-that-doesnt-exist/
ืืกืืฃ ืื ืืืจ 2025 ืจืื ืกืืื ืจ ืืขืื ืืชืจ ืขื ืชืืื ื ืฉื ืืืืข ืื ืืชืื ืฉืืื ืืื ืืืืืคืืช ืื ืืืืฅ ืืฉื ืชืืช ืฉืืชืงืืืื ืืืื ืื. ืืื ืื ืขืืื ืืช ืืืฃ ืฉื ื ืืืืฅ ืืืืงืืคืืื ืขื ืงืืฉืืจ ืืืฃ ืื ืฆืืื ืฉืื. ืื ืืกืคืืง ืืฉืืื ืืืจืื ื ChatGPT ืืืฆืื ืืช ืืงืืฉืืจ ืืืกืคืจ ืฉืืื ืืื ืืืืื ืืชืืืื ืืฉืืื ืืฆ'ืื.
ืืชืจืืื ืฉื ืกืืื ืจ ืืื ืฉืืื. ืกืืื ืจ ืืจื ืืืืื ืืืืชืงื ืืฉื ืฉืื ืืืืื ืืืคืืฉ ืืจืฉืช - ืืื ืืืืืจ ืื ื ืขื ืืื ืงื ืืจืืืช ืกืืื ืื ืืืืื ืืืืืื ืืืื ืฉืืืฆืืื ืืืคืฉ ืืจืฉืช. ืืืชื ืื ืื ืื ืืืื ืืืืืช ืื ืืฆื ืืจืขื ืขื ืืื ืืืจืืื ืืืื ืืื ืฉืืงืืื ืืชืจืื ืฉืืคืจืกืื ืืืืืืช npm ืฉืื ืืขืฆื ืจืืืืืช, ืืืชื ืืกืืื ืืชืงืื ืืื ืืืืื ืฉืืืืืจ ืืจืืืื.
โ ืืื ืืกืืื ืืืฆืจ ืืืื ืืืืื
ืกืืื ื ืงืืืื ืื ืืื ืคืืชืื ืืืืืื ืืื ืฉืื ืืืืืจืื ืืืจืืืก ืืฉืจืื, ืื ืฉืืื ืฉืืกืืื ืืฉืชืืฉ ืืืืชืจ ืืืงื ืื ืื ืื ื ืฆืจืืืื ืืฉืื ืืืชืจ. ืฉื ื ืืืืื ืืขื ืืื ืื ืืืืืจืื ืื ื ืฉืืืืืืจ ืืื ืืฃ ืคืขื ืื ืขืืื ืืืง.
ืืืงืจื ืืื ืื ืืจืืคืืง ืืืืืื ืฉืื ืื ืจืืฆืื ืืืคืฉืจ ืืขืืืจ ืืืฉื ืืฉื Hermes ืืืฉืชืืฉ ืืชืืื ืืช ืืื ืืืื ืฉืืื ืื ืื ื ืืกื ืื ืชื ืืงืฉืืช ื Hermes ืืืืื ืืืื ืืืชืจ. ืืชืืฆืื ืืืชื ืฉืืกืคืืง ืืืชืื ืืช ืืืืื HERMES.md ืืืืืขืช ืงืืืื ืืงืืื ืงืื ืืืืื ืืืชื ืืชืฉืืื ืืืื ืืืชืจ ืขื ืืคืืชืื:
https://github.com/anthropics/claude-code/issues/53262
ืืืงืจื ืืืจ ืืืคืืงืื (ืขืื ืกืืื ืงืืืื) ืืชืืืจ ืืชืืื ืืช ืืื ืืืื ืฉื ืืืืืื ืงืืคืืืืื, ืืื ืืืื ืืื ืืืฆืืื ืืกืืืืื ืืฉืชืืฉ ืืืืชืจ ืืงืฉืืช ืืชืฉืืื ืืื ืกืืื ืืืฉืชืืฉืื ืืช ืืื ืื ืืืงืื:
https://github.com/anomalyco/opencode/issues/16937
โ ืืขืืช ืฉื ืืืืื ืืืืงืช ื ืชืื ื ืคืจืืืงืฉื
ืืงืืจ:
https://x.com/lifeof_jer/status/2048103471019434248?s=46
ื'ืจ ืงืจืืื, ืืืืืกื ืฉื PocketOS ืืืืืจ ืืช ืงืืื ืืืคืืก ืืกืืืืช ืืคืืชืื ืฉืื ื Cursor. ืืื ืฉืื ืฉืืืืืฉืื ืงืืืฅ ืืงืกื ืืชืืงืืืช ืืคืจืืืงื ืืื ืืชืื ืืืงื ืืืืฉื ืืกืืืืช ืืคืจืืืงืฉื - ืืื ืืืจืืฅ ืชืืืื ืชืืืืงื ืฉืืจืชื.
ืงืืื ืืืคืืก ื ืชืงื ืืืขืื, ืืฉื ืฉืฆืจืื ืืืฆืืจ ืืืืฉ ืืช ืืกืืืื, ืืฆื ืืช ืืืืงื ืฉื ืกืืืืช ืืคืจืืืงืฉื ืืืฉืชืืฉ ืื ืืื ืืืฆืืจ ืืืืฉ ืืช ืกืืืืช ืืคืจืืืงืฉื - ืืื ืืืง ืืช ืื ื ืชืื ื ืืืฉืชืืฉืื.
ืืขืืืื ืขื ืกืืื ื ืงืืืื ืื ืื ื ื ืืืื ืืืฉืื ืฉืืฉ ืื ื ืขืืืจ ืืืฉื ืืืืื ืขื ืืืืฉื ืฉืชืืื ืืขืฉื ืื ืฉืืื ืืคืจืืืงื. ืื ื ืืื ื 99% ืืืืงืจืื. ืืฉืืจ ื-1% ืขืืื ื ืืืืื ืื ืื ืื ื ืืื ื ืืืืื ืืกืืืื ืฉืืื ืขื ืืื ืฉืื ืื ืกืืื ืื ืคืืืืื ืืขืฉืืช ื ืืงืื.
โ ืืืจืงืช ืคืจืืืคื ืืืืืื ืืืฉืชืืืืช ืขื ืืืื ืืช
ืืงืืจ:
https://neciudan.dev/cline-ci-got-compromised-here-is-how
ืืฆืืืช ืฉื cline (ืขืื ืกืืื ืงืืืื) ืจืฆื ืืืืื ืืช ืืืงืฉืืช ืฉืื ืืงืืืื ืืืฉืชืืฉืื ืืืืฆืขืืช AI. ืื ืื ืืฆืจื Github Action ืฉืืคืขืื ืืช ืงืืื ืืื ืืฉืื ืื ืคื ืื ืืืงืื ืืืชืืื. ืืคืจืืืคื ืืงืืื ืืืื ืืช ืืืชืจืช ื Issue ืฉื ืคืชื ืืืกืืื ืืืคืขื ืขื ืืจืฉืื ืืืจืฆืช ืืืื:
allowed_non_write_users: "*"
claude_args: >-
--allowedTools "Bash,Read,Write,Edit,Glob,Grep,WebFetch,WebSearch"
prompt: |
**Issue:** #${{ github.event.issue.number }}
**Title:** ${{ github.event.issue.title }}
ืื ืืงื ืืจืื ืืื ืขื ืฉืคืืจืฆืื ืจืื ืืช ืื ืืืฆืจื Issue ืขื ืฉื ืฉืืจื ืืกืืื ืืืชืงืื ืืืืืช npm ืืืื ืืช ืฉืื ืืฆืจื ืืื ืืฉืชืืื ืขื ืืืื ืช ืืืืื, ืืืื ื ืขื ืื ืืคืจืืืงื.
ืกืืคืืจ ืืืื ืงืจื ืขื Coderabbit, ืกืืืื ื Code Review ืืืคืฉืจ ืืงืจืื ืขืืื ืืื:
https://kudelskisecurity.com/research/how-we-exploited-coderabbit-from-a-simple-pr-to-rce-and-write-access-on-1m-repositories
โ ืงืืืื ืืืืจ ืืืืื ืืืืชืจ ืืืืื
ื ืงืืื ืืืจืื ื ืืจืฉืืื ืืื ืชืจืืืช ืืขืืืื ืฉื ืขืืื ื AI - ืืืชืื ืืืื ืงืื, ืืืืืฃ ืืืจ ืืคืจืืืงืฉื ืืืจื ืืืืงื ืงืฆืจื, ืืกืืื ืขื ืืกืืื ืฉืืืชื ืืช ืืงืื ืื ืืื.
ืื ืจืื ืฉืืืืื ืืืืจ ืฉื ืคืืฆ'ืจืื ืืื ืืื ืืืืจืืื ืืืื ืืื ืืืืคืืงืื:
https://github.com/anomalyco/opencode/security/advisories/GHSA-vxw4-wv6m-9hhh
ืฉื ืืืคืืงืื ืคืชืื ืฉืจืช HTTP ืฉืื ืืืจืฉ ืืืืืืช ืืืืคืฉืจ ืืจืฆืช ืคืงืืืืช ืขื ืืืืฉื ืฉื ืืืคืชื. ืืชืืฆืื ืืื ืฉืืชืจืื ืืืื ืืื ืืืืืื ืืืจืืฅ ืงืื ืืื ืืืฉืชืื ืจืืืืืช ืืืืจืืกืื ืขื ืืืฉืืื ืฉื ืืคืชืืื ืฉืืจืืฆืื ืืืคืืงืื ืืืืืฉืื ืืืืชื ืืชืจืื.
โ ืกืืืื1 419
๐ ืืืงื ืื ืืืืชืจืื
ืืืงืฉืชื ืืงืืื ืืืคืืก ืืืชืื ืืืืื ืืืคืืืงืฆืืืช Hello World ืืคืืืกืง. ืืงืื ืฉื main ืฉืืื ืืชื ืืื:
from app import create_app
app = create_app()
if __name__ == "__main__":
app.run(host="127.0.0.1", port=5100, debug=True)
ืคืืจื 5100 ืฉื ืื ืื ื ืืืงืฉืชื. ืืช debug ืืื ืืชื ืขื ืืขืช ืขืฆืื ื host ืืื ืกืชื ืจืขืฉ. ืคืืืกืง ืืฉืชืืฉ ื 127.0.0.1 ืืชืืจ ืขืจื ืืจืืจืช ืืืื.
ืืจืืข ืฉืขืจื ืื ื ืืชื ืืื ืืืืื ืืช ืืงืืืฅ, ืชืืคืก ืืืงื ืื ืืื ืืงืฉื ืขืชืืืืช ืืขืืื ืืืจืื ืืืคืชืื ืคืืืชืื ืืชืืืช ืืื ืื ืฉื.
ืืขืืืื ืืืืชืืช ืขื ืกืืื ื ืงืืืื ืื ื ื ืชืงื ืืืืื ืืืงื ืื ืืืืชืจืื ืืื ื ืืืื ืฉืืฉ ืืชืืืืืช ืืืืชืืช ืื ืขืืฉืื ืืืชื. ืืฆื ืืื ืื ืงืืช ืงืื ืฉื ืืืืช ืฉืืจืืช ืืืื ืืืืืช ืืืชืืจ, ืืฆื ืฉื ื ืืืฉืืืจ ืืืงื ืื ืืืืชืจืื ืฉืืืจืืื ืืงืื ืืืืืช ืคืืืช ืืจืืจ ืจืง ืืกืื ืืืชื ื ืืขืชืื.
ืืคืชืจืื ืฉืื ืืืื ืืื ืืืืื ืงืืื ืืืืงืืช ืืืืืืืืืช ืืื ืคืืฆ'ืจ ืืื ืื ืงืืช ืืช ืืคืืฆ'ืจ ืืคื ืืืืจืช ืกืืื ื ืืงืื ื ืคืจื. ืื ืกืืื ืื ืืงืื ืืคืกืคืก ืืื ื ืืกืืื ืื ื ืืืกืืฃ ืืืชื ืืงืืืฅ ืืืจืืืช ืกืืื ืื ืืงืื. ืืืจื ืื ืืงืื ืื ื ืืืื ืืืืขืืจ ืืืืืงืืช ืืืืืืืืืืช ืืื ืืืืื ืฉืกืืื ืื ืืงืื ืื ืฉืืจ ืืืื, ืืื ืื ืืชืืืื ืืื ืงืืจื ืืืืื ืืืืช.
ืืืืจื ืืื ืืงืื ื AI ืงืื ืขืืื ืื ืื ื ืืืื ืื ืืืงื.
ื .ื. ืื ืืืืื ืืื ื Harness ืืืจืืื ืืืืงื ืื ืืืืืชืจืื. ืืคืขืืื ืืืชืจ ืงื ืืืขืชืืง ืืช ืืคืจืืืคื ื pi ืื ืืงืืคืืืืื ืืืจืืืช ืื ืื ืืขืฉื ืืืงืื ืื ืงืืช ืงืื ืื ืืคื ืฉื ืงืืื ืงืื. ืืืฉืืง ืืื ืื AI ืืื ืคืืืชืื. ืืืขืช ืฉืื ืฆืจืื ืืฆืืื host=127.0.0.1 ืืงืจืืื ื run ืื ืื ืืจืืจืช ืืืืื.1 419
๐ ืืืง ืืงืืื ืขืืืจ ืงืืืื ืืืจื ืื ืฉืื ืื
ืืชืืื ืืืืืื ืจ ืืจืืืชื ืืื ืืืฉืชืืฉ ืืืื ืืขืืืื ืขื ืกืืื ื ืงืืืื ืืืืช ืืืืืฆืืช ืืืฉืืืืช ืืืชื ืื ืืคืื ืืงืืืืืื. ืื ืคืขื ืฉืืฉ ืฉืื ืื ืงืื ืขืืฉืื ืงืืืื ืืืืจื ืื ืื ืืชืืจืืื ืืคืฉืจ ืืืฉืชืืฉ ื
git reset --hard ืืื ืืืืืจ ืืืืจื.
ืืืง ืืืืฉืชืชืคืื ืืขืืจื ืฉืืคืฉืจ ืืขืฉืืช ืืช ืืงืืืืืื ืืืื ืืืืืืืืช ืืื ืื ืฉืืืืื. ืืืืชื ืืืงืืจ ืืช ืืจืขืืื ืืฉืืืชื ืืจืืืช ืฉืื ืขืื ืื ืืงืืืช. ืื ืืชื ืืงืืื ืงืื ืืคืฉืจ ืืืฆืืจ ืงืืืฅ .claude/settings.json ืืชืืงืืืช ืืคืจืืืงื ืขื ืืชืืื ืืื:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "bash ~/.claude/hooks/auto-commit.sh",
"async": true,
"timeout": 30
}
]
}
]
}
}
ืืื ืืกืงืจืืคื auto-commit.sh ืืจืืฅ ืื ืคืขื ืฉืงืืื ืืกืืื ืืืชืื ืชืฉืืื. ืืช ืืกืงืจืืคื ืขืฆืื ื ืชืชื ืืงืืื ืืืชืื ืืืื ื ืจืื ืื:
#!/usr/bin/env bash
# Stop hook: auto-commit Claude's changes using the last user prompt
# as the commit message.
set -uo pipefail
INPUT=$(cat)
read -r STOP_HOOK_ACTIVE TRANSCRIPT_PATH PROJECT_DIR < <(
printf '%s' "$INPUT" | jq -r '[.stop_hook_active // false, .transcript_path // "", .cwd // ""] | @tsv'
)
[ "$STOP_HOOK_ACTIVE" = "true" ] && exit 0
[ -n "$PROJECT_DIR" ] && cd "$PROJECT_DIR" 2>/dev/null || exit 0
git rev-parse --git-dir >/dev/null 2>&1 || exit 0
git add -A 2>/dev/null || exit 0
git diff --cached --quiet && exit 0
# Last user text message from this turn's transcript.
# Skips tool_result entries and slash-commands (which start with '<').
USER_PROMPT=""
if [ -f "$TRANSCRIPT_PATH" ]; then
USER_PROMPT=$(jq -r '
select(.type == "user") | .message.content
| if type == "string" then .
elif type == "array" then (map(select(.type == "text")) | .[0].text // "")
else "" end
| select(. != "" and (startswith("<") | not))
' "$TRANSCRIPT_PATH" 2>/dev/null | tail -1)
fi
# Use the user prompt as the commit message; first line as subject (capped at
# 72 chars), remaining lines as the body.
if [ -n "$USER_PROMPT" ]; then
SUBJECT=$(printf '%s' "$USER_PROMPT" | head -1 | cut -c1-72)
BODY=$(printf '%s' "$USER_PROMPT" | tail -n +2)
else
SUBJECT="checkpoint: $(date +%H:%M)"
BODY=""
fi
if [ -n "$BODY" ]; then
git commit --no-verify -m "$SUBJECT" -m "$BODY" >/dev/null 2>&1 || true
else
git commit --no-verify -m "$SUBJECT" >/dev/null 2>&1 || true
fi
exit 0
ืงืืื ืืคืขืื ืืช ืืกืงืจืืคื ืขื JSON ืฉื ืืืืข ืขื ืืฉืืื ืืืืจืื ื. ืื ืฉืืขื ืืื ืืืชื ื ืืชืื ื JSON ืืื ืืื ืืืืืขื ืฉื ืืืฉืชืืฉ, ืื ืื ื ืืืื ืฉืืคืจืืืคื ืฉืื ืืืคื ืืืืืขืช ืืงืืืื (ืื ืฆืจืื ืืืืขื ืืืชืจ ืืชืืืืืช ืืคืฉืจ ืืืฉืชืืฉ ื git commit --amend ืืื ืืชืงื). ืืืชืจ ืืืืื ืงืืื ืืืกืืฃ --no-verify ืืคืงืืืช ืืงืืืื ืืื ืืืื ืขื ืงืืืื ืืืงืก. ืื ื ืืืฉื ืฉืื ืืืื ืืืืืื ืื ืืฉืชืืฉ ืืงืืืื ืืืงืก. ืืฉ ืื ืืืืงื ืืืชืืื ืฉืืืืืช ืขื ืื ืืกืงืจืืคื ืื ืื ืื ื ืื ืืชืื ืจืืคื.
ืกื ืืื ืจืขืืื ืืขื ืืื. ืฉืืื ืื ืฉืืคืฉืจ ืืืคืขืื ืืช ื hook ืื ืืงืืืืช ืืคืจืืืงื ืื ืืืื ืื ืืืืคื ืืืืืืื ืื ืจืืฉืืื ืืืชื ื settings ืฉื ืงืืื ืืชืืงืืืช ืืืืช. ืื ื ืืชืื ื ืืืชืืื ืขื ืคืจืืืงื ืืื ืืืจืืืช ืืื ืื ืืขืืื ืืืืจื ืืื.1 419
๐ ืืืืจืฆืืืช ืืืืจืืช, ืคืืฆ'ืจืื ืืืืืื
ืืืื ืืืืจืื ืฉืงืื ืืคื ืืื ืืคืืื ืืื ื. ืืื ืงืื ืืื ืืื ื ืืื ืฉืืืืื ืืื ืืืื ื. ืืืจื ืฉืืื ืกืช ืืืชื ืืชื ืชืงืืข ืืืชื.
ืืืืืื ืืช ื AI ืืื ืื ืืืืฆืจ ืืืชืจ ืงืื,
ืื ืื ื ืื ืฆืจืืืื ืืืชืจ ืงืื, ืืจืื ืืืขืจืืืช ืืืืื ืืฉ ืืืชืจ ืืื.
ืืืืืื ืืช ืืื ืืืืฆืจ ืืช ืืงืื ืื ืืื.
ืืืชืจ ืืืืจืฆืืืช,
ืืืชืจ ืืืืงืืช,
ืืืชืจ ืฉืื ืืืื ืขื ืงืืื,
ืืืชืจ ืืืืจืฆืืืช,
ืคืืืช ืืืงืฉืจืืช ืจืืฉืืช ืืื ืื ืื ืื.
ืืฉ AI ืืืชื ืื ืฉืืื ืืชื ืืช ืืงืื ืฉืืฉืืืจ ืืื ืคืืืช ืืืจืื ืื ื ืืืื ืฉืืฉ ืืขืื ื System Prompt. ืืืืจื ืืื ืื ืืฉืืืจ ืขื ืืงืืื ืืื ืืืชืื ืืืืจืืง, ืืืชืื ืืืืจืืง. ืืืืจืฆืืืช ืืืืจืื, ืคืืฆ'ืจืื ืืืืืื.
1 419
5. ืื ืืฉ ืืืืขืืช ื ืืืื ืืืชืื ืืช ื ืืกืืฃ ืืืชื ืืจืฉืืืช ืืืืืขืืช ืฉื ืืฉืืื.
ืขืืฉืื ืืืืขื ืืฉืืจื ืืื ืืฉืืื ืฉื ืืคืื ืงืฆืื:
const message = await streamAssistantResponse(currentContext, config, signal, emit, streamFn);
ืฉืืจื ืื ืคืื ื ืืืืื ืืืืงืฉืช ืืช ืืืืืขื ืืืื. ืืงืื ืืงืกื ืืืื ืืช ืื ืืืืืขืืช ืืฉืืื. ืื ืืืืื ืืืืืจ ืฉืืืื ืื ืื ื ืืกืืืืื ืืื ืืช ืืคืื ืงืฆืื, ืื ืื ืื ืื ื ืืคืขืืืื ืขืื ืฉืืจื ืืฉืืื:
const toolCalls = message.content.filter((c) => c.type === "toolCall");
ืืืืื ืฉืคื ืจืืื ืืืืขืื ืืขืืื ืขื ืืืื. ืขืืืื ืขื ืืืื ืืืืจืช ืฉืืืืื ืืืืืจ ืืกืืื ืืืืืงื ืฉืืืืจ ืืืื ืืื ืฆืจืื ืืืคืขืื. ืืื ืืื ืคืื ืงืฆืื ืฉืกืืื ืืงืืืื ืืืืืจ ืืืืืื ืฆืจืื ืืช ืืชืืฆืื ืฉืื ืืื ืืืฆืข ืืฉืืื. ืืฉืชืฉืืืช ืืืืื ืืืืืช ืืงืฉืืช ืืืคืขืืช ืืืื ืืกืืื ืชืืคืก ืืช ืืืงืฉืืช ืืืคืขืื ืืช ืืืืื ืืจืฉืืื. ืืกืืื ืืืกืืฃ ืืช ืชืืฆืืืช ืืคืขืืช ืืืืื ืืงืื ืืงืกื ืืืืืืจืฆืื ืืืื ืฉื ืืืืืื ืืืืื ืืืจ ืืงืื ืืช ืืืืืขืืช ืืื ืขื ืชืืฆืืืช ืืคืขืืช ืืืืื ืืื ืฉืืคืฉืจ ืืืื ืืืชืงืื.
ืืืจื ืฉืฉืืื ื ืืืืขื ืืืืื, ืงืืืื ื ืชืฉืืื, ืืคืขืื ื ืืืื ืืืืืงื ื ืืช ืืชืฉืืืืช ืฉืืื ืขื ืืงืื ืืงืกื ืื ืื ื ืืืืขืื ืื ืงืืื ืฉื ืงืจืืช turn_end. ืคืื ืืืคืฉืจ ืื ื ืืืชืื ืชืืกืคืื ืฉืืชืคืกื ืืช ืื ืงืืื ืืืืช ืืืขืฆืจื ืืช ืืืืืื ืืื, ืืื ืืื ืืงืฉื ืืืืืืช ืืขืฆืืจื ืื ืื ื ืืืฉืืืื ืืืืืจืฆืื ืืืื. ืืืืืช ืืคืขืืช ืืืืื ืชืืขืฆืจ ืืฉืืืืื ืื ืืืงืฉ ืืืคืขืื ืฉืื ืืืื, ืืฉืืกืืื ืืืืื ืฉืืคืขืื ื ืืกืคืืง ืืืื ืืฆืจืื ืืขืฆืืจ ืื ืืฉืื ืืืืื ืืืืืจืื ืขืจื ืขืฆืืจื.
ืืืืืช ืืกืืื ืืื ืืื ืฉื ืกืืื ื ืงืืืื ืืืื ืืืคืืช ืืื ืืืืขื ืฉืื ืื ื ืฉืืืืื. ืืืืืช ืคืื ืจืืื ื ืืื ืืืืืื ืืื ืื ืืื ืืื ืืื ืืืคืฉืจืช. ืืืืืื ืฉืงืจืื ื ื ืงืจืืช ืืืืืช React ืฉืื ืงืืฆืืจ ืฉื Reason ื Act, ืืื ืืืืจ ืฉืืงืื ืฉืืื ืืืืขื ืืืืื ืฉืคื, ื ืืชื ืื ืืืืื ืืช ืืืจืืฅ ืืืื, ืฉืืื ืืช ืืชืืฆืื ืฉื ืืืืื ืฉืื ืืืืื ืืืืฉืื ืืืืืื ืขื ืฉืืื ืืืชืจ ืงืืื ืืืคืขืื.
โ ืฉืืืืช ืืืืืืื ืืืช
ืงืจืื ืืช ืืงืื ืื ืกื ืืืฉืื:
1. ืืืืื ืืฆืืื ื ืจืฆื ืืขืฆืืจ ืืช ืืืืืช ืืกืืื ืืฉืืืืื ืจืืฆื ืืืืฉืื ืืืืคืขืื ืขืื ืืืื?
2. ืืืื ืืืื ืขืฉืืืื ืืืจืื ืืกืืื ืืืืืื?
3. ืืื ืืืืื ืื ืืชืืืื ืืื ืืฆืื ืืขืืืื ืฉืื ืื ื ืืืืจืื ืขื ืกืืื ืื ืืืืื? ืื ืงืืจื ืืืฆื ืชืื ืื? ืืืฆื ืืืืก ืืืืืืื? ืืืฆื Ask?1 419
๐ ืงืจืืื ืืืืจืืช ืืืืืืช ืืกืืื ืฉื ืคืื
ืคืื ืืื ืกืืื ืงืืืื ืืื ืืืืืกืื, ืื ืฉืืืืจ ืฉืืื ืืืื ืืขื ืืืื ืคืืฆ'ืจืื ืืืฉืืื ืืงืื ืืื ื ืชืืฆืืืช ืืืืืช ืขืืื ื ืืื ืืช ืืื ืืจืืืืช. ืขืื ืื ืืืืจ ืฉืืคืฉืจ ืืืื ืก ืื ืืงืืืช ืืงืื ืฉืื ืืืืืื ืื ืงืืจื ืฉื, ืฉืื ื ืคืื ืืื ืฉืจืืฆื ืืืืื ืืื ืืืจืื ืขืืืืื.
ืืจืืคื ืฉื ืคืื ื ืืฆื ืืื:
https://github.com/badlogic/pi-mono/
ืืืฉืืื ืืืืื ืืื ืขืืืืช ืืืืืช ืกืืื ื ืกืชืื ืขื ืืงืืืฅ:
https://github.com/badlogic/pi-mono/blob/main/packages/agent/src/agent-loop.ts
ืื ืืคืฉ ืืช ืืคืื ืงืฆืื runLoop. ืื ืืืืืืฉ ืืื ืฉืืื - ืกืืคืจ ืงืจืื ืืืชืืขื:
async function runLoop(
currentContext: AgentContext,
newMessages: AgentMessage[],
config: AgentLoopConfig,
signal: AbortSignal | undefined,
emit: AgentEventSink,
streamFn?: StreamFn,
): Promise<void> {
let firstTurn = true;
// Check for steering messages at start (user may have typed while waiting)
let pendingMessages: AgentMessage[] = (await config.getSteeringMessages?.()) || [];
// Outer loop: continues when queued follow-up messages arrive after agent would stop
while (true) {
let hasMoreToolCalls = true;
// Inner loop: process tool calls and steering messages
while (hasMoreToolCalls || pendingMessages.length > 0) {
if (!firstTurn) {
await emit({ type: "turn_start" });
} else {
firstTurn = false;
}
// Process pending messages (inject before next assistant response)
if (pendingMessages.length > 0) {
for (const message of pendingMessages) {
await emit({ type: "message_start", message });
await emit({ type: "message_end", message });
currentContext.messages.push(message);
newMessages.push(message);
}
pendingMessages = [];
}
// Stream assistant response
const message = await streamAssistantResponse(currentContext, config, signal, emit, streamFn);
newMessages.push(message);
if (message.stopReason === "error" || message.stopReason === "aborted") {
await emit({ type: "turn_end", message, toolResults: [] });
await emit({ type: "agent_end", messages: newMessages });
return;
}
// Check for tool calls
const toolCalls = message.content.filter((c) => c.type === "toolCall");
const toolResults: ToolResultMessage[] = [];
hasMoreToolCalls = false;
if (toolCalls.length > 0) {
const executedToolBatch = await executeToolCalls(currentContext, message, config, signal, emit);
toolResults.push(...executedToolBatch.messages);
hasMoreToolCalls = !executedToolBatch.terminate;
for (const result of toolResults) {
currentContext.messages.push(result);
newMessages.push(result);
}
}
await emit({ type: "turn_end", message, toolResults });
if (
await config.shouldStopAfterTurn?.({
message,
toolResults,
context: currentContext,
newMessages,
})
) {
await emit({ type: "agent_end", messages: newMessages });
return;
}
pendingMessages = (await config.getSteeringMessages?.()) || [];
}
// Agent would stop here. Check for follow-up messages.
const followUpMessages = (await config.getFollowUpMessages?.()) || [];
if (followUpMessages.length > 0) {
// Set as pending so inner loop processes them
pendingMessages = followUpMessages;
continue;
}
// No more messages, exit
break;
}
await emit({ type: "agent_end", messages: newMessages });
}
ืืื ืืืืงืื ืืืจืืืืื:
1. ืืกืืื ืืืคืฉืจ ืืืฉืชืืฉืื ืืืงืืื ืืืืขืืช ืืืื ืฉืืืืื ืืฉืืื ืืงืกื. ืืื ื pendingMessages ืืื ืื ื ืืงืืืื ืืืชื ืืืคืื ืงืฆืื getSteeringMessages ืืืจ ืืชืืืืช ืืคืื ืงืฆืื.
2. ืืืืืช ืืกืืื ืืืจืืืช ืืืืืื ืืคืืื, ืืืืืื ืืืืฆืื ืืช ืืืคืืช ืืืืืขืืช ื ืืกืคืืช ืฉืื ืื ื ืืืชืืื ืืืจื ืฉืืกืืื ืืชืืื ืืขืืื. ืืืืืื ืืคื ืืืืช ืืืจืืืช ืขื ืืขื ื ืืคืจืืืคื.
3. ืืืืืื ืืคื ืืืืช ืืขื ืืื ืช - ืืื ืฆืจืื ืืขื ืืช ืืคืจืืืคื ืืืืืื? ืืื ืื ืืฉืืื ืืช ืืืืืขื ืืืืื, ืืงืื ืืฉืืื ืืืื? ืืชืฉืืื ืืื ืื ืื ืื ืืกืืกื ืฉื ืกืืื ื ืงืืืื ืฉื ืงืจื ืืคืขืืช ืืืื.
4. ื ืฉืื ืื ืฉืืืขื ืืื ืฉืื ืืืืืื, ืืื ื ืืื ืืืืคื ืืืื ืืงืื ืฉื ืคืื, ืืฉ ืื ื ืงืจืืืืช ื emit ืขื ืืืื ืืืจืืข. ืืื "ื ืงืืืืช ืืชืืืจืืช". ืืขืืืื ืขื ืคืื ื ืืื ืืืชืื ืชืืกืคืื ืฉืืืคืขืื ืืื ื ืงืืืช ืืชืืืจืืช ืฉื ืจืฆื.1 419
๐ ืืชืื ืช ืขื ืืืจื ืืืืก
ืืืืื ืืฉืืง ืืชืืืื ื ืืืช ืฉืื ืจืฆืชื ืืงื ืืช ืืจื ืืืจ. ืืืชื ืจืง ืืขืื ืืืช ืขื ืืืจื: ืื ืคืขื ืฉืืืืงืช ืืช ืืืืจ ืืื ืื ืขืฉืชื ืจืขืฉ ื ืืจืื. ืืืืื ืื ืจืฆืชื ืืช ืืจืขืฉ ืืื ื ืืื ืื ืจืฆืืชื ืืช ืืจืขืฉ. ืืฉืฉืืืชื ืืช ืืืืืจ ืื ืืฉ ืืจืกื ืฉื ืืืจื ืืื ืืจืขืฉ ืืื ืขื ื ืฉืื ืืื ืื ืืืืื ืืื ืชืืฃ ืืกืืจ, ืืืืืช ืืื ืืืฆืื ืืืืืก ืืืจื, ืคืืจืง ืืช ืืืจื, ืืชื ืืช ืืืื ืฉื ืืจืืงืื, ืืจืืื ืืืจื ืืฉืืื ืขื ืืฉืจืื, ืืฉ ืื ื ืืจื ืืืจ ืฉืจืง ืขืืฉื ืืืจ ืืื ืืจืขืืฉื.
ืขืื ืืคื ื ืืืชื ืืืื ืคืืฉืชื ืืจืื ืืคืชืืื ืฉืืืืืงื ืืืจื ืืืจืืืืื ืืืืก ืืื ืืคืชืืจ ืื ืืขืื. ืืืขืจืืช ืืืืขืจืช? ืืื ืืขืื, ื ืื ืกืื ืืงืื, ืืืกืืคืื ืืื ืงืืฆื CSS, ืื ืฉืืืจืื ืฉืื ืืืจ ืืืืืจืื ืืืจื. ืืืืืื ืขืืืื ืืืฉ ืื ืขืืฆืื ืืืฉ. ืืฉืจืช ืืืื? ืืื ืืขืื, ื ืื ืกืื ืืงืื ืฉืืชืงืฉืจ ืขื ื DB, ืืฉืคืจืื ืืช ืืฉืืืืชืืช, ืืืกืืคืื ืืื ืืงืกืื ืืืคืงืง ืืฉืชืืจืจ. ืืชืื ืชื ืืืืจื ืื ืื ืฉืื ืกืืคืจ ืืงืฆืืขืืื, ืื ืืืืขืื ืืืื ืก ืืืขืจืืช ืืืืืจืืช, ืืืืง ืืืืืง ืืช ืืืืจื ืฉืฆืจืื ืืืขืืื ืืฉืืืจืื ืืืฆื ืงืฆืช ืืืชืจ ืืื ืืื ืฉืืื ืืฉืืชืืืื.
ืืฉื ืื ืืงืจืืืืช ืื ืืืืจื ืคื ืื ืืืชืื ืชื ืืืืจื.
ืืืขืื ืฉื ืืชืื ืชื ืืืืจื ืืื ืื ืืืข ืืงืฆืืขื. ืื ืื ื ืืืืจืื ืขื ืื ืฉืื ืฉืืืืืื ืืืื ืก ืืืชืงื ืื ืกืื ืฉื ืืขืจืืช, ืงืืจืืื ืงืื ืืื ืฉืคื, ืืืืื ืืขืืืช ืืคื ื ืืืื ืืจืืืื ืืช ืืงืฉืจืื ืืขืืื ืื ืืื ืืืขืจืืืช ืฉืื ืฉืื ืจืืืืื ืืคืกืคืกืื. ืืชืื ืชื ืืืืจื ืืืืขืื ืื ืื ืขืืฉืื ืืืืื ืืื ืืืืืง ืฆืจืื ืื ืชืง.
ืืืขืื ืฉืืื ืืื ืืืืฉื.
ืขื AI ืืื ืืจืื ืืขืืืช ืฉืืื ืืืื ืืคืชืืจ ืขื ืืืืืง ืืืจื ืงืื. ืืืื AI ืืืืง ืืช ืื ืืืจืืื. ืืื ืืืชืจ ืืื, ื AI ืืืคื ืชืืงืื ืื ืืกืืืืื ืืืืืจืื - ืืชื ืื ืฉืื ืื ื ืืืืขืื ืื ืืืืืง ืฆืจืื ืืชืงื.
ืืชืื ืช ืฉืืคืืฆื ืืง ืืืื ืืืืืช ืืขืงืฃ ืฉืืกืืจ 90% ืืืืขืืืช. ืขื ืื ืืืื ืืืืชื ืืืชื ืขื ืืื ืคืชืจืื ืืื ืืืฉืื ืคืขืืืื, ืืื ืืฉืื ืื ืืืงืื ืืฉื ืืช ืขืฉืจืืช ืงืืฆื ืงืื. ืืืื? ืืจืืข ืฉืื ื ืืืื ืืช ืืืขืื ืืืื ืืงืื ืืืืจ ืืืืจืืืช ืื ื ืฉืืื ืืช ืงืืื ืืฉื ืืช ืืช ืื ืืืขืจืืช ืืื ืืืชืืื ืืืืฉื ืืืืฉื ืืื ืืื ื ืืืชืจืืง ืืืขืงืคืื. ืื ืืขืงืฃ ืฉืื ื ืฉื ืจืง ืืขืืื ืืช ืืกืืื ืืืืฆืจ ืขืื ืขืฉืจืืช ืคืชืจืื ืืช ืขืงืืืื.
ืืืืข ืืืื ืืืืคืจื ืืืืืจื ืืงืื. ืืฉืืื ืืชืืงืื ืื ืฉื ืืขืชืื ื ืฆืืจื ืืืืฅ ืืฉืืื ืืขืจืืชืืช.
1 419
ืื .ื. ืกืืคืจ ืงืจืืื ืืคืืกื ืืื ืฉืฉืืืชื ืืืื ืืืชืืื - ืงืจืืื ืืืงืืจืชืืช
ืื ืืงืื ืงืื ืฉ AI ืืืชื ืืื ืฉืื ื ืืืื ืืช ืื ืืืืื ืื ืงืื ืฉืื ื ืืชืืชื
1 419
๐ ืืืฉ ืืืืื ืืืืช ืงืจืืืืืช ืืืคืชืืื ืืขืืื ื AI
ืื ืืืคืชืืื ืืืืืืืื ืืชืขืฉืืื ืืืจ ืืฉืชืืฉืื ื AI ืืื ืืืชืื ืืขื 90% ืืืงืื ืฉื ืื ืก ืืืืฆืจ ืฉืืื.
ืฉืืขืชื ืื ืขื ืฆืืืชืื ืฉืืชืขืงืฉืื ืื ืืืคืฉืจ ืืืคืชืืื ืืืชืื ืงืื ืืื ืืช ืืืืจื ืืืืืช Best Practices ืืขืืืื ืขื AI, ืืืืืจ ืืืงืื ืืืชืื ืืื ืชืงืจื ืืกืืืจ ืืช ืืคืื ืฉื ื AI, ืชืืื ืืื ืืื ืื ืืฆืจ ืืช ืืงืื ืฉืจืฆืืช ืืชืชืงื ืืช ืืคืจืืืคื, ืงืื ืืืงืื ืืืจ, ืงืืฆื ืชืืขืื ืื ืื ืฉืื ืืืื ืืื ืืงืื ืืช ืืงืื ืฉืฆืจืื.
ืืืืจืืช ืฉืืฃ ืืื ืื ืืืืข ืืื ืืจืื ืืืงืฆืืข ืขืื ืฉื ืชืืื, ืืฉ ืืื ืืืืื ืืืืช ืฉืืืื ื ืฆืืจื ืืืืื ืืคืชื ืืืจ ืืืชืืื:
ืืจืืฉืื ื ืืื ืืืืืื ืืช ืืืื ืืช, ืืืืจืืช ืขื ืืืืื. ืกืืื ื ืงืืืื ืืืืืื ืืขืืื ืืืขื ื, ืืฉืืจืช ืืคืงืืื, ืืืคืืืงืฆืืืช Desktop ืื ืืชืื VS Code. ืฆืจืื ืืืขืช ืืื ืืคื ืืช ืืืืื, ืื ืขืืฉื ืื ืืคืชืืจ ืืื ืืคืขืืืืช ืืืจืืืืืช ืฉืืคืฉืจ ืืขืฉืืช ืืืชื ืืื ืกืืืื. ืืืคืชืืื ืฉื ืืขืชืื ืืจืืืฉื ืื ืื ืืืืจ ืขื AI ืืื ืืื ืื ืืื ื ืืฆื.
ืืืืื ืืช ืฉื ืื ืืื ื ืืืื ืงืื ืืงืกื (ืฉื ื AI) ืืืชืืืช ืคืจืืืคืืื. ืืืื ื ืฉืื ืืืจ ืืื ืคืจืืืคื ืืฉืื ืื ื ืื ืืงืื ืชืฉืืื ืืกืคืืง ืืืื ืืืืืื ืื ื ืืืื ืื ืกื ืคืจืืืคื ืืืจ ืืืฉื ืืช ืืช ืืงืื ืืื ืืฉืคืจ ืืช ืืชืืฆืืืช. ืกืืื ืงืืืื ืืื ืืื ืืืืก ืืืืืืื ืืงืื. ืืชืืืช ืงืื ืืงืกื ืืคืจืืืคื ืื ืืืืจืช ืืืขื ืืืืืก ืืืืืืืื.
ืืืืื ืืช ืฉืืืฉืืช ืืื ืืืืจืช ืืืืืจืื ืืชืืืืื ืขืืืื: ืืื ืืกืืื ืืืืข ืฉืืงืื ืฉืืื ืืชื ื ืืื ืื ืขืืื? ืืื ืืงืื ืฉืงืืื ืืฆืื ื ืืืขืจืืช ืืฉืคืืข ืขื ืืงืื ืืืืฉ ืฉื ืืฆืจ? ืืืื ืื ืื ื ืฉืืืจืื ืขื ืืืืืช ืืฉืงืื ื ืืชื ืืืชืจ ืืืจ ืืื ืฉืื ืื ื ืืฆืืืืื ืืืืื? ืืฉืืื ืืฉืคืจ ืืช ืงืฆื ืืคืืชืื ื ืจืฆื ืืืจืืฅ ืกืืื ืื ืืืงืืื ืืกืืื ืื ืืขื ื, ื ืจืฆื ืืื ืืช ืืขืจืืืช ืฉืืคืชืืืช ืืช ืขืฆืื ืืืืืืช ืืขืืืช. ืืฉืืื ืืฉืืืจ ืขื ืืืืืช ืืงืื ื ืจืฆื ืืืืฆืจ ืฆืืืืจื ืืงืืืง ืืื ืื ืื ืื ืฉืืืคืฉืจื ืืืคืชืืื ืืืืื ืืช ืืกืืื ืื ืืืืืืฉืื ืฉืื ืื ื ืืืืขืื ืฉืื ื ืืื ืื. ืืืช ืืืจ ืืฉืืื ืืขืจืืชืืช ืขื ืชืืืื ืืคืืชืื ืื ืืชืื ื Outputs ืฉื ืืชืืืื ืืื ืืฉืคืจ ืืืชื.
ืืืื ืฉืืืฉืช ืืืืืื ืืืืช ืืืื ืฉืื ืืืืืืืืช ื AI ืื ื ืืืื ืขืื ืฉืชื ืืืืื ืืืืช ืฉืชืืื ืืื ืืฉืืืืช ืืืงืืืืช ืืืืืง ืืฉืืขืืชื ืืขืืื ืืืืฉ:
ืืจืืฉืื ื ืืื ืืืืืื ืืช ืืื ืืกืืช, ืืืืื ืื ืื ื ืืื ื, ืืื ืืืืงืื ืืืขืจืืช ืขืืืืื, ืืจืืืช ืืงืจื ืงืฆื, ืฉืืืืืช, ืืืืื ืืื ืงืื ืืืจื ืืืขืจืืืช ืืขืืื. ืืืืืืช ืืงืจืื ืืืืืื ืืืจ.
ืืืืื ืืช ืฉื ืื ืืื ื ืืืื ืงืื ืืงืกื, ืืื ืืคืขื ืฉืื ื, ืื ืฉื ืงืจื Context Switching. ืืคืชืืื ืืืจ ืืืื ืขืืืืื ืืืงืืื ืขื ืืกืคืจ ืกืืื ื ืงืืืื ืืืืกืคืจืื ืืืื ืจืง ืืืืื. ืื ืื ื ืงืืคืฆืื ืืืฉืืื ืืืฉืืื, ืืกืืื ืืกืืื, ืืคืืฆ'ืจ ืืคืืฆ'ืจ. ืื ืืคืฉืจ ืืืืืื ืืืชืจ ืืคืชื ืฉืืืฉื ืฉืืืขืืื ืืืืจ ืกืืืจ ืืชืื ื ืคืืฆ'ืจ ืืขืื ืฉืืืฉื ืืืืฉืื ืืืชืื ืืช ืืงืื. ืืขืชืื ืืืจืื ืืืงืืืืืืช ืืืืืฆืืข ืืืื ืืฉืืืืช ืืื.
ืชืืื GenAI ื ืืฆื ืืคืืชืื ืืื ืืืื ืืฉ ืืืฆืจืื ืืืฉืื. ืืืืจื ืฉืื ื ืืื ืื ืืืืืจ ืื ืืื ืฉืืืฆื ืืื ืืืชืืงื ืืืืืื ืืืืช ืืืืคืฉ ืืช ืืืืื ืฉืืืคืฉืจื ืื ื ืืืชืื ืงืื ืืืจ ืืืชืจ ืืื ืืืชืคืฉืจ ืขื ืืืืืช ืืืืฆืจ.
Available now! Telegram Research 2025 โ the year's key insights 
