With awk, assuming the sum and each individual number argument can fit in your system's long type, and only considering sequences of decimal digits with an optional leading - sign:
#! /bin/sh -
awk 'BEGIN{
sum = 0
for (i = 1; i < ARGC; i++)
if (ARGV[i] ~ /^-?[0123456789]+$/)
sum += ARGV[i]
print sum}' "$@"
For arbitrary precision, you can use bc:
#! /bin/sh -
awk 'BEGIN{
for (i = 1; i < ARGC; i++)
if (ARGV[i] ~ /^-?[0123456789]+$/)
print "s+="ARGV[i]
print "s"}' "$@" | bc
Example:
$ ./sum1 999999999999999999999999 1
999999999999999983222784
$ ./sum2 999999999999999999999999 1
1000000000000000000000000