cargo adk build

अवलोकन

cargo adk build कमांड आपके ADK-Rust एजेंट प्रोजेक्ट को डिप्लॉय किए बिना कंपाइल करता है। यह आपके एजेंट के सही ढंग से कंपाइल होने की पुष्टि करने का एक तेज़ तरीका प्रदान करता है—पूर्ण डिप्लॉयमेंट चक्र शुरू करने से पहले डिपेंडेंसी संबंधी समस्याओं, प्रकार संबंधी त्रुटियों और कॉन्फ़िगरेशन समस्याओं का पता लगाकर।

स्थानीय विकास कार्यप्रवाह और CI पाइपलाइनों के हिस्से के रूप में cargo adk build का उपयोग करके परिवर्तनों को जल्दी मान्य करें, इसके लिए प्लेटफ़ॉर्म क्रेडेंशियल या नेटवर्क एक्सेस की आवश्यकता नहीं होती।

कमांड सिंटैक्स

cargo adk build [OPTIONS]

कमांड डिफ़ॉल्ट रूप से cargo build --release को रैप करता है और आपके एजेंट प्रोजेक्ट को लक्ष्य बनाता है। सफल होने पर, यह बिल्ड प्रोफ़ाइल, लक्ष्य डायरेक्टरी और बाइनरी आकार की रिपोर्ट करता है।

फ़्लैग और विकल्प

फ़्लैगविवरणडिफ़ॉल्ट
--manifest-path <PATH>Cargo.toml फ़ाइल का पथ। प्रोजेक्ट निर्देशिका के बाहर से निर्माण करते समय उपयोगी।वर्तमान निर्देशिका
--debugरिलीज़ के बजाय डीबग मोड में निर्माण करें। तेज़ संकलन, लेकिन अनुकूलित न की गई बाइनरी।रिलीज़ मोड

उदाहरण

# Build in release mode (default)
cargo adk build

# Build in debug mode for faster iteration
cargo adk build --debug

# Build a project at a specific path
cargo adk build --manifest-path /path/to/my-agent/Cargo.toml

निर्माण बनाम परिनियोजन

एजेंट विकास जीवनचक्र में cargo adk build और cargo adk deploy अलग-अलग उद्देश्यों की पूर्ति करते हैं:

पहलूcargo adk buildcargo adk deploy
उद्देश्यकंपाइल और सत्यापित करनाकंपाइल, बंडल और प्लेटफ़ॉर्म पर पुश करना
नेटवर्क आवश्यकनहींहाँ (प्लेटफ़ॉर्म सर्वर)
प्रमाणीकरणकोई नहींटोकन आवश्यक (--token या ADK_DEPLOY_TOKEN)
आउटपुटtarget/ में स्थानीय बाइनरीप्लेटफ़ॉर्म पर अपलोड किया गया परिनियोजन बंडल
बिल्ड प्रोफ़ाइलरिलीज़ (या --debug के साथ डिबग)हमेशा रिलीज़
सीक्रेट प्रबंधनकोई नहीं.env से सीक्रेट अपलोड करता है
मैनिफ़ेस्ट आवश्यककेवल Cargo.tomlCargo.toml + adk-deploy.toml
उपयोग का मामलास्थानीय विकास, CI जाँचउत्पादन परिनियोजन

प्रत्येक का उपयोग कब करें

  • cargo adk build — संकलन सत्यापित करने के लिए विकास के दौरान, मर्ज से पहले गेट के रूप में CI पाइपलाइनों में, या यह जाँचने के लिए उपयोग करें कि निर्भरता अपडेट आपके एजेंट को प्रभावित नहीं करते।
  • cargo adk deploy — जब आप अपने एजेंट को ADK प्लेटफ़ॉर्म पर भेजने के लिए तैयार हों, तब उपयोग करें। डिप्लॉय में आंतरिक रूप से एक बिल्ड चरण शामिल होता है (--skip-build से छोड़ा जा सकता है)।

उपयोग के उदाहरण

