Quick Start

The smallest useful program: create an agent from an ACL file, open a session on a project directory, run one turn with send (Go: Run, the short form of Send that uses the session's own history), print the reply text, and inspect the verification summary the runtime produced for that turn.

Rust
Node.js
Python
Go
Rust
use a3s_code_core::Agent;
#[tokio::main]
async fn main() -> a3s_code_core::Result<()> {
// Agent::new accepts an .acl file path or inline ACL source.
let agent = Agent::new("agent.acl").await?;
let session = agent.session_builder(".").build().await?;
let result = session
.send("List the files in this directory.", None)
.await?;
println!("{}", result.text);
// What the runtime checked while producing that turn.
println!("{}", result.verification_summary_text());
session.close().await;
agent.close().await;
Ok(())
}

The agent factory accepts either an .acl file path or inline ACL source text in all four SDKs. Close the session, then the agent, when you are done so the runtime can flush state and release resources; closing an agent also closes any session it still owns. In Node.js, use sessionAsync() and closeAsync(): the synchronous session() and close() are deprecated because they block the event loop. Go close operations accept a context because they also stop the bridge-owned native resources.

Next steps

  • Streaming — read tokens as they arrive
  • Sessions — persist and resume conversations