Select Page
AgentK與AI的融合:打造自學能力的AGI核心技術

AgentK與AI的融合:打造自學能力的AGI核心技術

AgentK 是一個有團隊概念能自我進化的人工智能通用智能(AGI)項目,它由多個模塊化代理組成,這些代理能夠協同工作完成任務並不斷學習與改進。該系統的目標是透過最小的核心代理和工具集合,自我引導並逐步擴展其智能。

AgentK 介紹與說明

AgentK 的核心代理:

  1. Hermes:作為協調者,負責與人類互動以理解目標,管理任務的創建和分配,並協調其他代理的活動。
  2. AgentSmith:作為建築師,負責創建和維護其他代理,確保這些代理配備必要的工具並檢測其功能。
  3. ToolMaker:作為工具開發者,創建和完善代理所需的工具,確保系統保持靈活且裝備齊全。
  4. WebResearcher:作為知識收集者,執行深入的線上研究,為系統提供最新資訊,使代理能夠做出明智的決策並有效執行任務。

特點:

  • 自進化:AgentK 會隨著時間推移不斷學習和改進,建構新的代理和工具來擴展自身能力。
  • 模塊化:AgentK 由多個獨立的代理組成,每個代理負責特定的任務。
  • 協作:不同的代理之間可以相互協作,共同完成複雜的任務。

環境條件:

先註冊為 LangChain 的會員,價格可以看 https://www.langchain.com/pricing ,一開始直接選擇 Developer 即可

註冊成為 LangChain 會員之後,到 Settings -> API Keys -> Create API Key ,然後進行下一步驟

運行方式:

AgentK 在隔離的 Docker 容器中運行,需要在系統上安裝最新版的 Docker。

  • .env.template 複製到 .env
  • .env 文件中設置環境變量
  • 運行 ./agentk 或是 docker compose run –rm agentk

AgentK 基於 LangGraph 和 LangChain 框架構建,並鼓勵自我編寫測試。該項目仍在進行中,包括對異常代理和工具的檢測與修復。

更多資訊及貢獻方式可訪問其 GitHub 頁面,請看DEMO

進階功能

你可以進入原始碼中,AgengK/agents/ ,在這裡可以自訂義專屬自己的 Agents

在 AgentK/tools/ 下,則是可以自訂義 Actions,例如用google search或是產生行事曆

參考資訊

利用 Claude Dev 幫你自動化開發程式

利用 Claude Dev 幫你自動化開發程式

Claude Dev 提供了一個 AI 自動生成程式的開發工具,融合了 VS Code 的編輯器功能和強大的 Claude 3.5 Sonnet’s 模型。這套系統融合了代碼的自動生成過程,更在軟體開發的各個階段提供了全方面的支持。

特色介紹

代碼開發和文件管理的全新模式

利用 Claude 3.5 Sonnet’s 的主動式編碼能力,Claude Dev 能夠逐步處理複雜的軟件開發任務。它不僅允許創建和編輯文件,還能探索複雜項目,並在獲得使用者許可後,執行終端機命令。

以往要採用AI開發,必須在各種AI工具以及視窗中切換,有遇到錯誤也需要手動張貼錯誤訊息,提供給AI除錯,現在超越了傳統的代碼自動完成或技術支持,為開發者提供了更全面的幫助。

AI 監督並且和使用者互動

傳統的自主AI腳本通常在沙盒環境中運行,而 Claude Dev 提供了一個圖形使用者UI,可以用來監督每一個變更的文件和執行的命令。這種方式確保了操作的安全性,並使開發者能夠安全地探索主動式 AI 的潛力。你還可以將圖片貼入聊天中,利用 Claude 的視覺能力將模型轉換成功能完整的應用程序,或者用截圖修復錯誤。

深入瞭解每一步的變更

Claude Dev 允許你直接在編輯器中查看每次更改的差異,並在聊天中通過語法高亮預覽跟踪進度。終端命令也可以直接在聊天中運行,你無需自己打開終端機。此外,每次使用工具或發送信息到 API 前,都會出現許可按鈕(例如「批准終端命令」),讓你能夠控制操作。