सफल बिल्ड

$ cargo adk build
   Compiling adk-core v0.9.2
   Compiling adk-agent v0.9.2
   Compiling my-agent v0.1.0 (/home/user/my-agent)
    Finished `release` profile [optimized] target(s) in 42.3s
✅ Build successful
   profile: release
   target:  target/release
   binary:  target/release/my-agent (12.4 MB)

तेज़ पुनरावृत्ति के लिए डीबग बिल्ड

$ cargo adk build --debug
   Compiling my-agent v0.1.0 (/home/user/my-agent)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.1s
✅ Build successful
   profile: debug
   target:  target/debug
   binary:  target/debug/my-agent (45.2 MB)

CI पाइपलाइन एकीकरण

# .github/workflows/ci.yml
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo install cargo-adk
      - run: cargo adk build

त्रुटि परिदृश्य और समाधान

अनुपलब्ध निर्भरताएँ

लक्षण: अनसुलझी इम्पोर्ट त्रुटियों के कारण संकलन विफल हो जाता है।

error[E0432]: unresolved import `adk_tool`
 --> src/main.rs:3:5
  |
3 | use adk_tool::FunctionTool;
  |     ^^^^^^^^ use of undeclared crate or module `adk_tool`

समाधान: अपने Cargo.toml की निर्भरताओं में अनुपलब्ध क्रेट जोड़ें:

[dependencies]
adk-tool = { version = "2.1.0", features = ["mcp"] }

अमान्य प्रोजेक्ट संरचना

लक्षण: cargo adk build को Cargo.toml नहीं मिल रहा।

Error: failed to run cargo build: No such file or directory (os error 2)

समाधान: कमांड को अपने प्रोजेक्ट रूट से चलाएँ, या मेनिफेस्ट पथ निर्दिष्ट करें:

cargo adk build --manifest-path ./my-agent/Cargo.toml

फ़ीचर फ़्लैग विरोध

लक्षण: असंगत फ़ीचर संयोजनों के कारण बिल्ड विफल हो जाता है।

error: the package `my-agent` depends on `adk-realtime`, with features:
       `openai-webrtc` but `openai-webrtc` is not a feature of `adk-realtime`

समाधान: जाँचें कि आपके फ़ीचर फ़्लैग आपके द्वारा उपयोग किए जा रहे ADK संस्करण के लिए उपलब्ध फ़ीचर्स से मेल खाते हैं। उपलब्ध फ़ीचर्स देखने के लिए cargo doc -p adk-realtime --open चलाएँ, या क्रेट दस्तावेज़ देखें।

पुरानी लॉक फ़ाइल

लक्षण: ADK क्रेट्स को अपग्रेड करने के बाद संस्करण समाधान त्रुटियाँ।

error: failed to select a version for the requirement `adk-core = "^0.9.2"`

समाधान: अपनी लॉक फ़ाइल अपडेट करें:

cargo update
cargo adk build

बिल्ड वातावरण संबंधी समस्याएँ

लक्षण: लिंकर त्रुटियाँ या अनुपलब्ध सिस्टम लाइब्रेरीज़।

error: linker `cc` not found

समाधान: अपने प्लेटफ़ॉर्म के लिए आवश्यक बिल्ड टूलचेन इंस्टॉल करें:

# Ubuntu/Debian
sudo apt install build-essential pkg-config libssl-dev

# macOS
xcode-select --install

# Fedora/RHEL
sudo dnf install gcc openssl-devel

संकलन के दौरान मेमोरी समाप्त होना

लक्षण: बिल्ड प्रक्रिया बंद हो जाती है या आवंटन विफलता के साथ पैनिक करती है।

समाधान: समानांतरता कम करें या अधिक RAM वाली मशीन का उपयोग करें:

# Limit parallel compilation jobs
CARGO_BUILD_JOBS=2 cargo adk build

# Or set in .cargo/config.toml
# [build]
# jobs = 2
cargo adk build - ADK-Rust दस्तावेज़ीकरण | ADK-Rust