Skip to content

SDK Overview ​

AgentProc SDKs remove the boilerplate of reading the turn object from stdin and writing NDJSON events to stdout, so you can focus on your agent logic.

Available SDKs ​

LanguagePackageInstall
Pythonagentprocpip install agentproc
Node.jsagentprocnpm install agentproc
Rustagentproccargo add agentproc
Gogithub.com/jeffkit/agentproc/sdk/gogo get github.com/jeffkit/agentproc/sdk/go

Without an SDK ​

You don't need an SDK. Any script that reads a {"type":"turn",...} object from stdin and writes NDJSON events to stdout works. See Bare script examples.

With an SDK ​

Write one async function. The SDK handles the rest.

python
from agentproc import create_profile

async def handler(ctx):
    reply = await my_llm(ctx.message)
    return reply

create_profile(handler)
js
const { createProfile } = require('agentproc');

createProfile(async ({ message }) => {
  const reply = await myLLM(message);
  return { response: reply };
});
rust
use agentproc::{run, Profile, RunOptions};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let profile = Profile::from_path("profile.yaml")?;
    let result = run(&profile, RunOptions::new("hello")).await?;
    println!("{}", result.reply);
    Ok(())
}
go
package main

import (
	"context"
	"fmt"

	agentproc "github.com/jeffkit/agentproc/sdk/go"
)

func main() {
	result, err := agentproc.Run(context.Background(),
		map[string]any{"command": "python3", "args": []string{"{{PROFILE_DIR}}/bridge.py"}},
		&agentproc.RunOptions{Message: "hello"})
	if err != nil {
		panic(err)
	}
	fmt.Println(result.Reply)
}

Released under the MIT License.