代碼和項目管理的高效工具

Claude Dev 擁有全面性寫程式的能力:

  • 執行系統上的終端命令
  • 列出指定目錄的頂層文件路徑
  • 遞迴列出指定目錄及其子目錄中的所有文件路徑
  • 解析頂層源代碼文件以提取關鍵元素名稱,如 Class 和 Function 等。

透由這些工具的運用,結合自然語言處理的基礎,使 Claude Dev 能夠理解代碼庫的結構和意圖,從而有效地協助開發者去開發大型和複雜的項目。

高級代碼概覽和文件結構的智能分析

從項目文件結構到高級代碼概覽,Claude Dev 使用如 tree-sitter 的工具來解析源代碼,提取出 Class 、Function、 Method 等定義。這種深度分析使 Claude Dev 能夠迅速了解代碼的結構和用途,並根據任務需要閱讀最相關的文件。

實時監控AI的成本控制

Claude Dev 也能跟踪整個任務循環和個別請求的 API 使用成本,並設定在任務中允許的最大 API 請求數量。任務完成後,Claude 可以決定是否通過如

open -a "Google Chrome" index.html

的終端命令來向你展示結果,只需點擊一下即可運行。

這些高級功能證明了 Claude Dev 不僅是代碼自動生成的工具,更是一個全面的開發環境,讓開發者能夠更有效地控制和優化他們的開發流程。通过提供一個全方位的開發解決方案,Claude Dev 真正實現了零代碼開發的未來。

參考資料

https://github.com/saoudrizwan/claude-dev

下載 VSCode Extension

ANTHROPIC API

如何使用2024年提示詞冠軍的CO-STAR框架優化Prompt

如何使用2024年提示詞冠軍的CO-STAR框架優化Prompt

在人工智慧生成內容的領域,提示詞(Prompt)設計的好壞往往決定了最終結果的質量。隨著語言模型的進步,越來越多的研究者與開發者開始探索更高效的提示詞架構。在新加坡舉辦的一場GPT-4提示詞設計競賽中,Sheila Tao通過CO-STAR的提示詞架構獲得了冠軍。這個架構為設計有效的提示詞提供了一個明確的框架,幫助使用者更精準地引導語言模型生成期望的內容。

CO-STAR框架介紹

CO-STAR是一種設計提示詞結構的模板,包含六個關鍵要素:上下文(Context)、目標(Objective)、風格(Style)、語氣(Tone)、受眾(Audience)和響應(Response)。通過這六個要素的協同作用,使用者可以更好地控制生成的內容,確保其符合特定的需求。

1. 上下文(Context)

上下文是提示詞的基礎,它提供了生成內容的背景資訊。這一部分的設計旨在讓語言模型理解當前任務的情境。上下文可以包括已有的文本、問題的背景描述,或是其他可能影響生成結果的資訊。

範例:如果你要生成一篇關於氣候變遷的文章,可以在上下文中提供相關的背景數據和問題描述,讓模型更好地理解這個主題。

2. 目標(Objective)

目標定義了提示詞的核心需求,即希望模型達成的結果。這部分明確指出你希望生成的內容應該涵蓋哪些主題或回答哪些問題。

範例:你可能會指示模型撰寫一篇關於氣候變遷的教育性文章,目的是讓大眾了解這一問題的嚴重性。

3. 風格(Style)

風格決定了生成內容的表達方式,涵蓋了文本的結構、用詞選擇等方面。不同的風格可能會影響讀者對文本的理解和感受。

範例:你可以指定內容應該以學術性的風格來撰寫,這樣會使得內容更加嚴謹和專業。

4. 語氣(Tone)

語氣影響了文本的情感表達方式,這在塑造讀者的感受方面至關重要。根據內容的不同,語氣可以是正式、非正式、幽默或是嚴肅的。

範例:在撰寫一篇新聞報導時,你可能會要求語氣保持中立和客觀。

5. 受眾(Audience)

受眾是提示詞設計中常被忽視的一個部分,但它至關重要。了解你希望吸引的讀者群體可以幫助你調整提示詞的其他要素,確保生成的內容適合這一群體的需求。

範例:如果你的文章是針對青少年,那麼語言應該更簡單易懂,風格可以更輕鬆。

6. 響應(Response)

響應是提示詞的最終結果,這是你希望模型生成的內容形式。響應可以是段落、清單、對話等多種形式,具體取決於你的需求。

範例:你可能要求模型生成一個包含多個段落的詳細分析,或是提供一個簡單的要點清單。

為什麼CO-STAR框架如此有效?

CO-STAR框架的成功在於它的結構化方法,這使得提示詞設計變得更加精確和有針對性,也就是說你已經抓到了如何當一個好的主管的精隨。當你明確了每個要素,模型能夠更好地理解你的需求,從而生成符合期望的內容。此外,這個框架也能幫助你在提示詞的不同層面上進行調整,進一步優化結果。

舉例來說,如果你對生成的內容不滿意,可能是因為上下文提供的信息不足,或是語氣與目標不符。通過CO-STAR框架,你可以更容易地找出問題所在,並進行相應的調整。

如果還不甚滿意LLM的輸出結果,建議用自己的訓練資料,並且做出關聯圖,讓語言模型好理解,我最常採用 GraphRAG 處理他

CO-STAR 注意事項

使用分隔符:

分隔符幫助語言模型(LLM)區分提示中的不同部分,尤其是指令區塊和數據區塊對於複雜任務尤其重要。

LLM防護網:

這是一種附加的額外提示,用於指示LLM應如何行為,包括任務定義、輸出格式和防護圍欄(防止LLM生成不當內容),例如要求大語言模型用指定語言輸出

使用LLM分析數據集:

不使用插件或代碼,僅採用LLM來分析數據集,這在模式識別任務中特別有用。

猜解複雜的指令:

太過長的文章以及複雜的句型,是需要被理解的,但連人類都很常誤會意思,何況是LLM,所以分割成小塊且清楚的指令才能幫助模型理解和回答

使用CO-STAR框架的示例與對比

為了更好地理解CO-STAR框架的實際應用,我們用一個具體的例子來說明它如何改善提示詞的設計。

假設我們需要生成一篇關於「如何保持工作與生活的平衡」的文章,我們將展示在沒有使用CO-STAR框架和使用後的效果對比。

沒有使用CO-STAR框架的提示詞

在沒有使用CO-STAR框架的情況下,我們可能只會簡單地輸入一個直接的提示詞:

提示詞
“寫一篇關於如何保持工作與生活平衡的文章。”

生成的內容

保持工作與生活平衡是一項挑戰,尤其是在快節奏的現代社會。人們應該設定明確的工作時間,並確保下班後有足夠的休息時間。安排時間進行娛樂活動也很重要,比如運動或與朋友聚會。這有助於減少壓力並提高整體生活質量。

分析: 這篇文章雖然提供了一些基本的建議,但內容過於簡單,沒有考慮到讀者的特定需求或語境,語氣也較為中立,缺乏吸引力,說白了,就是無聊雞肋且廢話太多的一句話,簡稱廢文。

使用CO-STAR框架的提示詞

現在,我們運用CO-STAR框架來重新設計這個提示詞,以提高生成內容的質量。

CO-STAR提示詞

  • Context(上下文):這篇文章將發布在一個專為職場人士設計的IG平台上,主要讀者是希望改善工作與生活平衡的職場中高層管理者。
  • Objective(目標):提供實際且具體的策略,幫助讀者在高壓的工作環境中維持健康的工作與生活平衡。
  • Style(風格):專業且有說服力,引用實際案例和研究數據支持論點。
  • Tone(語氣):積極且鼓勵人心,給予讀者信心去實踐建議。
  • Audience(受眾):中高層管理者,他們時間緊張,承受較大的職場壓力,但希望改善生活質量。
  • Response(響應):生成一篇包含具體步驟和案例的文章,提供可行的建議,幫助讀者實現工作與生活的平衡。

提示詞
“為職場中高層管理者撰寫一篇專業的文章,討論如何在高壓環境下維持工作與生活的平衡。這篇文章應該包括具體的策略和案例研究,並引用最新的研究數據。語氣應積極且鼓勵人心,風格應專業且有說服力。”

建議用格式化過的方法編排提示詞後,再傳給LLM

# Context #
這篇文章將發布在一個專為職場人士設計的IG平台上,主要讀者是希望改善工作與生活平衡的職場中高層管理者。

# Objective #
提供實際且具體的策略,幫助讀者在高壓的工作環境中維持健康的工作與生活平衡。

# Style #
專業且有說服力,引用實際案例和研究數據支持論點。

# Tone #
積極且鼓勵人心,給予讀者信心去實踐建議。

# Audience #
中高層管理者,他們時間緊張,承受較大的職場壓力,但希望改善生活質量。

# Response #
生成一篇包含具體步驟和案例的文章,提供可行的建議,幫助讀者實現工作與生活的平衡。

生成的內容

在現代職場中,中高層管理者往往面臨著巨大的工作壓力,如何在這樣的環境中維持工作與生活的平衡成為一項關鍵挑戰。根據哈佛商學院的最新研究,超過70%的管理者表示,壓力已經嚴重影響了他們的生活質量。為了應對這一問題,我們可以採取以下三個具體策略:

  1. 設立明確的界限:管理者應該為自己設定明確的工作時間和個人時間界限,並嚴格遵守。例如,可以在晚餐後將手機設置為勿擾模式,專注於與家人共度的時光。
  2. 尋求支持系統:建立一個由同事、家人和朋友組成的支持系統,這可以幫助管理者在壓力過大時及時得到情感和實際的支持。
  3. 實行主動管理:制定每週的工作與生活計畫,確保每週都有足夠的時間進行休閒活動,這不僅有助於減輕壓力,還能提高工作效率。

這些策略不僅能幫助管理者更好地平衡工作與生活,還能提升他們的整體生活質量。根據美國心理學會的研究,採取這些策略的管理者在工作滿意度和幸福感上都有顯著提高。

分析: 使用CO-STAR框架後,生成的內容更加具體、針對性強,並且提供了實際可操作的建議。語氣積極鼓勵,風格專業且可信,與中高層管理者的需求高度契合。

對比總結

通過這個示例,我們可以明顯看出CO-STAR框架的優勢,它不僅幫助你設計出更精確的提示詞,還確保了生成的內容更具質量和價值,相比於簡單的提示詞,CO-STAR框架能夠大幅度提升內容的針對性和專業度,使其更能滿足特定受眾的需求,話說,現在的小朋友必學提示詞的技巧,才不會淹沒在浪潮中。

參考資料

https://towardsdatascience.com/how-i-won-singapores-gpt-4-prompt-engineering-competition-34c195a93d41

https://hub.baai.ac.cn/view/37050

延伸閱讀

LivePortrait:蒙娜麗莎笑起來

LivePortrait:蒙娜麗莎笑起來

LivePortrait 是一個先進且有趣的影像生成技術,它不僅讓靜態肖像圖片動起來,變得栩栩如生,還能讓用戶在不同的角色之間進行變換,甚至能做到將一位大叔轉變成美女,美女變會跳舞的效果。這項技術目前在GitHub上獲得了10K顆星的高度關注,顯示了它在開源社群中的受歡迎程度。

什麼是 LivePortrait?

LivePortrait 是一個能夠讓靜態人像圖片進行動畫化的技術。該技術的核心是將人臉動作從一個人像轉移到另一個人像上,從而實現讓靜態圖片「動起來」的效果。與傳統的動畫技術相比,LivePortrait 的計算效率更高,並且生成的影像更加自然、流暢。

主要特點

  1. 縫合與重定位控制:LivePortrait 的關鍵特點之一是它的縫合與重定位控制技術。這讓用戶可以將不同的面部特徵縫合到一個目標人像上,並進行動畫化。例如,將一位大叔的臉與美女的臉部特徵進行結合,然後動畫化,達到讓大叔秒變美女的有趣效果。
  2. 高效的處理能力:這個技術使用了一種高效的算法,能夠在較短的時間內生成高質量的動畫效果,適合用於即時應用或者在線處理需求。
  3. 開源社群的熱烈反響:LivePortrait 的 GitHub 項目自發布以來,已經累積了7.9K顆星,成為了開源社群中的一個熱門項目。這顯示了技術人員與開發者對這項技術的認可與支持。

應用場景

LivePortrait 的應用場景非常廣泛,從娛樂到專業用途都有所涉及。舉例來說,它可以用於製作逼真的動畫表情,為虛擬角色賦予生命,或者在影像特效中實現面部交換等功能。其高度的可定製性也讓它成為許多創意工作者的工具首選。

安裝方法

原始項目網址 https://github.com/KwaiVGI/LivePortrait

安裝程式

git clone https://github.com/KwaiVGI/LivePortrait
cd LivePortrait

# create env using conda
conda create -n LivePortrait python=3.9
conda activate LivePortrait

# 安裝相關依賴
pip install -r requirements.txt

下載預訓練資料

# !pip install -U "huggingface_hub[cli]"
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

如果不能存取 Huggingface

# !pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download KwaiVGI/LivePortrait --local-dir pretrained_weights --exclude "*.git*" "README.md" "docs"

執行視窗

# For Linux and Windows users
python inference.py

# For macOS users with Apple Silicon (Intel is not tested). NOTE: this maybe 20x slower than RTX 4090
PYTORCH_ENABLE_MPS_FALLBACK=1 python inference.py

指令碼

# source input is an image
python inference.py -s assets/examples/source/s9.jpg -d assets/examples/driving/d0.mp4

# source input is a video ✨
python inference.py -s assets/examples/source/s13.mp4 -d assets/examples/driving/d0.mp4

# more options to see
python inference.py -h

超酷的寵物模式

image

先安裝寵物模式

cd src/utils/dependencies/XPose/models/UniPose/ops
python setup.py build install
cd - # equal to cd ../../../../../../../

要使用的時候只需要下

python inference_animals.py -s assets/examples/source/s39.jpg -d assets/examples/driving/wink.pkl --driving_multiplier 1.75 --no_flag_stitching

Huggingface 上使用

https://huggingface.co/spaces/KwaiVGI/LivePortrait

參考資料

將你的Python程式碼改成 web api

現在AI的時代,實在是離不開python,有時候想要快速的驗證程式設計,並且對外服務,給外部的人測試,這時候可以考慮把在 CLI 執行的 python code ,改成 web api,讓外部的人測試看看,改法如下

步驟 1: 安裝 Flask

pip install Flask

步驟 2 : 建立一個 Web APP

可以建立一個名為 webapi.py 的檔案,並且輸入以下程式碼,這樣就可以簡單地把 GraphRAG 的服務對外

from flask import Flask, request, jsonify
import subprocess
import shlex

app = Flask(__name__)

@app.route('/query', methods=['POST'])
def query():
    # 获取请求中的问题
    data = request.json
    question = data.get('question')
    
    if not question:
        return jsonify({'error': 'No question provided'}), 400
    
    # 构建 CLI 命令
    command = f"python -m graphrag.query --root ./ragtest --method local \"{question}\""
    # 安全地处理命令
    args = shlex.split(command)
    
    # 执行命令
    try:
        result = subprocess.run(args, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
        response = result.stdout
        # 假设输出中包含 "SUCCESS:" 和我们需要的答案
        if "SUCCESS:" in response:
            answer = response.split("SUCCESS:")[1].strip()  # 取得成功后的文本作为答案
            return jsonify({'answer': answer})
        else:
            return jsonify({'error': 'Failed to get a valid response from the CLI tool'}), 500
    except subprocess.CalledProcessError as e:
        return jsonify({'error': str(e)}), 500

if __name__ == '__main__':
    app.run(debug=True, port=5000)

步驟 3 : 開啟服務

python webapi.py

步驟 4 : 使用 API

curl -X POST http://localhost:5000/query -H "Content-Type: application/json" -d "{\"question\": \"新修正之勞工特別休假日數有多少?\"}"

延伸閱讀